只是自说自话的学习笔记,各路看官绕路~
UDP协议:
1、udp协议只是在ip协议的基础之上增加了分用和复用功能以及差错检测,主要特点有:
- udp是面向无连接的,也就是说udp协议在发送数据的时候不需要建立连接,因此减少了开销。
- udp使用尽最大努力交付,即不保证可靠交付。
- udp是面向报文的,udp有个特性,对于应用层交下来的数据会原封不动的交付给ip层, 也就是说,udp原封不动的发送数据,这点和tcp有很大的区别,tcp有个滑动窗口机制,会进行流量控制,udp是不会的,这样数据的大小就交由应用层的应用控制了,可是并不是说这样性能就高了,ip层是有进行分片处理的,这样如果udp的数据包大的话ip层这里就会做大量的工作去分层了,而如果小的话又会导致多次发送,所以如果使用udp协议,数据包的大小要做好一定的衡量。
- udp没有拥塞控制,tcp的拥塞控制指的是在网络出现阻塞的时候tcp的处理机制,包括:慢开始、拥塞避开、快重传、快恢复。具体的算法没有研究太多,只是知道而已,==,突然感觉还是得花时间看看这几个机制才行,由于udp没有拥塞控制,所以会导致一种情况,那就是无论网络差还是好,udp都是照发不误,这样就会导致数据包丢失的情况出现,这种机制对于一些要求网络以恒定的速率发送数据包的应用很实用,比如实时视频会议等,虽然会造成数据包丢失,不过并不影响太大的效果。
- udp的首部开销很小,这个可以从功能上看出来,tcp又是保证稳定又是建立连接又是流量控制的,头部肯定得多发几个字段了,而udp只需要8个字节,比tcp少了20个字节。
2、udp的头部占据8个字节,4个字段,那么udp的头部字段又是什么呢? - 源端口 当需要对方回信时使用,不用时为0。
- 目的端口 在交付报文时使用,因为udp的数据包最后到达的是目的机器应用层上的应用,如果端口不存在则目的机器上icmp会返回端口不可达的信息。
- 长度 udp数据包的大小,最小为8啦,即只有头部。
- 校验和 用户检测udp数据包传送过程中是否出错,如果出错则丢弃。