复位报文段

一般来说,一个报文段发往一个套接字时出现错误,TCP都会发出一个复位报文段给源主机。有几种情况会出现RST:
1、到不存在的端口的连接请求
下面是用转包软件做的实验,使用telnet远程登录一个服务器,而选择的连接端口没有打开。


客户端发送SYN包到一个未知端口,然后收到一个RST包。可以看到,telnet软件总共进行了三次连接尝试。

2、异常终止一个连接
当不想通过发送FIN正常关闭连接时,可以发送RST包给对方。发送方丢弃任何数据并立即发送复位报文段。接收方收到后直接关闭连接,不发送确认包。

3、检测半打开连接
如果一方已经关闭或异常终止连接而另一方却还不知道,这种连接称为半打开的。只要不在半打开的连接上传输数据,仍处于连接状态的一方就不会检测另一方已经出现异常。当出现异常的一方恢复正常并且继续收到来自另一方的数据(另一方并不知道这边的情况),这是接收方无法辨认接受的数据是什么,于是发送复位报文段作为应答。

参考:
《TCP/IP详解》 P186-P189.

你可能感兴趣的:(复位报文段)