TCP/IP协议三次握手与四次挥手
一.标志位和序号
seq序号 :发送方随机生成的
ack确认序号:ack=seq+1 标志位ACK=1时确认序号有效
SYN标志位:发起一个新连接
ACK标志位:确认序号有效
FIN标志位:断开连接
二.三次握手
三次握手是客户端与服务端建立一个TCP连接时,需要客户端和服务端发送三个包建立连接的过程
(1)第一次握手
客户端将SYN置为1,随机产生一个seq序号=J,将该数据包发送给服务端,客户端此时状态为SYN_SEND
(2)第二次握手
服务端收到客户端发送的数据包由SYN=1知道客户端要建立连接,客户端将SYN和ACK都置为1,同时发送确认序号ack=J+1
随机产生一个服务端序号seq=K,将此数据包发送给客户端。服务端此时的状态为SYN_REVD
(3)第三次握手
客户端收到服务端的数据包,由ACK=1,ack=J+1无误,客户端将ACK置为1,ack=K+1发给服务端
服务端收到ACK=1,ack=K+1连接建立成功。客户端和服务端此时的状态为ESTABLISHED

三.四次挥手
四次挥手是断开TCP连接的时候,需要客户端和服务端发送四次包确认连接的断开,断开连接可由服务端或客户端任意一方触发
(1)第一次挥手
假设客户端主动关闭。客户端发送关闭连接标志位FIN=1,序号seq=m。客户端此时状态为FIN_WAIT_1
(2)第二次挥手
服务端收到标志位FIN=1,知道客户端要关闭连接,客户端发送标志位ACK=1,确认序号ack=m+1,seq=n。
服务端并没有发送FIN标志位,因为服务端可能还有数据要发送 。此时服务端处于CLOSE_WAIT状态,客户端处于FIN_WAIT_2状态
(3)第三次挥手
服务端发送标志位FIN=1,seq=u 。此时服务端处于LAST_ACK状态
(4)第四次挥手
客户端收到FIN,发送ACK=1,确认序号ack=u+1给服务端。客户端进入TIME_WAIT状态。释放连接完成

TCP/IP协议三次握手与四次挥手的更多相关文章
- TCP/IP协议三次握手和四次挥手大白话解说
前言 昨天晚上被一位师傅问到了TCP/IP的工作机制,心里很清楚三次握手,然而对于四次挥手却忘了,这是大学习里学过的,奋而翻阅书籍和网络对之前所学的做一个温顾,算是夯实自我吧. TCP(Transmi ...
- 白话解说TCP/IP协议三次握手和四次挥手
白话解说TCP/IP协议三次握手和四次挥手 1.背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次. 从好上开始,到现在,一年多也算坚持下来了. 1.1.问题 有时候聊天的过程中,我的 ...
- TCP/IP协议 三次握手与四次挥手
一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号 ...
- TCP/IP协议 三次握手与四次挥手【转】
一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号 ...
- 大白话解说TCP/IP协议三次握手和四次挥手
背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次. 从好上开始,到现在,一年多也算坚持下来了. 问题 有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,听不到对方的声 ...
- TCP/IP协议三次握手_四次挥手
TCP/IP协议 TCP是一种面向连接的端到端的可靠传输协议. TCP报头格式 三次握手的过程 一.客户端发送一个连接请求,发送一个随机数X,这时客户端的端口状态变为SYN_SENT状态. 二.服务端 ...
- TCP/IP协议三次握手与四次握手流程解析
原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议三次握手与四次握手流程解析 TCP/IP协议的详细信息参看<TCP/IP协议详 ...
- TCP/IP协议三次握手与四次握手流程解析(转载及总结)
原文地址:http://www.2cto.com/net/201310/251896.html,转载请注明出处: TCP/IP协议三次握手与四次握手流程解析 一.TCP报文格式 TCP/IP协议的详 ...
- TCP/IP协议三次握手与四次握手
TCP/IP协议三次握手与四次握手流程解析 一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图:图1 TCP报文格式 上图中有几个 ...
随机推荐
- 2017-2018-2 20165236 实验四《Android开发基础》实验报告
2017-2018-2 20165236 实验四<Android开发基础>实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:郭金涛 ...
- Hadoop生态集群之HDFS
一.HDFS是什么 HDFS是hadoop集群中的一个分布式的我文件存储系统.他将多台集群组建成一个集群,进行海量数据的存储.为超大数据集的应用处理带来了很多便利. 和其他的分布式文件存储系统相比他有 ...
- Python socketserver模块解析
参考:https://blog.csdn.net/qq_33733970/article/details/79153938 1.功能简介 socketserver模块是对socket模块的再封装,用于 ...
- Py中的矩阵乘法【转载】
转自:https://blog.csdn.net/cqk0100/article/details/76221749 1.总结 对于array对象,*和np.multiply函数代表的是数量积,如果希望 ...
- cocos2d 利用cocosStudio制作合图(plist与png)
- FlexViewer之整体框架解析
参考:https://www.cnblogs.com/naaoveGIS/p/3915912.html GIS之家:https://xiaozhuanlan.com/gishome 小专栏:https ...
- windows连接远程win服务器失败,win7win10都存在此问题,显示出现身份验证错误,要求的函数不受支持,可能由于CredSSP加密Oracle修正 (原)
之前电脑windows+mstsc连接另一个windows服务器正常登陆,可在更新本地系统为win10以后,登陆就出现了问题,提示的错误是,出现身份验证错误.要求的函数不受支持,可能由于CredSSP ...
- PHP socket通信之UDP
服务端: //服务器信息 $server = 'udp://127.0.0.1:9998'; //消息结束符号 $msg_eof = "\n"; $socket = stream_ ...
- mysql 命令一套
MySQL mysql -h主机地址 -u用户名 -p用户密码 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有 ...
- 000-js判断电脑或手机登录
<script type="text/javascript"> try{ if(/Android|webOS|iPhone|iPod|BlackBerry/i.test ...