udp使用connect建立连接与普通udp连接区别

    UDP中connect操作与TCP中connect操作有着本质区别.TCP中调用connect会引起三次握手,client与server建立连结.UDP中调用connect内核仅仅把对端ip&port记录下来

使用connect建立的udp连接相比于普通udp连接有两个优势:

一: 提高发送效率

1.在普通udp连接上发送两个报文,在内核操作如下:

        a) 建立连接;b)发送报文;c)断开连接;d)建立连接;e)发送第二个报文;f)断开连接

2.connect udp发送两个报文,内核操作如下:

        a)建立连接;b)发送第一个报文;c)发送第二个报文;d)断开连接

二:在高并发服务中可以增加系统稳定性

    假设A 通过非connect的UDP与server B,C通信.B,C提供相同服务.为了负载均衡,我们让A与B,C交替通信.    A与 B通信IPa:PORTa <----> IPb:PORTb       A与 C通信IPa:PORTa' <---->IPc:PORTc 
假设PORTa与 PORTa'相同了(在大并发情况下会发生这种情况),那么就有可能出现A等待B的报文,却收到了C的报文.导致收报错误.解决方法内就是采用connect的UDP通信方式.在A中创建两个udp,然后分别connect到B,C.

你可能感兴趣的:(udp使用connect建立连接与普通udp连接区别)