This section enumerates a list of facts that typically are found in those current datatransmission scenarios which are based on computer networks.
Routers deliever datagrams, not streams between connected devices: Inother words, the cost (in terms of bandwidth) of sending two or more packetsto two or more different hosts is equal to the cost of sending two or morepackets at the same host.
Redundancy enables data compression: Some data link protocols, such asthe PPP (Point-to-Point Protocol), can compress the payloads in order todecrease the size of the packets. Therefore, assuming a constant packet size,it is expectable that the cost of sending two or more identical packets oncontent should be less than or equal to the cost of sending two or more packsof the same size but with different content.
IP multicast availability: Although IP multicasting is disabled at global scale,locally is usually available and is this case, it is the most efficient way ofdata broadcasting. For this reason, network level multicasting should be usedwhenever possible.
Encapsulation overhead: Each block of media content (which it will bereferred as a “chunk” in the rest of this document) sent between peers mustundergo a process of encapsulation which is basically be adding a header andsometimes a trailer for each network layer a packet traverses in his trip. Theheaders of the physical, data-link and network layers are compulsory in theInternet. However, at the transport layer level, there are basically two options:(1) the TCP (Transmission Control Protocol), a reliable protocol from thepoint of view of transmission errors and that avoids network congestion and(2) the UDP (User Datagram Protocol), which basically provides datagramtransmission service. Apart from these differences, it should be noted that theheader overhead of both protocols is different: 20 bytes in the case of TCPand 8 bytes in the case of UDP.
Congestion control and latency: Internet is a shared medium and as such,the bandwidth provided is unknown a priori because it depends mainly ofthe bandwidth than other network users consume at that time. Furthermore,when the demand for bandwidth is higher than the network can provide,a phenomenon known as the network congestion occurs. This effect is aconsequence of the routers, the devices that decide the paths to be followed bydata packets, receive more data than can be process, and when this happensthe packets are simply destroyed. This behavior brings a serious negativeimpact on overall network performance because, usually, a destroyed packetmeans that sooner or later it will be retransmitted and thus it will contributeto further congestion the network.
To avoid getting into this dangerous dynamic, the TCP provides a mechanismfor congestion avoidance which basically reduces the transmission rate if thereare indications that the network is congested. As a result of the reduction ofthe transmission rate, users experience an increased latency in communication.In the case of UDP, such a mechanism does not exist and is the responsibilityof the application to prevent the network congestion.