TCP UDP 区别总结
2014-09-28 15:21
330 查看
TCP 与UDP的区别:
1. 基于连接与无连接(TCP有三次握手和四次挥手)
2. 流模式与数据报模式(TCP将数据以流的形式输出到内核消息队列中,接收端从内核消息队列中以流的方式从消息队列中取数据。UDP只能接收整个包)
3. 可靠的传输与不可靠的传输(TCP有流量控制和拥塞控制)
4. TCP消耗的系统资源较大,UDP对系统资源消耗较小。
什么时候用TCP,什么时候用UDP:
在大多数的时候,选择TCP总是正确的,因为TCP提供了可靠的传输,并且确保报文的接收顺序与传输顺序一致。但是当并发量增加的时候,TCP的小延迟会带来严重问题。
TCP为了增加吞吐率,Nagle算法允许一个时刻只有一个未确认的数据报,在ACK回来之前收集小的数据包合并成一个大的一起发送。这样必然有延迟,这个延迟可以通过NO_DELAY参数来设定解决。但是还有一个问题,如果出现丢包,就必须重传,接收端发现一个数据段未到来,而后续数据段已经到来,之后到来的数据包只能在缓冲区中,不能直接供应用程序读取,这样还是会造成延迟。
因此,对于延迟很敏感的并且一定程度上容忍丢包的应用程序,可以用UDP实现。
1. 基于连接与无连接(TCP有三次握手和四次挥手)
2. 流模式与数据报模式(TCP将数据以流的形式输出到内核消息队列中,接收端从内核消息队列中以流的方式从消息队列中取数据。UDP只能接收整个包)
3. 可靠的传输与不可靠的传输(TCP有流量控制和拥塞控制)
4. TCP消耗的系统资源较大,UDP对系统资源消耗较小。
什么时候用TCP,什么时候用UDP:
在大多数的时候,选择TCP总是正确的,因为TCP提供了可靠的传输,并且确保报文的接收顺序与传输顺序一致。但是当并发量增加的时候,TCP的小延迟会带来严重问题。
TCP为了增加吞吐率,Nagle算法允许一个时刻只有一个未确认的数据报,在ACK回来之前收集小的数据包合并成一个大的一起发送。这样必然有延迟,这个延迟可以通过NO_DELAY参数来设定解决。但是还有一个问题,如果出现丢包,就必须重传,接收端发现一个数据段未到来,而后续数据段已经到来,之后到来的数据包只能在缓冲区中,不能直接供应用程序读取,这样还是会造成延迟。
因此,对于延迟很敏感的并且一定程度上容忍丢包的应用程序,可以用UDP实现。
相关文章推荐
- TCP、UDP区别以及TCP传输原理、拥塞避免、连接建立、连接释放总结
- TCP与 UDP区别及使用场景总结
- [网络编程] TCP、UDP区别以及TCP传输原理、拥塞避免、连接建立、连接释放总结
- TCP、UDP区别以及TCP传输原理、拥塞避免、连接建立、连接释放总结
- TCP与UDP区别总结
- TCP、UDP区别以及TCP传输原理、拥塞避免、连接建立、连接释放总结
- 2017年1月22日学习总结----TCP和UDP的区别
- TCP与UDP区别总结
- TCP与UDP的区别总结
- Socket通信——TCP、UDP区别总结、使用场景
- TCP、UDP区别以及TCP传输原理、拥塞避免、连接建立、连接释放总结
- TCP、UDP区别以及TCP传输原理、拥塞避免、连接建立、连接释放总结
- TCP与UDP区别总结
- TCP与UDP的区别
- TCP和UDP的区别
- TCP和UDP的区别
- TCP与UDP区别
- tcp与udp的区别
- tcp和udp的区别
- socket与TcpListener/TcpClient/UdpClient 的区别及联系