博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Tcp的一些浅见
阅读量:5226 次
发布时间:2019-06-14

本文共 730 字,大约阅读时间需要 2 分钟。

从小我们就被教育Tcp三次握手,四次挥手云云.

其实教科书把我们得思维限制死了,现实的状况更加有趣.譬如服务器端也会主动"say hi",客户端和服务器端会同时向对方发出syn.

博主总结出以下几条机器对于TCP信号的反应,对所谓的"客户端"和"服务器端"都适用.

建立连接的规则:

1.收到 syn 必定回复 ack
2.在listen 状态下收到 syn , 要额外恢复一个syn , 即syn + ack, 并且转化到 syn-rcvd 状态
3.在 syn-sent 状态下收到syn , 也要转化到 syn-rcvd 状态
4.在listen 状态下发出 syn , 转化到 syn-sent 状态
5.在syn-sent 或 syn-rcvd 下收到ack, 转化到 established
 
关闭连接的规则:
1.收到 fin 必定回复 ack
2.在established 下发送fin 后转化fin-wait-1
3.在fin-wait-1 下收到ack 后转化fin-wait-2
4.在fin-wait-2 下收到fin 后转化time-wait
5.在established 收到fin 后转化close-wait, 等待全部data 输送完毕后发送fin, 尔后转化last-ack状态
6.在fin-wait-1 下收到fin 后转化closing
7.closing 下收到ack 后转化为time-wait
8.time-wait下等待定时器过期(2msl)后进入closed
 
可以对照着这个图一条一条验证:
三次握手
三次握手
四次挥手
四次挥手

转载于:https://www.cnblogs.com/alfayed/p/4565227.html

你可能感兴趣的文章
javaScript数组去重方法汇总
查看>>
评价意见整合
查看>>
二、create-react-app自定义配置
查看>>
Android PullToRefreshExpandableListView的点击事件
查看>>
系统的横向结构(AOP)
查看>>
linux常用命令
查看>>
NHibernate.3.0.Cookbook第四章第6节的翻译
查看>>
例1-1
查看>>
马达调速器,直流马达调速器,直流调速器
查看>>
前端编码规范小记
查看>>
c如何弹出保存路径/保存文件对话框
查看>>
HTML标签二
查看>>
Python 3语法小记(九) 异常 Exception
查看>>
使用shared memory 计算矩阵乘法 (其实并没有加速多少)
查看>>
Django 相关
查看>>
git init
查看>>
训练记录
查看>>
IList和DataSet性能差别 转自 http://blog.csdn.net/ilovemsdn/article/details/2954335
查看>>
Hive教程(1)
查看>>
第16周总结
查看>>