三次握手和四次挥手的流程
来源:互联网 发布:华科达网络监控手机。 编辑:程序博客网 时间:2024/05/18 03:30
第一次握手:client设置syn=1,随机产生一个序列号seq=x,将数据包发送到server。client进入syn_send状态,
等待server确认。
第二次握手:server查看client发来的数据包syn=1,得知是client发来的连接请求。server设置syn=1 ACK=1
ack = x+1 seq = y,并将数据包发送到客户端。server进入syn_rcvd状态。
第三次握手:client得到server的确认,查看ACK=1 ack=x+1。然后,再给server一个确认,设置ACK=1 ack=y+1.
server接收client包,查看ACK是否为1,ack是否为y+1,如果正确建立连接。同时进入established.
第一次挥手:A 设置 FIN=1 seq = x,将数据包发送到B,A进入FIN_WAIT_1状 态。等待B的确认。
第二次挥手:B 查看FIN,知道A是要释放连接。B设置ACK=1 ack = x+1 ,将确认返回A。B
进入CLOSE_WAIT。A接收该确认,进入FIN_WAIT_2状态。等待B的连接释放。
第三次挥手:B 设置 FIN=1 seq = y,将数据包发送到A,B进入LAST_ACK状态。等待A的确认。
第四次挥手:A 查看FIN,知道B是要释放连接。A设置ACK=1 ack = y+1 ,将确认返回B。A
进入TIME_WAIT。B接收该确认,进入CLOSED状态。
三次握手的原因:防止已经失效的报文发送到服务器端。
握手要3次,挥手要4次原因:连接时,服务器一直处于LISTEN状态,server接收到syn报文后,会将syn和ack同时返回。
释放连接时,只是一端不在发送报文,但还是可以接收的。另一端可以直接close。也可以等待发送完毕之后,再发送FIN
报文,所以是将,FIN和ACK发开发送。
- 三次握手和四次挥手的流程
- TCP的三次握手和四次挥手
- 三次握手和四次挥手的原理图
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- tcp的三次握手和四次挥手
- 三次握手和四次挥手的小结
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- 断言错误
- 将Android Studio中的项目上传到GitHub
- Android:WebView全面详解
- Python 爬虫的工具列表 附Github代码下载链接
- Spring 3.x 企业开发实战Chapter4 Part2
- 三次握手和四次挥手的流程
- java编译的莫名奇妙问题总结
- SpringBoot--rabbimq Consumer
- leetcode---Find Minimum in Rotated Sorted Array---二分搜
- android 自定义状态栏颜色
- Assertion failed: (handlerType <= HandlerType::EVENT_CUSTOM_ENDED) 断言错
- java日志组件介绍(common-logging,log4j,slf4j,logback )
- input 事件兼容处理以及中文输入法优化
- with语句的用法