Download presentation
Presentation is loading. Please wait.
1
Transport Layer:UDP&TCP (Commonalities)
End-to-End Communication How a process is identified on Internet: Each process communicating via TCP or UDP is assigned an host-unique 16-bit binary called “port number” ; A port number is either TCP- or UDP-type; A process is uniquely identified by an IP address and its port number. Port numbers in range of are assigned by IANA。
2
Transport Layer:UDP(1)
UDP is end-to-end and connectionless. UDP is NOT reliable per se; UDP does NOT do flow-adjustment; UDP CAN(!) go in broadcast or multicast way( in contrast TCP CANNOT do).
3
Transport layer:UDP(2)
4
Transport layer:UDP(3)
5
Transport layer:UDP(4)
6
Transport Layer:TCP(1)
TCP is end-to-end and connection-oriented; TCP is bi-directional; TCP is reliable: receiver is guaranteed to get exactly whatever is outgoing from the sender; TCPP does flow-adjustment; TCP can support neither broadcast nor multicast(!).
7
Transport Layer:TCP(2)
What sort of reliability issues on IP packets transmitting over Internet? Packet Loss( because of, e.g., link/gateway saturation、media interference、gateway overloading、interface fault, etc); Packet Disorder( packets in the same stream arrive at destination host in different order from that of sender) ; Flow-mismatch( Lower-speed receiver cannot catch up with a higher-speed sender, as a result, some packets are dropped).
8
Transport Layer:TCP(3-1)
How TCP resolve those reliability issues? Rule#1: sequence number TCP regards whatever is in transmission ( /file data, Web-page, voice, video, etc.) as the ordered byte sequence (called stream). Each byte is assigned an unique sequence number( a 32-bit binary ) which is contiguous with the byte’s position in the stream.
9
Transport Layer:TCP(3-2)
How TCP resolve those reliability issues? Rule#2: Acknowledgement/resending 1)Everytime TCP sending a block of bytes( a segment), the sender must wait until explicitly acknowledged by its receiver. 2) Everytime TCP receives a block of bytes, the receiver must explicitly acknowledge the sender( by acknowledge number which value is sequence number of the first byte received + the number of received bytes or equivalently 1+sequence number of the last received byte); 3) If the sender is NOT acknowledged after a period(1-2ms), it must resend the segment again, repeat the procedure until explicitly acknowledged.
10
Transport Layer:TCP(3-3)
How TCP resolve those reliability issues? Rule#3 Flow Adjustment TCP explicitly repots the receiving buffer size via parameter Windowsize and does flow adjustment via Window algorithm.
11
Transport Layer: TCP(4)
TCP’s connection-oriented communication procedure: phase#1:open connection phase#2:(bi-directional) data transmission phase#3:close connection
12
Transport Layer: TCP(5-1)
13
Transport Layer: TCP(5-2)
14
Transport Layer: TCP(6)
What is TCP connection? A TCP connection is just a group of parameters to indicate peer status under which communication is completely controlled; Which parameters? Sequence number of the currently transmitted bytes, acknowledgement number, current windowsize, etc. On internet each connection is uniquely identified by a 4-tupe: source host’s IP address, source port #, destination host’s IP address, destination port #.
15
Transport Layer: TCP(7)
How is a TCP connection opened (3-way handshaking)? TCP client TCP server SYN=1,Seq# = m SYN=1,Seq#=n, ACK=1, Ack#= m+1 ACK=1,Ack#=n+1 m=base seq# at client side,n=base seq# at server side
16
m=base seq# at client side TCP(8-1)
How is a TCP connection closed? FIN=1,Seq#=M ACK=1,Ack#= M+1 M=acknowledgment number right before the connection-closure; Any side (client or server) can issue a closing-request.
17
Transport Layer: TCP(8-2)
TCP connection-closing is unidirectional(!) Proc.A Proc.B FIN=1,Seq#=M ACK=1,Ack#= M+1 Stream In this example: stream from A to B is closed, in contrast, stream from B to A can still go(!).
18
Transport Layer:TCP(9-1)
How does TCP transmit data: Interactive Mode Proc. A Proc. B 100 bytes ready (new)250B ready Seq#=M, TCP Seg. Size =100 ACK=1,Ack#= M+100 Seq#=M+100, TCP Seg. size=250 ACK=1,Ack#= M+350 Real-world Example: Telnet, etc.
19
Transfer layer:TCP(9-2)
Merge Data Transmission and Acknowledgement Proc#A Proc#B 100B ready Curr. Seq#=M Seq#=M, TCP Seg.size=100 Curr. Seq#=N 500B Ready Seq#=N, TCP Seg.size=500 ACK=1,ACK#= M+100 ACK=1,Seq#= N+500 Each TCP Seg. can carry both data and acknowledgment at the same time
20
Transfer Layer:TCP(9-3)
Pls. Speculate: How does the receiver know the exact number of bytes in a TCP payload? TCP段的载荷长度=IP分组的载荷长度-TCP首长度 What does the TCP Ack#. mean? 若确认号=N, 则接收方A是在向原数据发送方B报告: A期待B下次从第N号字节开始传输数据(记住:TCP把每个字节都编号了!)
21
Transfer Layer:TCP(9-4)
Exercise (to be continued) Proc. A Proc. B SYN=1,序列号= 6999 Base Seq#.=6999 Open Conn. 400B ready Base Seq#=1999 500B Ready SYN=1, Seq#= 1999 , ACK=1,Ack#= 7000 ACK=1,Ack#= 2000 Seq#= 2000, B ACK=1, Ack#=2500 Seq#= 7000, B ACK=1, Ack#=7400
22
Transfer Layer:TCP(9-5)
(continued) What happens if the receiver cannot receive the whole segment at one time? Proc.A Proc.B Seq#= B 1000B ready Know 400B remained Only 70B accepted Only 600B accepted Accept all 270B ready ACK=1,Ack#= 8000 Seq#= 8000, 400B ACK=1, Ack#= 8400 Seq#= 2500, B ACK=1, Ack#=2570
23
Transfer Layer:TCP(9-6)
How does TCP deal with packet loss (I)? Proc.A Proc.B Seq#= 4096, 1000B 1000B ready Start timer timeout Resend/restart timer Clear timer Timeout point Seq#= 4096, 1000B ACK=1, Ack# = 5096 Timeout period is exponentially increased, Why?
24
Transfer Layer:TCP(9-7) How does TCP deal with packet loss (II)?
Proc.A Proc.B Seq# = 90000, 100B 1000B ready start timer timeout Timeout point ACK=1, Ack# = ? (resend) seq# = 90000, 100B ACK=1, Ack# = ? (resend) seq# = 90000, 100B
25
Transfer Layer:TCP(9-8)
Merge the data transmit Proc.A Proc.B 100B: A’s curr. Seq# = M Wait a moment Another 250B ready (Merged bytes):Seq# =M+100, 250B ACK=1,Ack# = M+100 The sender tries to merge the bytes as far as possible. Example: Telnet
26
Transfer Layer:TCP(9-9)
Pls. reasonably guess how to merge acknowledgments for multi-segments? Proc.A Proc.B A’s curr. Seq#=M Seq# =M, 100B Wait a moment Merge Seq# =M+100, 450B ACK=1,Ack# = M+550 特点: 接收方每次等待1ms或更短,目的是尽量合并确认. 例子: Telnet
27
Transfer Layer:TCP(9-10)
Batch Mode Proc A Proc B Cur. Seq#=M Bold size data ready Ack. time Seg. Size=1000B:each seg.’s seq#=? ACK=1,Ack# = ? ACK=1,Ack# =? Feature: 1) Sender sends lots of (e.g., 4) segments before waiting for the acknowledgements. 2) Receiver acknowledges segments in batch, e.g., acknowledges for every receiving two segments. Example: HTTP carrying image、video, etc.
28
Transfer Layer:TCP(9-11)
Slow Start Proc. A Proc. B Curr. Seq#=M Data ready Ack. time 1000B each seg.:each seg.’s seq# =? ACK=1,Ack#= ? ACK=1,Ack# =?
29
Transfer Layer:TCP(9-12)
Example & exercise#1 Proc.A Proc.B Curr. Seq#=78910 Ack. time 1000B each seg. size:each seg.’s seq# =? ACK=1,Ack# = ? Question: If the second seg. Is lost,how does TCP behave? Whatever the receiver does, seg.#2、seg.#3、seg.#4 ALL have to be resent !
30
Transfer Layer:TCP(9-13)
Example & exercise#2 Proc A Proc B Curr.seq#=78910 Ack. time 1000B in each seg.:each seg.’s seq# =? ACK=1,Ack# = ? Question: The second segment arrives late,how can the receiver know there is a gap in the upcoming stream? how does TCP behave?
31
Transfer Layer:TCP(9-14)
Example for Flow Adjustment Proc A Proc B 当前接收缓空间大小为X字节 当前接收缓空间饱和 接收区有Y字节空间可用 当前序列号=78910 大量数据就绪 A停止发送任何数据 用下一个待发送字节试探B A恢复传输 每个段1000字节:每段的序列号=? ACK=1,确认号#,窗口参数=X ACK=1,确认号#,窗口参数=0 序列号#,段长度=1 ACK=1,确认号#,窗口参数=Y>0
32
Transfer Layer:TCP(9-15)
成批传输情况下如何进行流量调节:例子及练习3-2 B 进程A 当前接收缓空间大小为X字节 当前接收缓空间饱和 接收区有Y字节空间可用 当前序列号=78910 大量数据就绪 A停止发送任何数据 A被动等待 恢复传输 每个段1000字节:每段的序列号=? ACK=1,确认号#,窗口参数=X ACK=1,确认号#,窗口参数=0 序列号#,段长度=1 ACK=1,确认号#,窗口参数=Y>0
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.