梦里被问TCP三次握手和四次挥手,我答了句我不会。。。然后从梦中惊醒,好吧,我是被自己菜醒的
然后发现自己被子没盖好,流鼻涕到现在,流下了没有技术的鼻涕
TCP是个啥哇?
TCP,Transmission Control Protocol,传输控制协议,是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。
TCP传送的数据单元称为报文段
TCP的特点:
1)TCP是面向连接的传输层协议,提供可靠的交付服务,保证传送的数据无差错,不丢失,不重复且有序
2)每一条TCP连接只能是点对点
3)提供全双工通信
4)面向字节流
TCP三次握手是客户端与服务器之间建立连接的过程
我(客户端):三团,你可以来理我一下吗(请求建立连接)
三团(服务器):好的,理你一下
我(客户端):好的,我收到你的理我一下
1)客户端发送连接请求报文段服务器(无应用层数据)
SYN=1,seq=x(随机)
2)服务端为该连接分配缓存和变量,并向客户端返回确认报文段,允许连接(无应用层数据)
SYN=1,ACK=1,seq=y(随机),ack=x+1;
3)客户端为该TCP连接分配缓存和变量,并向服务器端返回确认的确认,可以携带数据
SYN=0,ACK=1,seq=x+1,ack=y+1;
备注:
SYN(synchronous)同步位
seq(Sequence number)序列号
ACK(acknowledgement )确认位
ack确认号字段
TCP四次挥手
我(客户端):三团,我想rua秃你。好的,我说完了。拜拜
三团(服务器):好的,我知道你说完了
三团(服务器):好的,我也说完了,拜拜
我(客户端):好的,胖友,拜拜
1)客户端发送连接释放报文段,停止发送数据,主动关闭TCP连接
FIN=1,seq=u;
2)服务器回送一个确认报文段,客户到服务器这个方向的连接释放了——半关闭状态
ACK=1,seq=v,ack=u+1;
3)服务器发完数据,就发出连接释放报文段,主动关闭TCP连接。
FIN=1, ACK=1 , seq=w ,ack=u+1;
4)客户端回送一个确认报文段,再等到时间等待计时器设置的2MSL(最长报文段寿命)后,连接彻底关闭
ACK=1,seq=u+1,ack=w+1;