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

传输层UDP协议

一、端口号

1. 0 - 1023是知名端口号, 这些端口号与指定的服务是绑定在一起的,如果需要绑定这些知名端口号需要超级管理员权限的,如下示例:

执行cat /etc/services命令查看知名端口号

2. 1024 - 65535客户端程序的端口号由操作系统动态分配,服务端指定端口号。
二、UDP协议
2.1UDP 协议端格式

• 数据 = 16 位UDP 长度(指的是首部+数据) - UDP首部(8字节)。

UDP 使用注意事项
我们注意到, UDP 协议首部中有一个16 位的最大长度,也就是说一个UDP 能传输的数据最大长度是64K(包含UDP 首部),然而64K 在当今的互联网环境下是一个非常小的数字,如果我们需要传输的数据超过64K, 就需要在应用层手动的分包, 多次发送, 并在接收端手动拼装。
2.2UDP 的特点
• 无连接: 知道对端的IP 和端口号就直接进行传输, 不需要建立连接;
• 不可靠: 没有确认机制,没有重传机制,如果对方没有收到,不会重传
• 面向数据报: 不能够灵活的控制读写数据的次数和数量;
1. 面向数据报
UDP协议是向套接字一次写多少的数据,一次就传多少的数据,接收端也只能一次recvfrom,不能分多次recvfrom。而TCP协议不一定,一次发多少数据由操作系统来决定。
2. UDP 的缓冲区
UDP没有发送缓冲区,只有接收缓冲区,为什么没有发送缓冲区呢?因为不需要像TCP那样数据发生丢包重传,所以不需要对发送数据进行保存,调用sendto 会直接交给内核, 由内核将数据传给网络层协议进行后续的传输动作。
UDP 具有接收缓冲区. 但是这个接收缓冲区不能保证收到的UDP 报的顺序和发送UDP 报的顺序一致; 如果缓冲区满了, 再到达的UDP 数据就会被丢弃;
UDP 的socket 既能读, 也能写, 所以是全双工通信模式

http://www.xdnf.cn/news/312175.html

相关文章:

  • 开发搭载OneNet平台的物联网数据收发APP的设计与实现
  • Vue3中的package.json依赖是否有更新
  • 探索编程世界:从“爱编程的小黄鸭”B站账号启航
  • 关于串口读写NAND闪存的用法
  • SIwave仿真之提高效率及精度
  • 3.1监督微调
  • element-ui日期时间选择器禁止输入日期
  • Linux/AndroidOS中进程间的通信线程间的同步 - 内存映射
  • 【Linux】Linux入门——权限
  • ZYNQ-UART串口中断
  • 基于计算机视觉的试卷答题区表格识别与提取技术
  • HarmonyOS 5.0 低时延音视频开发​​
  • LeetCode 1. 两数之和(Java)
  • 高频电流探头:通信测试中的隐形守护者
  • 力扣118,1920题解
  • 工业质检/缺陷检测领域最新顶会期刊论文收集整理-AAAI2025【持续更新中】
  • 如何分析java对象占用内存大小
  • Linux操作系统如何杀掉close_wait 状态的连接
  • apk 安装后提示该应用未安装
  • neo4j 桌面版的配置信息
  • Labview培训5_以空间换时间的数据采集策略介绍
  • PLL工作原理
  • 【高级IO】多路转接之select
  • 实操3:6位数码管
  • Linux云计算训练营笔记day02(Linux、计算机网络、进制)
  • C++ 装饰器模式详解
  • 对windows的简单介绍
  • 导入飞帆的网页为组件并注入数据驱动
  • 【工具变量】数字人民币试点城市DID(2007-2024年)
  • NVIDIA AI Aerial 正式发布,旨在优化无线网络,并在单一平台上提供全新的生成式 AI 体验