当前位置: 首页 > news >正文

网络原理一>UDP协议详解

UDP和TCP都是应用层中的重要协议,如果做基础架构开发,会用得多一些。  

这一篇我们先简单聊一下的UDP

TCP格式呈现:

我们知道UDP是一种无连接,面向数据报,全双工,不可靠传输特性的网络协议。  

 基本格式如图:  

可以这样看: 

 也可以这样看:


1.源端口和目的端口:
我们知道端口号标识了一个主机上进行通信的不同的应用程序,在应用层上的
要想进行一次通信,就必须涉及 “五元组”--->源端口,目的端口,源IP,目的IP,协议号 
 这里的源端口和目的端口号,就是应用层的核心内容

2.16位UDP长度: 

记录整个UDP数据报的长度,占两个字节

整个UDP数据报长度是64KB。


3.UDP缺点:

我们知道UDP数据报总长度才64kb,现在随便一个图片都好几个MB,虽然UDP传输效率很快,但是存储空间太小。 


我们如何传输更大的数据呢? 

一般有两个解决方式: 

方式一:应用层代码做拆包操作 

具体就是,把多个应用层数据报,拆分成多个UDP数据包来传输 

方式二:使用没有长度限制的TCP网络协议 


4.校验和: 

校验数据是否修改的手段 

UDP的校验和,是为了防止,传输过程中的比特翻转

比特翻转就是传输过程中,光电信号或者电磁波二进制信号,从0->1, 1->0 


5.怎么用校验和来判断是否发生比特翻转呢? 

首先发送之前,通过数据包中的数据,先计算好一个校验和然后把校验和连带整个数据报的数据都发送到对端; 对端通过接受到的数据,再算一遍校验和,一比对,如果发现校验和不一样就发送了比特翻转,就丢弃这个UDP数据报。    

补:校验和是通过CRC (循环冗余校验)的简算法来校验的,会有比特翻转其实也是小概率事件。 


6.面试时UDP 2种总长度表达:

总长度上限达64kb

UDP携带的荷载长度达64kb上限

http://www.lryc.cn/news/519803.html

相关文章:

  • MySQL的小问题
  • Mac——Docker desktop安装与使用教程
  • FastApi Swagger 序列化问题
  • 《机器学习》——sklearn库中CountVectorizer方法(词频矩阵)
  • UML系列之Rational Rose笔记三:活动图(泳道图)
  • Java面向对象面经总结
  • 红队工具使用全解析:揭开网络安全神秘面纱一角
  • OpenLinkSaas 2025年第一季度开发计划
  • 【python小工具】怎么获取视频的关键帧频率?
  • 数字孪生可视化在各个行业的应用场景
  • Python实现windows自动关机
  • Go可以使用设计模式,但绝不是《设计模式》中的那样
  • 【C语言】_使用冒泡排序模拟实现qsort函数
  • openCvSharp 计算机视觉图片找茬
  • 从零开始开发纯血鸿蒙应用之处理外部文件
  • Spring中三级缓存详细讲解
  • 论文阅读:《Whole-animal connectomes of both Caenorhabditis elegans sexes》
  • 嵌入式开发之STM32学习笔记day03
  • windows10 安装 Golang 版本控制工具g与使用
  • SpringBoot 使用 Cache 集成 Redis做缓存保姆教程
  • R数据分析:多分类问题预测模型的ROC做法及解释
  • 数据结构与算法之二叉树: LeetCode 654. 最大二叉树 (Ts版)
  • Linux 容器漏洞
  • file与io流(1)
  • 忘记了PDF文件的密码,怎么办?
  • Linux权限管理(用户和权限之间的关系)
  • Python Selenium库入门使用,图文详细。附网页爬虫、web自动化操作等实战操作。
  • 【Uniapp-Vue3】使用defineExpose暴露子组件的属性及方法
  • 【多模态LLM】英伟达NVLM多模态大模型训练细节和数据集
  • HTTP详解——HTTP基础