UDP协议学习笔记
来源:互联网 发布:mac迅雷怎么看片 编辑:程序博客网 时间:2024/06/05 09:57
UDP协议学习笔记
@(学习笔记)[网络协议, 网络编程]
- UDP协议学习笔记
- 协议简介
- 报文格式
- 原端口号
- 目的端口号
- UDP长度
- UDP检验和
协议简介
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。
UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。
与所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。
报文格式
原端口号
16位,用于确认发送端的进程
目的端口号
16位,用于确认接收端的进程
UDP长度
16位,用于表示UDP数据包的长度(首部和数据一共)
UDP检验和
16位,UDP的检验和会覆盖UDP首部和UDP数据,UDP和TCP在首部中都有覆盖他们首部和数据的检验和,UDP的检验和事可选的,TCP的检验和是必须的。在进行检验和计算时,会添加一个伪首部一起进行运算。伪首部(占用12个字节)为:4个字节的源IP地址、4个字节的目的IP地址、1个字节的0、一个字节的数字17、以及占用2个字节UDP长度。这个伪首部不是报文的真正首部,只是引入为了计算校验和。接收端进行的校验和与UDP报文中的校验和相与,如果无差错应该全为1。如果有误,则将报文丢弃或者发给应用层、并附上差错警告。
将整个数据包分成n份 16bit(2字节)的部分,将每个部分转换成2进制并求和,求的的结果作为首部检验和。若数据包长度不是16的倍数,便填充至最后一部分满16bit为止(但填充的部分可能不被传送)。
- UDP协议学习笔记
- UDP基本协议学习笔记
- Java学习笔记 UDP协议传输信息
- TCPIP详解学习笔记-UDP协议
- TCP/IP详解学习笔记--UDP协议
- TCP/IP学习笔记(6)-UDP协议
- Udp协议学习
- UDP协议的学习
- TCP/IP详解学习笔记(6)-UDP协议
- TCP/IP详解学习笔记(6)-UDP协议
- TCP/IP详解学习笔记(6)-UDP协议
- TCP/IP详解学习笔记(6)-UDP协议
- TCP/IP详解学习笔记(6)-UDP协议 .
- TCP/IP详解--学习笔记(6)-UDP协议
- TCP/IP详解学习笔记(6)-UDP协议
- TCP/IP详解学习笔记(6)-UDP协议
- TCP/IP详解学习笔记(6)-UDP协议
- TCP/IP详解学习笔记(6)-UDP协议
- 那些H5在Android和IOS上出现的丧心病狂的坑
- c++作业3
- Map集合及其实现类
- 框架对比
- [Leetcode] #416 Partition Equal Subset Sum
- UDP协议学习笔记
- js中二维数组的创建方法
- 本质矩阵
- 纯CSS的导航下拉菜单
- 圣杯布局
- "尚学堂杯"哈尔滨理工大学第七届程序设计竞赛D--Distinct Package Manager
- 使用Maven自动部署Java Web项目到Tomcat问题小记
- OOP
- BZOJ 1237: [SCOI2008]配对