wireshark

下载地址:https://wireshark.org/ 

工具说明:The free web debugging proxy for any browser, system or platform

补充说明:当前版本win32-2.0.3已经中文本地化了,所以使用方面方便了很多

使用方法:

  • Wireshark窗口
    • 安装并启动后,要选择监听的接口
    • 捕获 -> 选项
    • 选择窗口内的某1个接口,例如:无线网络连接 -> 开始
  • 浏览器窗口
    • 打开1个浏览器
    • 输入任意1个网址,例如:http://cn.bing.com -> 回车
  • Wireshark窗口
    • 在顶部过滤器这里,写"tcp.stream eq 5"  # tcp.stream eq + 序号 可以自行http://www.google.com
    • 如下图所示,蓝色框内的3个会话是我们通常所说的"三次握手"

为了不使文档内的示图表面过于复杂,所以下列名词解释不会标注在示图内

seq序号:由发送方使用

ack确认序号:是接收方期望收到发送方的下一个报文的序号;确认序号是上次"已成功收到的数据序号+1"        # 带数字的那个ack,比如ack=480

ack:确认比特                # 方括号里面的那个ack,比如[ack]

  ack=1:表示这是1个已经确认了的tcp数据包

  ack=0:不是确认包

syn:同步比特,在建立连接时用来同步序号

  syn=1, ack=0:表示1个请求连接的报文

  syn=1, ack=1:表示同意建立连接    # 是对服务器而言

fin:终止比特,fin=1表示客户端的数据已经发送完毕,客户端此时要求服务器断开连接    # 也称为"释放连接"

说说"三次握手"

客户端 -> 服务器    # 第1次握手:客户端向服务器发送请求,请求建立连接

有2个参数      # [syn]标志位,seq = 0,"ack = 0"表示1个请求连接的报文

服务器 -> 客户端    # 第2次握手:服务器向客户端发送响应,允许建立连接

有3个参数      # [syn+ack]标志位,seq = 0,ack = 1


 

客户端 -> 服务器    # 第3次握手:客户端向服务器发送响应,告诉服务器已经收到"允许建立连接"的通知了

有3个参数      # [ack]标志位,seq = 1,ack = 1

经过了三次握手后,然后客户端向服务器发送了1个"GET"类型的HTTP请求,也就是我使用浏览器执行的"http://cn.bing.com -> 回车"这个操作了。

再说说"四次挥手"

客户端 -> 服务器    # 第1次挥手:客户端向服务器发送请求,请求关闭连接

有3个参数      # [fin+ack]标志位,seq = 3121,ack = 479

服务器 -> 客户端    # 第2次挥手:服务器向客户端发送响应,大概意思是"我已经知道你要求关闭连接了"

有3个参数        # [ack]标志位,seq = 479, ack = 3122

服务器 -> 客户端    # 第3次挥手:服务器向客户端发送响应,大概意思是"我依照你的要求,现在要关闭连接了"

有3个参数        # [fin+ack]标志位,seq = 479, ack = 3122

客户端 -> 服务器    # 第4次挥手:客户端向服务器发送请求,大概意思是"我知道你要关闭连接了"

有3个参数      # [ack]标志位,seq = 3121,ack = 480

原文地址:https://www.cnblogs.com/musicmovie/p/5435758.html