1.数据包想要在互联网上传输要符合“互联网协议”的标准,简称IP。就像我们寄信件一样,填写的地址要符合一定的规则,邮编也有相应的含义,信件的大小重量都有其限制。IP是非常底层的协议。
2.用户数据报协议:“UDP”,UDP项中有两个数据项比较重要,一个是端口号,一个是校验和,如下图1所示,比如Skype申请的端口号是3478,那么这个数据就是发送给目标计算机的Skype应用程序的。校验和是将后面的数据包求和,比如数据发送方计算数据包的和为20,就将checksum记为20,当接受数据方收到这个数据包时,会计算数据部分的和,如果与checksum相等表示数据传输无误,接受该项数据,如果不相等,表明数据有误,则丢弃该项数据。
这里有必要提一下,UDP是不提供数据恢复/数据重发的机制的;UDP也无法得知数据包是否丢失;但是有些程序对这些不在意,比如视频通话时,有时我们看到的图像出现卡顿现象,其实就是由于数据在传输过程中丢失了,还有比如一些对时间要求比较高的程序,如在线射击游戏等等,这些用UDP传输数据就比较合适。UDP的优点是简单又快。
图1
3.UDP是无连接的,面向报文的,发送数据之前不需要建立连接,不使用拥塞控制,网络堵了,UDP是不会管的。支持一对一、一对多、多对一和多对多的交互通信。
UDP的首部只有8个字节,【源端口】、【目的端口】、【包含首部的数据长度】,【校验和】分别占2个字节。
3.总的来说,IP负责把数据包传送到正确的计算机;UDP的端口号负责把数据包传送给正确的程序。