UDP和TCP协议段格式分析

news2024/9/28 23:38:34

目录

UDP协议

特点

UDP协议的缓冲区

UDP协议段格式

TCP协议

特点

如何理解TCP是传输控制协议?

TCP协议段格式

四位首部长度

16位窗口大小

32位序号

32位确认序号


TCP/IP四层模型:

UDP协议

UDP(User Datagram Protocol )是传输层协议。

特点

1.无连接:知道对端的ip地址和端口号就可直接传输数据。

2.不可靠:没有确认机制、重传机制,当因为网络故障导致报文数据无法发送给对端,UDP协议也不会给应用层发送任何错误信息。

3.面向数报:不能灵活的控制读写数据的次数和内容。

如果发送端调用一次 sendto, 发送 100 个字节 , 那么接收端也必须调用对应的一次 recvfrom, 接收 100 个字节 ; 而不能循环调用 10 recvfrom, 每次接收 10 个字节。

UDP协议的缓冲区

UDP没有真正意义上的发送缓冲区,调用sendto函数会把数据直接交给内核,由内核将数据传递给网络层,再有网络层协议进行数据传输。

UDP有自己的接收缓冲区,但是这个接收缓冲区保证不了接收UDP数据报顺序与对端发送UDP数据报的顺序的一致。如果接收缓冲区满了再发来的数据就会被丢弃。

UDP socket 既能读 也能写,是全双工的。

UDP协议段格式

UDP如何分离报头和有效载荷?报头数据中的16位UDP长度=报头(8byte)+有效载荷,OS内核依据这个定长计算分离报头和有效载荷。

TCP协议

TCP是传输层协议(Transform Control Protocol,传输控制协议)。

特点

1.有连接 2.可靠传输  3.面向字节流

如何理解TCP是传输控制协议?

TCP协议段格式

四位首部长度

报头和有效载荷如何分离,如何交付给应用层?

根据 固定长度(标准报头)+子描述字段(报文里的报头中四位首部长度) 的方式分离出报头,然后报文里剩下的数据就是有效载荷了。

报头中的四位(4个比特位)首部长度,范围是二进制:[0000,1111];十进制:[0,15],经过转换就可以得到报头的总大小,报文首部大小=标准报头大小(20byte) + 选项大小。

四位首部长度计算的时候的基本单位是4byte,如:2进制数1001的10进制是9,可以得到报头总长度是4*9=36,因此选项的大小是:36-20=16

根据报文数据中的报头中的16位目的端口号确认交付给应用层的那个进程。

16位窗口大小
接收端处理数据的速度是有限的 . 如果发送端发的太快 , 导致接收端的缓冲区被打满 , 这个时候如果发送端继续发送 ,就会造成丢包继而引起丢包重传
因此 TCP 支持根据接收端的处理能力来决定发送端的发送速度这个机制就叫做 流量控制 (Flow Control) ;
接收端将剩余的接收缓冲区大小放入 TCP 首部中的 " 窗口大小 " 字段 , 通过 ACK 端通知发送端 ;
窗口大小字段越大 , 说明网络的吞吐量越高 ;
接收端一旦发现自己的缓冲区快满了 , 就会将窗口大小设置成一个更小的值通知给发送端 ;
发送端接受到这个窗口之后 , 就会减慢自己的发送速度 ;
如果接收端缓冲区满了 , 就会将窗口置为 0; 这时发送方不再发送数据 , 但是需要定期发送一个窗口探测数 据段 , 使接收端把窗口大小告诉发送端
32位序号

作用:保证报文数据按顺序到达接收方。

当发送端一次性向接收端发送多个报文数据时(确认应答方式不是发一个报文必须得让对方确认应答),先被从用户级缓冲区拷贝到发送缓冲区里的数据,可能经过后网络网络层(由于网络宽带影响)不是第一个到达接收端接收缓冲区,这样就导致了接收方接收的数据乱序了!怎么保证这些报文被接收端接收的顺序和发送端发送时的顺序一致?

利用32位序号保证,可以把发送缓冲区看作一个字符数组,这个字符数组存储了将要发送的多个报文有效载荷块,32位序号就是报文有效载荷块最后一个字符的下标。

32位确认序号

确认序号=序号+1,当接收端确认应答时报头中的32位确认序号表示确认序号之前的数据接收端已经全部收到,期望发送端下一次发送数据从确认序号指定的数字发送。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2052373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

十大护眼落地灯品牌哪款好?十大护眼落地灯品牌

十大护眼落地灯品牌哪款好?根据国际市场的研究数据表明,我国在日常生活中对电子产品的依赖度极高,每天看电子产品的时间超过8小时,出现眼睛酸痛、干涩、视觉疲劳的人群也不再少数,而给眼睛带来伤害的除了电子产品中所含…

界面控件DevExpress ASP.NET Web Forms v24.1最新版本系统环境配置要求

本文档包含有关安装和使用 DevExpress ASP.NET Web Forms控件的系统要求的信息。 点击获取DevExpress v24.1正式版 .NET Framework DevExpress ASP.NET Web Forms控件支持以下.NET框架版本。 如果您需要 DevExpress 产品的早期版本,请直接戳这里联系我>> …

MySQL中的EXPLAIN的详解

一、介绍 官网介绍: https://dev.mysql.com/doc/refman/5.7/en/explain-output.htmlhttps://dev.mysql.com/doc/refman/8.0/en/explain-output.htmlexplain(执行计划),使用explain关键字可以模拟优化器执行sql查询语句&#xff…

爆火的本地知识库项目是什么?什么是RAG?本地知识库与大模型的关系

“ 本地知识库就相当于大模型的外部资料库。” 很多人应该都听过本地知识库项目,它是当今人工智能领域爆火的项目之一,那么到底什么是本地知识库?它和大模型有什么关系?怎么构建本地知识库? 01 — 为什么需要本地知…

Docker的介绍、保姆级安装和使用

一、Docker简介 1.1、Docker是什么 Docker是一个用于开发、发布和运行应用程序的开放平台;使您能够将应用程序与基础设施分离,以便您可以快速交付软件。不像虚拟机那样笨重(比如:我需要将一个安装好nginx环境的内容分享给其他人: 方式一【使用虚拟】(应用程序Nginx与基…

系统架构设计师 - 软件工程(2)

软件工程 软件工程(13-22分)非常重要软件系统建模系统设计界面设计 ★★软件设计结构化设计 ★★面向对象设计 ★★★★★基本过程设计原则设计模式创建型模式:创建对象结构型模式:更大的结构行为型模式:交互及职责分配…

四川财谷通信息技术有限公司抖音小店优势解析

在数字经济蓬勃发展的今天,电商平台如雨后春笋般涌现,其中,四川财谷通信息技术有限公司旗下的抖音小店凭借其独特的优势和强大的实力,在众多竞争者中脱颖而出,成为消费者和商家信赖的优选平台。本文将详细解析四川财谷…

Windows键快捷键大全

Windows键快捷键大全 Windows键结合其他键可以执行多种快捷操作,以下是一些常用的Windows键快捷键: Windows键 D: 显示或隐藏桌面。Windows键 E: 打开文件资源管理器。Windows键 L: 锁定电脑。Windows键 R: 打开运行对话框。Windows键 I: 打开Win…

Java中JDK动态代理

参考:疯狂Java讲义 第18章 文章目录 前言复杂度与耦合的矛盾 使用JDK动态代理总结 前言 复杂度与耦合的矛盾 开发实际应用的软件系统时,通常会存在相同代码段重复出现的情况,在这种情况下,一般都提取为一个方法,在不…

SOP企业内部推行:效率飙升100%,质量保障零瑕疵!

在企业的日常运营中,你是否经常遇到这样的问题:同样一项工作,不同的人做出来效果却大相径庭?或者,明明已经制定了工作流程,但执行起来却总是出现偏差,导致效率低下、质量不稳?这些问…

【STM32单片机_(HAL库)】3-2-2【中断EXTI】【电动车报警器项目】继电器定时开闭

1.硬件 STM32单片机最小系统继电器模块 2.软件 继电器模块alarm驱动文件添加GPIO常用函数main.c程序 #include "sys.h" #include "delay.h" #include "led.h" #include "alarm.h"int main(void) {HAL_Init(); …

海外服务器和内地服务器有什么区别?

海外服务器和内地服务器在许多方面存在区别,主要包括以下几个方面: 1. 地理位置 海外服务器:位于中国大陆以外的地区,比如美国、欧洲、东南亚等地。常见的海外服务器提供商有Amazon Web Services(AWS)、Goo…

稚晖君发布5款全能人形机器人,开源创新,全能应用

8月18日,智元机器人举行“智元远征 商用启航” 2024年度新品发布会,智元联合创始人彭志辉主持并发布了“远征”与“灵犀”两大系列共五款商用人形机器人新品——远征A2、远征A2-W、远征A2-Max、灵犀X1及灵犀X1-W,并展示了在机器人动力、感知、…

【LLM之Base Model】Weaver论文阅读笔记

研究背景 当前的大型语言模型(LLM)如GPT-4等,尽管在普通文本生成中表现出色,但在创造性写作如小说、社交媒体内容等方面,往往不能很好地模仿人类的写作风格。这些模型在训练和对齐阶段,往往使用的是大规模…

Java | Leetcode Java题解之第347题前K个高频元素

题目&#xff1a; 题解&#xff1a; class Solution {public int[] topKFrequent(int[] nums, int k) {Map<Integer, Integer> occurrences new HashMap<Integer, Integer>();for (int num : nums) {occurrences.put(num, occurrences.getOrDefault(num, 0) 1);…

【layui】layer弹出图片层(开启图片旋转 放大 缩小 还原)

详细参照layui官网组件 弹出层组件 &#x1f525;Photots —————————————————————————— 弹出图片层&#xff08;开启图片旋转 放大 缩小 还原&#xff09;是layui2.8.16的新增功能&#xff0c; 新增 photos 层的鼠标滚轮缩放功能 是layui2.8.16的新增…

8.17模拟赛题解

先考虑空间能不能把N个座位放好 最优的方式就是挨着摆放 那么一排能摆放QL/x的商个椅子 &#xff0c;然后计算摆放完N个座位需要多少排&#xff0c;N/Q 向上取整 计算所需要的排总共占据多宽&#xff0c;讨论有没有超过W&#xff0c;然后讨论剩余空间还能放几条走廊 如果走廊数…

蚓链数字化营销:连接心灵的新桥梁

在当今数字化浪潮汹涌的时代&#xff0c;营销领域也经历了一场深刻的变革。蚓链数字化营销&#xff0c;已不仅仅是一种推广手段&#xff0c;更是连接品牌与消费者心灵的新桥梁&#xff0c;让每一次互动都充满温度与价值。 曾经&#xff0c;品牌与消费者之间的沟通隔着一层厚厚…

小白零基础学数学建模系列-Day8-多目标规划问题与案例实践

文章目录 1. 引言1.1 优化问题的背景1.2 单目标规划与多目标规划的概述 2. 单目标规划2.1 定义2.2 应用场景2.3 求解方法2.4 案例&#xff1a;制造企业生产成本最小化的优化方案2.4.1 案例背景2.4.2 模型建立2.4.3 模型求解2.4.4 结果分析2.4.5 总结 3. 多目标规划3.1 定义3.2 …

【MySQL进阶之路】数据库的操作

目录 创建数据库 字符集和校验规则 查看数据库支持的字符集 查看数据库支持的字符集校验规则 指定字符集和校验规则 在配置文件中配置 查看数据库 显示创建语句 修改数据库 删除数据库 数据库的备份和恢复 备份整个数据库 备份特定表 备份多个数据库 备份所有数据…