62.udp tcp原理

tcp要保证可靠性,数据不确定对方收到之前,发送缓冲区数据不能清空,udp不需要可靠性,直接向下交,不需要发送缓冲区。上层要读取,反序列化等也挺忙,所以要有接收缓冲区,,如果满了,就直接丢了。

网卡一旦有数据,会向操作系统特定针脚触发硬件中断 ,这属于外设中断,cpu就要转而执行中断对应的中断向量表的中断方法,外设也不断向cpu触发时钟中断,促使进程调度,应用层报文解析实际上是操作系统不断地进行时钟中断,进程不断的运行,同时也不断响应着外部硬件中断,操作系统可以两个同时做。 可以是并行的。

报文有报头和有效载荷,首先就要有内存空间,划分报头和有效载荷,一个报文是这个结构体和内存空间。指针可以指向内存空间,相当于进程pcb和pcb对应代码数据,这是一个报文,把所有buff串联起来 next指针 ,

一个报文有自己的缓冲区报头,skbuff内有指针能把缓冲区管理起来,多个skbuff就用双链表管起来

不断向下交付,data就网上指向一层,实际向下交付交付的skbuff,每一层都移动指针。

底层收到报文就变成skbuff,每一层都有sk 可以理解每层都有队列,属于哪一层链入那一层,

传输层把报头全扔掉了,把有效载荷放入接收缓冲区了。

数据放到tcp缓冲区可以提高write效率,不能等发送了才write,由操作系统决定,相当于刷新缓冲区到外设,相当于刷新策略,

tcp先找20个字节提取4位首部长度称4,减20 就是选项字节数

udp可以知道数据大小知道总长度,但tcp面向字节流,发个多个tcp数据段也区分不了是不是一个,让上层分析边界,

传递的是skbuff,所以tcp报文不会相连,传输层缓冲区存的只有数据,所以可能数据相连,、

为了效率更高,同时应答,但是如果少一个应答,并不知道是谁,所以带上序号 ,应答时候是序号+1

101 201 301 都丢了401没丢,但是客户端认为都没丢,所以这允许一定的丢包,确认序号是对历史报文的确认。

报文按顺序发但不一定按顺序收是乱序问题, 32位序号可以解决应答和乱序问题

确认序号是对历史豹纹的确认,该序号之前的报文已经收到了,

一台主机接收数据能力由什么决定,接收缓冲区剩余空间大小决定。接收缓冲区剩余空间大小写入16位窗口大小发送端就知道了接受能力,可以流量控制了

课堂板书/20250507_tcp.png · whb-helloworld/113 - 码云 - 开源中国

相关推荐
夜月yeyue1 小时前
AUTOSAR CP 从上电到 Runnable
c语言·网络·tcp/ip·车载系统
treesforest1 小时前
IP定位技术在网络犯罪侦查中的应用与价值
网络·网络协议·tcp/ip·网络安全·ip归属地查询·反欺诈
外滩运维专家1 小时前
HTTPS 证书报错排查手册:6 个高频错误码及解决方法
网络协议·http·https
起司喵喵3 小时前
通过Certbot自动申请更新HTTPS网站的SSL证书
网络协议·https·ssl
鲜花飘飘扬5 小时前
HTTP请求头中表示代理IP地址的属性及获取情况
网络协议·tcp/ip·http
paopaokaka_luck9 小时前
基于springboot3+vue3的智能文库平台(AI智能搜索、AI智能汇总、实时在线状态展示、多格式文档预览与富文本编辑、Echarts图形化分析)
前端·网络·spring boot·网络协议·echarts
发光小北11 小时前
SG-RS232/485/422-Fiber-110 串口光纤收发器如何使用?
网络协议
纵有疾風起11 小时前
从OSI到TCP/IP——分层架构的思想根源与模型之争
tcp/ip·计算机网络·架构·osi·408·体系结构·分层
我星期八休息12 小时前
扩展— TCP 全连接队列与 tcpdump 抓包
linux·服务器·开发语言·前端·网络·tcp/ip·tcpdump
看昭奚恤哭12 小时前
LWIP TCP滑动窗口为TCP ZeroWindow的解决方法
网络·tcp/ip·php