戏说 TCP 三次握手 四次挥手
2016-03-24 19:14
429 查看
三次握手
1)客户端发送SYN(sync,同步)请求+发送序号X,给服务器端;2)服务器端收到后将收到的X加1(方便下次核对),回一个ACK(acknowledge,应答)+一个SYN标志请求+发送序号Y;
3)客户端收到后将收到的Y加1,回一个ACK;
翻译成人类的语言:
1)老K想要跟老F隔江聊天,老K先喊:“老F咱们来聊天不来(SYN)?”
2)声音传播有时间,这段时间老F可能又跟隔壁王大妈广场舞去了。并且江上有风,可能这会儿喊话老K听不见了。所以老F听到后,回喊:“可以啊(ACK),你现在有空吗/听得见我说话吗(SYN)?”
3)老K听到后,回喊:“听得到!~(ACK)”,然后聊起了天来。
PS:因为江上风大,为了确保他们听到了对方的每一句话,以防他们的聊天时文不对题,所以老K在第一次喊的时候在句尾会加句:”这是俺说的第一句话(X)”,老F听到后会掰着手指头心中默念:“再听到声音,应该是老K的第二句话了(X+1)”,同样老F说话的时候也是这样(Y,Y+1)。
四次挥手
1)客户端想终止通信,发送FIN标志+发送序号X,然后不再发送数据;2)服务器端收到后,将X+1,并回复ACK+发送序号Y;
3)服务器端也终止通信,发送FIN+发送序号Z;
4)客户端收到后,将Z+1,回复ACK;
为什么是四次而不是三次?原因在于2)步,服务器端收到FIN指令后,并不能像三次握手时那样,当时就将FIN指令协同ACK一起发回去,因为服务器端“可能还有话没讲完”,所以得等讲完了才发FIN回去。
相关文章推荐
- okHttp使用介绍
- 网络流小结 - hdu 1532
- HTTP请求
- android https协议遇到的问题
- 对startssl的免费证书续期(续)
- okHttp使用及优缺点
- 【已解决】配置wget网络代理问题
- java TCP/IP Socket编程
- 用户IP地址的三个属性的区别(HTTP_X_FORWARDED_FOR,HTTP_VIA,REM_addr
- Atitit.android播放smb 网络邻居视频文件解决方案
- Atitit.android播放smb 网络邻居视频文件解决方案
- Atitit.android播放smb 网络邻居视频文件解决方案
- http与https的区别
- Android 通过httpclient请求web服务器,并解决用户登录session保持
- Opencv中ANN神经网络使用示例
- 针对Linux ASP.NET MVC网站中 httpHandlers配置无效的解决方案
- http服务基础
- The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- 长期使人困惑的问题:TCP连接中断的实时检测
- 利用C#实现网络爬虫