趣谈网络协议笔记-二(第十讲)

趣谈网络协议笔记-二(第十讲)

UDP协议:因性善而简单,难免碰到”城会玩“


自勉

  • 如果手上没有剑,我就无法保护你。如果我一直握着剑,我就无法抱紧你。——《Bleach》第五卷卷首语
  • 如果还有下次,如果可以重来,我绝对不会放开你的双手了。未来,我憧憬你;未来,请看着我;未来,我将颠覆你!——Ciruy B.Heimerdinger
  • 如果你觉得社会不公平,那么你在内心里就一定相信着与之相对的公平一定存在,否则,这所谓的不公平就毫无意义。——罗翔
  • Stay Hungry,stay foolish ——Steve Jobs

正文

OK,休息了两天= =!真的不知道为什么,双休日感觉真的很累,怎么睡都睡不醒!继续我的网络协议学习之路!奥利给!

[image:F54086F9-07AC-4F15-B0A8-59872C4B9628-60643-00008A3E698254D2/2c9a109f3be308dea901004a5a3b4c84.jpg]

这一讲比较粗略地比较了一下TCP和UDP之间的区别同时比较详细地讲了讲UDP的相关知识。
TCP协议是为了可靠传输而存在的,而UDP则是为了更加快捷迅速地传递消息而存在的。而保证这所谓的可靠传输即为所谓的有无连接,TCP是面向连接的,而UDP是面向无连接的。
如上图,UDP头的结构真的很简单,仅仅包含了发送方和接收方的端口数据的长度数据的校验和这些确保数据的正确性的数据信息。因此,他相比TCP协议就是绝对的莽夫,只要我出门了,就是背水一战,绝不会后退,要么我到达目的地,要不然我死在路上,绝不需要后援。
当然,作为莽夫当然有莽夫的好处。TCP协议的传输首先需要建立连接,然后再基于连接进行数据的传输,传输的过程中不仅仅需要考虑发送的顺序还需要根据网络的情况来调整自己的发送速度,觉得不需要再传输数据时还需要走流程以断开连接。也就是所谓的三次握手,四次挥手,这部分的内容在下一讲中会详细说明。毕竟这讲的主角是UDP协议。
相比TCP,UDP并不面向连接(一台计算机可以同时维护的连接数其实有限),毕竟维护连接是需要时间和精力的,莽夫的生活就是这么直接和快乐,不饶弯子。我冲出家门的目的就是为了诗和远方,我只需要心里怀揣着目标,并一直向其进发就行了!道路拥不拥堵我不在意,我就是希望在茫茫人海中杀出自己的一条血路!
基于这些特性,对于希望高互动,但是不是很在意数据传输的完整性和顺序性的场合,UDP就能大显身手了!

一:网页或者 APP 的访问

QUIC(全称 Quick UDP Internet Connections,快速 UDP 互联网连接)是 Google 提出的一种基于 UDP 改进的通信协议,其目的是降低网络通信的延迟,提供更好的用户互动体验。

二:流媒体的协议

很多直播应用,都基于 UDP 实现了自己的视频传输协议。

三:实时游戏

游戏对实时要求较为严格的情况下,采用自定义的可靠 UDP 协议,自定义重传策略,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成的影响。

四:IoT 物联网

一方面,物联网领域终端资源少,很可能只是个内存非常小的嵌入式系统,而维护 TCP 协议代价太大;另一方面,物联网对实时性要求也很高,而 TCP 还是因为上面的那些原因导致时延大。Google 旗下的 Nest 建立 Thread Group,推出了物联网通信协议 Thread,就是基于 UDP 协议的。

五:移动通信领域

在 4G 网络里,移动流量上网的数据面对的协议 GTP-U 是基于 UDP 的。因为移动网络协议比较复杂,而 GTP 协议本身就包含复杂的手机上线下线的通信协议。如果基于 TCP,TCP 的机制就显得非常多余,这部分协议我会在后面的章节单独讲解。


猜你喜欢

转载自blog.csdn.net/qq_31433709/article/details/107776201