• UDP协议


    一、UDP协议端格式

     

    1、 源端口号和目的端口号

            端口号我们都熟悉,取值是0~65535,最多占用16个比特位,因此用16个比特位,即2个字节表示端口号。

    2、 UDP长度

            UDP长度表示整个数据报的最大长度(报头+载荷部分),最大值为65535,单位是字节,即一个UDP数据报的最大长度是64kb;

    3、 UDP校验和

            校验和用来检测网络数据在传输的过程中,是否发生差错,即发送的数据和接收的数据是否相同。        

            UDP校验和使用CRC算法(循环冗余校验)来检测:把UDP报文中的每一个字节的值进行累加,并把加和放到一个大小为2个子节的数字中,不关心加和溢出问题~最终得到的结果就是校验和

            发送方发送的时候,会先计算一个校验和存放在报头中,接收方收到数据后,按照同样的规则再计算一次校验和,然后比较两个校验和是否相同,相同则接收数据;不同则直接丢弃数据。

    二、UDP协议的特点

    1、无连接

            客户端只要知道服务器的IP和地址,就可以直接进行数据传输,不需要建立连接。

    2、不可靠

            发送端发送数据报以后,如果因为网络故障等问题无法发送给接收端,UDP协议也不会给应用层返回任何错误信息。

    3、面向数据报

            接收和发送数据的单位是一个数据报。应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并。

            例如:发送端一次发送500个字节的数据,那么接收端也必须一次接收500个字节;不能分成多次接收:100*5,250*2,20*25......

    4、全双工

            UDP的Socket既能写数据,也能读数据。

    5、缓冲区

    UDP只有接收缓冲区:

            注意:网络传输环境错综复杂,可能会出现先发后至,后发先至的情况,UDP的接收缓冲区不能保证收到的UDP数据报的顺序和发送方发送数据报时的顺序一样;

            如果接收缓冲区满了,后序到达缓冲区的UDP数据将会被丢弃。

    UDP没有发送缓冲区:

            UDP发送的数据会直接交给操作系统内核,再由内核将数据传给网络层协议进行后续的操作;

  • 相关阅读:
    【计算机网络】——数据链路层(应用:介质访问控制)
    Windows安装Git
    SQL函数的格式、顺序、流程
    GDB常用指令与调试汇总
    SoapUI、Jmeter、Postman三种接口测试工具的比较分析
    【Realtek】RTL8198D Dual Image逻辑说明及切换方法
    windows@按流量计费网络设置@电脑风扇降噪的可能方法
    Java8新特性Stream流详解
    Python数据结构(队列)
    【Hive】内部表(Managed Table)和外部表(External Table)相关知识点
  • 原文地址:https://blog.csdn.net/m0_67683346/article/details/127382204