TCP 学习笔记3----TCP的交互数据流

所谓交互数据流就是指通过交互产生的一些数据量很小的分组,比如客户端输出一个命令,服务器会对客户端发送一个ack以及该命令的回显,客户端再发送一个对回显命令的确认,如果这样的分组很多,那么会降低传效率。

1.经受时延的确认

是指TCP在接受到数据时通常不会立即发送ACK,而是会等待一段时间,以便于将ACK与需要沿该方向发送的数据一起发送。大部分会采用200ms的定时器。

2.Nagle算法

如果这种交互式数据发送的比较频繁,可能会在广域网上产生拥塞的可能。Nagle算法就是为了解决这种情况。
该算法要求一个TCP连接上最多只能有一个未被确认的未完成的小分组,在该分组的确认到达之前不能发送其他分组
也就是说必须要等到对端对上一段报文的ACK之后,才能发送下一个报文,否则收到的来自应用层的数据只能被放入缓存区中,等待收到ACK发送。
该算法的优点在于:在高速网络中,确认到达的越快,数据发送地也就越快,在低速网络中,确认到达地慢,分组数目也会减小,这样可以避免拥塞。
有时候我们也可能会需要关闭Nagle算法。比如交互命令必须无时延发送,或者输入某个特殊的功能键之后,会产生多个字符序列,如果开启了Nagle算法,那么必须要等到收到第一个字符的ACK之后,其余的字符才能发送,但服务器可能不会立马发送对该字符的确认,而是出发经受时延确认算法,这样对交互用户而言,会产生明显的时延。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值