在TCP三次握手过程中,我们研究了在传输控制协议(TCP)中如何利用SYN位段建立客户端和服务器之间的连接。在本文中,我们将研究如何在客户机和服务器之间建立TCP连接。这里,我们还需要向FIN位设置为1的服务器发送位段,本文为你详细解析TCP连接终止。
文章图片
机制如何在TCP中起作用:
- 步骤1(来自客户的FIN)–假设客户端应用程序决定要关闭连接。 (请注意, 服务器也可以选择关闭连接)。这会导致客户端发送带有鳍设置为1到服务器并输入FIN_WAIT_1州。在FIN_WAIT_1状态, 客户端等待带有确认(ACK)的服务器中的TCP段。
- 第2步(来自服务器的ACK)–当服务器从发件人(客户端)收到FIN位段时, 服务器立即将确认(ACK)段发送到发件人(客户端)。
- 步骤3(客户等待中)–在FIN_WAIT_1状态, 客户端等待服务器的TCP段, 并发出确认消息。收到此细分后, 客户进入FIN_WAIT_2州。在FIN_WAIT_2状态, 客户端等待FIN位设置为1的来自服务器的另一个段。
- 步骤4(来自服务器的FIN)–服务器发送ACK段后的一段时间后, 服务器将FIN位段发送到发件人(客户端)(由于服务器中的某些关闭过程)。
- 步骤5(来自客户端的确认)–当客户端从服务器收到FIN位段时, 客户端确认服务器的段并输入时间的等待州。的时间的等待状态可让客户端重新发送最终确认, 以防确认失去了。客户在时间的等待状态取决于它们的实现, 但是它们的典型值为30秒, 1分钟和2分钟。等待之后, 连接正式关闭, 并且客户端上的所有资源(包括端口号和缓冲区数据)都被释放。
ClientSide访问的TCP状态–
文章图片
ServerSide访问的TCP状态–
文章图片
在这里, 我们没有描述在某些情况下会发生什么情况, 例如当连接的两端都希望同时启动或关闭时。如果你有兴趣了解有关TCP的更多信息以及其他高级问题, 我们鼓励你阅读Stevens的综合著作。
【TCP连接终止详细指南和解读】门问题–
考虑在两台不同的计算机上运行的TCP客户端和TCP服务器。完成数据传输后, TCP客户端调用
关
终止连接, 并将FIN段发送到TCP服务器。服务器端TCP通过发送一个由客户端TCP接收到的ACK进行响应。根据TCP连接状态图(RFC 793), 客户端TCP连接在哪种状态下等待服务器端TCP的FIN?
(A)最后确认
(B)等待时间
(C)FIN-WAIT-1
(D)FIN-WAIT-2
说明:(D)
GATE CS 2017(Set 1), 问题12
参考–
TCP连接终止–维基百科
http://www.bau.edu.jo/UserPortal/UserProfile/PostsAttach/10617_1870_1.pdf
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。
推荐阅读
- Dijkstra算法(邻接表表示的算法实现|贪婪算法S8)
- JavaScript如何设置input字段的值(代码示例)
- JavaScript while循环语句例子详细指南
- Win8 Word文件默认为只读怎样处理?
- Win8.1笔记本拔掉电源线时黑屏如何修好?
- 如何取消Win8系统对20%网速的局限?
- 如何正确地给Win8电脑清理灰尘?
- Windows8.1下查看Mac地址的技巧
- Win8系统无法安装Oracle10g怎样办?