zoukankan      html  css  js  c++  java
  • TCP/IP笔记 三.运输层(4)——TCP链接管理与TCP状态机

    1. 建立连接

    三次握手


    (1)A 的 TCP 向 B 发出连接请求报文段,其首部中的同步比特 SYN 应置为 1,并选择序号 x,表明传送数据时的第一个数据字节的序号是 x。
    (2)B 的 TCP 收到连接请求报文段后,如同意,则发回确认。
    (3)B 在确认报文段中应将 SYN 置为 1,其确认号应为 x + 1,同时也为自己选择序号 y。
    (4)A 收到此报文段后,向 B 给出确认,其确认号应为 y + 1。
    (5)A 的 TCP 通知上层应用进程,连接已经建立。
    (6)当运行服务器进程的主机 B 的 TCP 收到主机 A 的确认后,也通知其上层应用进程,连接已经建立。

    2. 断开连接

    2.1 半关闭:

    Client --> Server  无数据, ACK = u+1

    Server--> Client  有数据, Seq = v + t

    2.2 Time Wait

    等待2MSL(Max Segment Life Time)

    原因:

    (1)保证最后一个ACK从A到达B

    (2)避免”已丢失“的报文被Server就收到,建立连接请求。


    从 A 到 B 的连接就释放了,连接处于半关闭状态。
    相当于 A 向 B 说:
    “我已经没有数据要发送了。
    但你如果还发送数据,我仍接收。”

    3. TCP状态机


  • 相关阅读:
    numpy基本使用2
    python 继承 多态
    动态规划算法题(5题)
    利用栈非递归实现块排
    数据结构
    对Node的优点和缺点提出了自己的看法?
    前后端交互流程,如何进行交互
    Web App、Hybrid App与Native App的设计差异
    什么叫优雅降级和渐进增强?
    常用博客
  • 原文地址:https://www.cnblogs.com/james1207/p/3320151.html
Copyright © 2011-2022 走看看