传输层协议 tcp

tcp报文格式图

分离?

tcp报文 20字节

4bit位首部报头长度

读取前20字节,提取首部4bit长度,直接给4bit长度x4再-20

eg: 1111 -- 15 -- 15x4 --- 60 ---- -20 ----- 40

所以读取前20个字节,再读取四十个字节,剩下的就是有效载荷

交付

由端口号来实现交付

正确地理解可靠性

1.具有应答,可以保证对历史消息的可靠性,这个时候就是100%可靠。所以让报文不是最新的就可以保证可靠性。我们有应答就可以保证对方收到了我们的消息,而收到的消息是历史的,所以保证的是历史消息的可靠性

2.通信中,最新的报文,永远没有应答,最新可靠性无法保证

保证tcp的可靠性,处于核心地位的确认应答机制

应答机制

每一个报文都有自己的sk_buff

序号和确认序号

序号

1.支持确认应答

2.解决接收报文的乱序问题,因为先发的不一定先到,有序号就可以有序化

所以为什么会有两个序号?

因为会有捎带应答

我们接收别人的数据,在对数据做应答的时候也会同时发出一个数据(稍待应答)让对方来做应答,这个时候就需要不同的序号来对双发的数据报文来管理。所以就有双向的序号与确认号

我们举个例子

你吃饭了吗? 这就是一方的数据报文

吃了。你呢? 吃了就是应答,同时你呢?就是另一方的数据报文,也就是捎带应答,也要有序号

需要不同的序号。如果只有一套序号就会发生混乱

报文 = 报头 + 有效载荷

应答 数据

报文去掉数据的就是报头

16位窗口大小?

一台主机接收数据的能力由我们的接收缓冲区中剩余的空间大小决定

我们的数据是报文,报文里有16位窗口大小,传数据的同时,报文的16位窗口大小就记录剩余空间的大小

相关推荐
AI产品库21 分钟前
从沙盒到生产库:OpenAI GPT-5.6 Sol 在评测中自主入侵 Hugging Face
网络·gpt
Dear~yxy1 小时前
LVS企业级实战
linux·服务器·lvs
她说可以呀1 小时前
WebSocket 和 SSE 简单使用及区别
网络·websocket·网络协议
weixin_462901972 小时前
TCP+WebSocket双向转发服务器 完整部署运维手册
运维·websocket·tcp/ip
编程牛马姐2 小时前
什么是纯净IP? 如何判断IP地址的纯净度?有哪些干净IP推荐?
网络
Sirius Wu2 小时前
OpenClaw Model Provider(模型提供商)完整详解
服务器·网络·人工智能·安全·aigc
2301_777998342 小时前
Linux线程控制——从线程创建到线程分离(第三部分:线程等待 pthread_join)
linux·运维·服务器·c语言·c++
RD_daoyi2 小时前
Google偷偷给AI引用加了五个新功能:内联引用、悬停预览、品牌展示……但点击率真的回来了吗?
大数据·网络·人工智能·算法·安全·搜索引擎
谜之锋3 小时前
Linux 源码编译安装 net-snmp-5.9.1 并配置使用 SNMPv3
linux·运维·服务器·snmpv3
RuiZN3 小时前
Muduo---Channel类
运维·服务器·c++