三次握手wireshark抓包分析,成功握手和失败握手

转载之前:基于HTTP的视频流中,客户端有时会打开使用多条TCP与服务器连接,为了验证每一对话的sessionID是否相同,使用wireshark进行了抓包分析(抓到的都是加密的包,无卵用orz....),这里就需要学会从wireshark中看出握手是否成功,这就是我转载的原因啦!

开始!:


启动
点击start出现下面的对话框
 
wireshark是捕获机器上的 某一块网卡的网络包,当机器上有多块网卡的时候,需要选择一个网卡进行捕获操作。
选择网卡
>主页面上,直接点击选中后start
>capture->interfaces,选择后start
 
窗口介绍

1. Display Filter(显示过滤器), 用于过滤已经捕获到的数据
   PS:过滤器分为显示过滤器和捕获过滤器。捕获过滤器用来过滤捕获的封包,以免捕获到过多的数据。
       捕获过滤器的设置方式,capture->capture filters
2. Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同,代表不同的协议。
3. Packet Details Pane(封包详细信息), 显示封包中的字段
    各行信息说明如下:
         Frame:  物理层的数据帧概况
          Ethernet II:  数据链路层以太网帧头部信息
          Internet Protocol Version 4:  互联网层IP包头部信息
         Transmission Control Protocol:  传输层T的数据段头部信息
          Hypertext Transfer Protocol:  应用层的信息
4. Dissector Pane(16进制数据)
     16进制数据查看面板,也叫做解析器。这里显示的内容与“封包详细信息”中相同,只是改为以16进制的格式表述。
5. Miscellanous(地址栏)

三次握手抓包过程分析
   首先来一张三次握手经典图解

下面使用wireshark实际分析三次握手过程
1.打开wireshark,打开浏览器输入网址blog.csdn.net/hello_yz并访问;
2.停止捕获 ,红方块。不停止的话后面一直抓一直抓......;
3.在封包列表中可以找到下图数据:
    
在图中可以看到,访问blog.csdn.net/hello_yz网站过程中,wireshark截获到了三次握手的三个数据包,第四个包才是http的。这也说明http确实是使用TCP建立连接的。

下面进行三个数据包的详细分析。
首先对 封包详细信息分析说明
选中一条TCP协议数据包,它的封包详细信息如下图:
 
第一次握手数据包,可以看到客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。如下图:
 
第二次握手数据包,可以看到服务器发回确认包, 标志位为 SYN,ACK. 将确认序号ACK设置为1.如下图:
 
第三次握手数据包,可以看到客户端再次发送确认包(ACK) ,标志位为ACK,将sequence+1.如下图:
 
经过上述三次握手过程,即建立了HTTP连接。

当三次握手无法顺利进行时,也就不能建立连接。
为了避免抓到过多冗余数据,可以进行捕获过滤器设置
在host文件中添加如下数据便于测试
102.54.94.97      www.oa.com
捕获过滤器设置如下图:
capture->capture filter->new
 
Filter name自己随意取,host www.oa.com表示只捕获主机名为www.oa.com的数据包
然后,capture->option,选好之后start
 
抓到的数据包如下所示,可以看到在客户端发出第一次握手的请求后,没有得到服务器的应答,握手失败,无法建立连接。

 



http://www.cnblogs.com/dyllove98/p/3192083.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 内部类及其原理

Java中实现内部类 内部类相信大家都用过很多次了,就不说它是怎么用的了。 内部类 1.成员内部类 需要注意的是, 当成员内部类拥有和外部类同名的成员变量或这方法时, 默认情况下访问的是内部类的成员, 如要访问外部类的同名成员&…

西游日记7/27

已经到第四天了,觉得需要写一些进展来督促一下自己。 早上8点钟左右到的实验室,将昨天没有回顾完的论文再次回顾一遍,又重新发现了一些点,确实,在完全明白之前,一篇好的论文是常读常新的。在吃午饭之前&am…

JVM 垃圾回收机制

首先JVM的内存结构包括五大区域: 程序计数器、虚拟机栈、本地方法栈、方法区、堆区。其中程序计数器、虚拟机栈和本地方法栈3个区域随线程启动与销毁, 因此这几个区域的内存分配和回收都具有确定性,不需要过多考虑回收的问题。而Java堆区和方法区则不一样…

Modeling and Analyzing the Influence of Chunk Size Variation on Bitrate Adaptation in DASH 名字解释0728

在看“Modeling and Analyzing the Influence of Chunk Size Variation on Bitrate Adaptation in DASH”的时候遇到挺多的名词不是很明白,在这里做一下学习笔记(按照论文顺序)。 1、CDN server:“CDN将源站内容分发至最接近用户的…

Java8 Lambda表达式

概述 lambda表达式, 是Java8中的一个新特性。可以理解为一个匿名函数。 lambda表达式可以理解为将一个函数浓缩为一行代码,使代码更加简洁紧凑。 lambda表达式语法: (parameters) -> statement; 或 (parameters) -> {statements;} 参…

西游日记0728

今天要早点翘班儿,请表妹儿吃饭,现在来总结一下我今天的干活吧。 早上8点钟到的实验室,私以为还可以提早一点,确实是一个人的时候比较容易狂欢,早上的工作效率有点低啊。早上嘛,就是看论文诺,看…

Java8 方法引用

概述 方法引用是用来直接访问类或实例阴茎存在的方法或者构造方法.它需要由兼容的函数式接口(lambda表达式中用到的接口)构成的目标类型上下文. 有时候, 当我们想要实现一个函数式接口的方法, 但是已经由类实现了我们想要的功能, 这时可以使用方法引用来直接使用现有的功能实现…

配置过程中的一些问题

一、 Tomcat相关问题 1、百度经验有设置用户名密码,但是按照步骤进行,到测试的时候发现还是错误的。 解决:在设置的时候应该stop Tomcat,在设置好之后再重新开启Tomcat,发现可以。 2、把web项目加入Tomcat&#xff0…

流媒体通信协议HLS与DASH的对比

简单了解 HLS(HTTP Live Streaming)协议 是由苹果公司实现的基于HTTP的流媒体通信协议,并成为Quick TIme X和IPhone软件系统的一部分。苹果的IPad也有支持HLS的能力。 HLS传出的视频文件为基于MPEG2文件的切片,每个媒体切片在服务器上单独存放。在一个流…

Java8 Optional类

概述 到目前为止,著名的NullPointerException是导致Java应用程序失败的最常见原因。过去,为了解决空指针异常,Google公司著名的Guava项目引入了Optional类,Guava通过使用检查空值的方式来防止代码污染,它鼓励程序员写…

Activity的四种启动模式和onNewIntent()

Android中Activity启动模式详解 在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。 Android总Activity的启动模式分为四种: Activity启动模式设置…

Java8 默认方法

概述 Java8新增了接口的默认方法。使用default关键字。 默认方法就是接口可以有实现方法,而且不需要实现类来实现其方法。相对于JDK1.8之前的接口来说,新增了可以接口中实现方法。 可以说在接口中实现方法一部分原因是为了lambda表达式服务的&#xf…

Android Activity 生命周期中onStart()和onResume()的区别

首先了解Activity的四种状态 Running状态:一个新的Activity启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。 Paused状态:当Activity被另一个透明或者Dialog样式的Activity覆盖时的…

Android 原生ExoPlayer 解析

1.简述与应用范围 ExpPlayer是一个开源的,App等级的媒体API,它的开源项目包含了library和示例。 ExoPlayer相较于MediaPlayer有很多优点: 1. 支持基于http的移动流媒体协议,包括DASH,HSL,Smooth Stream。同…

Java8 Stream

概述 Java8 API中添加了一个新的抽象成为流Stream,可以以一种声明的方式处理数据。 Stream与java.io包中的InputStream和OutputStream是完全不同的概念。Java8中的Stream是对集合对象功能的增强,专注与对集合对象进行各种非常便利、高效的聚合操作&…

Java 注解原理

下面来看看Java中注解是如何实现的 创建注解类Inter: 创建测试类Test: 在程序第二句设置断点,可以看到: 可以看到,注解的实例是一个动态代理类的对象. 要想查看这个动态代理类,可以在代码中加 System.setProperty("sun.misc.ProxyGenerator.saveGeneratedFiles", …

myeclipse导入项目报错Target runtime Apache Tomcat v8.0 is not defined

今天想要查看一个现有的项目,本着最好使用原版本开发工具的奇怪想法,下载了一个myeclipse,在导入项目的时候报了一个错误 问题倒是挺明确的,就是项目需要的tomcat运行环境没有,有两种方法解决: 第一种方…

ExoPlayer用户手册

贴上原网址:https://google.github.io/ExoPlayer/guide.html 非完全翻译,有需要可以原网址自取,我发现网上也蛮多这个指导的翻译,可以去看看~ 开始啦!: ExoPlayer是一个开源的应用级媒体播放器&#xff0…

Android Studio查找功能(搜索功能)及快捷键

1、在当前窗口查找文本【CtrlF】 F3 向下查找关键字出现位置 ShiftF3 向上一个关键字出现位置 2、在当前工程内查找文本【CtrlShiftF】 先会弹出一个对话框,直接点击【find】,开始在整个工程内查找该字符串 查找结果如下: 3、查找类【C…

ZJU夏令营面试记录

首先记录一下这次夏令营面试。 1、进去后,圆桌会议,8个老师坐着。准备了6份简历简历表示不够,以后要多打几份。 2、首先,用英语介绍一下自己的专业(表示一脸懵逼) 3、说一下你这个暑假做了什么东西&…