TCPIP详解学习笔记(11-13).pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TCP/IP 详解学习笔记 (11)-TCP 交互数据流,成块数据流 目前建立在 TCP 协议上的网络协议特别多,有 telnet ,ssh ,有 ftp ,有 http 等等。这些协 议又可以根据数据吞吐量来大致分成两大类: (1) 交互数据类型,例如 telnet ,ssh ,这种类 型的协议在大多数情况下只是做小流量的数据交换, 比如说按一下键盘, 回显一些文字等等。 (2) 数据成块类型,例如 ftp ,这种类型的协议要求 TCP 能尽量的运载数据,把数据的吞吐 量做到最大,并尽可能的提高效率。针对这两种情况, TCP 给出了两种不同的策略来进行 数据传输。 1.TCP 的交互数据流 对于交互性要求比较高的应用, TCP 给出两个策略来提高发送效率和减低网络负担:( 1 ) 捎带 ACK 。(2)Nagle 算法 (一次尽量多的发数据)。通常,在网络速度很快的情况下,比 如用 lo 接口进行 telnet 通信,当按下字母键并要求回显的时候,客户端和服务器将经历 发 送按键数据 -服务器发送按键数据的 ack - 服务器端发送回显数据 - 客户端发送回显数据 的 ACK 的过程,而其中的数据流量将是 40bit + 41bit+41bit+40bit = 162bit ,如果在广域网 里面,这种小分组的 TCP 流量将会造成很大的网络负担。 1.1. 捎带 ACK 的发送方式 这个策略是说,当主机收到远程主机的 TCP 数据报之后,通常不马上发送 ACK 数据报, 而是等上一个短暂的时间,如果这段时间里面主机还有发送到远程主机的 TCP 数据报,那 么就把这个 ACK 数据报 捎带“ ”着发送出去,把本来两个 TCP 数据报整合成一个发送。一般 的,这个时间是 200ms 。可以明显地看到这个策略可以把 TCP 数据报的利用率提高很多。 1.2.Nagle 算法 上过 bbs 的人应该都会有感受,就是在网络慢的时候发贴,有时键入一串字符串以后,经 过一段时间,客户端 发疯“ ”一样突然回显出很多内容,就好像数据一下子传过来了一样,这 就是 Nagle 算法的作用。 Nagle 算法是说,当主机 A 给主机 B 发送了一个 TCP 数据报并进入等待主机 B 的 ACK 数 据报的状态时, TCP 的输出缓冲区里面只能有一个 TCP 数据报,并且,这个数据报不断地 收集后来的数据,整合成一个大的数据报,等到 B 主机的 ACK 包一到,就把这些数据 一“ 股脑 ”的发送出去。虽然这样的描述有些不准确,但还算形象和易于理解,我们同样可以体 会到这个策略对于低减网络负担的好处。 在编写插口程序的时候,可以通过 TCP_NODELAY 来关闭这个算法。并且,使用这个算法 看情况的, 比如基于 TCP 的 X 窗口协议, 如果处理鼠标事件时还是用这个算法, 那么 延迟“ ” 可就非常大了。 2.TCP 的成块数据流 对于 FTP 这样对于数据吞吐量有较高要求的要求,将总是希望每次尽量多的发送数据到对 方主机, 就算是有点 延迟“ ”也无所谓。 TCP 也提供了一整套的策略来支持这样的需求。 TCP 协议中有 16 个 bit 表示 窗口“ ”的大小,这是这些策略的核心。 2.1. 传输数据时 ACK 的问题 在解释滑动窗口前, 需要看看 ACK 的应答策略, 一般来说, 发送端发送一个 TCP 数据报, 那么接收端就应该发送一个 ACK

文档评论(0)

lh2468lh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档