TCP的三次握手和四次挥手

一.TCP数据报报头如下所示:

这里写图片描述
和UDP协议一样也有源端口号的目的端口号,通信的双方由Ip地址和端口号标识。
32位序号标识和32位确认序号标识:保证全双工
16位窗口大小:
4位首部长度的数值表示TCP协议头的长度,以4字节为单位,最小值为5,二进制序列为0101,最大值为15,二进制序列为1111,因此TCP协议头最短为4*5 = 20(不带任何选项);最长可以是4*15=60字节。(带选项)
保留6位:
URG:紧急标志位
ACK:确认标志位
PSH:在上篇博客会介绍
RST:重置标志位,如过长时间只用链接,但不访问,将被重置(断开链接),下次访问的时候要重新链接。
SYN:同步标志位,建立3次挥手链接是会使用。
`

二,TCP的特点,以及可靠性的保证。

1.TCP协议是面向链接的,全双工的,面向字节流的协议。
2.TCP协议是基于请求应答机制,只有经过确认的消息才是可靠的,没有得到响应,是不能保证可靠性的。
3.TCP的可靠性,是基于数据的有序到达。
4.TCP是基于信号,判断丢包,触发丢包重传机制。
5.TCP基于滑动窗口来进行流量控制。
6.如果出现大面积丢包,不能重传,TCP执行网络拥塞避免算法。
7.TCP会维护多种定时器,完成可靠性。

三,通信时序

TCP的建立链接——3次握手
在Client主动要求断开链接的情况下,流程如下:
1。Client发送一个SYN=1的报文到server,表示请求建立链接。
2. Server发送ACK表示收到消息,并且发送SYN =1也申请建立链接。
3,Client发送ACK表示收到消息,链接建立成功。

TCP断开链接—— 4次挥手
在Client主动要求断开链接的情况下,流程如下:
1.Client发送一个FIN=1的TCP报文段到Server,表示自己没有数据要发送了,想断开链接。
2,Server收到上面的报文段后,立马发送ACK确认已收到。
3,若Server还有需要发送的数据,继续发送完毕。
4,当Server也没有继续发送的数据时,发送一个FIN=1的TCP报文段到Server,表示自己没有数据要发送了,将断开链接,并且断开Server到Client的链接,释放相应的资源。
5,Client收到Server的FIN=1的TCP报文段,发送ACK确认消息已经收到,但是这个时候Server已经断开链接,因此这个ACK事实是无人认领的状态。
6,Client发送完最后一条报文后,进入time wait状态。等了2MSL时间,没收到消息,表示对面关闭了链接,自己也断开到Server 的链接。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值