tcpip基本原理第四章传输层内容摘要:
程 TCP接收到了其连接终止请求的确认 CLOSED: 根本不存在连接的状态。 428 中国科学技术大学 远程教育 TCP连接端点 TCP连接端点 TCP把端点定义为一对整数,即 (host, port),其中host是主机的 IP地址,而 port则是该主机上的 TCP端口号。 TCP连接 是用它的两个端点来表示; 中国科大的一台 IP地址为 华大学的一台地址为 接的话,它可能会由端点定义成: ( ,1234)和( , 25) 429 中国科学技术大学 远程教育 TCP连接的 建立 过程 客户 TCP 服务器 TCP 1. CLOSE LISTEN 2. SYNSENT→ SEQ=100CTL=SYN → SYN RECEIVED 3. ESTABLISHED←SEQ=300ACK=101CTL=SYN,ACK ← SYN RECEIVED 4. ESTABLISHED→SEQ=101ACK=301CTL=ACK → ESTABLISHED 5. ESTABLISHED→SEQ=101ACK=301CTL=ACKDATA → ESTABLSHED 说明: TCP A、 B在初始时分别是处于 CLOSED和 LISTEN状态。 A端首先发送一个 SEQ= 100的初始化序列, SYN置位,占用一个序列号; B端在收到该请求后,发送一个序列号为 300,确认号为 101的段,这个段的 SYN、 ACK均置位,说明 B端的初始发送序列号为 300,同时又确认了 A的 SEQ= 100的段, A在收到了 B的应答后,对其初始序列号确认,来响应 B的初始化序列,然后 A就可以发送事件了。 其中第 4行,称之为 “ 三次握手 ” 430 中国科学技术大学 远程教育 在 TCP连接的生存期中,通过多种状态进行传输。 这些状态称为 TCP状态。 一个客户机按照下列顺序经历一系列的 TCP状态。 如下图示: 431 中国科学技术大学 远程教育 CLOSE FIN_WAIT_1 TIME_WAIT FIN_WAIT_2 SYN_SENT ESTABLISHED 接收 SYN和 ACK 发送 ACK 发送 FIN 接收 ACK 不发送 接收 FIN 发送 ACK 等待 30秒 客户主机 TCP的状态顺序 432 中国科学技术大学 远程教育 于客户机一样,服务器也经历各种 TCP状态。 如下图示: 433 中国科学技术大学 远程教育 CLOSE ESTABLISHED LAST_ACK CLOSED_WAIT LISTEN SYN_RCVD 接收 SYN 发送 SYN和 ACK 接收 CAK 不发送 接收 FIN 不发送 发送 FIN 接收 ACK 不发送 服务器 TCP的状态顺序 434 中国科学技术大学 远程教育 TCP连接的关闭过程 TCP A TCP B 1. ESTABLISHED ESTABLISHED 2. (关闭) FINWAIT1 → SEQ=100ACK=300CTL=FIN, ACK … CLOSEWAIT 3. FINWAIT2 ← SEQ=300ACK=101CTL=ACK ← CLOSE WAIT 4. ( 关闭 ) TIMEWAIT← SEQ=300ACK=101CTL=FIN, ACK ← LAST ACK 5. TIMEWAIT→SEQ=101ACK=301CTL=ACK → CLOSED 6. ( 2 MSL) 关闭 说明: TCP A启动 TCP关闭某连接的, TCP B收到一个 FIN段,进入 CLOSEWAIT状态。 在第 3行中,如果 TCP B还有数据要发送,在报头之后,会有数据,同时对 TCP A发来的 FIN确认( FIN占用一个序列号)。 发送完数据后,在第 4行, TCP B再发送一个 FIN段,在没有收到确认之前是 LAST- ACK( 等待发往远程 TCP的 FIN的确认)状态。 第 5行中, TCP B在收到了它发出的 FIN的确认后,进入 CLOSED状态, TCP A在超时时间到后,自动关闭。 435 中国科学技术大学 远程教育 TCP关闭连接为什么采用三次握手法 正常关闭时,一端用户发出一个DR(释放连接请求 )TPDU,首先要求释放连接。 当该 TPDU到达对方后,收方也回送一个 DR TPDU,并同时启动定时器以防止其 DR TPDU丢失。 当应答方的 DR到达后,最初提出释放连接的一方又回送一个 ACK(确认 ) TPDU,并断开连接。 最后,当 ACK TPDU抵达目的地后,接收方也释放连接。 释放一个连接意味着传输实体从其记载所有接通的连接的表中删除该连接的有关信息并设法通知该连接的所有者 (传输用户 )。 436 中国科学技术大学 远程教育 图 b表示,如果最后的 ACK(确认 )TPDU丢失,就需要用定时器来补救。 当定时器超过时限后,连接将被强行释放。 图 c表示,当第二个 DR(响应的 DR)丢失的情形。 这时,首先提出释放连接的用户将不能收到所期待的响应,待到定时器超时,再次开始要求释放连接。 从图 c中可以看到这种情况下是如何工作的,假设第二次没有任何 TPDU丢失,并且所有 TPDU都正确、及时地到达目的地。 最后一种情况如图 d所示。 除了假设由于丢失 TPDU使所有重发DR的尝试均失败以外,其他情况与图 c完全相同。 这样,经过 N次尝试后,发送方 (提出释放连接的一方 )只好放弃努力并断开连接。 同时,接收方 (被动释放连接的一方 )因为定时器超时也释放掉连接。 可见,采用三次握手法关闭连接,能解决经常出现的非正常关闭的情形。 但理论上当第一个 DR和所有 N次重发均被丢失的情况下,该协议便会失败。 因为此时发送方将放弃重发并释放连接,而另一方却对对方的释放连接企图一无所知,而处于连接有效状态。 这种情况将导致一个半接通的连接。 437 中国科学技术大学 远程教育 消除半接通连接的可行方法 消除半接通连接的一种方法是,如果在一段时间内没有收到任何 TPDU,连接便自动释放。 这样,如果一方已经释放了连接,那么另一方将检测不到对方的活动因而也断开连接。 当然,如果引进这一规则,就需要为每个传输实体设置一个定时器,每当收到一个TPDU时都要使定时器停止并重新启动。 如果该定时器超时,就发送一个伪 TPDU,目的只是不让对方释放连接。 另一方面,如果在一个处于空闲状态的连接上连续丢失了很多的伪 TPDU,那么连接的双方将会先后释放连接。 438 中国科学技术大学 远程教育 最大报文段长度 MSS 应用程序进程之间建立起连接后,就将进行真正的数据传输。 传输层从应用程序接收的数据将被分割为更小的报文段。 在接收端,这些报文段被重组。 由于能够重组的数据有其最大限制,所以报文段必须有大小的限制。 最大报文长度 (MSS):报文段大小的上限。 TCP默认MSS是 536字节。 因此, TCP接收到应用程序的数据后,将其分割的报文段不能超过 536字节这一上限。 在连接建立期间, TCP提供一些选项,以指明连接可接受的 MSS。 这个 MSS是接收方发送给发送方的,指明了服务器可能接收的最大值 X。 X值既可以大于也可以小于默认的 MSS值。 439 中国科学技术大学 远程教育 TCP可靠传输 TCP提供面向连接的字节流传输。 面向连接的传输协议对可靠性的保证首先是它在进行数据传输前,必须在通信双方建立一条连接。 面向连接的传输协议要求对每一个报文都要进行确认,未经确认的报文被当作是错误报文。 流相当于一个管道,发送端从管道的一端放入什么,接收端就可以照原样取出什么。 • TCP连接是全双工和点到点的。 • 全双工意味着可以同时进行双向传输。 • 点到点的意思是每个连接只有两个端点。 • TCP不支持组播或全广播。 440 中国科学技术大学 远程教育 TCP采用的可靠性技术 可靠性传输包括以下四个含义: 差错控制 序列控制 丢失控制 重复控制 441 中国科学技术大学 远程教育 TCP流量控制及拥塞控制 流量控制 TCP采用信用量机制进行流量控制。 当建立一个连接时,两端都为连接分配一块接收缓冲区。 发方数据到达时先放到缓冲区中,然后再发送;收方收到数据后,也是先放进缓冲区,然后在适当的时候由 TCP实体交给应用程序处理。 由于每个连接的接收缓冲区大小是固定的,当发送力发送过快时,。tcpip基本原理第四章传输层
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。