UDP协议详解

      最后更新:2022-07-29 19:22:23 手机定位技术交流文章

      目录

      网络原生的情况

      网络来源不可靠:

      网络是不安全的:

      一,UDP协议:User Datagram Protocol 用户报文协议

      UDP不可靠的原因

      1,UDP工作机制

      UDP的特点:

      UDP协议的应用场景:

      2,UDP的报头

      UDP协议的解包:

      UDP数据共享: UDP协议向该过程提供数据 吗?

      UDP校验和:

      UDP不发送缓冲区:

      UDP协议中有一个接收缓冲区:

      UDP发送数据报:

      UDP接收数据报:

      网络原生的情况

      网络中的数据在路由器之间连续传输,以达到主机与主机之间的通信

      网络来源不可靠:

      另一方可能不能接受,不能保证收到的命令与发给的命令相同

      网络是不安全的:

      1,信息在路由器之间转发时,可以被他人修改,窃取和监听,2,别人可以伪造发送数据

      一,UDP协议:User Datagram Protocol 用户报文协议

      在host to host 连通的情况下,实现process to process (P2P)

      UDP不可靠的原因

      网络传输的本身时不可靠的,而UDP协议没有对信息传输做处理,因此,UDP协议是不可靠的

      1,UDP工作机制

      UDP的特点:

      不可靠、不连接、数据导向(字符流),低传输成本

      • 单元头部为小,TCP头部为20字,UDP头部为8字。

      • UDP无连接,时间上不存在建立连接需要的时延。空间上,TCP需要在端系统中维护连接状态,需要一定的开销

      • UDP没有交通堵塞控制,应用层可以更好地控制发送的数据和发送时间,网络中的拥塞控制不影响主机的传输速度。一些实时应用需要稳定的传输速度,能承受一些数据丢失,然而,不能允许更大的延迟(如实时视频,直播等)

      • UDP提供尽最大努力的交付,不保证可靠交付。所有维护传输可靠性的工作需要用户在应用层来完成。没有TCP的确认机制、重传机制。如果因为网络原因没有传送到对端,UDP也不会给应用层返回错误信息

      • UDP是面向报告的,向应用程序层报告,添加第一个标题,然后直接向农村向IP层交付,既不合并也不分离,保持这些报告的界限。

      • UDP通常使用网络应用程序来一次传输相对较小的数据,例如 DNS、SNMP等,因为如果使用TCP,创建、维护和拆卸连接的成本是微不足道的。

      UDP协议的应用场景:

      UDP通常用于多媒体应用(例如IP电话、实时视频会议、流媒体等)数据的可靠传输对他们来说并不重要,而TCP的拥堵控制会造成更大的延误,这也是不容忍的

      2,UDP的报头

      UDP的第一个部分由8个字符组成,由4个字符组成,每个字符都是2个字符。
      1.源端口:当另一人返回消息时需要选择的源端口号码,不需要设置为0。
      2.目标端口: 为在端点传递消息所需的目标端口号码.
      3.长度: UDP数据报告(包括头条和数据)的长度,最低值为8(只有头条)
      4.校正和:检测UDP数据报告是否在传输中是错误,如果是错误,则将它们丢弃。
      这个字段是可选的,如果源主机不想计算验证,则直接设置为零。
      当传输层从IP层接收UDP数据消息时,UDP数据消息在第一部分的目的地端口上通过相应的端口传递到应用程序进程中。
      如果接收器UDP发现接收消息中的目的地端口号是错误的(没有相应的端口号应用程序进程0),它将消息丢弃并通过ICMP向另一方发送“端口无法使用”错误消息。

      UDP协议的解包:

      UDP协议的header一定是8字节,剩下的长度都是payload数据报文,

      UDP数据共享: UDP协议向该过程提供数据 吗?

      UDP协议的目的端口允许协议到达指定进程,同时携带自己的端口号码,确保双方能够通信

      UDP校验和:

      保证数字传输的完整性和准确性,

      原理:利用hash函数,计算发送的数据与接收的数据的hash值是否相等,来判断接收与发送数据的hash值是否相等,CRC循环冗余码则是UDP校验发送数据是否准确到达接收方的一种校验手段。

      UDP不发送缓冲区:

      应用程序层通过UDP协议传递数据消息并成功发送UDP数据消息,因为UDP不发送缓冲区,所以应用程序层看到数据消息成功发送,只是表明数据消息已经由传输层接收。

      UDP协议中有一个接收缓冲区:

      接收器应用层存在于缓冲区,接收器传输层在接收数据后将暂时存储接收数据在缓冲区,等待接收器应用层读取数据。

      UDP发送数据报:

      (UDP协议完全发送数据消息,而不分割数据消息。应用程序层发送100k,传输层发送100k数据一次。)

      1.应用程序层接收数据报告

      2,传输层添加数据消息(payload)协议头(16位本地端口、16位目标端口、16位数据消息长度、16位验证码)

      3,将数据消息包入数据gramPacket并发送到网络层

      4,网络层接收数据消息并通知应用程序层成功发送数据。

      UDP接收数据报:

      1.从网络层接收UDP数据

      2,将数据报按照定长拆分成header和payload,

      3,读出传送器端口,目的地端口,数据长度,校正代码

      4,验证长度和校正代码,无论数据是否错,UDP协议不会对发送方作出任何响应,因此发送方不知道数据是否成功发送,没有接收响应,因此UDP不可靠。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/30833.html

          热门文章

          文章分类