TCP连接关闭过程笔记
来源:互联网 发布:淘宝网客服招聘兼职 编辑:程序博客网 时间:2024/05/07 19:33
前言:
TCP协议的连接是全双工连接,一个TCP连接存在双向的读写通道。
简单说来是 “先关读,后关写”,一共需要四个阶段。以客户机发起关闭连接为例:
1.服务器读通道关闭
2.客户机写通道关闭
3.客户机读通道关闭
4.服务器写通道关闭
关闭行为是在发起方数据发送完毕之后,给对方发出一个FIN(finish)数据段。直到接收到对方发送的FIN,且对方收到了接收确认ACK之后,双方的数据通信完全结束,过程中每次接收都需要返回确认数据段ACK。
详细过程:
第一阶段 客户机发送完数据之后,向服务器发送一个FIN数据段,序列号为i;
1.服务器收到FIN(i)后,返回确认段ACK,序列号为i+1,关闭服务器读通道;
2.客户机收到ACK(i+1)后,关闭客户机写通道;
(此时,客户机仍能通过读通道读取服务器的数据,服务器仍能通过写通道写数据)
第二阶段 服务器发送完数据之后,向客户机发送一个FIN数据段,序列号为j;
3.客户机收到FIN(j)后,返回确认段ACK,序列号为j+1,关闭客户机读通道;
4.服务器收到ACK(j+1)后,关闭服务器写通道。
这是标准的TCP关闭两个阶段,服务器和客户机都可以发起关闭,完全对称。
TCP协议的连接是全双工连接,一个TCP连接存在双向的读写通道。
简单说来是 “先关读,后关写”,一共需要四个阶段。以客户机发起关闭连接为例:
1.服务器读通道关闭
2.客户机写通道关闭
3.客户机读通道关闭
4.服务器写通道关闭
关闭行为是在发起方数据发送完毕之后,给对方发出一个FIN(finish)数据段。直到接收到对方发送的FIN,且对方收到了接收确认ACK之后,双方的数据通信完全结束,过程中每次接收都需要返回确认数据段ACK。
详细过程:
第一阶段 客户机发送完数据之后,向服务器发送一个FIN数据段,序列号为i;
1.服务器收到FIN(i)后,返回确认段ACK,序列号为i+1,关闭服务器读通道;
2.客户机收到ACK(i+1)后,关闭客户机写通道;
(此时,客户机仍能通过读通道读取服务器的数据,服务器仍能通过写通道写数据)
第二阶段 服务器发送完数据之后,向客户机发送一个FIN数据段,序列号为j;
3.客户机收到FIN(j)后,返回确认段ACK,序列号为j+1,关闭客户机读通道;
4.服务器收到ACK(j+1)后,关闭服务器写通道。
这是标准的TCP关闭两个阶段,服务器和客户机都可以发起关闭,完全对称。
FIN标识是通过发送最后一块数据时设置的,标准的例子中,服务器还在发送数据,所以要等到发送完的时候,设置FIN(此时可称为TCP连接处于半关闭状态,因为数据仍可从被动关闭一方向主动关闭方传送)。如果在服务器收到FIN(i)时,已经没有数据需要发送,可以在返回ACK(i+1)的时候就设置FIN(j)标识,这样就相当于可以合并第二步和第三步。
转自:http://blog.csdn.net/fbysss/article/details/2230527
- TCP连接关闭过程笔记
- TCP连接关闭过程笔记
- TCP连接关闭过程笔记
- TCP连接关闭过程笔记
- TCP连接关闭过程笔记
- TCP连接与关闭过程
- tcp 连接详细关闭过程
- TCP连接的关闭过程
- 深入理解tcp关闭连接的过程
- TCP连接和关闭的过程
- 计算机网络笔记:TCP链接关闭过程分析
- TCP三次握手和连接关闭过程详解
- TCP建立/关闭连接时握手过程中的状态情况
- TCP关闭过程
- tcp的关闭过程
- TCP连接关闭总结
- 关闭tcp连接
- TCP连接的关闭
- hdu 1575 Tr A 矩阵基础题
- GooglePlay内购In-app Billing 总结~
- struts2工作原理
- [HDU 2767]Proving Equivalences[Tarjan强连通缩点缩点]
- 编程需要注意的事项
- TCP连接关闭过程笔记
- 第十四章 NFS服务器
- sextante源码剖析(三)之自定义算法
- linq group by
- Programming Principles(程序原理)
- 第十五章 NIS服务器
- Java 数据结构内存占用
- C0C0S2D-X在windows平台下中文乱码解决;
- struts2核心工作流程与原理