zoukankan      html  css  js  c++  java
  • TCP三次握手、四次挥手与TcpDump抓包分析

    一、TCP连接建立(三次握手)

    过程

    客户端A,服务器B,初始序号seq,确认号ack

    初始状态:B处于监听状态,A处于打开状态

    • A -> B : seq = x (A向B发送连接请求报文段,A进入同步发送状态SYN-SENT)

    • B -> A : ack = x + 1,seq = y (B收到报文段,向A发送确认,B进入同步收到状态SYN-RCVD)

    • A -> B : ack = y+1 (A收到B的确认后,再次确认,A进入连接状态ESTABLISHED)

    连接后的状态:B收到A的确认后,进入连接状态ESTABLISHED

    为什么要握手要三次

    防止失效的连接请求突然传到服务器端,让服务器端误认为要建立连接。

    二、TCP连接释放(四次挥手)

    过程

    A -> B : seq = u (A发出连接释放报文段,进入终止等待1状态FIN-WAIT-1)

    B -> A : ack = u + 1,seq = v (B收到报文段,发出确认,TCP处于半关闭,B还可向A发数据,B进入关闭等待状态WAIT)

    B -> A : ack = u + 1,seq = w (B重复发送确认号,进入最后确认状态LAST-ACK)

    A -> B : ack = w + 1,seq = u + 1 (A发出确认,进入时间等待状态TIME-WAIT)

    经过时间等待计时器设置的时间2MSL后,A才进入CLOSED状态

    为什么A进入TIME-WAIT后必须等待2MSL

    • 保证A发送的最后一个ACK报文段能达到B
    • 防止失效的报文段出现在连接中

    三、需要思考的问题

    问题1: 请详细描述三次握手和四次挥手的过程
    要求熟悉三次握手和四次挥手的机制,要求画出状态图。

    问题2: 四次挥手中TIME_WAIT状态存在的目的是什么?
    这个问题是画出四次挥手状态图,会引申问你。不排除还会问为什么四次挥手是四次不是二次等问题。最好是把相关问题均掌握。

    问题3: TCP是通过什么机制保障可靠性的?
    从四个方面进行回答,ACK确认机制、超时重传、滑动窗口以及流量控制,深入的话要求详细讲出流量控制的机制。

    四、Tcpdump使用

    tcpdump是对网络上的数据包进行截获的包分析工具,它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来去掉无用的信息。

    监视指定主机的数据包

    tcpdump host <IP地址>:截获该IP的主机收到的和发出的所有的数据包
    tcpdump host <IP地址> and <IP地址> :截获两个IP对应主机之间的通信

    监视指定端口的数据包

    tcpdump port <端口号>:截获本机80端口的数据包

    五、抓包分析握手过程

    抓包方法:首先使用tcpdump命令截获本机与某远程主机的数据包,然后打开某远程主机对应的网站,这里用我的域名www.fonxian.cn来做试验。

    ping www.fonxian.cn
    
    

    得到域名对应的ip:151.101.100.133

    ifconfg
    

    得到本机内网ip:192.168.0.108

    -S 参数的目的是获得ack的绝对值,不加该参数,第三次握手的ack为相对值1

    sudo tcpdump -S host 192.168.0.108 and 151.101.100.133
    
    

    得到下图

  • 相关阅读:
    Discuz X 2.5 点点(伪静态)
    jq 、xml 省市级联动
    php memcache 初级使用(2)
    关于windows虚拟内存管理的页目录自映射
    SharePoint 2010 网络上的开发经验和资源
    SharePoint 2010 Reporting Services 报表服务器正在内置 NT AUTHORITY\SYSTEM 账户下运行 解决方法
    SharePoint 2010 Reporting Services 报表服务器无法解密用于访问报表服务器数据库中的敏感数据或加密数据的对称密钥 解决方法
    Active Directory Rights Management Services (AD RMS)无法检索证书层次结构。 解决方法
    SharePoint 2010 Reporting Services 报表服务器实例没有正确配置 解决方法
    SharePoint 2010 页面引用 Reporting Services 展现 List 报表
  • 原文地址:https://www.cnblogs.com/fonxian/p/6565209.html
Copyright © 2011-2022 走看看