UDP 和 TCP 的 socket 分别一般用在什么地方
1个回答
展开全部
1.UDP是面向分组的,分组间有明确的边界;TCP是面向流字符的,数据流间无边界。
UDP发送一个分组,接收方或者接收完全失败,如果成功整个分组都会接收到。对于TCP,发送一串数字(1,2,3,4,5),接收时有可能变成两次(1,2)和(2,4,5),或者变成任意接收方式,协议栈只保证接收顺序正确。
2.UDP属于非连接状态下的不可靠协议,实际运用中很少用到UDP,UDP对于网络资源消耗很少,可以用UDP进行nat穿透。TCP一般用于连接状态下的可靠的协议,比如http,telnet,smtp。
3.TCP是可靠的,通过数据校验保证发送和接收到的数据是一致的;UDP是不可靠的,发送一串数字分组(1,2,3)可能接收到时就变成(1,0,0)了,做UDP连接时需要自己做数据校验。
4.UDP是无序的,发出(1,2,3),有可能按照(1,3,2)的顺序收到,应用程序必须自己做分组排序;TCP数据是有序的,以什么顺序发送的数据,接收时同样会按照此顺序。
5.TCP因为建立连接、释放连接、IP分组校验排序等需要额外工作,速度较UDP慢许多。TCP适合传输数据,UDP适合流媒体。
6.UDP比TCP更容易穿越路由器防火墙。
UDP发送一个分组,接收方或者接收完全失败,如果成功整个分组都会接收到。对于TCP,发送一串数字(1,2,3,4,5),接收时有可能变成两次(1,2)和(2,4,5),或者变成任意接收方式,协议栈只保证接收顺序正确。
2.UDP属于非连接状态下的不可靠协议,实际运用中很少用到UDP,UDP对于网络资源消耗很少,可以用UDP进行nat穿透。TCP一般用于连接状态下的可靠的协议,比如http,telnet,smtp。
3.TCP是可靠的,通过数据校验保证发送和接收到的数据是一致的;UDP是不可靠的,发送一串数字分组(1,2,3)可能接收到时就变成(1,0,0)了,做UDP连接时需要自己做数据校验。
4.UDP是无序的,发出(1,2,3),有可能按照(1,3,2)的顺序收到,应用程序必须自己做分组排序;TCP数据是有序的,以什么顺序发送的数据,接收时同样会按照此顺序。
5.TCP因为建立连接、释放连接、IP分组校验排序等需要额外工作,速度较UDP慢许多。TCP适合传输数据,UDP适合流媒体。
6.UDP比TCP更容易穿越路由器防火墙。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询