数据通信——传输层(UDP)

引言

我们上网观看比赛的时候,一旦网络信号出现问题,那可就太难受了,这意味着卡顿的时间内,你会错过这段时间内的内容。这种特性要归功于UDP(User Datagram Protocol)用户数据报协议。

无连接性

一般的,数据在通过应用层后会到达传输层,如果传输层使用UDP作为封装手段,那么UDP仅会在IP基础上增加端口和差错检测的功能,首部大小为8字节,作用简单,规模也不大,这让UDP传输起来非常的快

尽力交付

UDP仅仅拥有一些差错检测功能,除此之位不提供任何可靠性措施。也就是看视频的时候错过去了也就是错过去了,因此稳定的网络环境和可靠的传输设备是很重要的!它们决定了数据流量是否能连续的到达UDP后返还给用户。在发送数据时,应用程序的设计决定了数据发出后经过UDP是否能稳定的传输给对方。

面向报文

UDP是面向报文的,它对应用层传输下来的报文添加首部后完整的发送给网络层,它一次发送一整个报文,而UDP能接受多大的报文呢?这取决于**MTU(最大传输单元)**的限制。反过来,网络层交付给UDP的报文,UDP在摘除首部后也会原封不动的发送给应用层。

UDP是个好人,他不会对你邮出去的货物进行拆分,但是缺点很明显,UDP不安全。因此你需要想办法在报文中提升安全性能。

它对报文的爱不曾改变

多种通信模式

UDP简直是通信模式的王者。每个对端可以同时自由的发送信息,这很舒服。你想想,你在看直播的时候,和播主对话是不是双方畅通无阻。要是只能对方一句你一句,那直播还有什么意思。当然了,点播、组播、广播等等,UDP都同样适用。不过,你要确保网络质量的稳定哦!

无拥塞控制

一般呢?别人传话给我们后,我们在向别人转达这些话的时候,是不是要时不时的回忆一下再说出去。这个就相当于一个缓冲。但是UDP不会,它收到了消息,会一股脑的发送给你,他就像是个复读机,不管你听没听见,跟没跟上,他只在那里"喋喋不休" 。UDP没有缓冲,也没有拥塞机制。它迫切的需要其它设备为它进行传输的限制,如果无限制的话,大量的数据疯狂传递。,会造成链路堵塞,影响网络使用。

注:不过UDP套接字有缓冲区,这个不细说了,太偏门。

虽然从物理层到应用层的设备几乎都有流量传输大小的限制。不过会出现这种情况------发送端发送大量的超长报文,UDP一股脑的接收整个报文然后源源不断发给接收端,但是接收端的接收能力不高,当其接受量超过阈值后,就开始丢弃报文了。UDP也不会负责流量的管理。因此协议栈中的每个设备都要相互配合,拥塞控制是个相关于全局的。

上图是对拥塞控制的解释

后续

UDP没什么好讲的,一个"毫无感情的数据输出"设备。不过它的简单特性却为我们带来了不少的使用空间。下次就要讲和它"反目成仇的兄弟"了。TCP协议!它和UDP就区别大了

相关推荐
q***74811 分钟前
在Linux系统上使用nmcli命令配置各种网络(有线、无线、vlan、vxlan、路由、网桥等)
linux·服务器·网络
我也要当昏君37 分钟前
4.1.8 【2022 统考真题】
运维·服务器·网络
記億揺晃着的那天42 分钟前
WebSocket 通俗讲解
网络·websocket·网络协议·实时通信
无聊的小坏坏1 小时前
从 OneThreadOneLoop 线程池到进程池:高性能 Reactor 服务器的演进
服务器·网络·一个进程一个事件循环
二进制coder1 小时前
服务器BMC开发视角:解析CPU管理的两大核心接口PECI与APML
运维·服务器·网络
xxtzaaa1 小时前
手游端游IP被限制无法多开如何解决
网络协议·tcp/ip·智能路由器
m0_738120721 小时前
网络安全编程——基于Python实现的SSH通信(Windows执行)
python·tcp/ip·安全·web安全·网络安全·ssh
emiya_saber2 小时前
Linux 硬盘分区管理
java·linux·网络
apple-mapping2 小时前
电脑有连接网络,但浏览器网页无法打开
网络
小草cys2 小时前
【解决】华为欧拉系统上遇到能 ping 通 IP 地址(如 8.8.8.8)但无法 ping 通域名(如 www.baidu.com)的情况
网络·网络协议·tcp/ip