在上一期的《每天应该小细节》中,外面介绍了协议这个概念,那么在我们的传输层有两个非常重要的协议,那便是TCP/IP和UDP协议,那么今天就来详细介绍一下UDP协议的主要内容。
上期每天一个小细节指路🐲🐲🐲
https://editor.csdn.net/md/?articleId=127260869
UDP协议特点
首先先介绍一下UDP协议的特点:
无连接
有连接就像打电话,无连接就像发短信,打电话需要与对方建立连接,而发短信不需要,只要值得别人的电话就能发送。在计算机里就是只需要知道对端的IP和端口号就直接进行传输,不需要建立连接。
不可靠传输
就是发短信的时候,你无法确定对方是否真的收到了,在计算机中就是不能确定数据有没有被对方接收,很有可能在传输的过程出现“丢包”问题,毕竟不像淘宝发客服信息还有已读这个功能。
面向数据报
就是UDP传输数据的基本单位是数据报,也就是应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并,你给他100字节的数据,它不会拆成10字节的发送十次,你给多少一次性就发送多少,并且接收方一次也接收这么多。
全双工
就是UDP的socket既能读,也能写,这个概念叫做 全双工。全双工指可以同时进 行信号的双向传输(A→B且B→A)。指A→B的同时B→A,是瞬时同步的。
半双工,就是一次只能传输一个方向的数据,先A→B,A结束了才能B→A。
单工就是单行道,只允许A->B,反之不可行。
(Socket套接字,是由系统提供用于网络通信的技术,是基于TCP/IP协议的网络通信的基本操作单元。)
UDP报文的具体结构:
针对上面的各个部分进行阐述:
源端口,目的端口:即数据发送方从哪个端口来,传到接收方的哪个端口去
UDP报文长度:即这个报文的大小,因为只有十六位,所以能表示的报文大小最多也就是64KB,遇到特别大的数据就需要进行拆包,而这个拆包需要在应用层进行。
数据校验和:因为数据在传输过程可能出现一些不可控因素,导致数据内容与原先不符,这个用于检验数据是否正常。
载荷:需要发送的应用层数据报
欢迎大家订阅我的专栏《每天一个小细节》,每天都能巩固,学习。