zoukankan      html  css  js  c++  java
  • tcp协议的端口状态

    Listening 

    Syn_sent

    syn_rcvd

    established

    close_wait

    time_wait

    ---------

    对方主动关闭(对方调用close()), 我方的状态变为 close_wait

    我方主动关闭(我方调用close()), 我方的状态变为 time_wait

    统计各种端口状态的数目:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

    3. 什么是2MSL

    MSL是Maximum Segment Lifetime,译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。
    因为TCP报文(segment)是IP数据报(datagram)的数据部分,而IP头中有一个TTL域,TTL是time to live的缩写,中文可以译为“生存时间”,这个生存时间是由源主机设置初始值但不是存的具体时间,而是存储了一个IP数据报可以经过的最大路由数,每经过一个处理他的路由器此值就减1,当此值为0则数据报将被丢弃,同时发送ICMP报文通知源主机。
    RFC 793中规定MSL为2分钟,实际应用中常用的是30秒,1分钟和2分钟等
    ---------------------
    作者:overstack
    来源:CSDN
    原文:https://blog.csdn.net/overstack/article/details/8833894
    版权声明:本文为博主原创文章,转载请附上博文链接!

    我觉得:下面这张图有误, 右边是time_wait?

    --------------------------------------------------------------------------------------------

    TCP协议规定需要三次握手才能成功连接、四次握手才能成功断开连接,在cmd命令行中输入netstat -an即可查看网络端口状态;

    1.Listening:

      处于监听状态;

    2.Established:

      建立连接表示正在通信;

    3.Close_wait:

      对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭;

    4.Time_wait:

      我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT;

    5.Syn_sent:

      表示请求连接,当你要访问其它的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为ESTABLISHED,此时SYN_SENT状态非常短暂;

  • 相关阅读:
    Excel生成二维折线图详细教程 TheChosen
    sql语句截取字段中某一符号前几位的方法? TheChosen
    python快速下载包的镜像源? TheChosen
    Android 超大图长图浏览库 SubsamplingScaleImageView 源码解析
    记录线上APP一个排序比较引发的崩溃 Comparison method violates its general contract!
    Android 内存泄漏检测工具 LeakCanary(Kotlin版)的实现原理
    改数组长度
    枚举数组所有组合
    Ubuntu20.04启动后光标一直闪烁
    harbor镜像仓库清理操作
  • 原文地址:https://www.cnblogs.com/oxspirt/p/9835498.html
Copyright © 2011-2022 走看看