[ Pobierz całość w formacie PDF ]
.The Nagle algorithm [41] is relevant to character mode applicationsthat send a few bytes in each packet wrapped in 40-byte TCP/IP headers,and it states that a TCP connection can only have one outstanding unac-knowledged small segment at a time.This leads to buffering of data to formmore significant packets with proportionally less overhead.Header compres-sion is an alternative means of alleviating this problem.The slow-start algorithm states that the sender can only transmit onesegment before receiving an acknowledgment at the start of a TCP connec-tion instead of the full window size.After receiving the first acknowledg-ment, the next transmission can consist of a maximum of two segments,thereafter gradually increasing on receipt of each acknowledgment until thequantity permitted reaches the window size.Limitations of TCPTCP is a tremendously successful protocol, but inevitably is not suited to all circumstances.The simplest and most easily rectified issue is the large headers used by TCP/IP.This was recognized early on and largely cured by theJacobsen header compression [42].Additional improvements have beenmade more recently [4345] that are particularly relevant to mobile phonenetworks and cover both IPv6 and IPv4.This topic is discussed in the nextsection.TCP provides both reliability and data sequencing, but not all appli-cations require both of these.This applies particularly to real-time services where ordering of data can cause unacceptable delays, and limited data dropping may be acceptable.This has led to the development of specialized pro-tocols, such as RTP [34, 35], that run on top of UDP, and also specializedprotocols independent of both TCP and UDP, such as SCTP [10].These arealso discussed later in this chapter.7.4.10 Header CompressionThe standard header size for IPv4 is 20 bytes in the absence of source rout-ing, with an additional 8 bytes for UDP or 20 bytes for TCP (excludingoptions).This can constitute a major overhead where an application gener-ates very small packets.For example, a 20-ms burst of compressed voice at9.6 Kbps generates only 24 bytes of data, so these additional headers wouldProtocols175account for more than half the network traffic and double the network trans-mission time.Doubling the packet size also doubles the probability of anerror during transmission for a given bit error rate, and hence of packet dropping with UDP or retransmission with TCP.Compression by RFC1144 (Van Jacobsen Compression)A high proportion of the header is repetitive in nature [e.g., the IP addresses and port numbers (or sockets)] and as such can be abbreviated.RFC1144defines this procedure for TCP/IP headers for IPv4, but not UDP nor IPv6.The compressor for this standard operates in a simplex manner and generatesthe following type packets:• COMPRESSED_TCP;• UNCOMPRESSED_TCP;• TYPE_IP.Packets that do not use TCP are marked as Type_IP and left uncompressed,while some TCP connections may be selected for compression while othersare left unchanged.TCP/IP fragments and TCP/IP packets with the SYN,FIN, or RST bits set are also marked as Type_IP and uncompressed since thefull header is needed under these circumstances.The 96-bit header fields consisting of source and destination addressesTEAMFLYand ports identify a TCP connection.This combination can be replaced by aconnection number, and in the case of RFC1144, this is restricted to a rangefrom 1 to 256 on a compressor and is transmitted and used as an index intoan array of header data.Sequence number and window size fields are alsoshortened by using the difference from those of the previous packet insteadof the absolute values, thereby cutting 48 bits to 16 most of the time.Thechecksum is left untouched.A change mask is also sent to indicate whatfields are likely to have changed.The net effect is that 40 bytes are reduced to about 4 to 7 bytes in general.The low-bandwidth links requiring header compression also tend tobe those subject to high error rates, and compression reduces the chancesof detecting this condition.The checksum fails to detect quite simpleerrors, such as two single-bit errors separated by 16 bits, so it is better to rely on the link level and discard frames exhibiting an error.This is not perfect and can lead to incorrect sequence numbers.Error recovery in generaldepends on sending an uncompressed TCP/IP packet to sort out a confusedTeam-Fly®176QoS in Integrated 3G Networksdecompressor.Although it is not ideal for radio links, it is the option quoted for cdma2000 Release A (see Chapter 4 and Section 9.4).IP Header Compression by RFC2507IP Header Compression (IPHC) retains the basic compression technique forTCP but improves its error recovery mechanism and extends compression toIPv6 and non-TCP headers, such as UDP; it is one of the options used inUMTS PDCP (see Section 3.3.1).Traffic is classified as belonging to packet streams characterized by a setof defining fields that include common source/destination address pair andcommon source/destination port pair.Each such stream is given a contextidentifier (CID), that is, an 8- or 16-bit number that identifies it
[ Pobierz całość w formacie PDF ]