【杂记-利用TCP协议传输数据始末详解】

一、三次握手前:

1、使用TCP协议的原因

TCP协议的目的是为了保证数据能在两端准确、连续的传输。
2、实现多设备传输的基础

TCP协议可使一个设备能同时与多个设备交互信息,它必须要保证不同传输通道之间不会产生串联或相互影响,所以TCP使用Socket数据结构来实现不同设备之间的连接。
3、Socket数据结构的作用

Socket包含两个成分:IP地址和端口号,一个设备可以对应一个IP,其中不同的传输通道用不同的端口号区分开来,于是同一个设备发送给其他不同设备的信息就不会产生混乱。
4、传输控制块TCB的产生

设备可能会产生多种数据并分发给不同的设备,为了确保数据能够正确分发:TCP使用TCB,也叫传输控制块的数据结构把发给不同设备的数据封装起来,该结构看做是信封。
5、TCB的结构

TCB数据块包含数据发送双方的Socket信息,以及装载数据的缓冲区。在两个设备要建立连接和发送数据之前,双方会分配内存建立起TCB数据块。
6、两者需做好准备

无论是客户端还是服务端,在建立连接前都需要准备好TCB数据结构。
7、客户端TCB主动打开

客户端主动向服务器表达自己想建立数据连接的请求,此时TCB状态为:Active Open(Create TCB)。
8、服务端TCB被动打开

由于服务器不知道有哪个设备想向它发起连接,因此在构建TCB模块时会默认将客户端对应的Socket数据初始化为0,服务器保持监听,等待客户端从该端口向它发起连接请求,此时TCB状态为:Passive Open(Create TCB)。
9、TCB已做好准备

双方把自己的Socket和TCB数据结构准备好后,就可以进入三次握手的过程。

二、三次握手时:

11、TCP协议终端两种数据包

一种数据包用来传输数据;一种数据包用来发送控制信息(SYN、ACK等),TCP报头中的标志位用于表明数据包是用于数据发送还是用于传输控制信息。

SYN:Synchronize,同步。

ACK:Acknowledge,确认。
12、TCP报头的标志位

当标志位中的SYN比特位启动时,表明当前数据包目的是实现双方数据状态同步。

当标志位中的ACK比特为启动时,表明数据包用于通知接收方已收到了数据。
13、为数据传输前做的准备

一是客户端通知服务器,"我想建立连接"。二是双方通知对方自己数据发送时的"初始序列号"。三是实现参数交换,把自己的有关信息发送给对方。
14、简述握手时过程

TCP三次握手只是建立连接的过程,和后续的数据传输关系不大。

客户端发送一个SYN数据包给服务端,其中包含了数据的初始序列号。

服务端收到数据包后回发一个SYN+ACK给客户端,其中包含了数据的初始序列号。

客户端收到数据包后,回发一个ACK包。

至此,握手过程结束,双方可以开始互发数据包。
15、初始序列号是随机数

为了防止由于网络波动等原因,先后接收到同一序列号导致握手异常,所以初始序列号是一个随机数,而不是每次都以1开始。
16、握手过程中的初始序列号

客户端把自己的初始化序列号放在SYN数据包中发送给服务端。

服务端收到来自客户端的数据包后,会将客户端的序列号的值加1,同时放入服务端自己的初始化序列号,回发SYN+ACK数据包。

当A收到数据后发送一个ACK数据包其中包含了B发过来的序列号加一后所得的数值
(待完成)

相关推荐
碧海银沙音频科技研究院19 分钟前
炬芯ATS3089X手表的HFP通话不自动路由到设备BT的问题解决
网络·人工智能·嵌入式硬件·算法
EasyDSS4 小时前
连锁扩张管控难?一套视频会议/直播/点播/集群对讲EasyDSS音视频云平台打通门店全流程数字化
网络·音视频·easydss
比兔代理6 小时前
游戏、直播、远程办公遇到动态IP怎么办?
网络
Lzg_na6 小时前
ARP 地址解析协议详解
网络·网络协议
北京盛世宏博7 小时前
通信异常深度排查:以太网温湿度设备 TCP 粘包、UDP 丢包根治方案
单片机·网络协议·tcp/ip·udp·以太网·传感器·温湿度
上海广测检测科技有限公司7 小时前
消费类智能联网设备安全分级国标征求意见要点解析:三级五维框架与跨境对标逻辑
网络·经验分享
QZ166560951598 小时前
金融数据流转监测排行:从看见到拦截的距离
网络·安全·网络安全·金融
paopaokaka_luck9 小时前
滑雪场管理系统(AI智能助手流式对话,ECharts 运营数据分析、教练、雪具与场地一体化预约,钱包支付退款、订单核销与服务评价)
java·人工智能·spring boot·网络协议·数据分析·echarts
CCblandy10 小时前
HTTP 长连接 3 类故障实测:[WinError 10053]、99 个 TIME_WAIT、69 次多余握手,4 种对策怎么选
后端·python·网络协议·http·云原生·性能优化·架构
雪雪爱冲浪10 小时前
2026 年网络爬虫领域的Puppeteer vs. Playwright
爬虫·网络协议·测试工具·接口隔离原则