Wireshark过滤规则、OSI模型与TCP三次握手详解
本文内容有以下三个部分wireshark过滤规则osi模型简述tcp三次握手一、wireshark过滤规则wireshark只是一个抓包工具用其他抓包工具同样能够分析tcp三次握手协议。例如Sniffmaster是一款全平台抓包工具支持HTTPS、TCP和UDP协议可在iOS/Android/Mac/Windows设备上实现无需代理、越狱或root的抓包操作提供免费强大的代理抓包功能。以下这张图片完整地展现了wireshark的面板。使用好wireshark一个关键是如何从抓到的众多的包中找到我们想要的那一个。这里就要说filter过滤规则了。如上图在过滤器方框我们加上了ip.src192.168.1.102 or ip.dst192.168.1.102的过滤规则意思是在封包列表中只显示源ip地址为192.168.1.102或者目的ip地址为192.168.1.102的包。下面列举一些常用的过滤规则过滤IP如来源IP或者目标IP等于某个IP如前面说的例子 ip.src192.168.1.102 or ip.dst192.168.1.102比如TCP只显示TCP协议。过滤端口tcp.dstport 80 // 只显tcp协议的目标端口80tcp.srcport 80 // 只显tcp协议的来源端口80也可以写成tcp.port eq 80 or udp.port eq 80 这样的模式过滤协议单独写上tcp、udp、xml、http就可以过滤出具体协议的报文。你也可以用tcp or xml这样格式来过滤。我们还可以更加具体过滤协议的内容如tcp.flags.syn 0x02 表示显示包含TCP SYN标志的封包。过滤mac地址eth.src eq A0:00:00:04:C5:84 // 过滤来源mac地址eth.dstA0:00:00:04:C5:84 // 过滤目的mac地址http模式过滤http.request.method “GET”http.request.method “POST”http.request.uri “/img/logo-edu.gif”http contains “GET”http contains “HTTP/1.”// GET包http.request.method “GET” http contains “Host: ”http.request.method “GET” http contains “User-Agent: ”// POST包http.request.method “POST” http contains “Host: ”http.request.method “POST” http contains “User-Agent: ”// 响应包http contains “HTTP/1.1 200 OK” http contains “Content-Type: ”http contains “HTTP/1.0 200 OK” http contains “Content-Type: “过滤内容contains包含某字符串ip.src192.168.1.107 and udp contains 02:12:21:00:22ip.src192.168.1.107 and tcp contains “GET”前面也有例子http contains “HTTP/1.0 200 OK” http contains “Content-Type: “更加高级的用法就不讨论了读者有兴趣可以查阅 wireshark官网用户手册。二、osi模型简述OSI定义了网络互连的七层框架物理层、数据链路层、网络层、传输层、会话层、表示层、应用层即ISO开放互连系统参考模型。如下图左边部分。在每个分层中都会对所发送的数据附加一个首部在这个首部中包含了该层必要的信息如源ip地址和目的ip地址等。osi模型中在下一层的角度看当收到上一层的包时全部会被认为是本层的数据然后在本层中加上自己本层的首部继续往下传递。一个数据包格式如下举一个例子比如客户端应用程序A向远端 服务器 应用程序B发送“早上好”的数据那么大致流程是这样的应用程序A把数据发送给下一层的TCP模块。TCP模块属于传输层。TCP在应用层数据的前端加上一个TCP首部。TCP首部中包含源端口号和目标端口号等信息。然后将包发送给IP模块。IP模块属于网络层。IP将TCP传过来的TCP首部和TCP数据合起来当做自己的数据并且在TCP首部的前面加上自己的IP首部。IP首部包含了源ip地址和目的ip地址。然后IP包将被发送给数据链路层也就是以太网驱动程序。从IP传过来的包对于以太网驱动程序来说不过就是数据。给这些数据加上以太网首部里面包含了源MAC地址和目的MAC地址。然后再通过物理层把数据发送给目的MAC地址。服务器物理层接收到来自客户端的数据包时首先从以太网的包首部找到MAC地址判断是否为发给自己的包如果不是就丢弃如果是就向上转移给IP模块解析。IP模块收到IP包首部和后面的数据以后判断包首部的目的ip地址与自己的ip地址是否匹配如果匹配就接收数据并传给TCP模块处理。TCP模块会检查端口号确定接收数据的应用程序是哪一个。应用程序接收到数据包之后也会根据自己的规则判断做出一系列的处理。通过上面例子大致的过程可以体会到从上而下发包再到从下而上收包的过程。三、tcp三次握手上图为tcp三次握手很多书籍都能看到。TCP提供面向有连接的通信传输在数据通信开始之前先做好通信两端之间的准备工作。也就是说必须握手成功之后才能进行通信。 接下来用wireshark来抓取tcp三次握手报文。打开浏览器输入 http://blog.csdn.net/u014530704/article/。运用我们再前面介绍的过滤规则在过滤框中输入http contains u014530704找到如下包可以发现我们向服务器请求的包其中目的ip地址是47.95.165.112。这个地址是blog.csdn.net的ip地址。然后我们找 ip.src47.95.165.112 or ip.dst47.95.165.112 的包找到了如下红色方框为本机192.168.1.101和服务器47.95.165.112之间的三次握手协议。三次握手协议的过程为客户端通过TCP首部发送一个SYN包作为建立连接的请求等待确认应答。服务器发送ACK包确认应答发送SYN包请求连接。客户端针对SYN包发送ACK包确认应答。最后讲述一下看懂报文的方法。想要读懂tcp报文头部至关重要对着下图去看wireshark tcp报文并且找到tcp首部各个字段代表的意思你就能读懂tcp报文了。其他像以太网报文、ip报文、http报文等同样如此。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2494901.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!