分享

[原创]TCP/IP学习笔记

 昵称7324690 2014-04-30
对于TCP/IP一书中TCP部分,我认为关键要掌握3点
1.建链和拆链过程 http://bbs./viewthread.php?tid=332819
2.数据交互规则 http://bbs./viewthread.php?tid=332827
3.流量控制原则 http://bbs./viewthread.php?tid=332828

针对这几点,我进行了简要概括,希望有助于初学者理解

数据交互规则

TCP的数据交互过程,采用的也是发送应答方式。对于数据交互,非常重要的是要了解数据包编号的应用

cooperation.jpg

如上图所示,每个发送包都会有一个自己的编号,而 “包编号+包的数据长度”就是下一个连续包的编号。如上图中第一个包编号是1000,数据长度是512,则下个包的编号是1000+512=1512。而接收端的确认消息中,只包含它期望收到的下一个包的包号,用于告知发送端数据包的接收的进展。当发送端发现确认的包号不是将要发送的包号,则可能发生了丢包,需要进行重发,如下图所示:

lost.jpg

仔细看上图,会发现重发的包与原先的包的大小不同,从100变成了200,这并不是错误,TCP的重发只是从丢包的包号开始重新发数据,但是数据的大小可以不一样,可以包含更多的数据。同样,接收端会忽略比已收到的包号小的数据包,确认消息中,只包含根据已收包得出的最大的期望收包号。也就是说,接收端不需要对每个收到的包单独确认,而只需要确认最大的接收包号就可以完成对之前所有包的确认。而在交互应用时,一个数据包会同时携带本端的确认消息,如下图所示:

Together.jpg


  1.建链和拆链过程 http://bbs./viewthread.php?tid=332819

  3.流量控制原则 http://bbs./viewthread.php?tid=332828

[ 本帖最后由 chris_waity 于 2009-5-20 06:55 编辑 ]

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多