传输层连接 对于面向连接的传输服务,首先要和对端的对等实 体建立连接。 ■传输层连接本质上是在发送端和接收端上为实现可 靠传输而维护的一些参数状态。 ·例如发送、确认序列号的维护、发送、接收窗口的管理, 接收端缓存大小等 ■各种计时器 数据传输完毕还需要释放连接,即释放维护连接参 数的缓存。 11
11 传输层连接 n 对于面向连接的传输服务,首先要和对端的对等实 体建立连接。 n 传输层连接本质上是在发送端和接收端上为实现可 靠传输而维护的一些参数状态。 n 例如发送、确认序列号的维护、发送、接收窗口的管理, 接收端缓存大小等 n 各种计时器 n 数据传输完毕还需要释放连接,即释放维护连接参 数的缓存
建立连接 般来说,一个连接从连接请求的发出到接收到连接证实消息 就可以建立一个连接,但由于网络丢失、延迟而导致重传而出 现重复分组时,一个连接会被建立多次。 连接建立过程并不是那么简单! Host 1 Host 2 三次握手 CR(seq=x刘 主机1选择一个序号x,并向主机2 发送包含该序号的连接请求CR 主机2应答连接确认ACK,其中包 ACK(seq =y,ACK =x) 含确认号x和序列号y 加 主机1在其发送的第一个数据中采 用序列号为x,并确认主机2的序 DATA (seq =x,ACK=y) 列号y
12 建立连接 n 三次握手 n 主机1选择一个序号x,并向主机2 发送包含该序号的连接请求CR n 主机2应答连接确认ACK,其中包 含确认号x和序列号y n 主机1在其发送的第一个数据中采 用序列号为x,并确认主机2的序 列号y n 一般来说,一个连接从连接请求的发出到接收到连接证实消息 就可以建立一个连接,但由于网络丢失、延迟而导致重传而出 现重复分组时,一个连接会被建立多次。 连接建立过程并不是那么简单!
三次握手中的几种状态 Host 1 Host2 Host 1 Host2 Old duplicate CR(seq=X划 CR-连接请求;ACK-接受连接 CR(seq=x) 图a为正常操作时连接的建立 ACK (seq=y,ACK=x) ACK(seq=y,ACK=X刈 图b为重复的CR突然出现(I旧 的连接请求延迟了); DATA(seq=x,ACK=y) REJECT(ACK=y) 图c为重复的CR和重复的ACK (a) (b) Host 1 Host 2 M/CR(seq=x划 Old duplicate ACK(Seq=y,ACK=X刈 DATA(seq=x, ACK=2) Old duplicate REJECT (ACK=y) (c) 13
13 三次握手中的几种状态 CR-连接请求;ACK-接受连接 图a为正常操作时连接的建立 ; 图b为重复的CR突然出现(旧 的连接请求延迟了); 图c为重复的CR和重复的ACK
释放连接 非对称释放 ·连接的任何一方都可以断开整个连接 ■ 对称释放 ■把连接看作是由两个独立的单向连接,并要 求单独释放每一个单向连接 14
14 释放连接 n 非对称释放 n 连接的任何一方都可以断开整个连接 n 对称释放 n 把连接看作是由两个独立的单向连接,并要 求单独释放每一个单向连接
CR-连接请求 非对称释放 ACK-接受连接 DR-连接断开请求 Host 1 Host 2 当连接建立以后,主机1 CR 发送一个TPDU,它正确地 到达了主机2. ACK 然后,主机1又发送一个 TPDU,但是由于主机2在 DATA 第二个TPDU到达之前就已 经发送了DISCONNECT DATA TPDU,因此,该连接虽然 DR 被释放,但是数据却丢失 No data are 了。 delivered after a disconnect request 15
15 非对称释放 •当连接建立以后,主机1 发送一个TPDU,它正确地 到达了主机2. •然后,主机1又发送一个 TPDU,但是由于主机2在 第二个TPDU到达之前就已 经发送了DISCONNECT TPDU,因此,该连接虽然 被释放,但是数据却丢失 了。 CR-连接请求 ACK-接受连接 DR-连接断开请求 ACK