wireshark
工具说明: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
posted on 2016-04-26 19:19 nashviller 阅读(387) 评论(0) 编辑 收藏 举报