【JavaEE初阶】TCP核心机制3——连接管理

目录

连接管理要做两件事

网络上的连接

建立连接------三次握手

同步(synchronized)

TCP的三次握手有啥用?解决了啥问题?

小结

断开连接------四次挥手


连接管理要做两件事

  • 建立连接
  • 断开连接

网络上的连接

  • 抽象的,逻辑上的连接
  • 通信双方的连接是 各自保存对端的信息

建立连接------三次握手

TCP通过"三次握手"的方式来确保连接已经建立好了

  • 握手(handshake)
  • 握手操作 没有实际的业务 只是单纯"打个招呼"
  • 也就是我发送一个不携带业务的数据,通过这个数据和对方"打个招呼"

其实之前 我们已经学过握手操作了

  • HTTPS中,获取证书,加密对称密钥,传输对称密钥,确认对称密钥收到等,就是SSL协议的"握手流程"

同步(synchronized)

  • 同步这个术语,有很多种含义
  • 在 加锁中,同步可以理解成"互斥"
  • 在TCP同步中,指的是"双方数据上的同步"
  • A告诉B,接下来我要和你建立连接
  • 就需要你把我的关键信息保存好,同时你也要把你的信息同步发给我

三次握手

双方各自让对方存一下自己的关键信息

并且各自给对方返回一个ack告知自己收到了

合并操作是能够有效提高传输效率的

TCP的三次握手有啥用?解决了啥问题?

->三次握手相当于"投石问路"

  • 先初步探一探网络的链路是否通畅(网络通畅是可靠传输的前提条件)

->验证通信双方的发送能力和接收能力是否也正常

->三次握手的过程中,可以协商一些关键信息

  • TCP要协商的一个非常关键的信息->通信过程中,序号从几开始
  • 初始序号一般不是从0开始的,并且,两次连接 的初始序号会相差很大

为什么两次连接的初始序号会相差很大?

  • 如果两次连接序号都以0开始,可能会出现"前朝的剑,斩本朝的官"的情况

此时B是否要处理这个数据包呢?

不应该处理!!!

第二次连接,程序可能都不是同一个了

于是接收方要把"前朝余孽"剔除掉

  • 比如第一次连接,协商好初始序号是100 0000
  • 第二次连接,协商好初始序号是800 0000
  • 收到的数据和当前连接的数据序号相差甚远->就可以认为这个数据是前朝的了

小结

三次连接的作用

  1. 投石问路,确认通信路径是否畅通
  2. 验证发送方和接收方的 发送能力和接收能力 是否正常
  3. 协商关键信息

断开连接------四次挥手

断开连接的本质是 各自把对方的信息删除

->通信双方各自给给对方发FIN,我要把你的信息删了哦

四次挥手

三次握手,中间两次能合并,四次挥手呢?

  • 如能(有时候能,有时候不能)
  • 不能:ACK和FIN这两次交互的时机是不同的
  • 能:B的延时应答可能使ACK和FIN恰好同时一起发出

看到这里可以给我一个点赞嘛~

祝给我点赞的宝宝身体健康,美满幸福!

没有给我点赞的宝宝也是!

END✿✿ヽ(°▽°)ノ✿

相关推荐
贞明电子8 小时前
工业三色报警灯怎么接入项目系统?开关量与RS485控制应用指南
运维·网络·微信公众平台·贞明电子
明天也要努力学习9 小时前
HTTP 协议的基本格式和 fiddler 的用法
网络协议·http·fiddler
HideF9 小时前
Linux
linux·服务器·网络
万联WANFLOW9 小时前
海外网络故障怎么排查?Cloudflare 三季度断网报告解读与 mtr 实战
运维·网络·故障分析
sbjdhjd9 小时前
网工进阶笔记:H3CSE 园区网全栈技术与协议汇总
网络·笔记·云计算·ssh·网络工程·vlan·aaa
taktok_ai11 小时前
用 cc-switch 连接 Taktok
网络
小嘉丶学长13 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节
LCG米14 小时前
STM32驱动W5500以太网模块实测:TCP吞吐瓶颈定位、TX指针回绕陷阱与断线重连保活落地
stm32·单片机·嵌入式硬件·tcp/ip
pt104315 小时前
Cisco设备网络安全系列-18:SIEM与SOAR安全解决方案
网络·安全
Tel1992530800415 小时前
温度湿度信号转WiFi/MQTT/Modbus TCP采集模块 无线传输
网络·网络协议·tcp/ip·工业自动化·工控设备