zoukankan      html  css  js  c++  java
  • TCP(上)

    tcp头格式:

    1563976242(1)

    TCP状态位:

    1. SYN表示建立连接,
    2. FIN表示关闭连接,
    3. ACK表示响应,
    4. PSH表示有 DATA数据传输,
    5. RST表示连接重置。

    TCP窗口:

    TCP 要做流量控制,通信双方各声明一个窗口,标识自己当前能够的处理能力,别发送的太快,也别发的太慢.

    TCP三次握手时序图

    1563977458(1)

             客户端和服务端都处于 CLOSED 状态。先是服务端主动监听某个端口,处于 LISTEN 状态。然后客户端主动发起连接 SYN,之后处于 SYN-SENT 状态。服务端收到发起的连接,返回 SYN,并且 ACK 客户端的 SYN,之后处于 SYN-RCVD 状态。客户端收到服务端发送的 SYN 和 ACK 之后,发送ACK 的 ACK,之后处于 ESTABLISHED 状态,因为它一发一收成功了。服务端收到 ACK 的 ACK 之后,处于 ESTABLISHED 状态,因为它也一发一收了。



    断开连接的时候的状态时序图

    1563977417(1)


           2MSL,MSL是Maximum Segment Lifetime,报文最大生存时间,它是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。因为 TCP 报文基于是 IP 协议的,而 IP 头中有一个TTL 域,是 IP 数据报可以经过的最大路由数,每经过一个处理他的路由器此值就减 1,当此值为 0 则数 据报将被丢弃,同时发送 ICMP 报文通知源主机。协议规定 MSL 为 2 分钟,实际应用中常用的是 30 秒,1 分钟和 2 分钟等。

    TCP 状态机

    1563977308(1)

           在这个图中,加黑加粗的部分,是上面说到的主要流程,其中阿拉伯数字的序号,是连接过程中的顺序,而大写中文数字的序号,是连接断开过程中的顺序。加粗的实线是客户端 A 的状态变迁,加粗的虚线是服务端 B 的状态变迁。




  • 相关阅读:
    【笔记】Eclipse and Java for Total Beginners—015
    [笔记]再笔记边干边学Verilog HDL –006
    [笔记]再笔记边干边学Verilog HDL 002
    【笔记】Eclipse and Java for Total Beginners—016
    这是第一篇博客文章
    c语言读取obj文件转换数据
    腾讯研发项目总监:互联网产品开发中的“快”字诀
    截取年月日错误笔记
    我在赶集网的两个月
    庆云书店叹息中关门
  • 原文地址:https://www.cnblogs.com/menkeyi/p/11241262.html
Copyright © 2011-2022 走看看