tcp状态装换

命名:netstat -apn  查看状态

netstat -apn | grep ......

 

 

TCP状态时序图:

    1.主动发起连接请求端:  CLOSE --发送SYN--SEND_SYN --接受 ACK、SYN --SEND_SYN--发送 ACK --ESTABLISHED(数据通信状态)

    2.主动关闭连接请求端;  ESTABLISHED(数据通信状态) --发送FIN --FIN_WAIT_1 --接受 ACK --FIN_WAIT_2(半关闭)

                --接受对端发送 FIN --FIN_WAIT_2(半关闭) --回发 ACK --TIME_WAIT(只有主动关闭连接方会经历该状态)


                 -- 等 2MLS时长(大约40s) --CLOSE

    3.被动接受连接请求端:    CLOSE -- LISTEN --接收 SYN -- LISTEN --发送 ACK SYN --SYN_RCVD --接收ACK --ESTABLISHED

    4.被动关闭连接请求端:    ESTABLISHED -- 接收 FIN --ESTABLISHED --发送ACK

                --CLOSE_WAIT (说明对端【主动关闭连接请求端】处于半关闭状态)

                --发送 FIN--LASK_ACK --接收ACK--CLOSE

    重点记忆: ESTABLISHED 、FIN_WAIT_2 <->CLOSE_WAIT 、TIME_WAIT(2MLS)
2MLS时长:

    一定出现在 主动关闭连接请求端  ---TIME_WAIT
    
    保证,最后一个 ACK 能成功被对端收到。(等待期间,对端没收到我发的 ACK ,对端会再次发送 FIN 请求)

端口复用:

    int opt =1 ; //设置端口复用。

    setsockopt(lfd,SOL_SOCKET,SO_REUSEADDR,(void*)&opt,sizeof(opt))

半关闭:    


    通信双方中,只有一端关闭通信   --FIN_WAIT_2

    close(lfd);

    shutdown (int fd,int how)


        how:  SHUT_RD  关读端
        
            SHUT_WR  关写端

            SHUT_RDWR  关读写

    shutdown 在关闭多个文件描述符对应的文件时(采用dup2后),采用全关闭方法。close 值关闭一个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值