05 - 把数据包送达应用程序的UDP
本帖最后由 不二如是 于 2020-2-8 10:13 编辑上一讲介绍完 IP,本讲来说说 UDP 。
IP 是非常底层的协议,只负责把数据包传送到对方电脑。
但是对方电脑并不知道把数据包交给哪个程序,是交给浏览器还是交给苍老师?
因此,需要基于 IP 之上开发能和应用打交道的协议,最常见的是就是 UDP (User Datagram Protocol,用户数据包协议) 。
UDP 中一个最重要的信息是端口号,端口号其实就是一个数字,每个想访问网络的程序都需要绑定一个端口号。
通过端口号 UDP 就能把指定的数据包发送给指定的程序了。
所以 IP 通过 IP 地址信息把数据包发送给指定的电脑,而 UDP 通过端口号把数据包分发给正确的程序。
和 IP 头一样,端口号会被装进 UDP 头里面,UDP 头再和原始数据包合并组成新的 UDP 数据包。
UDP 头中除了目的端口,还有源端口号等信息。
为了支持 UDP 协议,我把前面的三层结构扩充为四层结构,在网络层和上层之间增加了传输层。
还是画一个简图:
一起看下一个数据包从主机 A 旅行到主机 B 的路线:
[*]上层将含有“鱼C论坛”的数据包交给传输层
[*]传输层会在数据包前面附加上 UDP 头,组成新的 UDP 数据包,再将新的 UDP 数据包交给网络层
[*]网络层再将 IP 头附加到数据包上,组成新的 IP 数据包,并交给底层;数据包被传输到主机 B 的网络层,在这里主机 B 拆开 IP 头信息,并将拆开来的数据部分交给传输层
[*]在传输层,数据包中的 UDP 头会被拆开,并根据 UDP 中所提供的端口号,把数据部分交给上层的应用程序
[*]最终,含有“鱼C论坛”信息的数据包就旅行到了主机 B 上层应用程序这里
在使用 UDP 发送数据时,有各种因素会导致数据包出错。
**** Hidden Message *****
只是丢弃当前的包,而且 UDP 在发送之后也无法知道是否能达到目的地。
虽说 UDP 不能保证数据可靠性,但是传输速度却非常快。
所以 UDP 会应用在一些关注速度、但不那么严格要求数据完整性的领域,如在线视频、互动游戏等。
但是如何解决可靠性呢?
请见下回分解{:10_307:}
如果有收获,别忘了评分{:10_281:} :
http://xxx.fishc.com/forum/201709/19/094516hku92k2g4kefz8ms.gif
如果想看更多,请订阅 淘专辑(传送门)(不喜欢更要订阅{:10_297:} )
沙发~~ 谢谢大佬 1 丢包 {:5_90:} 学习学习 {:5_105:}
页:
[1]