tcp协议有限状态机分析

tcp协议有限状态机分析

ID:14623928

大小:416.30 KB

页数:10页

时间:2018-07-29

tcp协议有限状态机分析_第1页
tcp协议有限状态机分析_第2页
tcp协议有限状态机分析_第3页
tcp协议有限状态机分析_第4页
tcp协议有限状态机分析_第5页
资源描述:

《tcp协议有限状态机分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、TCP协议有限状态机分析一、概述网络通信中,一个健全的应用程序必须能够处理网络中可能出现的各种状态,必须对TCP的有限状态机有所了解。TCP从建立到终止整个过程中,存在11种状态,TCP的有限状态机给出了TCP连接从一个状态转到另一个状态的规则。二、TCP连接1、建立一个TCP连接   TCP使用三次握手(three-way handshake)协议来建立连接,图3-10描述了三次握手的报文序列。这三次握手为: ①请求端(通常称为客户)发送一个SYN报文段(SYN为1)指明客户打算连接的服务器的端口,以及初始顺序号(ISN)。 

2、②服务器发回包含服务器的初始顺序号的SYN报文段(SYN为1)作为应答。同时,将确认号设置为客户的ISN加1以对客户的SYN报文段进行确(ACK也为1)。③客户必须将确认号设置为服务器的ISN加1以对服务器的SYN报文段进行确认(ACK为1),该报文通知目的主机双方已完成连接建立。   发送第一个SYN的一端将执行主动打开(active open),接收这个SYN并发回下一个SYN的另一端执行被动打开(passive open)。另外,TCP的握手协议被精心设计为可以处理同时打开(simultaneous open),对于同时打

3、开它仅建立一条连接而不是两条连接。因此,连接可以由任一方或双方发起,一旦连接建立,数据就可以双向对等地流动,而没有所谓的主从关系。   三次握手协议是连接两端正确同步的充要条件。因为 TCP 建立在不可靠的分组传输服务之上,报文可能丢失、延迟、重复和乱序,因此协议必须使用超时和重传机制。如果重传的连接请求和原先的连接请求在连接正在建立时到达,或者当一个连接已经建立、使用和结束之后,某个延迟的连接请求才到达,就会出现问题。采用三次握手协议(加上这样的规则:在连接建立之后 TCP 就不再理睬又一次的连接请求)就可以解决这些问题。  

4、 三次握手协议可以完成两个重要功能:它确保连接双方做好传输准备,并使双方统一了初始顺序号。初始顺序号是在握手期间传输顺序号并获得确认:当一端为建立连接而发送它的SYN时,它为连接选择一个初始顺序号;每个报文段都包括了顺序号字段和确认号字段,这使得两台机器仅仅使用三个握手报文就能协商好各自的数据流的顺序号。一般来说,ISN随时间而变化,因此每个连接都将具有不同的ISN 。 2、关闭一个TCP连接 TCP连接建立起来后,就可以在两个方向传送数据流。当TCP的应用进程再没有数据需要发送时,就发关闭命令。TCP通过发送控制位FIN=1的

5、数据片来关闭本方数据流,但还可以继续接收数据,直到对方关闭那个方向的数据流,连接就关闭。   TCP协议使用修改的三次握手协议来关闭连接, 如图 3-11 所示,即终止一个连接要经过4次握手。这是因为TCP的半关闭( half-close )造成的。由于一个TCP连接是全双工(即数据在两个方向上能同时传递),因此每个方向必须单独地进行关闭。关闭的原则就是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向连接。当一端收到一个FIN,它必须通知应用层另一端已经终止了那个方向的数据传送。发送FIN通常是应用层进行关闭的结果。

6、 从一方的TCP来说,连接的关闭有三种情况:  ①本方启动关闭   收到本方应用进程的关闭命令后, TCP 在发送完尚未处理的报文段后,发FIN=1的报文段给对方,且TCP不再受理本方应用进程的数据发送。在FIN以前发送的数据字节,包括FIN,都需要对方确认,否则要重传。注意FIN也占一个顺序号。一旦收到对方对FIN的确认以及对方的FIN报文段,本方TCP就对该FIN进行确认,在等待一段时间,然后关闭连接。等待是为了防止本方的确认报文丢失,避免对方的重传报文干扰新的连接。  ②对方启动关闭   当TCP收到对方发来的FIN报文时

7、,发ACK确认此FIN报文,并通知应用进程连接正在关闭。应用进程将以关闭命令响应。TCP在发送完尚未处理的报文段后,发一个FIN 报文给对方TCP,然后等待对方对FIN的确认,收到确认后关闭连接。若对方的确认未及时到达,在等待一段时间后也关闭连接。  ③双方同时启动关闭   连接双方的应用进程同时发关闭命令,则双方TCP在发送完尚未处理的报文段后,发送FIN报文。各方TCP在FIN前所发报文都得到确认后,发ACK确认它收到的FIN。各方在收到对方对FIN的确认后,同样等待一段时间再关闭连接。这称之为同时关闭(simultaneo

8、usclose)三、TCP状态机TCP协议的操作可以使用一个具有11种状态的有限状态机(FiniteStateMachine)来表示,下图描述了TCP的有限状态机,图中的圆角矩形表示状态,箭头表示状态之间的转换。图中用粗线表示客户端主动和被动的服务器端建立连接的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。