1.缓冲区
udp并没有实际的缓冲区,所以只要设置的udp缓冲区大小大于发送缓冲区低水位就一直可写,udp调用write成功返回表示所写的数据报已被加入链路层的输出队列。如果该队列没有足够空间,内核通常返回ENOBUFS错误,或根本不返回错误。当udp写入一个大于发送缓冲区大小的数据时,会返回EMSGSIZE错误
udp没有实际的发送缓冲区,但是有接收缓冲区
udp没有流量控制,当发送端发送数据快于接收端时,当接收端接收缓冲区满后,后面再发送的数据都会被丢弃
如果主机是多宿的(多网卡),那么udp客户端的临时端口在第一次调用sendto时被内核选定,并不能改变,而客户的ip地址却可以改变,比如一条报文从ip1的网卡发送,另一条报文从ip2的网卡发送
2.发送

3.connect


4.性能

本文深入探讨了UDP协议的特性,包括其没有实际的发送缓冲区但有接收缓冲区,以及由此导致的数据丢失问题。当发送速度超过接收能力时,超出的UDP数据会被丢弃。此外,还提到了多宿主机环境下UDP客户端的端口选择与IP地址变化的灵活性。
——udp基本编程&spm=1001.2101.3001.5002&articleId=115308498&d=1&t=3&u=67ac298c120d423585dc8657ef2ff8d5)
974

被折叠的 条评论
为什么被折叠?



