最后更新:2021-12-28 11:22:52 手机定位技术交流文章
hi,大家好,我是康师傅,今天,我想和你谈谈 互联网协议的基本要素。讨论它?因为我快要失去理智了今年它也不会消失可能有许多学生开始计划明年的面试。因此,不管你是在前面,后面,还是客户,我相信网络协议审查应该是向前迈出的重要一步。
我们经常谈论的 https. tcp 是互联网协议的基础。http 是网络分层模式中的应用程序层协议 。Tcp是传输层的一个协议。在现实中,存在着诸如smtp、ftp等协议。在传输层,有一个UTP协议。当然,我们今天的注意力集中在 https和tcp上。这篇文章是我们在http://tcp.com/上特别报导的部分内容。因此,让我们从 tcp 和 ip 开始。
某一天,你和你的同事 正在通过微型电子邮件沟通。我不确定你有没有考虑过你的电脑上有很多软件CC你为什么通过微信将信息适当地传送给彼此的微信?而不是将它转交其他申请?同时再说夸大一点,你为什么要发邮件到同事的电脑上?不是在隔壁老国王的电脑上这是一个荒谬的问题 考虑。这些是我们今天正在讨论的TCP和IP协议。首先,每个人都必须了解IP。每个电脑都有IP地址因此,我们的信息可能会发送给我们的雇员,而不是隔壁的国王。我们知道我们同事机器的IP地址这就是知识产权水平的成就。

当我发现你同事的机器 使用IP的时候也查查你的同事是否使用微信软件电脑上软件这么多,每个人都有相同的IP地址这可怎么办?答案是端口,TCP正是这样做的。随着数据跨过TCP层,目标港口将加入我们微托拉斯进程已经占用的港口。然后,当数据包到达 你同事的机器,在TCP层会拆包,当软件未安装时,目标端口号会被发现。数据随后发送到我们的微信处理中。哦,这些资料将转至电子邮件处理程序。

事实上,TCP水平不仅包括目标的港口号,而且还包括发送者的港口号。 IP水平不仅包括目的地IP,而且还包括发送者的IP。IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP+IP连接可以由四片决定。
我们以前把TCP协议称为一种..基于字节流、面向连接的、可靠的在转让层通信议定书的定义中,必须考虑三个抽象的描述:
根据字节流,你什么意思?
你说连接是什么意思?
如何算可靠?
先从最基本的调查开始字节流动是《TCP议定书》的基础。这是什么意思呢?举个例子,当我们把100字节写进插座时会分很多情况的,目前,将总共向内核缓冲区运送1 00字节。然而,尚不清楚这1 00字节是如何使用网络卡传送的。可以一劳永逸地这样做。也可能分成2次,这是300,700,300,700,300,300,700,300,700,700,300,300,700,300,700,300,700,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,700,300,300,700,700,700,300,300,700,700,700,700,300,700,700,700,300,700,700,300,700,700,700,300,700,700,300,700,700,700,300,700,700,700,300,300,700,300,300,700,700,300,700,700,700,700,300,700,700,700,300,700,700,700,700,700,700,700,300,300,300,700,700,700,700,700,700,300,300,300,300,300,300,700,700,300,300,300,300,700,700,300,300,300,300,300,300,300,300,700,300,300,300,300,300,300,300,300,300,300,300,700,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,700,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,, 500, 500, 500, 500,, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,, 500,, 500, 500, 500, 500, 500, 500,, 500, 500, 500, 500, 500, 500,, 500, 500, 500,, 500,, 500, 500, 500, 500, 500, 500, 500,, 500, 500, 500, 500, 500,但是不管怎么分,每个字节都有独特的序列号

这是由于诸如MTU、发送窗口的大小和压缩窗口的大小等变量造成的,后者是路径的最大传输单位(这些想法将在下文详述)。just follow me),现在我们来谈谈可信赖性。由于数据包已经进入TCP层,与传播的数据相似接收这些分散的数据包的顺序可能不同。但是,当内核得到一个乱七八糟的数据包时,它不会直接发送到顶级应用程序( https. org, etc.), 但不会直接发送到顶级应用程序( https. org, etc.) 。 )必须按数据包的顺序将数据组合在一起。该组装取决于序号。这是一个基于字节流的包件。我们怎样才能知道这个数据包的序列号是什么?序列号其实是这个袋子数据的第一个字节

现在让我们继续第二个问题:以连通为重点。对没错,让我们也改写古老的格言:三节握手,四节挥手。三个握手和四个波浪也是可靠性的指标。因为需要可靠,因此,必须建立这种联系,以确保双方满意。也就是三次握手。让我们看看我们如何 与三握手。同时,让我们看看为什么它做了三次。做两次还是十次呢?

当你注意到上面的图表上 有很多东西,比如环,后, 麻袋,是,等等。先不要害怕,我们一一解释下,然后你就会明白了,上面我们也说到了,因为需要可靠,我们抵达后无法尽快提交数据万一对方不在线,这不像没有信息。因此,握手的目的是要确保双方的现状令人满意。我们怎样才能分辨这种握手交流与正常数据传输之间的区别?这是SYN包的功能。SYN是一个与双方通信有关的信号。如果它包含在包件中,有人提到,来文的目的是握手。
3个握手SYN袋后,他们应该交换开始的序列号序列,这是因为以字节为基础的TCP每个字节都有订购的编号。握手之后 相互确认对方的原始序列号下一个字节都以初始序号为基础,并加起来。ISN 函数生成第一个序列号 。这极有可能产生随机数字。应当注意的是,其价值并非从零开始。当一端提供其第一个序列号时,另一端收到该序列号。你可以看到 当你从另一边拿到支票的时候 这将是一个美好的时光其中一人的价值等于他自己寄来的序列号加一个
因此,在我们理解了几个术语的概念和含义之后, 让我们来看看三个握手过程。
首先,发件人和收件人一开始都没有联系任何人,没有重叠,没有协议,门被关上。close状态。
第一次:Sendendc 发送带有初始序号ISN(c)的SYN软件包,然后发送Sendendc 出口。SYN-SENT状态,这时说明发件人c 能够包装。
第二次从发件人c收到SYN包后,这是握手 我知道是握手因此,它又发送了一个SYN包,包括最初的ISN序号。发件人的垃圾也是一样 发件人的垃圾也是一样 发件人的垃圾也是一样价值为 ISN(c)+1 的 Jack 值 。这个ISN(c)+1实际上意指"送老家伙"我收到你的初始序列号下次通信的话,ISN(c)+1是软件包中的第一个项目。接收器现在处于SYN-RCVD状态。第二次握手证实了这一点。货物可在接收端接收和交付。。
第三次当发件人c -ac收到杰克时 你必须回到接收人那里 让接收人知道发送端卡还能够收集包件。,发送者然后返回 Jack=ISN+1。这与前面的句子一样: "已收留的哥哥"我还获得了你的第一个序列号下次通信的话,您数据包的序列号从 ISN+1 开始 。至此三次握手完毕,双方的状态都是ESTABLISHED。
我们的结论是,由于TCP是一项可靠的传输层议定书,握手的主要功能是确定双方是在同一页上的。收发包的能力,根据上述说法,三次同样美妙。如果少了,首先,不能保证从一端接收和交付一揽子计划的能力。例如,如果启动器不发送最后一个,游戏就结束了。因此,接收人不知道它是否收到了数据包。当然,三次以上是正常的。但是没必要,自从双方局势已经三次公开以来。
不知道你发现没有,为了确定联系,双方摄取了一个序列号。在此避免使用序列号是否可行?答案不可以,必须要消耗一个,记住: 无需验证此节目前不接受序列号 。比如ack,如果消费TCP的序列号,您就可以使用TCP。一定需要对端确认。如果上一款未获确认,将重复重复,直到达到指定的次数。信息像 SYN 软件包一样, 必须验证 。
在三次握手之后,让我们看看四个波进程和四个波进程, 当双方处于某种需要关注的状态时, 以及访谈站点。然而,让我们看看为什么需要我们四个波, 以及我们对每个波做了什么。

为了清楚起见,主动断开被称为“A”,而被动断开被称为“B”。
第一次突然想要终止连接 。不想玩了,因此,它发送了一个FIN袋。FIN袋和上面看到的SYN袋截然相反。这是A. A. 第一次试图切断联系还要求它确定FIN软件包的终点。因此,FIN袋要求有一个序列号。发送完FIN包后,A处于FIN_WAIT1状态。
第二次当B收到FIN的袋子时, 他对自己说, “这个孩子不想玩,忘了它。” 所以B对FIN的袋子反应了, 上面写着,“也许相反,我知道。” 然后他回到了自己的位置。CLOSE_WAIT状态,A获得一对一角,在同一时间处于同一位置。FIN_WAIT2状态。
第三次发件人: B如果有任何未经处理的数据,我们必须把未经同意的数据归还给正确的方面。当数据发完之后,就算是A也没什么区别然后B会发送一个FIN包。意思是“对面的,数据都发完了,你就断开吧”,此时B会处于LAST_ACK状态。
第四次FIN袋需要确认,所以当A收到时,他立即用ACK回应,两端断开。CLOSED状态,同时A处于TIME_WAIT在 2MSL 后, 状态立即断开 。
能不能三次挥手?
4次观察过程波是相当正常的。那问题来了,三次行不行?在极少数情况下,你可以做三次。例如,数据中不存在被动断开器不必处理的DATA组件。所以ACK和FIN可以问过去的事如果存在DATA,如果你合并了ACK DATA和FIN 会怎么样?处理DATA最初需要时间。因此,在DATA完成后,发送ACK。这可能导致不相干的人被捕为时过晚。而重发FIN包。
为什么分离的最后一步需要处于时代世界状态?这到底意味着什么?
Time_WAIT是活跃的关闭党最新进入的状态。时间设定在2MSL这是故事中最广泛的生命周期如果一个数据包超过MSL后未被网络另一端接收,则典型的做法是删除该数据包。因此,为什么你需要 2MSL 用于主动断开器?
MSL有效保证了最后的ACK能够到达右侧; 但是,如果ACK在 1MSL 之后还没有到达右侧呢?
如果主动断开的 ACK 未到达右侧, 则导致断开的侧面重新发送 FIN 软件包, 而另一个 MSL 则保证再传送的 FIN 软件包到达右侧 。

因此2MSL = 最大生存时间(MSL) 到 ACK 信件 + 最大生存时间(MSL) 到 FIN 信件。
为什么FIN必须使用序列号?
上述地图上没有提到序列号。FIN包和SYN包一样这也是一个序列号使用的问题。如果要问为什么?只要回答,"既然FIN的包裹 需要从最后确认,"确保那些需要确认的物品 是那些消耗序列号的物品"你会明白我的意思 当我们看图表。

如果当前发件人的序列号为100和100字节数据已经发送,下一个轨道应为200(199+1)。

由于100字节已经传送,FIN软件包突然发送,因此FIN软件包应该是200字节。
如果FIN软件包不需要序列号,因此,相关的ACK也应该是200。而不是201,额,这就尴尬了,这是 FIN 软件包或100 字节数据的最后的 ACK 。 ACK 吗?试图辨别差别是毫无意义的
因此,SYN软件包和FIN软件包必须使用序号才能与普通数据区分开来。
MTU和MMS是我的哥哥
从前文可以看出,TCP的数据传输是以字节为基础的。数据区块将合并为一个条目,并发送。员额的规模由各种因素决定。例如, MTU 路径、 传输窗口的大小、 接收窗口的大小等等 。让我们来看看这些元素是什么。让我们先看看MTU的这个方法在网络分层中,我们已经知道最终数据是通过链层传送的。实际上,禁止进入这一链层。这称为MTU。这个MTU要多少钱?一般是1500,你可以通过netstat -i在网络卡上验证 MTU 。
请记住,这只是一个活的MTU。真实的网络中,当您的数据从 PC 网络卡中传输时,它可能需要通过一系列实际硬件装置,如路由器、开关等。每个硬件都有自己的MTU在长长的线上路线上下列哪些是关键的MTU?答案是最小的那个,其中最小的被称为MTU路径。这就像木桶效应,最短的板块决定桶容量。当数据包超过MTU时在发送之前,将分门别类地放在适当的网页袋中。IP楼层链层的数据集被发现尺寸受到限制。如知识产权水平所述,“由于链级规模有限,以前,大数据集的发布也会停止。还不如我自己做,在将数据传送到链接之前,兄弟,我只是做它要求我做的事 做它要求我做的事就不麻烦它了。" 在IP楼层的数据部分完成后,TCP层不高兴了,"弄啥嘞,弄啥嘞,我在他们的上层,数据仍然处于实施伙伴一级,仍可通过因特网查阅。我颜面何存!",因此,TCP层的用意是防止将数据传送到分隔符上。数据将分解成碎片并发送到 IP 层 。MSS(最大安全大小)是TCP中可以分割的最大部分。这个监控系统有什么价值?其实它的值是这个:
IP的负责人和TCP的负责人 都占了20个字节在MTU等于1500的情况下,因此,最低生活保障标准为1500-20-20=1460。技术协商组已主动以这种方式将数据分开。这就是如何对知识产权层和链层作出有利的评价。"大哥"是IP层"大哥的大哥的大哥"是连锁店里最顶尖的
我就只吃这些,把窗户开着
在插座通信的情况下,据我们所知,发送者有发件人的缓冲带。在接收端,接收方有一个缓冲区。数据由发件人写入套接字缓冲区。缓冲区填补时或一定时间后的情况不变。缓冲区数据将通过部分因特网卡提供。当数据到达目的地时,不仅仅是等待彼此处理此事。这样效率会很低,必须将数据存放在缓冲区。这是我们得到的缓冲区。应用程序然后无限期地从接收缓冲地带提取数据。缓冲区发挥缓冲作用。很合理,如果发件人发的太快相反,接收人的申请过于缓慢,无法处理。因此,接收端的缓冲区迅速填满。这时候该怎么办?直接发肯定不行,我们必须指示传送者不要发送它。这把我们引向TCP的“滑落窗口”概念。TCP已知使用字节传输数据。实际上,这不是一个字节第一次被用作序列号, 但这是第一次作为一个字节使用字节。可使用什么序列号?首先,数据可以使用序号重新排列。第二个编号是第二个编号之前的序号,表明已经收到。幻灯片窗口与Jack的情况有关。让我们从TCP的角度来看一下这个包的状态。

这是发件人尾端所看到的包件的状况。其幻灯片窗口组件可被视为发件人端的幻灯片窗口。关于已发送的文本中已确认的部分,算是过去时了,幻灯片窗口仅移动到右边。“未经证实的待发”和“不可发送”部分对幻灯片窗口的大小影响最大。其余的“无法发送”是因为接收端没有空间。我们会在接收端 观察一个幻灯片窗口的长相

正如你可以看到的,窗口的大小是一样的。唯一的区别是接收方收到或收到。要么未接收,你没有足够空间 如果你不能拿它。发件人怎么知道目前接收端还剩多少空间?实际上,在ACK, 接收器选择自己的窗口大小。因此,发送者知道接收端窗口的大小。以上图为例,当接收者收到32-35的数据时,ACK=36 通知发件人,同时,接收端的幻灯片窗口向后滑动四位元。发件人收到ACK=36后,我被告知,数据接收器在36年前收到的数据。因此,发件人的窗口同样向后移四位数。

滑动窗口很棒,数据可在能力范围内处理。但是,有一个陷阱:如果发送者的力量巨大,发的很快,接收端能力极弱,处理的很慢,这会导致什么问题?零是闪烁窗口之一。当接收者通知发件人,"你祖母的,消停会吧,没空间了"。发件人在接到通知后说,“那是一只弱小的鸡”。休息会吧,"等到下次它打电话来"正常来说,在数据处理后,接收人可指示发送人继续提供数据。然而意外出现了,接收端的主持人正在收听互联网音乐,与此同时,尼玛正在看 u-Tarodozi表演, 总统的b-post舞蹈区,导致网卡压力很大,最后一个是缺席的。因此,发送者不知道接收者已经处理了一些数据。这可怎么办,如果一直丢失,岂不是要一直傻等,得主动出击呀,因此,我们获得了一个零窗口探测器计时器。每个人都熟悉定时器的操作。当接收者的接收窗口为0时,每隔一段时间,发送者将自愿发送检测包。政府的结论是,它无法答复,要求将接收窗口的状况通知端对端答复。必须指出,零窗口探测足够可靠。
慢慢来 控制抽搐
如前所述,滑动窗口对接收端可处理的数据数量提供了良好的控制。这只是一个计算问题。如果网络状况很差,发送者同时提供了大量数据。窗口没有完全填满(换句话说,它与窗口的大小无关)。这时会发生什么?我认为,这是发件人尾端的奇怪的再传送。未收到ack),因此,让我们考虑一下互联网的现状。是否仍有必要向过去传递大量数据?很多的重试 并没有造成发件人的问题。因此需要悠着点,这里说"cwnd"和"cwnd"比较简单压缩窗口表示在获得同侪ACK之前可以播放的最大微软系统段数。这与交货时限有什么关系?传输窗口的实际大小是拥挤窗口和接收窗口之间最小的数字。我们知道MSS值1 460 在MTU= 1500。套接窗口指的是最多可发送 1460 条消息的 1460 个。因此,在关系开始时,发送者不知道网络的状况。如果网络状态很差,发送过去的大量数据是不适当的。缓慢启动才是正确的选择,从长远来看,缓慢的起步可能会防止损害。它不会总是一个缓慢的开始, 它会是一个缓慢的开始, 它会是一个缓慢的开始, 它是一个缓慢的开始, 它是一个缓慢的开始, 它是一个缓慢的开始, 它是一个缓慢的开始, 它是一个缓慢的开始, 它是一个缓慢的开始, 它是一个缓慢的开始, 它是一个缓慢的开始, 它是一个缓慢的开始, 它是一个缓慢的开始, 它是一个缓慢的开始,如果网络ok,随着时间推移,其规模将逐步扩大。这就是为什么使用了缓慢的开始。那怎么个增长法呢?在通信之初,当发件人收到ACK时, cwnd 加倍。比如一开始是10,收到ACK后下次就是20,再收到ACK后就是40...,这个做法很聪明,我们只需要忍受缓慢的开始Cwnd最终会赶上 指数发展。 喝茶聊天,万事大吉。不对,如果不控制这种指数扩张,面具的财富将在几分钟内超过这可不得了,因此,启动门槛缓慢(shresh)。当 cwnd 到达sthresh 水平,它表明Cwnd不是太大。翻倍是冒险的这时可以选择小涨,不翻倍,每次使用 cwnd 只需添加一个 MSS 。
当 cwnd <= ssthresh 时,拥塞窗口按指数级增长(慢启动)
当 cwnd > ssthresh 时,拥塞窗口按线性增长(拥塞避免)
即使只有一个MSS,从长远来看,它也可能是无限的。那么为什么在现实世界里没有问题呢?我认为其中之一是真正的发送窗口的大小,这是两个窗口中最小的一个。毕竟,前台不能无限期地开放。第二是网络袋数量增加。会发生网络拥堵,那时Sthresh就被降职了sthresh = cwnd / 2 是公式 。之后,Cwnd将被分配到报社。已经谨慎地开始了一个新的开端,群众被避免了。关于第二点,我在互联网上举了一个例子: " 假设TCP的Ssthresh的最初价值为8 " 。当压缩窗口达到12时,有一个网络超时。为避免这种情况,TCP开始采用逐渐的开始和抽搐。从第一次到第十五次转移, 尝试确定每个压缩窗口的大小 。"

最初, cwnd 是 1 。然后不停的翻倍,直到你到达Sthresh。也就是8,目前,每次只有一个管理支助科在运行。当到12的时候,发生超时,也就是说,Sthresh将增长到6。然后重置Cwnd到1。也是不停的翻倍,当到4,我要把它增加到8个我发现Sthresh=6因此会变成6,然后一次开始在 MSS 中添加一个 。因此,第一和十五人分别为1人和9人。
真不敢相信我居然用手来做这个对不起,但我不知道 我在说什么。你凭什么相信它过期了?这个其实很好判断,一旦具体时间流逝,发件人没有联系到杰克网路可能已经用光了正常来说,这时候,发送者使用撤退策略来重新发送。两次再传送的时间只有几百毫秒人类跟不上这几百毫秒但是,对于计算机来说,它相当缓慢。有更快的方法吗?让我们首先举一个例子:假设四个数据包现在以[1100]传送。[101,200],[201,300],[301,400],通常,一旦提供了初步的数据集,ACK=101。 ACK=101。 ACK=101。 ACK=101。没毛病,但是,当第二个数据包被发送时,网络超时了,丢包了,当发件人发送第三和第四包时,ACK=301 将不会被响应 。401,ACK=101会不断响应重要的是要记住,ACK 表示在这个序列号之前收到的数据。正如上文说到的,正常来说,需要几百毫秒 才能发现袋子丢失了重发,而如果想要更快点,比方说 收到三个重复的ACK订单 是一个袋子滴这样是不是快很多,SACK就是那个名字然而,在101份基本通知之前收到的数据(第一个数据包)效率不高。万一第三个错位了呢?因此,SACK作了进一步的改进:例如,在发出ACK信号的同时,它获悉第三套包裹已经丢失,第四套已经收到。因此,发送者将意识到第二套数据现在缺失。第三个包也丢失了,第二和第三节就足够了。
我们会调查的 今年快结束了 这里有很多采访要你过去

往期精彩:
比特跳动的一面
比特跳动的二面
IO网络如何向零副本过渡?
本文由 在线网速测试 整理编辑,转载请注明出处。