TCP UDP 区别总结

TCP 与UDP的区别:

1. 基于连接与无连接(TCP有三次握手和四次挥手)

2. 流模式与数据报模式(TCP将数据以流的形式输出到内核消息队列中,接收端从内核消息队列中以流的方式从消息队列中取数据。UDP只能接收整个包)

3. 可靠的传输与不可靠的传输(TCP有流量控制和拥塞控制)

4. TCP消耗的系统资源较大,UDP对系统资源消耗较小。


什么时候用TCP,什么时候用UDP:

在大多数的时候,选择TCP总是正确的,因为TCP提供了可靠的传输,并且确保报文的接收顺序与传输顺序一致。但是当并发量增加的时候,TCP的小延迟会带来严重问题。

TCP为了增加吞吐率,Nagle算法允许一个时刻只有一个未确认的数据报,在ACK回来之前收集小的数据包合并成一个大的一起发送。这样必然有延迟,这个延迟可以通过NO_DELAY参数来设定解决。但是还有一个问题,如果出现丢包,就必须重传,接收端发现一个数据段未到来,而后续数据段已经到来,之后到来的数据包只能在缓冲区中,不能直接供应用程序读取,这样还是会造成延迟。

因此,对于延迟很敏感的并且一定程度上容忍丢包的应用程序,可以用UDP实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值