udp在connect后会在内核维护源地址到目的地址的数据结构,这样就可以使用send方法传输数据,比sendto少了目的地址的地址的参数,减少了用户空间到内核空间的拷贝
    并且如果有icmp报文返回的话内核也知道该传给哪个用户进程(有个注意点要说明一下,由于UDP和下层协议都是不可靠的协议,所以,不能总是指望能够收到远端回复的ICMP包,例如:中间的一个节点或本机禁掉了ICMP,socket api调用就无法捕获这些错误了。)

    怎么减少UDP的丢包问题?

    一个一次报文发两个包,其中有一个是冗余的

    udp在速度上相比tcp的劣势
    可能一直在发送小包,带宽利用率低,而tcp有negal算法和延时ack,或者太大了,导致ip层分片丢失,导致整个包都丢失了
    无法动态调整包,可能会加剧网络的拥塞,导致整个网络包括自己的效率下降

    udp的可靠性需要重传
    1.定时重传(适用于小宽带低延时传输)
    2.请求重传(适用于大宽带比如文件,比定时重传时延大)