一 先热个身
什么是运输层?从网络层来看,ip数据报的首部封装了两个对应主机的ip地址,也即是,通过网络层,我们可以知道是哪两个主机在发生通讯。但是在我们实际的生活中,并不是两个主机发生了通讯,我们更关注的应该是哪两个软件发生了通讯,更具体点,是哪两个进程发生了通讯。这个时候,运输层的作用就显示出来了。
运输层提供了应用程序间的逻辑通讯。运输层有两个重要的功能,也即是复用和分用。复用指的是,不同的应用程序可以通过同一个传输协议传输数据;分用指的是数据可以正确的发送到目的进程中。
二 言归正传
1 UDP的特点:
(1)UDP是无连接的。在发送数据前,不需要进行连接,发送数据结束后,不需要进行释放,所以udp的传输速度很快
(2)UDP尽最大的努力交付,但不保证可靠交付。
(3)UDP是面向报文的。UDP一次性交付一个完整的报文。发送方在接到应用层的报文后,就添加首部,然后就交付给IP层。不对原有报文进行处理;接收方在接到网络层的报文后,去除首部后就交给应用进程。在这个过程中我们可以看出,如果报文太长,ip层可能需要进行分片,会影响ip层的传输效率,而如果报文太短,那么加上首部后,会浪费传输资源,影响效率。
2 UDP的首部
udp的首部是有八个字节,四个字段,分别是:
(1)源端口:如果需要接收方反馈,并且受到回应的话,那么就需要制定,否则就传入0;
(2)目的端口:接收方的端口,在接收方传输层交付的时候需要用到,必须要传
(3)长度:UDP报文的长度,最小是8,也即是只有首部的报文;
(4)校验和:用于检测UDP用户数据在传输过程中是否出错,如果出错就丢弃。