UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!
UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。比如,我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。例如,在默认状态下,一次“ping” *** 作发送4个数据包(如图2所示)。大家可以看到,发送的数据包数量是4包,收到的也是4包(因为对方主机收到后会发回一个确认收到的数据包)。这充分说明了UDP协议是面向非连接的协议,没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效果高;但也正因为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。
tcp协议和udp协议的差别
TCP UDP
是否连接 面向连接 面向非连接
传输可靠性 可靠 不可靠
应用场合 传输大量数据 少量数据
速度 慢 快
参考资料:
1、在连接上,TCP是基于连接的,是面向连接的运输层协议,如打电话之前要拨号建立连接,UDP是无连接的,即发送数据之前不需要建立连接。
2、在对于系统资源的要求上,TCP较多,UDP较少。
3、结构程序方面,TCP的结构较为复杂,而UDP结构较为简单。
4、在模式上TCP为流模式,而UDP则是数据报模式。
5、TCP能保证数据的正确性和顺序性,而UDP可能丢失且不能保证数据的顺序不改变。
TCP与UDP具体编程时的区别
1、sockt的参数两者是不同的,TCP提供可靠地通信传输,UDP则是主要用于广播和细节控制交给应用的通信传输。
2、在进行编程时UDP server不需要调用listen和zccept,而TCP则需要调用。
3、UDP收发数据用sendto/recvfrom函数。
4、TCP:地址信息在connect/accept时确定。
5、UDP:在sendto/recvfrom函数中每次均需指定地址信息爱,且shutdown函数无效。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)