wordpress可以建站吗,wordpress 重定向次数,微信微网站模版,怎么开外贸网店TCP协议 1.三次握手四次挥手2.TCP协议段格式3.标记位介绍4.确认应答机制5.超时重传机制 1.三次握手四次挥手 当客户端发起连接请求时#xff0c;SYN需要被设置位1#xff0c;告诉服务器客户端希望建立一个链接服务器收到响应之后会回复 SYNACK#xff0c;表示确认了客户端地… TCP协议 1.三次握手四次挥手2.TCP协议段格式3.标记位介绍4.确认应答机制5.超时重传机制 1.三次握手四次挥手 当客户端发起连接请求时SYN需要被设置位1告诉服务器客户端希望建立一个链接服务器收到响应之后会回复 SYNACK表示确认了客户端地连接请求同时服务器也会设置ACK标记位该标记位表示服务器已经接受到了客户端地链接请求并且已经做好了与客户端链接地 准备大多数情况下都是对历史报文的确认客户端回复ACK表示确认。当通信结束时由客户端发起fin请求表示断开请求 当客户端发起一个FINFinish请求时表示客户端希望关闭连接。此时客户端的状态会从ESTABLISHED状态已建立连接变为FIN-WAIT-1状态。客户端进入FIN-WAIT-1状态后它正在等待来自服务器的确认以完成连接的正常关闭。 在TCP连接的正常关闭过程中连接的一方会首先发送一个FIN请求然后等待对方的确认。在这个等待状态中客户端会处于FIN-WAIT-1状态。一旦客户端收到了服务器的确认它会进入FIN-WAIT-2状态然后等待服务器发起的关闭步骤。 所以客户端并不是在发送FIN请求的那一刻就立刻变成FIN-WAIT状态。而是在发送FIN请求后等待对方确认之后才会进入FIN-WAIT-1状态。接下来客户端将等待服务器的FIN请求然后完成连接的关闭过程。 FIN_WAIT1和FIN_WAIT2状态的区别 FIN-WAIT-1 和 FIN-WAIT-2 是 TCP 连接的两个不同状态它们之间的主要区别在于等待的事件和条件 FIN-WAIT-1状态 进入条件客户端在发送了一个FINFinish请求后进入FIN-WAIT-1状态。 事件和等待条件客户端正在等待来自服务器的ACK确认以确认其关闭请求。在这个状态下客户端等待服务器确认关闭请求以便安全地关闭连接。 FIN-WAIT-2状态 进入条件一旦客户端收到了服务器对自己的FIN请求的ACK确认它就会进入FIN-WAIT-2状态。 事件和等待条件在FIN-WAIT-2状态下客户端等待服务器发起的FIN请求。客户端已经完成了主动关闭连接的操作现在等待服务器也发出关闭请求以便完成连接的正常关闭。 总结 FIN-WAIT-1状态是客户端等待来自服务器的ACK确认以确认自己的关闭请求。 FIN-WAIT-2状态是客户端等待服务器发起的关闭请求以完成连接的正常关闭。客户端已经完成了主动关闭步骤。 timewait状态 TIME-WAIT 状态是 TCP 连接的一种状态它表示一个连接已经被正常关闭但在这个状态下操作系统仍然保留连接信息一段时间。TIME-WAIT 状态的存在是为了确保连接的可靠关闭和避免出现连接混淆。 TIME-WAIT 状态主要有以下两个作用 确保可靠关闭连接 在 TIME-WAIT 状态下操作系统等待一段时间称为 2MSLMaximum Segment Lifetime最大报文生存时间才会清除连接信息。这段时间内如果网络中还有之前的数据包在传输这些数据包仍然能够正确地被关联到已关闭的连接而不会与后续的新连接混淆。这样可以确保数据包按照正确的顺序到达并且不会被误认为属于新连接。 处理延迟重复数据包 在网络中数据包可能会因各种原因而被延迟或复制。TIME-WAIT 状态能够处理延迟到达的 ACK 数据包。如果在 TIME-WAIT 状态下接收到与之前连接相关的 ACK 数据包操作系统会忽略它们以防止它们被误认为属于新连接。 总之TIME-WAIT 状态是 TCP 连接管理的一部分它有助于确保连接的可靠关闭并维护连接信息以应对网络中的延迟和复制数据包。它是 TCP 协议的一部分设计用于提高连接的可靠性和稳定性。 当服务器最后一次回复ack的时候此时服务器状态会被置为LASTACK表示不会再发消息给客户端但是此时的客户端并不会马上关闭保证可靠传输他会等上一段时间服务器没拿完数据最后在close链接。
2.TCP协议段格式 源端口号和目的端口号表示数据是从哪个进程来, 到哪个进程去通过这两个端口号网络就能够将数据包准确地发送到目标或者服务器程序这是TCP/IP协议实现端到端通信地关键一环。32位序号是TCP协议为每个字节的数据进行的编号。这个编号是唯一的也就是说每一条数据都有一个唯一的32位序号。这个序号用于标识发送端每次发送的数据这样接收端就能正确地将数据按照发送的顺序进行接收。而32位确认序号是接收端对于发送端消息的应答序号。这个序号表明所有该序号之前的信息都被接收端成功接收。如果发送端发送了一条数据接收端成功接收后就会返回一个确认序号表示所有该确认序号之前的数据都已经被成功接收。这个机制保证了数据的可靠传输并且如果数据在传输过程中丢失或者损坏可以进行重传。16位窗口大小 在 TCP 协议中16 位窗口大小指的是 TCP 报文段中的窗口字段它占用了 16 位2 个字节的二进制位数用来表示发送方可以接收的字节数量。 窗口大小的概念是为了实现流量控制和拥塞控制而引入的。发送方和接收方都维护一个窗口大小的值用来表示它们各自可以处理的数据量。窗口大小是动态调整的根据网络条件和接收方的处理能力进行调整。 具体来说当接收方希望发送方减缓发送速率时它会将窗口大小减小从而限制发送方发送的数据量。当接收方准备好接收更多数据时它会增加窗口大小允许发送方发送更多数据。 16 位窗口大小的字段允许窗口大小的范围从 0 到 65535 个字节因此发送方可以发送的数据量也在这个范围内动态调整。这种机制有助于避免网络拥塞和提高网络效率因为它允许发送方根据接收方的能力来调整发送速率以保持网络的稳定性和可靠性。 总之16 位窗口大小是 TCP 协议中用来进行流量控制的重要字段它允许发送方和接收方动态地调整数据传输速率以适应不同的网络条件和接收方的处理能力。 3.标记位介绍 SYNSynchronize SYN 标记位用于建立一个新的 TCP 连接。当客户端希望与服务器建立连接时它会向服务器发送一个带有 SYN 标记位的 TCP 报文这个过程称为 TCP 三次握手。SYN 标记位的序列号用于初始化连接的起始序列号。 ACKAcknowledgment ACK 标记位用于确认接收到的数据。当这个标记位被设置时它表示该报文包含一个有效的确认号字段确认了前面收到的数据。通常除了在连接建立时的初始 SYN 报文外其他 TCP 报文都会设置 ACK 标记位。 FINFinish FIN 标记位用于关闭一个 TCP 连接。当一方希望关闭连接时它会发送一个带有 FIN 标记位的报文这个过程称为 TCP 四次挥手。发送 FIN 标记位表示该方不再发送数据但仍愿意接收数据。 RSTReset RST 标记位用于强制关闭一个连接。当某些异常情况发生时可以发送一个带有 RST 标记位的报文来迅速终止连接而不进行正常的关闭过程。例如当尝试连接一个未打开的端口时对方会发送 RST 报文。 PSHPush PSH 标记位用于提示接收方立即将接收到的数据交给应用层而不是等到缓冲区满后再交付。这对于实时数据或需要低延迟的应用场景非常有用。 双发在建立通信的时候由于某些原因接收端没及时把缓冲区的数据拿走导致缓冲区满了这时发送方就可以发送送PSH请求让接收端马上把缓冲区数据拿走 URGUrgent URG 标记位用于标识报文中的紧急数据。当这个标记位被设置时数据报文中的某些部分被标记为紧急接收方应尽快处理这部分数据。URG 标记位通常与紧急指针字段一起使用指示了紧急数据的位置。 报文在发送的时候可能是乱序到达的是一种不可靠传输在有些特殊的应用场景我们需要设置一些优先级更高的数据但是正常传输的话不能满足优先级传输此时就可以讲URG置1按优先级处理 应用当客户端和服务器异常的时候客户端发送了大量的信息给服务器但是这时由于各种原因导致服务器异常没能及时处理数据客户端也没收到服务器的响应此时客户端不知道还要不要给服务器发送消息这时候就可以设置URG发送一个确认请求优先级高于前面的数据及时给服务器服务器马上响应给客户端反馈原因 4.确认应答机制 TCP 协议通过确认应答机制来确保可靠的数据传输。这个机制包括以下几个重要的部分 序列号和确认号 TCP 协议中的每个数据报文段都包含了一个序列号字段和一个确认号字段。发送方使用序列号来标识发送的数据接收方使用确认号来确认已经接收到的数据。通过这两个字段的配合TCP 可以精确地追踪传输的数据。 累积确认 接收方通常会发送一个确认号表示它已经成功接收到了这个确认号之前的所有数据。这个确认号是连续的表明所有的数据都已到达。如果接收方收到了一个非连续的数据块它会发送一个确认号告诉发送方需要重传未收到的数据。 超时重传 如果发送方在一定时间内没有收到接收方的确认应答它会认为数据丢失或损坏并触发重传机制。发送方会重新发送未被确认的数据以确保数据的可靠性。 重复数据排除 接收方在接收到重复的数据时会丢弃重复的部分只接受首次接收到的数据。这是通过序列号和确认号来实现的接收方可以识别出重复的数据。 选择性确认SACK TCP 协议支持选择性确认允许接收方在确认报文中指定已经成功接收的数据块范围而不仅仅是单一的确认号。这有助于提高网络的吞吐量和效率。 窗口控制 TCP 使用滑动窗口机制来调整发送方的发送速率。接收方会告诉发送方它的接收窗口大小发送方会根据这个窗口大小来控制发送的数据量以防止过多的数据拥塞网络。 流量控制 TCP 还提供了流量控制机制允许接收方以自己的速率接收数据以防止发送方发送速度过快导致数据丢失或溢出。流量控制通过 TCP 的滑动窗口机制实现。 总之TCP 协议的确认应答机制是其可靠性的关键之一。通过序列号、确认号、重传、窗口控制等机制TCP 可以确保数据的可靠传输即使在不可靠的网络环境中也能够有效工作。这使得 TCP 成为广泛应用于可靠数据传输的协议例如 Web 浏览、电子邮件、文件传输等。 结合图理解 TCP将每个字节的数据都进行了编号. 即为序列号 每一个ACK都带有对应的确认序列号, 意思是告诉发送者, 我已经收到了哪些数据; 下一次你从哪里开始发. ** 这就是确认应答机制 **
5.超时重传机制 主机A发送数据给B之后, 可能因为网络拥堵等原因, 数据无法到达主机B; 如果主机A在一个特定时间间隔内没有收到B发来的确认应答, 就会进行重发 但是, 主机A未收到B发来的确认应答, 也可能是因为ACK丢失了 因此主机B会收到很多重复数据. 那么TCP协议需要能够识别出那些包是重复的包, 并且把重复的丢弃掉. 这时候我们可以利用前面提到的序列号, 就可以很容易做到去重的效果. 那么, 如果超时的时间如何确定? 最理想的情况下, 找到一个最小的时间, 保证 “确认应答一定能在这个时间内返回”. 但是这个时间的长短, 随着网络环境的不同, 是有差异的. 如果超时时间设的太长, 会影响整体的重传效率; 如果超时时间设的太短, 有可能会频繁发送重复的包; TCP为了保证无论在任何环境下都能比较高性能的通信, 因此会动态计算这个最大超时时间. Linux中(BSD Unix和Windows也是如此), 超时以500ms为一个单位进行控制, 每次判定超时重发的超时 时间都是500ms的整数倍. 如果重发一次之后, 仍然得不到应答, 等待 2500ms 后再进行重传. 如果仍然得不到应答, 等待 4500ms 进行重传. 依次类推, 以指数形式递增. 累计到一定的重传次数, TCP认为网络或者对端主机出现异常, 强制关闭连接