自己用C语言构造数据包,实现TCP三次握手过程,为啥中间会产生一个RST信号?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自己用C语言构造数据包,实现TCP三次握手过程,为啥中间会产生一个RST信号?相关的知识,希望对你有一定的参考价值。

请问图中为什么会产生一个RST信号呢?

参考技术A 1.杀掉服务器端处理客户端的子进程,进程退出后,关闭它打开的所有文件描述符,此时,当服务器TCP接收到来自此客户端的数据时,由于先前打开的那个套接字接口的进程已终止,所以以RST响应。
2。服务器主机与客户端建立连接后崩溃,如果此时,客户端向服务器发送数据,而服务器已经崩溃不能响应客户端ACK,客户TCP将持续重传数据分节,试图
从服务器上接收一个ACK,如果服务器一直崩溃客户端会发现服务器已经崩溃或目的地不可达,但可能需要比较长的时间;
如果服务器在客户端发现崩溃前重启,服务器的TCP丢失了崩溃前的所有连接信息,所以服务器TCP对接收的客户数据分节以RST响应。

以上是关于自己用C语言构造数据包,实现TCP三次握手过程,为啥中间会产生一个RST信号?的主要内容,如果未能解决你的问题,请参考以下文章

Wireshark浅析Tcp三次握手

TCP连接时的三次握手,四次挥手

tcp三次握手的过程,accept发生在三次握手哪个阶段?还有UDP协议通讯时怎样得知目标机是不是获得了数据包

TCP/IP三次握手具体过程?

Tcp三次握手连接和四次挥手断开过程详解

简述TCP的三次握手过程