为什么80%的码农都做不了架构师?>>>   

一些有关 TCP通信量的研究如 [Caceres et al. 1991]发现,如果按照分组数量计算,约有一 半的 TCP报文段包含成块数据(如 FTP、电子邮件和 Usenet新闻),另一半则包含交互数据(如Telnet和Rlogin)。如果按字节计算,则成块数据与交互数据的比例约为90%和10%。这是因为成块数据的报文段基本上都是满长度( full-sized)的(通常为 512字节的用户数据),而交互数据则小得多(上述研究表明 Telnet和Rlogin分组中通常约 90%左右的用户数据小于 10个字节)。

19.4   Nagle算法

在前一节我们看到 , 在一个 Rlogin连接上客户一般每次发送一个字节到服务器,这就产生 了一些41字节长的分组:20字节的IP首部、20字节的TCP首部和1个字节的数据。在局域网上, 这些小分组(被称为微小分组( tinygram))通常不会引起麻烦,因为局域网一般不会出现拥 塞。但在广域网上,这些小分组则会增加拥塞出现的可能。一种简单和好的方法就是采用 RFC 896 [Nagle 1984]中所建议的 Nagle算法。

该算法要求一个 TCP连接上最多只能有一个未被确认的未完成的小分组,在该分组的确认到达之前不能发送其他的小分组。相反, TCP收集这些少量的分组,并在确认到来时以一 个分组的方式发出去。该算法的优越之处在于它是自适应的:确认到达得越快,数据也就发送得越快。而在希望减少微小分组数目的低速广域网上,则会发送更少的分组。

19.6   小结

交互数据总是以小于最大报文段长度的分组发送。在 Rlogin中通常只有一个字节从客户发送到服务器。 Telnet允许一次发送一行输入数据,但是目前大多数实现仍然发送一个字节。

对于这些小的报文段,接收方使用经受时延的确认方法来判断确认是否可被推迟发送,以便与回送数据一起发送。这样通常会减少报文段的数目,尤其是对于需要回显用户输入字符的Rlogin会话。

在较慢的广域网环境中,通常使用 Nagle算法来减少这些小报文段的数目。这个算法限制 发送者任何时候只能有一个发送的小报文段未被确认。但我们给出的一个例子也表明有时需 要禁止Nagle算法的功能。

转载于:https://my.oschina.net/bjyb/blog/388574

第十九章 TCP的交互数据流相关推荐

  1. 【TCP/IP详解 卷一:协议】第十九章 TCP的交互数据流

    19.1 引言 前一章我们介绍了TCP连接的建立与释放:三握四挥,以及状态转移图. TCP报文段分为:交互数据,以及成块数据(下一章介绍). 交互数据:例如telnet,ssh,这种类型的协议在大多数 ...

  2. TCP/IP详解--第十九章

     第19章 TCP的交互数据流 19.1    引言   前一章我们介绍了 TCP连接的建立与释放,现在来介绍使用 TCP进行数据传输的有关问 题. 一些有关 TCP通信量的研究如[Cacereset ...

  3. 【正点原子FPGA连载】第三十九章OV7725摄像头RGB-LCD显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  4. 【正点原子FPGA连载】第四十九章OV5640摄像头HDMI灰度显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  5. 【正点原子MP157连载】第三十九章 LCD驱动实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

  6. 鸟哥的Linux私房菜(基础篇)- 第十九章、认识与分析登录文件

    第十九章.认识与分析登录文件 最近升级日期:2009/09/14 当你的 Linux 系统出现不明原因的问题时,很多人都告诉你,你要查阅一下登录文件才能够知道系统出了什么问题了,所以说,了解登录文件是 ...

  7. 类 workbooks 的 open 方法无效_第十九章 Cach 命令大全 OPEN 命令

    第十九章 Caché 命令大全 OPEN 命令 获取输入/输出操作的设备或文件的所有权. 重点 打开设备要指定延迟秒,否则将无限等待. 大纲 OPEN:pc device:(parameters):t ...

  8. c语言头文件格式图片_阿波罗 STM32F767 开发板资料连载第四十九章 图片显示实验...

    1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第四十九章 图片显示实验 ...

  9. 【正点原子FPGA连载】第十九章IP核之双端口RAM实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  10. 鸟哥的Linux私房菜(服务器)- 第十九章、主机名控制者: DNS 服务器

    第十九章.主机名控制者: DNS 服务器 最近更新日期:2011/08/05 我们都知道,在『记忆』的角色上,人脑总是不如计算机的,而人们对文字的印象又比数字高.因此,想要使用纯粹的 TCP/IP 来 ...

最新文章

  1. OJ题目-使用+-|等符号表示数字,进行运算【C语言】
  2. G6 图可视化引擎——入门教程——前言
  3. glibc升级_CentOS7下升级GLIBC2.31
  4. java 根据类名示例化类_Java即时类| minusNanos()方法与示例
  5. 安卓应用安全指南 5.3.1 将内部账户添加到账户管理器 示例代码
  6. python七巧板代码_canvas绘制七巧板
  7. 被遗忘的 Mozilla?
  8. AD放置过孔按TAB键使过孔大小为设置值0.6/0.3
  9. oracle技术之oracle备份恢复概述
  10. cacti中个别流量图超过80M不显示解决办法
  11. Python 爬虫实例(10)—— 四行代码实现刷 博客园 阅读数量
  12. numpy数组随机抽取
  13. OpenResty 火焰图工具
  14. Spark 3.0 - 6.ML 自定义 Transformer 踩坑大全
  15. ubuntu idea 卸载
  16. 最新kali之hashcat
  17. 今日金融词汇---年报,是什么?
  18. 我的Fitbit Force手环使用体验
  19. 为什么SHL和SAL相同
  20. openoffice和libreoffice启动和下载

热门文章

  1. combox控件触发事件_Simulink(三角函数和代数约束模块)+Matlabgui(Gui实例)+Stateflow数据与事件(三)...
  2. nacos动态配置数据源_Spring Cloud 系列之 Alibaba Nacos 配置中心
  3. Scala学习04——Scala方法与函数
  4. go实现json格式文件的输出---小示例
  5. nginx 超时设置_Nginx最详细的反向代理配置步骤,拿去不谢
  6. python批量命名文件_用python实现批量重命名文件的代码
  7. 2019测试指南-web应用程序安全测试(二)识别应用程序入口点
  8. Car2go 的前端框架选择
  9. 2016年零售业CIO的七大革命性挑战
  10. Samba配置文件常用参数详解