每天一个小细节:UDP协议特点与报文结构

news/2024/5/18 11:52:38 标签: udp, 网络, tcp/ip, csdn热榜

在上一期的《每天应该小细节》中,外面介绍了协议这个概念,那么在我们的传输层有两个非常重要的协议,那便是TCP/IP和UDP协议,那么今天就来详细介绍一下UDP协议的主要内容。

上期每天一个小细节指路🐲🐲🐲
https://editor.csdn.net/md/?articleId=127260869

UDP协议特点

首先先介绍一下UDP协议的特点:

无连接
有连接就像打电话,无连接就像发短信,打电话需要与对方建立连接,而发短信不需要,只要值得别人的电话就能发送。在计算机里就是只需要知道对端的IP和端口号就直接进行传输,不需要建立连接

不可靠传输
就是发短信的时候,你无法确定对方是否真的收到了,在计算机中就是不能确定数据有没有被对方接收,很有可能在传输的过程出现“丢包”问题,毕竟不像淘宝发客服信息还有已读这个功能。

面向数据报
就是UDP传输数据的基本单位是数据报,也就是应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并,你给他100字节的数据,它不会拆成10字节的发送十次,你给多少一次性就发送多少,并且接收方一次也接收这么多

全双工
就是UDP的socket既能读,也能写,这个概念叫做 全双工。全双工指可以同时进 行信号的双向传输(A→B且B→A)。指A→B的同时B→A,是瞬时同步的。
半双工,就是一次只能传输一个方向的数据,先A→B,A结束了才能B→A。
单工就是单行道,只允许A->B,反之不可行。
Socket套接字,是由系统提供用于网络通信的技术,是基于TCP/IP协议的网络通信的基本操作单元。

UDP报文的具体结构:

在这里插入图片描述
针对上面的各个部分进行阐述:

源端口,目的端口:即数据发送方从哪个端口来,传到接收方的哪个端口去
UDP报文长度:即这个报文的大小,因为只有十六位,所以能表示的报文大小最多也就是64KB,遇到特别大的数据就需要进行拆包,而这个拆包需要在应用层进行。
数据校验和:因为数据在传输过程可能出现一些不可控因素,导致数据内容与原先不符,这个用于检验数据是否正常。
载荷:需要发送的应用层数据报

欢迎大家订阅我的专栏《每天一个小细节》,每天都能巩固,学习。
请添加图片描述


http://www.niftyadmin.cn/n/1352.html

相关文章

Vue —— mockjs 的使用方法

文章目录 一、关于mockjs 1..mock.js是什么?2.为什么用mockjs?二、使用步骤 1.安装2.在main.js引入3.mockjs文件总结一、关于mockjs 1.mock.js是什么? mockjs是生成随机数据的一款前端工具,用来模拟 Ajax 请求,生成并返…

输入和输出

目录 7.1. 格式化输出 7.1.1. 旧式的字符串格式化 7.2. 文件读写 7.2.1. 文件对象方法 7.2.2. 使用json存储结构化数据 一个程序可以有几种输出方式:以人类可读的方式打印数据,或者写入一个文件供以后使用。本章将讨论几种可能性。 7.1. 格式化输出…

【网络篇】第四篇——网络字节序

网络字节序和本机转换 字节序转换函数 网络字节序和本机转换 计算机在存储数据时是有大小端的概念的: 大端模式: 数据的高字节内容保存在内存的低地址处,数据的低字节内容保存在内存的高地址处。小端模式: 数据的高字节内容保存在内存的高…

JS(Dom对象的属性和方法)第十六课

Dom对象的属性和方法自定义的熟悉操作上面是今天博客要讲述的内容 一个案例回顾上次课讲的内容 下面是Html中的元素布局结构 <div>我是div审查元素<p>我是p标记的元素</p><span>我是span的元素信息</span></div><div class"one&…

【C ++基础】迭代器(iterator)在string里面的简单使用

【C 基础】迭代器(iterator)在string里面的简单使用 前言 本文是为了扫清后面学习的难点&#xff0c;而特意写的文章&#xff0c;只是介绍迭代器如何在string中使用。 迭代器的详细解释请看这里&#xff1a; [点击跳转&#xff08;这里还没有写哦&#xff09;] C专栏主页&am…

【Node.js实战】一文带你吃透开发博客项目的MySQL基础

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;也会涉及到服务端 &#x1f4c3;个人状态&#xff1a; 在校大学生一枚&#xff0c;已拿 offer&#xff08;秋招&#xff09; &#x1f947;推荐学习&…

【C++】STL——stack和queue(万字详解)

&#x1f387;C学习历程&#xff1a;入门 博客主页&#xff1a;一起去看日落吗持续分享博主的C学习历程博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a; 也许你现在做的事情&#xff0c;暂时看不到成果&#xff0c;但不要忘记&…

作业帮-后台开发岗 面经

一面 简单介绍下项目Redis中&#xff0c;字典这一数据结构的底层实现 我的理解&#xff1a; 对Redis底层hash表的实现不熟悉&#xff0c;但是应该和golang中的map底层实现类似&#xff0c;一个buckets数组&#xff0c;然后对key进行hash取值得到一个长度为16位的hash值&#x…