社区
非技术区
帖子详情
当收到对端FIN后,之前没有收到的包怎么处理?还接收么?
hclbeloved
2016-08-12 05:32:40
另外一个问题:主动断开连接的一方会处在TIME_WAIT状态,此时主动断开的一方的接收窗口处在什么样的一个状态?如果收到对端被动断开前发送的数据会做何种处理,收 OR 不收?谢谢
...全文
643
回复
打赏
收藏
当收到对端FIN后,之前没有收到的包怎么处理?还接收么?
另外一个问题:主动断开连接的一方会处在TIME_WAIT状态,此时主动断开的一方的接收窗口处在什么样的一个状态?如果收到对端被动断开前发送的数据会做何种处理,收 OR 不收?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
TCP 四次挥手
收到
乱序的
FIN
包
会如何
处理
?
大家好,我是小林。
收到
个读者的问题,他在面试鹅厂的时候,被搞懵了,因为面试官问了他这么一个网络问题: 不得不说,鹅厂真的很喜欢问网络问题,而且爱问异常情况下的网络问题,
之前
也有篇另外一个读者面试鹅厂的网络问题:「被鹅厂面怕了!」。 不过这道鹅厂的网络题可能是提问的读者表述有问题,因为如果
FIN
报文比数据
包
先抵达客户端,此时
FIN
报文其实是一个乱序的报文,此时客户端的 TCP 连接并不会从
FIN
_WAIT_2 状态转换到 TIME_WAIT 状态。 因此,我们要关注到点是看「在
FIN
_WAI
TCP协议之RST与
FIN
FIN
如下图所示,
FIN
表示正常关闭连接,
没有
数据丢失,缓冲区所有数据
包
都发送完成才会发送
FIN
包
,这与RST不同。 RST RST表示复位,用来异常的关闭连接,在TCP的设计中它是不可或缺的。发送RST
包
关闭连接时,不必等缓冲区的
包
都发出去,直接就丢弃缓存区的
包
发送RST
包
。而
接收
端
收到
RST
包
后,也不必发送ACK
包
来确认。
FIN
位是什么,ACK,SEQ是什么?
接
收到
带有
FIN
标志的报文段后,
接收
方发送一个ACK(确认)报文作为回应,表示接
收到
了
FIN
请求。ACK是TCP头部中的另一个标志位,用于确认
收到
数据的报文段。发送方发送数据报文时,会给每个报文段分配一个序号,
接收
方在
收到
报文段后,需要发送一个带有ACK标志的报文段来确认已经接
收到
了特定序号的数据。SEQ是TCP头部中的字段,用于指示报文段中的数据在整个数据流中的位置。每个报文段都有一个唯一的序号,发送方用于对数据进行编号,
接收
方用于按序
接收
和重组数据。
TCP连接关闭时不发
FIN
包
的奇怪行为分析
转载:http://blog.chinaunix.net/uid-10106787-id-3172066.html 一般情况下,当TCP连接主动关闭时,会向
对端
发送一个
FIN
,
对端
会获得一个读事件,调用read时返回0,表示读到一个EOF,读结束。然而,在有的时候却不是这样的,接下来将讨论一下。 首先是一个简单的服务器程序,accept()后睡眠5s钟,然后关闭连
7.4
FIN
及其ACK的
接收
TCP在
收到
FIN
时,会调用tcp_data_queue函数进行
处理
: 4300 static void tcp_data_queue(struct sock *sk, struct sk_buff *skb) 4301 { 4302 const struct tcphdr *th = tcp_hdr(skb); 4303 struct tcp_sock *tp = tcp_s
非技术区
1,508
社区成员
11,440
社区内容
发帖
与我相关
我的任务
非技术区
Windows专区 非技术区
复制链接
扫一扫
分享
社区描述
Windows专区 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章