UDP:面向数据报,数据有多大,则直接打包多大的数据
udp不提供可靠性
udp不提供可靠性:它把应用程序传给IP层的数据发送出去,但是并不保证它们是否能达到目的地
应用程序必须关心IP数据包的长度,如果超过了网络的MTU,那么要对IP数据报进行分片
UDP的封装:
UDP首部:
1.端口号占用2个字节
端口号代表着发送进程和接收进程,也就是IP的门牌号
**2.**TCP端口和udp端口是相互独立的,但是也有可能选择相同的端口
**3.**udp长度字段指的是udp首部和udp数据的字节长度,该字段的最小值为8个字节
**4.**udp的校验和不是必须的,tcp的校验和是必须的
ip的校验和和udp的校验区别:udp的校验和可以为奇数,ip的校验和必须是偶数的,必须是16的倍数,只是为了计算用,并不发送填充的
udp在发送时,是不会跟接收端有任何通知,直接发送出去,也不需要接收端的确认
举例:网络视频和实时语音
网络视频如果使用TCP,如果网络有延迟,有几帧数据丢了,tcp则会重传,这样就会导致画面卡了后,又回到上一帧的画面,或者花屏的画面
而udp的话,如果出现数据包丢失,则不会重传,就有可能出现黑屏的情况
tftp简单理解:发一段后,等待确认,确认后在发一段在等待确认
IP分片
1.在ip封包时,会比较出去的MTU与数据报长度进行比较
最大UDP数据包长度
IP数据包的最大长度为65535字节
ICMP源站抑制:
TCP:面向数据流,TCP有一个最小数据包和最大数据包,也就是如果你发送的数据包很大,tcp则会拆小发送,如果很小,则会打包发送