U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 新闻资讯 >

TCP 原理(三次握手四次挥手)

来源:http://www.tudoupe.com时间:2022-04-07

一、TCP协议

TCP,即《传输控制议定书》,是一项议定书,要求一个人,如他或她的姓名一样,对数据传输拥有详细的控制。

TCP协议段格式

说明数据的来源和来源;

它用来解决网络包装问题。连接时计算机产生的随机数是其起始值,通过SYN软件包接收到接收主机,而数据字节的大小在每次发送数据时 " 增加 " 。

当发送者收到关于下一个“预期”数据序列号的确认答复时,可以得出结论认为,通常在序列号之前收到数据。

6位标志位:

紧急指针是否有效

在确认该数字是否合法后,“确认回复”字段即成为有效字段,TCP规定,除非首次使用SYN软件包建立连接,否则该字段必须设为1。

尽快通知接收程序从 TCP 缓冲中读取数据 。

另一方要求重新建立连接;我们把RST标志称为再输入部分,在1时表示必须诱导TCP连接异常以中断连接。

请求建立连接;我们称SYN标识为同步信息字段,即1,我们表示我们希望建立连接并在 " 序列号 " 字段中设定第一个序列号值。

通知对方,本端要关闭了,FIN的标志代表了故事的结束。该位为 1 时,今后将不再传播数据,这是该国历史上第一次。希望断开连接。当谈话结束时 想要切断连接FIN-bit TCP部分可在两个通信主机之间转移。

二、TCP原理

TCP为数据传输提供的控制机制主要在两个领域:安全和效率,这些机制和多两次结构的概念相似,因为最大限度地提高传输效率以确保数据传输的安全性。

1,确认应答机制

2,超时重传机制

结果,主机B将获得大量重复数据。 TCP 协议必须能够将这些软件包作为重复数据检测出来并删除。 此时此刻,我们只需使用先前描述的序列号就可以产生更大的影响。

使用前面描述的序号,我们目前可能只会产生更大的影响。

找到最短的时间确保“承认的答案必须能够在这段时间内”在最佳情况下返回。

然而,这一时期的持续时间因网络环境而异。

如果花费的时间过长,整个再传输效率就会受到影响。

如果超时时间过短,重复的包件可能经常交付。

TCP 动态决定这一最大超时,以便在每一种情景中提供相当良好的绩效交流。

Linux(以及BSD Unix和Windows)的超时控制为500毫秒,每项决定的超时时间为500毫秒整数。

如果再重复一次,它仍然没有得到答复,等待2*500米后再重新传送。

如果还缺少答案,则等待4*500米再传送。

TCP决定,网络或终端主机在经过一定数量的再传输后出现不正常现象,导致连接关闭。

3,连接管理机制

SYN 文本同步, 试图相互连接。 这些 SYN 查询是由客户在 JavaSocket API 的新套件内核启动的 。

SYN 表示是一个, 表示电文同步 。

我知道 你能听到我在说什么吗?

连接方法与发送SYN和ACK、SYN和SYN相近,然后是三次握手。

能否只有两次握手

[CLOSED -> LISTEN] 服务器端调用listen后进入LISTEN状态,等待客户端连接;

[LISTEN -> SYN_RCVD] 一旦监听到连接请求(同步报文段),就将该连接放入内核等待队 列中,并向客户端发送SYN确认报文。

[SYN_RCVD -> ESTABLISHED] 服务端一旦收到客户端的确认报文,就进入ESTABLISHED状 态,可以进行读写数据了。

[ESTABLISHED -> CLOSE_WAIT] 当客户端主动关闭连接(调用close),服务器会收到结束 报文段,服务器返回确认报文段并进入CLOSE_WAIT;

[CLOSE_WAIT -> LAST_ACK] 进入CLOSE_WAIT后说明服务器准备关闭连接(需要处理完之 前的数据);当服务器真正调用close关闭连接时,他们派FIN去给客户这是服务器进入 LAST_ACK 状态的点 。我还在等最后的ACK

[LAST_ACK -> CLOSED] 服务器收到了对FIN的ACK,彻底关闭连接。

客户端状态转化

[CLOSED -> SYN_SENT] 客户端调用connect,发送同步报文段;

[SYN_SENT -> ESTABLISHED] connect调用成功,则进入ESTABLISHED状态,开始读写数据;

[ESTABLISHED -> FIN_WAIT_1] 客户端主动调用close时,向服务器发送结束报文段,同时 进入FIN_WAIT_1;

[FIN_WAIT_1 -> FIN_WAIT_2] 客户端收到服务器对结束报文段的确认,则进入 FIN_WAIT_2,开始等待服务器的结束报文段;

[FIN_WAIT_2 -> TIME_WAIT] 客户端收到服务器发来的结束报文段,进入TIME_WAIT,并发 出LAST_ACK;

[TIME_WAIT -> CLOSED] 客户端要等待一个2MSL(Max Segment Life,报文最大生存时 间)的时间,才会进入CLOSED状态。

重要的转状态

1: listen: 服务器已启用, 客户端可随时连接 。

2: 设立: 在任何时候成功连接和传送信息

当服务器调用服务器创建服务器套件时, 端口号被绑定, 状态被设置为 Listen 。

客户援引新的Socket,试图连接服务器,并发起三次握手。

三次握手不能举行两次,没有最后的ACK,主机B不知道发送和接受是否正常。

三到四次握手可以接受,但不需要。中间的SYN和ACK同时被激活。

3:CLOSE_WAIT:其余两个波浪中的一半没有四波波(接收方无法采用封闭方法,导致四个波浪只挥了两次,导致连接没有正确关闭)。

4: 时间_ WAIT : 当主机完成四波程序后, 在时间_ WAIT 状态保持一段时间后, 才会释放 。

在三次握手、四次摇摆和袋子倒下后,将进行加班转播。

4,滑动窗口

在没有滑动窗口装置的情况下,传送N数据需要N反应时间和N数据传输时间+N反应时间的总传输时间。

滑动窗口的关键是 批量数据传输, 传输总时间: N 数据传输时间重复一次 。

如果您不等待确认,可大宗传输的最大数量的数据被称为窗口大小。

窗口的范围是确定哪些数据正在等待 ACK, 当一个ACK 到达时传送下一个数据, 并等待软件包的范围随时间滑动, 这是图片的比喻 。

窗口的大小保持不变。 当发送者收到 ACK 2001 号时, 这意味着1001- 200 号数据已经收到, 5001- 6001 号数据立即转发, 此时的ACK 数据包号是 2001, 3001, 4001 和 5001 号。

ACK丢了

ACK丢失了,ACK没有在2001年丢失,1-100数据没有问题,但1001数据丢失了,尽管2001年可能包括了ACK1001所载信息。

数据包就直接丢了

如果数据报丢了,例如,1001-200号错误。然后是2001 -300数据在3001 -400之后很容易到达主机 B 反馈的 ACK 确认号目前总是 1001 。如果主机 A 发现一个序列中的多个 ACK 是 1001, 主机 A 理解 1001 数据丢失 。就会重传1001

由于主机B已经收到2001-700数据,以下两个ACK以7001开头,只转发缺失的数据,而其余数据无需再传送。

5,流量控制

接收终端处理数据速度缓慢。如果传送得太快因此,接收端的缓冲区已经填满。如果这次寄件人坚持了下去就会造成丢包,随后又发生了一系列事件,如袋子重新传送。因此,TCP支持基于接收端能力的程序。确定发件人的发货速度这个方法被称为"花控控制"

接收器输入在 TCP 第一部分“ 窗口大小” 字段中可以接收的缓冲大小, 然后通过 ACK 终端通知发送结束 。

窗口面积越大,网络摄入越大;

当接收器意识到其缓冲区已接近填满时,会缩小窗口的大小,并通知发送者。

当发送者收到这个窗口时,它会减少自己发送的速度。

如果接收端缓冲区满员,窗口设为0;发送者届时不会发送数据,但必须定期发送窗口检测数据段,以便接收端能够告知窗口大小的发送者。

从本质上说,交通管制限制了发货人根据收货人处理能力的效率。

发件人的滑动窗口,根据可接收缓冲区的空间数量。

通过 TCP 页眉中的窗口大小参数反射到发件人。

6,拥塞控制

尽管TCP拥有巨大的凶器 滑向窗户发送大量数据是有效和可靠的。然而,如果你在开始的时候 发送了大量的迪纳,仍然可能引发问题。因为互联网上有很多机器网络目前的形式很可能已经过于拥挤。由于缺乏对网络现状的全面了解,大量的数据正在传输很有可能情况会更糟TCP采用缓慢的起步技术。先发少量的数据,探探路,这篇文章是2011年全球之声专栏的一部分。下一步决定数据的传输速度;

选区控制由于无法监测输电线路堵塞,只能通过反复测试逐步测试窗口的大小。

1: 开始尝试缩小窗口大小。

2:如果没有拥堵(不减少),堵塞窗口可以成倍扩大。

3: 当达到某一阈值时,线性提高窗口的大小。

3: 在跌落发生之前,窗口返回其初始值,阈值被调整为跌落窗口的一半大小。

7,延迟应答

如果接收数据的主机迅速返回到 ACK 响应中, 窗口可能相当简短 。

如果接收端缓冲区为一次性收到的1M.500K数据;如果回复是即时的,返回窗口为500K;

但实际上,处理终端处理可能很快,缓冲区的500K数据在10米内消耗。

在这种情况下,接收端程序仍远未接近其自身的制约,即使窗口扩大,也有可能得到处理。

如果接收器需要稍长一点来响应, 比如说200米, 此时返回的窗口大小为 1M 。

我们的目标是优化传输效率,同时保持网络完整。 窗口越大,网络输送量越好,传输效率越高。

8,捎带应答

为根据延迟反应提高流程运作效率而建立的技术

客户端和服务器之间通常使用反quequent-Response通信风格。

主机 B 向主机 A 发送两个数据包。 两种数据传输的时间严格来说是不同的。

resp 返回应用程序代码, 执行 resp 将回复写入客户端, 并立即发送回复 。 Req 发送内核接收数据, 返回 ACK, Resp 返回应用程序代码, 执行 resp 将回复写入客户端, 并立即发送回复 。

由于反应延迟,ACK传输的时间被推迟,使英语程序有足够的时间在应用程序崩溃前完成反应计算。

当我们回到Resp时,我们发现ACK还没有被发送。我们根据Resp指定了一个ACK值。

9,粘包问题

首先要明确,"包装"在粘粘的袋孔里,是应用程序级别上的数据包。TPP协议从以下开始:没有任何东西像UDP,“长长的纸张”,或“长长的纸张”。然而,有一个有类似序列号的字段。站在传输层的角度,TCP是一个正在传递的信息。他们根据序列号被分配到缓冲区。站在应用层的角度,你只看到一连串的字节因此,应用程序会注意到此字节的字符串 。我不知从何说起是一个包罗万象的层数据包。

那么,我们如何防止粘糊糊的袋子发行呢?最后,它是一个描述两个包的区别的声明。

对于定长的包,形成一种按固定大小阅读的习惯,如上文所示请求结构。是固定大小 的,所以从缓冲区开始按大小( 请求) 读取它; 对于较大的包件, 也做同样的事情 。可以在包头的位置,我们决定了整个包装的长度。所以你知道袋的尽头,袋的尽头,袋的尽头,袋的尽头,袋的尽头,袋的尽头,袋的尽头,袋的尽头,袋的尽头,袋的尽头,袋的尽头,袋的尽头,在包件和包件之间也可以使用明确的分离(使用层协议)。这完全取决于 程序猿。只要确保分隔符不会干扰内容。 )

END

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息