TCP/IP协议卷学习---TCP部分(九 TCP的交互数据流)

1 交互数据流与成块数据流
按照分组数量计算,约有一半的TCP报文段包含成块数据(如FTP、电子邮件和Usenet新闻),另一半则包含交互数据(如telnet和rlogin) 。如果按字节计算,则成块数据与交互数据的比例约为90%和10%。因此TCP处理两种数据的方式也不一样。

2 交互式输入
rlogin的交互式输入是每敲一个字符便进行四次交互,客户端发送键入的字符,服务端响应一个ACK,服务端响应一个回显的字符,客户端再发送一个ACK。telnet则可以在整行的数据键入之后做一次交互。
如图数据字节的确认与数据字节的回显完全可以一起发送。为了合并请求则延迟发送,这种的算法称为Nagle算法。T C P将以最大200 ms 的时延等待是否有数据一起发送。
在这里插入图片描述
3 Nagle算法
在局域网上,这些小分组(被称为微小分组(tinygram))通常不会引起麻烦,因为局域网一般不会出现拥塞。但在广域网上,这些小分组则会增加拥塞出现的可能。一种简单和好的方法就是采用建议的 N a g l e算法(默认开启)。
该算法要求一个 T C P连接上最多只能有一个未被确认的未完成的小分组,在该分组的确认到达之前不能发送其他的小分组。相反,TCP收集这些少量的分组,并在确认到来时以一个分组的方式发出去。该算法的优越之处在于它是自适应的:确认到达得越快,数据也就发送得越快。而在希望减少微小分组数目的低速广域网上,则会发送更少的分组。

4 关闭Nagle算法
在一些特殊场景下需要实时得到响应,因此需要关闭Nagle算法。
SOCKET API用户可以使用TCP_NODELAY选项来关闭Nagle算法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值