Delay Bandwidth product Delay bandwidth product: The number of bits the sender must transmit before the first bit arrives at the receiver. The bits in the pipe are said to be “in flight” If the sender does not fill the pipe (i.e. if he does not send “delay X bandwidth” worth of data before it waits for an Ack signal), he will not fully utilize the network. TCP data throughput : An Example Assume that data is to travel between src A and dst B, and that each segment contains the same number of bytes. Assume that the time required to send one segment from A to B can be divided into 4 equal parts (starting with 0th time interval). Neglect the processing time at A and B. TCP begins data transmission with a slow-start. TCP data throughput: Travel of the first segment: At the beginning of t = 0th interval, the sender starts sending the first segment. At the beginning of t = 1st interval, the segment goes through x. Similarly at the beginning of t =2nd and 3rd interval the segment goes through the points y and z respectively. At the end of t = 3rd interval, it has been received at B. At the beginning of t = 4th interval, B will send the Ack. A x y z TCP: Travel of first Ack: At the end of t = 4, 5, 6 the Ack reaches the points z, y and x respectively. At the end of t = 7, Ack1 reaches A. A can now send the 2nd segment. The TCP slow-start procedure would now allow the 3rd segments also to be sent, immediately after the 2nd, even if Ack2 is yet to be received. At the beginning of t = 8, A sends the 2nd segment. At the beginning of t = 9, A sends the 3rd segments. Similarly when Ack2 and Ack3 are received by A, its congestion window is of 4 segments. Motion of the ACKs and segments is now explained in the table in the next few slides. B TCP: Movement of Segments and Acks Beginning of End of A sends B sends t = 11 B receives the 2nd segment t = 12 Ack2 t = 13 Ack3 t = 15 t = 16 Comments B receives the 3rd segment at the end of t=12 Ack 2 reaches A Seg4 t = 16 Ack 3 reaches A TCP: Movement of Segments and Acks (continued) Beginning End of of A sends t t t t t t t Seg5 Seg6 Seg7 = = = = = = = 17 18 19 20 21 22 23 B sends Comments Ack 4 Ack 5 Ack 6 Ack7 t = 23 Ack 4 reaches A TCP: Movement of Segments and Acks (continued) On receiving Ack 4, Ack 5, Ack 6, Ack 7, A should be able to send 8 segments. Beginnin End of g of t = 24 t = 25 t = 26 A sends B sends Comments Seg8 Seg9 Seg10 TCP: Movement of Segments and Acks (continued) Beginnin End of g of A sends t = 27 Seg11 t = 28 Seg12 Ack 8 t = 29 Seg13 Ack 9 t = 30 Seg14 Ack 10 t = 31 Seg15 Ack 11 t=31 B sends Comments A receives Ack8 TCP: Movement of Segments and Ack (continued) Beginning End of of A sends B sends t = 32 Seg16 Ack12 A receives Ack9 t = 32 t = 33 Comments Seg17 Ack13 t = 33 Bandwidth-delay product: the TCP example Thus at t = 31 and all successive times the pipe between the sender and the receiver is full. At each unit of time, a segment is received by B and a new segment is sent by A. The number of data segment, at any time, in the pipe is equal to the number of Ack segments in the pipe. This is the ideal steady state of the connection. Hence the sender should have 8 segments unacknowledged at any time for maximum throughput. Question: How big should the advertised window of the receiver be? Bandwidth-delay product: Capacity of a pipe in bits = bandwidth (bits/sec)*RTT (sec). A receives Ack10 the TCP example: T1: Raw bit rate = 1.544Mbps One bit out of 193 is used for SYNC, So net bit rate = 1.536 Mbps. Similarly T3: Raw bit rate = 44.736Mbps Net bit rate = 44.21Mbps For RTT = 60ms, Bandwidth-delay product for T1 = 1.536*60*103 = 92160 bits = 11520 bytes the TCP example: (continued): Bandwidth-delay product for T3 = 44.21*60*103 = 2652600 bits = 331575 bytes. This is larger than the TCP window advertisement can be, so TCP window scale option has to be used. The capacity of the pipe can be affected by a change in either the bandwidth or the delay.