加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

TCP/IP,你必知必会的十个问题

发布时间:2019-07-05 20:08:04 所属栏目:教程 来源:Android架构
导读:本文清算了一些TCP/IP协议簇中必要必知必会的十大题目,既是口试高频题目,又是措施员必备基本素养。 一、TCP/IP模子 TCP/IP协议模子(Transmission Control Protocol/Internet Protocol),包括了一系列组成互联网基本的收集协议,是Internet的焦点协议。

TCP是全双工模式,这就意味着,当主机1发出FIN报文段时,只是暗示主机1已经没稀有据要发送了,主机1汇报主机2,它的数据已经所有发送完毕了;可是,这个时辰主机1照旧可以接管来自主机2的数据;当主机2返回ACK报文段时,暗示它已经知道主机1没稀有据发送了,可是主机2照旧可以发送数据到主机1的;当主机2也发送了FIN报文段时,这个时辰就暗示主机2也没稀有据要发送了,就会汇报主机1,我也没稀有据要发送了,之后互相就会舒畅的间断这次TCP毗连。

(2) 为什么要守候2MSL?

MSL:报文段最大保留时刻,它是任何报文段被扬弃前在收集内的最长时刻。

缘故起因有二:

  • 担保TCP协议的全双工毗连可以或许靠得住封锁。
  • 担保这次毗连的一再数据段从收集中消散。

第一点:假如主机1直接CLOSED了,那么因为IP协议的不行靠性可能是其余收集缘故起因,导致主机2没有收到主机1最后回覆的ACK。那么主机2就会在超时之后继承发送FIN,此时因为主机1已经CLOSED了,就找不到与重发的FIN对应的毗连。以是,主机1不是直接进入CLOSED,而是要保持TIME_WAIT,当再次收到FIN的时辰,可以或许担保对方收到ACK,最后正确的封锁毗连。

第二点:假如主机1直接CLOSED,然后又再向主机2提倡一个新毗连,我们不能担保这个新毗连与刚封锁的毗连的端标语是差异的。也就是说有也许新毗连和老毗连的端标语是沟通的。一样平常来说不会产生什么题目,可是照旧有非凡环境呈现:假设新毗连和已经封锁的老毗连端标语是一样的,假如前一次毗连的某些数据如故滞留在收集中,这些耽误数据在成立新毗连之后才达到主机2,因为新毗连和老毗连的端标语是一样的,TCP协议就以为谁人耽误的数据是属于新毗连的,这样就和真正的新毗连的数据包产生夹杂了。

以是TCP毗连还要在TIME_WAIT状态守候2倍MSL,这样可以担保本次毗连的全部数据都从收集中消散。

九、TCP流量节制

假如发送方把数据发送得过快,吸取方也许会来不及吸取,这就会造成数据的丢失。所谓流量节制就是让发送方的发送速度不要太快,要让吸取方来得及吸取。

操作滑动窗口机制可以很利便地在TCP毗连上实现对发送方的流量节制。

设A向B发送数据。在毗连成立时,B汇报了A:“我的吸取窗口是 rwnd = 400 ”(这里的 rwnd 暗示 receiver window) 。因此,发送方的发送窗口不能高出吸取方给出的吸取窗口的数值。请留意,TCP的窗口单元是字节,不是报文段。假设每一个报文段为100字节长,而数据报文段序号的初始值设为1。大写ACK暗示首部中简直认位ACK,小写ack暗示确认字段的值ack。

TCP/IP

从图中可以看出,B举办了三次流量节制。第一次把窗口镌汰到 rwnd = 300 ,第二次又减到了 rwnd = 100 ,最后减到 rwnd = 0 ,即不应承发送方再发送数据了。这种使发送方停息发送的状态将一连到主机B从头发出一个新的窗口值为止。B向A发送的三个报文段都配置了 ACK = 1 ,只有在ACK=1时确认号字段才故意义。

TCP为每一个毗连设有一个一连计时器(persistence timer)。只要TCP毗连的一方收到对方的零窗口关照,就启动一连计时器。若一连计时器配置的时刻到期,就发送一个零窗口控测报文段(携1字节的数据),那么收到这个报文段的一方就从头配置一连计时器。

十、TCP拥塞节制

1. 慢开始和拥塞停止

发送方维持一个拥塞窗口 cwnd ( congestion window )的状态变量。拥塞窗口的巨细取决于收集的拥塞水平,而且动态地在变革。发送方让本身的发送窗口便是拥塞窗口。

发送方节制拥塞窗口的原则是:只要收集没有呈现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但只要收集呈现拥塞,拥塞窗口就减小一些,以镌汰注入到收集中的分组数。

(1) 慢开始算法:

当主机开始发送数据时,假如当即所大量数据字节注入到收集,那么就有也许引起收集拥塞,由于此刻并不清晰收集的负荷环境。

因此,较好的要领是 先探测一下,即由小到大逐渐增大发送窗口,也就是说,由小到大逐渐增大拥塞窗口数值。

凡是在方才开始发送报文段时,先把拥塞窗口 cwnd 配置为一个最大报文段MSS的数值。而在每收到一个对新的报文段简直认后,把拥塞窗口增进至多一个MSS的数值。用这样的要领慢慢增大发送方的拥塞窗口 cwnd ,可以使分组注入到收集的速度越发公道。

TCP/IP

每颠末一个传输轮次,拥塞窗口 cwnd 就更加。一个传输轮次所经验的时刻着实就是来回时刻RTT。不外“传输轮次”越发夸大:把拥塞窗口cwnd所应承发送的报文段都持续发送出去,并收到了对已发送的最后一个字节简直认。

其它,慢开始的“慢”并不是指cwnd的增添速度慢,而是指在TCP开始发送报文段时先配置cwnd=1,使得发送方在开始时只发送一个报文段(目标是摸索一下收集的拥塞环境),然后再逐渐增大cwnd。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读