TCP协议(3握4挥)

TCP是什么?

TCP:面向连接的 可靠的 基于字节流的 传输层 通信协议

在这里插入图片描述

需要注意的有下面几位

ACK:该位置1,确认应答 的字段变得有效
RST:该位置1,TCP连接过程中出现异常必须强制断开连接
SYC:该位置1,表示希望建立连接 并在其序列号(seq)字段进行初始值的设定
FIN:该位置1,表示今后不会再有数据发送,希望断开连接
在这里插入图片描述
第三次握手是可以携带数据的 前两次不能 一旦完成三次握手 双方都处于establish状态 至此连接建立完成 可以互相发送数据了

1.客户端发送把SYN置1 相当于告诉客户端 我准备好了 要发送请求了
2.服务端收到 返回一个ACK+SYN 意思是 我也准备好了(但是现在服务端不知道自己的消息客户端能不能收到)
3.客户端收到了消息 ACK置1

为什么是3次?

1.防止历史连接建立
2.确保双方初始序列号能被可靠的同步
3.避免建立多个无效连接 造成不必要的浪费
【2次握手】:
无法防止旧的重复连接初始化 由于网络等原因
1.客户端发送的旧的报文比新的报文先到达服务端
2.此时服务端就会回一个SYN+ACK报文给客户端
3.客户端收到后可以根据自身上下文 判断这是一个历史连接(系列号过期或者超时)
如果是两次握手 客户端就没有足够的上下文来判断当前连接是不是历史连接(如果是历史连接第三次握手发送RST报文)
【4次挥手】:
3次理论上就够了 4次没必要 重复的可以合并成3次
在这里插入图片描述

1.客户端不发送数据了 但是还能接收
2.回一个ACK应答报文 但是还可能再发数据
3.服务端也不发了
4.客户端也不收了

说白了 为什么是3次不是2次也不是4次?

因为只有3次才能体现双方的收发能力 2次不够 4次没必要

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值