当前位置: 首页 > wzjs >正文

公司建网站流程教研网站建设方案

公司建网站流程,教研网站建设方案,邵阳棋牌软件开发,听书369进入公众号TCP协议的三次握手(Three-way Handshake)和四次挥手(Four-way Handshake)是建立和终止可靠网络连接的核心机制,它们确保了通信双方能够同步状态并安全地交换数据; TCP连接的常用术语 术语全称含义说明SYNSynchronous建立连接标志…

TCP协议的三次握手(Three-way Handshake)和四次挥手(Four-way Handshake)是建立和终止可靠网络连接的核心机制,它们确保了通信双方能够同步状态并安全地交换数据;

TCP连接的常用术语

术语全称含义说明
SYNSynchronous建立连接标志位。用于发起连接请求,携带初始序列号(ISN)。在三次握手中前两次出现。
ACKAcknowledgement确认标志位。表示已收到数据,携带确认号(Acknowledge number)。建立连接后所有报文必须设置ACK=1。
PSHPush推送标志位。要求接收方立即将数据提交给应用层(而非等待缓冲区满)。常见于HTTP请求/响应报文。
FINFinish终止连接标志位。表示发送方数据已发送完毕,请求关闭连接。在四次挥手中由双方各发送一次。
RSTReset复位标志位。强制中断异常连接(如端口未监听、处理超时),接收方会立即释放资源。
URGUrgent紧急标志位。表示报文包含紧急数据,需优先处理(配合紧急指针使用)。实际应用较少。
SeqSequence Number32位序列号。标识数据字节流的起始位置(首字节编号)。建立连接时随机生成,后续按数据长度递增。
AckAcknowledge Number32位确认号。期望收到的下一字节序列号(值为收到的Seq+数据长度)。若携带数据,则下次Seq=本次Ack。
Window SizeAdvertised Window16位窗口大小。接收方告知发送方可接收的数据量(流量控制)。动态调整防止缓冲区溢出。
ChecksumHeader Checksum16位校验和。验证TCP头部和数据完整性,防止传输错误。
Data OffsetHeader Length4位头部长度。标识TCP头部长度(单位:4字节),用于定位数据起始位置。
FlagsControl Bits9位控制位集合。包含SYN/ACK/PSH/FIN/RST/URG等标志位(各占1位)。
MSSMaximum Segment Size最大报文长度。在SYN报文中协商,表示本方可接收的最大TCP数据段(不含头部)。典型值1460字节(以太网)。
ISNInitial Sequence Number初始序列号。连接建立时随机生成的Seq起始值,防止历史报文混淆(旧连接报文ISN不同)。
TIME_WAITTime Wait State主动关闭方最终状态。等待2MSL(60-120秒)确保被动方收到ACK,同时让网络中旧报文失效。
MSLMaximum Segment Lifetime报文最大生存时间。IP报文在网络中的最长存在时间(通常30秒-2分钟),TIME_WAIT=2MSL。

关键补充说明:

  1. Seq与Ack的协作

    • 发送数据:Seq标识数据起始位置(如Seq=100,数据长度50 → 下一包Seq=150)

    • 确认数据:Ack=101表示已正确接收Seq=100的数据,期望接收Seq=101的数据

  2. 标志位组合示例

    场景

    典型标志位组合

    建立连接

    SYN=1, ACK=0

    确认连接

    SYN=1, ACK=1

    数据传输

    ACK=1, PSH=1(可选)

    关闭连接

    FIN=1, ACK=1

    强制中断

    RST=1, ACK=1

  3. 为什么需要随机ISN?
    防止历史连接干扰:若ISN固定,延迟的旧报文可能被误认为新连接数据,随机ISN大幅降低冲突概率(32位空间约42亿组合)

✅ TCP 三次握手过程详解

确保客户端(Client)和服务端(Server)双向通信能力正常,并同步初始序列号(ISN),防止历史连接混淆。

整个连接过程分为三个部分:1、连接建立 2、数据传输 3、连接关闭

📌 第一次握手:

  • 客户端(主机A) 向 服务器(主机B) 发送一个 TCP 报文段。
    • 标志位 SYN = 1,表示请求建立连接。
    • 随机生成一个初始序列号 seq = x
  • 此时客户端进入 SYN_SENT 状态,等待服务器确认。

🔹 报文内容:SYN=1, seq=x


📌 第二次握手:

  • 服务器(主机B) 收到请求后,回应一个 TCP 报文段。
    • 设置标志位 SYN = 1 和 ACK = 1,表示同意建立连接并确认收到客户端的 SYN。
    • 确认号 ack = x + 1,即对客户端的 seq=x 进行确认。
    • 随机生成自己的初始序列号 seq = y

🔹 报文内容:SYN=1, ACK=1, ack=x+1, seq=y


📌 第三次握手:

  • 客户端(主机A) 接收到服务器的响应后,进行验证:
    • 检查确认号 ack 是否为 x + 1
    • 检查 ACK 标志是否为 1。
  • 若验证通过,则发送最后一个确认报文:
    • 标志位 ACK = 1
    • 确认号 ack = y + 1,即对服务器的 seq=y 进行确认。

🔹 报文内容:ACK=1, ack=y+1


✅ 握手完成:

  • 服务器收到第三次握手的确认报文后,双方连接正式建立,可以开始传输数据。
  • 客户端和服务器都进入 ESTABLISHED(已建立连接) 状态。

为什么是三次?

  • 两次握手的风险: 若失效的SYN报文延迟到达服务端,服务端会误认为新连接已建立(浪费资源)。

  • 三次握手解决: 客户端在第三步能判断是否是历史连接(通过ACK的合理性),决定是否终止。


✅ TCP 四次挥手过程详解

TCP 是全双工通信,因此连接的关闭需要双方都确认不再发送数据。四次挥手是为了确保数据完整传输后,安全地关闭连接。

📌 参与角色:

  • 主机A(客户端 或 主动关闭方)
  • 主机B(服务器 或 被动关闭方)

📌 第一次挥手:

  • 主机A 发送一个 FIN 报文段,表示自己不再发送数据,但仍可以接收数据。
    • 标志位 FIN = 1
    • 序列号 seq = u(前面已传输数据的最后一个字节序号 + 1)

🔹 报文内容:FIN=1, seq=u

  • 此时主机 A 进入 FIN-WAIT-1 状态。

📌 第二次挥手:

  • 主机B 收到 FIN 后,发送一个 ACK 报文段进行确认。
    • 标志位 ACK = 1
    • 确认号 ack = u + 1(对主机 A 的 FIN 进行确认)

🔹 报文内容:ACK=1, ack=u+1

  • 主机 B 进入 CLOSE-WAIT 状态;主机 A 收到后进入 FIN-WAIT-2 状态。

📌 第三次挥手:

  • 主机B 处理完自己的数据后,发送 FIN 报文段给主机 A,表示它也要关闭连接。
    • 标志位 FIN = 1
    • 序列号 seq = v(根据前面的数据序号继续)

🔹 报文内容:FIN=1, seq=v

  • 主机 B 进入 LAST-ACK 状态;主机 A 收到后进入 CLOSE-WAIT 并发送最后的 ACK。

📌 第四次挥手:

  • 主机A 收到主机 B 的 FIN 后,回复一个 ACK 报文段进行确认。
    • 标志位 ACK = 1
    • 确认号 ack = v + 1

🔹 报文内容:ACK=1, ack=v+1

  • 主机 A 进入 TIME-WAIT 状态,并等待 2MSL(Maximum Segment Lifetime)时间后正式关闭连接;
  • 主机 B 收到 ACK 后进入 CLOSED 状态。

✅ 挥手完成:

  • 双方连接完全关闭,资源释放。
  • TIME-WAIT 状态的存在是为了确保最后一个 ACK 能被对方收到,防止“网络中残留报文”干扰新连接。

🧠 小贴士:

  • 关闭双向通道: 收到对方的FIN只表示对方不再发送数据,己方可能仍需发送剩余数据。

  • 步骤拆分: 被动方的ACK(第二步)和FIN(第三步)无法合并(因应用层关闭时间不确定)。

问题解释
为什么是四次?因为 TCP 是全双工通信,每一端都需要单独关闭发送方向
为什么要有 TIME-WAIT?确保最后一个 ACK 被对方收到;避免旧报文干扰新连接
如果第三次挥手丢失怎么办?主机 B 会重传 FIN,直到收到 ACK

关键问题解析

1. TIME_WAIT状态的作用(等待2MSL)

  • 确保被动方收到ACK 若ACK丢失,被动方会重发FIN,主动方能响应。

  • 消除历史报文干扰: 等待足够时间(2MSL,通常1-4分钟),确保网络中所有此连接的报文消失。

2. 半关闭状态(Half-Close)

  • 第二次挥手后,连接处于半关闭状态:被动方仍可发送数据(如传输剩余文件)。

3. 异常情况处理

  • 握手失败: 若SYN未收到响应,客户端会超时重试(指数退避)。

  • 挥手ACK丢失: 被动方重发FIN,主动方在TIME_WAIT期间可响应。

TCP报文格式

  1. 源端口号(Source Port,16位):发送方的端口号。
  2. 目的端口号(Destination Port,16位):接收方的端口号。
  3. 序列号(Sequence Number,32位):用于对发出的数据包进行编号,以保证数据传输的顺序和准确性。
  4. 确认号(Acknowledgment Number,32位):期望从对方接收到的下一个字节的序列号,实现可靠传输。
  5. 头部长度(Data Offset,4位):指示TCP头的长度,以32位字为单位。通常最小值是5,表示没有选项的情况。
  6. 保留字段(Reserved,6位):保留供将来使用的字段,目前必须设置为0。
  7. 标志位(Flags,6位)
    • CWR (Congestion Window Reduced): 拥塞窗口减少标志。
    • ECE (ECN-Echo): 显示网络拥塞或支持显式拥塞通知。
    • URG (Urgent Pointer field significant): 紧急指针字段有效。
    • ACK (Acknowledgment field significant): 确认号字段有效。
    • PSH (Push function): 推送功能。
    • RST (Reset the connection): 重置连接。
    • SYN (Synchronize sequence numbers): 同步序号用于发起连接。
    • FIN (No more data from sender): 发送方已无数据发送。
  8. 窗口大小(Window Size,16位):表示发送本报文段的一方的接收窗口还有多少空间,用于流量控制。
  9. 校验和(Checksum,16位):用于确保TCP报文段在传输过程中的完整性。
  10. 紧急指针(Urgent Pointer,16位):只有当URG标志被设置时才有效,它指出本报文段中紧急数据的位置。
  11. 选项(Options,长度可变):可选参数,如最大报文段长度(MSS)、窗口扩大因子等。
  12. 填充(Padding):使整个TCP头部的长度为32位的整数倍,一般用0填充。

 

http://www.dtcms.com/wzjs/822974.html

相关文章:

  • 无锡网站建设 首选无锡立威云商信阳搜索引擎优化
  • 开网站建设公司好wordpress论坛功能
  • 微信公众平台微网站怎么做wordpress搬家之梦
  • 佛山市南海建设局网站安卓优化大师2023
  • 网站百度排名怎么做餐饮业网站建设
  • 如何做一家类似携程的网站十大网络舆情案例
  • 盘锦门户网站建设广州市设计院官网
  • 深圳赶集同城网站建设成都教育网站建设公司价格
  • 海珠免费网站建设网站制作哪家好又便宜
  • 有关做洁净工程的企业网站网站没被收录
  • 个人网站的制作步骤企业网站国内现状
  • 河南省建设监理网站长沙移动网站
  • 沈阳网站制作列表网表白网址在线制作平台
  • 宁波网站建设设计制作银川市住房和城乡建设局网站
  • 门户网站建设思路常州市住房和城乡建设局网站
  • 让人家做网站需要问什么问题做自媒体必备的8个网站
  • 服务器 网站打开慢做的网站为什么看不到图片
  • 如何判断网站做的关键词网站网页设计内容
  • 麻涌东莞网站建设上海网站建设哪家技术好
  • 诚信企业品牌网站建设做网站卖广告多少钱
  • 台州免费自助建站模板wordpress gif动画
  • 想要建设一个网站都需要注意什么做兼职上什么网站找
  • 有什么做3维的案例网站个人网站的主题
  • 商城网站技术方案绿化面积 建设网站
  • 网站建设解决方案网站建设服务条款
  • 做网站的目的是啥线上宣传推广方案
  • 网站建设费用主要包括那几项河南平台网站建设制作
  • 网站首页框架图有了域名空间怎么做网站
  • 静态网站源码辽宁网站定制企业
  • 汽车服务站建站流程网站公司用什么软件做网站