- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCP基础知识培训 TCP头格式 StreamIndex ?TCP协议解读? TCP通信最重要的特征是:有序(ordering)和可靠(reliable)。有序是通过将文本流分段并编号实现的。可靠是通过ACK回复和重复发送(retransmission)实现的。TCP(Transportation Control Protocol)协议与IP协议是一同产生的。事实上,两者最初是一个协议,后来才被分拆成网络层的IP和传输层的TCP。TCP传输是传输层的协议,实现的是端口到端口的通信。 TCP连接的建立 在TCP协议与流通信中讨论的TCP传输需要一个前提:TCP连接已经建立。然而,TCP连接从无到有需要一个建立连接的过程。建立连接的最重要目是让连接的双方交换初始序号(ISN, Initial Sequence Number)。根据TCP协议的规定,文本流的第一个片段的序号不能是确定的数字(比如说1)。连接的双方各自随机生成自己的ISN,然后再利用的一定方式让对方了解。这样的规定是出于TCP连接安全考虑:如果以一个确定的数字作为初始的TCP序号,那么其他人很容易猜出接下来的序列号,并按照正确的序号发送“伪装”的TCP片段,以插入到文本流中。 TCP链接的建立 根据tcp的规则,接收到ISN的一方需要回复ACK,所以共计有四片信息在建立过程中传输,但是为什么TCP连接过程只有三次呢?如下展示:是因为server将发送SYN和回复ACK合并到一个TCP片段中。 连接的正常终结 我们可以看到,连接终结的过程中,连接双方也交换了四片信息(两个FIN和两个ACK)。在终结连接的过程中,TCP并没有合并FIN与ACK片段。原因是TCP连接允许单向关闭(half-close)。 TCP链接建立和终止的例子 带宽时延积 Capacity(bit)=bandwith(b/s)*round-trip time(s) 这个数值依赖于网络速率和两端的RTT,一般会有比较大的变动。通过这个公式可以看出如果增大带宽或者是RTT都可以增大管道的容量,但是如果管道的容量大于了窗口的大小就可能会出现拥塞的现象。 如何计算理论值: (tcp发送窗口(字节)*8 )/ TCP往返时间(RTT秒)/1000000 (Mbps)=实际的流量 如何定位窗口原因导致流量的问题 (tcp接收窗口(字节)*8 )/ TCP往返时间(RTT秒)/1000000 (Mbps)=估算的理论流量 如何设置filezilla接收窗口大小: TCP拥塞控制 我们先来说明堵塞是如何探测的。在TCP重新发送中,我们已经总结了两种推测TCP片段丢失的方法:ACK超时和重复ACK。一旦发送方认为TCP片段丢失,则认为网络中出现堵塞。另一方面,TCP发送方是如何控制发送速率呢?TCP协议通过控制滑窗(sliding window)大小来控制发送速率。在TCP滑窗管理中,我们已经见到了一个窗口限制,就是advertised window size,以实现TCP流量控制。TCP还会维护一个congestion window size,以根据网络状况来调整滑窗大小。真实滑窗大小取这两个滑窗限制的最小值,从而同时满足两个限制 (流量控制和堵塞控制)。 TCP拥塞控制 拥塞窗口总是处于两种状态的一个。慢起动和拥塞避免。拥塞窗口从慢启动的状态开始。慢启动的特点是初始速率低,但速率不断倍增。每次进入到慢启动状态时(包括超时和由于重复ack导致窗口收缩到最小值的时候),cwnd都需要重置为初始值1。发送方每接收到一个正确的ACK,就会将拥塞窗口增加1,从而实现速率的倍增(由于累计ACK,速率增长可能会小于倍增)。当拥塞窗口的大小达到某个阈值ssthresh(Slow?Start?Threshold,至少为2个报文段的大小)时,拥塞窗口进入到拥塞避免状态。发送速率会继续增长。发送方在每个窗口所有片段成功传输后,将窗口尺寸增加1(实际上就是每个RTT增加1,也可以理解为每收到一个ack就增加1/cwnd大小)。所以在拥塞避免下,cwnd线性增长,增长速率慢。如果在拥塞避免下有片段丢失,重新回到慢启动状态,并将ssthresh更新为cwnd的一半。 超时重传 当发送方送出一个TCP片段后,将开始计时,等待该TCP片段的ACK回复。如果接收方正确接收到符合次序的片段,接收方会利用ACK片段回复发送方。发送方得到ACK回复后,继续移动窗口,发送接下来的TCP片段。如果直到计时完成,发送方还是没有收到ACK回复,那么发送方推断之前发送的TCP片段丢失,因此重新发送之前的TCP片段。 一旦发生超时重传的现象,发送窗口就会变为1,即流量掉0. 快速重传 TCP协议规定,当接收方收到乱序片段的时候,需要重复发送ACK
文档评论(0)