最后更新:2022-04-01 22:37:51 手机定位技术交流文章
TCP协议是 " 转让控制议定书 ",一个人,如他或她的名字一样,必须对数据传输有详细的控制。
下楼来向TCP介绍“安全”和“业绩”机制。 安全和业绩,为服务和客户目的寻求可接受的平衡(一刀切并不安全;一刀切是不够的 ) 。
“安全”机制:
1. 确认应答机制
2. 超时重传机制
三. 交通管制机制(“收到后缓冲区”安全)
四. convultion控制方法(发送者的安全)
确保绩效的机制包括:
一. 幻灯片窗口(用于“发送”性能)
2. 捎带应答机制
3. 延迟应答机制
一. 反应机制确认(ACK)

如上文所述,对于主机A的每一份数据传输,主机B收到回复,主机B在发送下一条信息之前确认该信息。这是一个连锁反应,一种确认回复的手段。
TCP为每个字节中的数据指定一个序列号。

每个序列号都与一个经确认的序列号相关, 每一个ACK都包含一个经确认的匹配序列号, 向发送者表明我收到的数据, 以及下次你应该从哪里开始。
2. 超时重传机制

因此,主机B将获得大量重复数据,TCP协议必须能够确定哪些软件包是重复的,并丢弃重复的软件包。 此时,我们可以使用确认回复方法中显示的序列号,因为每个数据都有自己的编号,可以很容易折旧。
那么,如果它过期了呢?
在最佳情况下,选择最短的时间,并确保在这段时间内回复。然而,这一时期的持续时间随网络环境的不同而不同。如果所花费的时间太长,则会降低总的再传输效率;如果所花费的时间太短,则有可能经常传输重复的软件包。TCP为确保在任何环境中高性能通信,将动态地计算出这一最长的超时。在Linux(以及BSD Unix和Windows),加班控制在500毫秒之内,而每个被确定回溯的时间所花费的时间是500毫秒的整倍。如果您再次没有收到答复,则等待2*500毫秒才能重新发送;如果您仍然没有收到答复,则等待4*500毫秒,然后以指数形式通过类推方式重新发送。如果累积了一定数量的再传送,TCP将认为网络或终端主机中存在异常现象,从而迫使关闭连接。
3. 连接管理机制
TCP的连接管理机制进行了3次握手和4次波。
1) 4个波浪期间将使用3个握手和3个路标:
通常情况下,传输数据称为客户,接收数据称为服务,但没有确切的名称。
联系请求(3个握手程序)
当客户向服务提供所需数据时,客户的数据将包含SYN标记,寻求与服务连接;此时,客户只能告知客户已请求与服务连接,但不知道服务是否愿意与客户连接。
在这一点上,服务将给客户提供ACK标签回复, 表示已同意与客户连接。 这与告诉客户“ 我答应你 ” 是一样的。
仅完成了客户与服务的单向连接;这项服务尚未与客户连接。
因此,服务器还将向有SYN标记寻求连接的客户发送数据电文。
目前,有两个标记(一个是ACK标记,一个是SYN标记)正在前往客户;因此,为了提高效率,ACK可以乘SYN标记返回客户(这是另一个TCP机制:问答机制),表明在服务提供数据时,两个标记可以结合,向客户传送数据。
当客户从服务处 " 使用ACK路标 " 和 " 使用SYN路标 " 得到回复时,即收到对连接确认的回复,不再处理;对于连接请求,则用ACK路标发送确认,表明准备确定与服务端的连接。
在目前阶段,已经建立了联系(完成了三手握议定书)。
请求断开连接(四个波进程) 3 。
当客户想要结束服务连接时,要求FIN关闭与服务供应商的连接,当服务器收到请求并承诺关闭连接时,将带有ACK标志的数据电文发送给客户确认,表示收到客户要求关闭已交付连接的请求,要求FIN停止与服务供应商的连接,当服务器收到请求并承诺关闭连接时,将有关ACK标志的数据电文发送给客户确认,表示收到客户要求关闭连接的请求。
尽管如此,客户终止连接的请求仍单方面发送到服务处,表明客户对服务的连接已经关闭,终止连接的服务对客户的要求必须在连接完全关闭之前发送给客户。
因此,服务器发出请求,要求用FIN信号关闭与客户端的连接,同一客户端收到关闭连接并用ACK标记回复的请求,表示该服务收到请求,要求关闭连接,进行双向服务器发送请求,要求用FIN信号关闭与客户端的连接,同一客户收到关闭连接并用ACK标记回复的请求,同时确认该服务收到关闭连接的请求。
连接已终止( 四波完成) 。
为什么TCP连接需要三次握手?为什么我们不能合并,将数据与答案一起传输?为什么断开连接的动作需要四倍?为什么我们不能合并?
由于在连接创建之时,ACK和SYN是在同一数据包中传输的,因此,在一个信息中,它们可以合并,两个标签可以设置为一个,三个握手。
由于一个在操作系统中被关闭,无法由它们自己的程序管理,因此无法同时插入四个交替连接的ACK和FIN。另一个是用户程序通过使用近距离技术自动终止。两个部分不能由一个主题完成,两个部分不能合并。
这是我这辈子第一次遇到一位女士 挥手四次有什么意义?
MSL是TCP的最大存续时间,在网络中遗弃任何一张纸都是最长的存续时间。
客户和客户服务都放弃四波连接。
客户必须在提供最后确认书后等待2MSL。
造成这种情况有两个主要原因:一是允许服务提供者根据标准协议取得《濒危物种公约》的地位;二是防止已失效的请求与下一条连接。
(1)..因为客户最近的确认可能已经丢失,因此客户将无法达到CLOSED状态,因此,服务器将重新发送释放请求,如果客户关闭,它将不接受服务局的转发请求,导致服务没有适当释放,如果客户继续等待,它将得到服务局的转发,然后答复,使服务局能够到达CLOSED州。
(2) 在这2MSL等待期间,来自这一联系的所有报告都从网络中消失,在下一条中不会出现。
4. 滑动窗口
“同意”性能由幻灯片窗口保证。
答复确认方法以前是详细的,就发送的每个数据段而言,请一份ACK确认答复,在得到ACK后,又发送了下一个数据段,这方面有一个更大的问题,即性能较差,特别是在数据发送前后时间较长的情况下。

正如你在上面所看到的,这是一个收受效率较低的方法, 所以你可以同时传输一些数据, 你可以显著改善业绩( 在现实中, 您正在结合多个等待时间) 无数人看到上面, 这是一个收受效率较低的方法, 所以您可以同时传输一些数据, 你可以显著改善业绩( 在现实中, 您正在结合多个等待时间 ) 。

“窗口大小”一词是指无需等待回复确认即可传输数据的最大值,以上图片中的窗口大小为4,00字节(4段)。
发送前四段时, 您不需要等待 ACK ; 只需发送它们 。
在获得第一个 ACK 后向后滑动窗口, 然后继续传输第五段数据, 等等 。
要将这个滑动窗口保留在操作系统中,“发送缓冲”必须记录哪些数据现在没有反应,只有在确认反应后才能从缓冲区撤回数据。
窗口大小越大,网络收费越多;
缺失的数据集不会扩展窗口, 可能会由于网络的改善( 或其他外部因素) 而扩大 。
窗口会动态变化。 它可能会被修改以适应各种环境。 它不是固定的 。
窗口可以修改以适应软件包的大小( 即幻灯片 ) 。 例如, 如果初始窗口为 1001- 5,00 个数据, 且只有 1001- 200 个数据被交付和响应, 窗口的幻灯片可以修改为2001 年, 窗口的大小被调整为 2001-600 个 。
那么,如果袋子被扔掉,我们如何重新传送?这里有两种辩论。
案件一:旧数据集运抵,但ACK在移交完成后丢失。
部分ACK在这种假设中丢失并不重要 因为它可能通过后续ACK得到确认
第二:发送了一个缺失的数据包。
当信息丢失时, 发件人会收到1001个这样的 ACK, 通知发件人“ 我要1001 ” 。 如果发件人主机连续三次收到同样的1001个答复, 数据 1001-200 将会重新发送 。 收件人收到1001 后, ACK 又将7001 个数据退回给发件人 。 (自从收到2001- 700 个数据后, 它被放置在接收端操作系统的接收缓冲区 。 )
5. 延迟应答机制
发送者将数据传送到接收端,如果接收数据的主机立即提供ACK回答,窗口此时可能缩小。
假设接收方缓冲是1M, 你一次得到500K, 如果你迅速响应, 返回的窗口是500K, 但最终处理数据可能是快速的,
接收端程序远未达到在这种情形下的局限性,即使窗口扩大,也可以加以管理。 如果接收器等待时间稍长一点,比如200米,此时窗口的大小返回为1米。 窗口越宽,流量越大,传输效率越高,反应就越高效,以确保网络不窒息。
因此,所有行李都可能被延误?当然不是。延迟反应有两个限制:
有数量限制:对每个 n 包作出反应。
时间限制:在最大延迟后仅作一次答复。
视操作系统而定,需要一定的数量和小时;平均N需要2小时,时间需要200毫秒。
6. 捎带应答机制
由于反应延迟,客户服务器在应用程序级别上经常是“一对一”的。你好吗?谢谢,好的,好的,好的,好的,好的,好的,好的,好的,好的,好的,好的,我们一起去拜访客户。为了提高传输效率, 反应器可以把数据放在一起传送, 降低网络传输的风险。
在三次TCP握手中的第二次,供应商对客户的ACK反应作出回应,要求与客户SYN连接,代表交付方法。
7. 流量控制机制
交通管制保证缓冲区的接收方是“安全”。
接收终端处理数据的速度有限,如果发送者传送速度太快,接收端的缓冲区已经满,如果发送者继续发送,包件将丢弃,导致一系列连锁事件,如重新发送包件。
因此,TCP允许根据接收端的处理能力确定发送者的速度,这种能力称为流动控制系统。
接受方指定其在 TCP 第一部分的“ 窗口大小” 字段中可以接收的缓冲的大小, 并通过 ACK 终端通知发送 。 窗口大小越大, 网络输送量越大; 当接收方知道其缓冲几乎已满时, 它会将窗口大小设置为给发送方的较低值通知; 当发送方收到此窗口时, 它会降低交付速度 。 如果接收方缓冲满了, 窗口将被重置为零, 发送方将不再发送数据 。 但是, 提供方需要发送窗口的数据段, 以便定期检测, 以便接收方可以将窗口大小通知发送方 。
接收器如何将窗口大小告知发件人? 窗口大小信息包含在 TCP 第一部分的16位数窗口字段中。
8. 拥塞控制机制
虽然TCP有一个大滑冰窗口, 能够有效、持续地提供大量数据, 但如果在开始时发送大量数据, 仍会引发问题。
因为网络上有很多机器, 网络的目前状况可能已经很拥挤, 传输大量数据而不理解网络的现状,
TCP采用逐步启动程序,最初提供少量数据,然后探索路径,确定目前的网络拥堵,确定数据传输速度。
这里以压缩窗口的形式提出一个概念。
指定发送开始时压缩窗口的大小;每个ACK响应,压缩窗口+1的大小;交付的每个数据包,将压缩窗口的大小与接收主机的反馈进行比较,并使用较小的数值,因为实际发送的窗口在发送开始时传输压缩窗口的大小;每个ACK响应,压缩窗口+1的大小;交付的每个数据包,将压缩窗口的大小与接收主机的反馈进行比较,并使用较小的数值作为实际发送窗口;
压缩窗口的开发速度是指数化的, 而“ 慢开始” 仅仅是一个缓慢的开始, 但它增长非常快。 你不能仅仅增加挤压窗口来阻止它如此快的成长 。
在此设定“ 慢起步” 阈值, 当凝结窗口到达它时, 它会直线增长而不是指数增长 。

当 TCP 启动时, 缓慢的启动阈值等于最大窗口值 。 当每次按时间重复慢的启动阈值时, 缓慢的启动阈值就会变成一半, 压缩的窗口被设定在1. 少量投放的袋子只会触发超时转播, 但大量投放的袋子会让 TCP 相信网络卡住了 。
随着TCP通信的开始,互联网输送量会增加;当网络被堵住时,输送量会立即下降。 最后,TCP同意尽可能快地向对方发送数据,但为了避免妥协给网络造成太大的压力。 应根据压缩控制和滑动窗口系数计算将要交付的数据包的大小。
九. TCP 字节流
UDP是给数据报纸的, 发送一份报告, 然后它完成,它是一个片, 而TCP是给字节流的。
TCP传达了缓冲区和被接受的缓冲区,但民进联没有传达。
在内核建立缓冲带以传输和接收缓冲带的同时,建立 TCP 套接字。
当您调用写字时,数据最初写在发送缓冲中;如果发送的字节太大,它们将分为许多 TCP 数据集;如果发送的字节太短,它们将在缓冲区等待,直到缓冲区几乎满载,或者在任何其他可接受的期间。
当收到数据时,数据也从网卡驱动器发送到内核的接收缓冲区。 程序可以使用读取从接收缓冲区获取数据。 另一方面, 与 TCP 的连接可以使用传输和接收缓冲区( 被称为全时工作) 读取或写入此链接的数据 。
由于缓冲区的缘故,TCP过程的读写不必一对一。
例如,在写入 100 字节数据时,您可以拨打一次来写100 字节或100次来写一个字节;在读取 100 字节数据时,您不必考虑如何写字,或者一次读100 字节,或者一次读一个字节,重复100 。
10. 粘包问题
首先,在粘糊糊的袋子问题上,“包”是指应用层中的数据包。
TCP 头条标题中没有像 UDP 那样的字段, 但有一个像序列号的字段。 从传输层的角度来看, TCP 是按序列号顺序存放在缓冲区的信息 。
从应用层的角度来看,你看到的只是一串字节。
因此,应用程序看到这串字节,不知道哪个组成部分与整个层数据包的哪个部分对应。
那么,我们怎样才能防止粘糊糊的袋子问题呢?用一个单一的语句来定义两个包的边界。
确保固定尺寸的包件总是以固定大小阅读;例如,上文按大小固定的请求结构,可以从缓冲区开始时按大小(请求)阅读(请求)。
对于更大的软件包,您可以在软件包头的位置上就软件包整个长度的字段达成一致,所以您可以知道软件包何时完成。也可以使用软件包之间的清晰分隔符(使用程序员创建的层协议,只要分隔符不与中文相矛盾)。
联合民主党协议有粘糊糊的问题吗?
如果UDP没有顶级发送, UDP 消息的长度将保持不变, UDP 是一个将数据发送到应用级别并有明确数据边界的系统。 在应用中使用 UDP 时, 要么得到整个 UDP 信息, 要么得不到; 不存在“ 一半” 的情况 。
11. TCP 异常
过程终止:当过程终止时,文件说明即予公布,但仍可送交FIN,这与正常关闭相同。
重新启动机器和终止程序是一样的
机器失去功率/ 网络线: 接收器相信连接还在, 当它发现连接已经丢失, 接收器会重置, 即使不写, TCP 也为自己建造了一个保护计时器, 并不断询问对方是否还存在。 如果他不在场, 他将会断开连接 。
在应用层面还有某些协议,还有探测技术,例如,在长时间的HTTP连接中,经常观察彼此的状况,例如:+Q.Q.一旦..断开,就会反复努力重新加入。
十二. 根据《TCP聚合协定》
HTTP、HTTPS、SSH、Telnet、FTP和SMIP是基于TCP的协议,还为个人TCP编程提供用户定义的层规程。
本文由 在线网速测试 整理编辑,转载请注明出处。