Netty 之 ChannelOption的TCP_NODELAY属性设置

在有些网络通信的场景下,要求低延迟,这样就需要我们设置一些TCP的链接属性:


在客户端我们需要这样设置:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. bootstap.option(ChannelOption.TCP_NODELAY, true);  

在服务器端是在worker的Channel端设置属性,

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. boot.childOption(ChannelOption.TCP_NODELAY, true);  

设置这样做好的好处就是禁用nagle算法


Nagle算法试图减少TCP包的数量和结构性开销, 将多个较小的包组合成较大的包进行发送.但这不是重点, 关键是这个算法受TCP延迟确认影响, 会导致相继两次向连接发送请求包,
读数据时会有一个最多达500毫秒的延时.



TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认。为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据。(一个连接会设置MSS参数,因此,TCP/IP希望每次都能够以MSS尺寸的数据块来发送数据)。
Nagle算法就是为了尽可能发送大块数据,避免网络中充斥着许多小数据块。


详细可以参考:http://blog.csdn.net/historyasamirror/article/details/6423235

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值