赞
踩
在开始前,请确保你已经安装了wireshark
安装参考地址:wireshark 安装与使用
tcp全称为传输控制协议(Transmission Control Protocol),是一种 面向连接、可靠的 ,基于字节流的传输层协议。
要想了解传输控制协议,我们就需要知道网络之间到底是怎么通信的?当你在浏览器输入URL之后,是怎么
获取到页面的?也就是说浏览器是怎么知道你要访问哪个位置的?为什么他就能返回给你,而不是其他人?
首先,在 客户端 和 服务器 间的通信协议就是TCP/IP协议
此时,客户端产生数据,需要发送出来,但是此时并不知道需要请求的端口号
于是有了,数据控制层
数据在应用层产生后,对应的应用会有其对应的端口号——源端口号
数据在产生后,需要清楚需要访问服务器上的哪个端口的进程(也就是将数据给哪个程序)
在有了源端口号
和目标端口号
后,我们还是无法进行请求,因为不知道真实的服务器地址在哪里
网络层
在知道了两个对应的应用程序后,浏览器知道了自己要请求哪个端口,但是需要将本机IP和目的IP添加上去
到这里,浏览器就能确定你需要访问的哪个位置了,在经过链路层后,打包成0/1数据流传递到服务器的对应端口上。
至此,浏览器就知道了我们是需要访问哪个位置的,而且只会将你所需要的数据返回给你,而不是别人,因为你告诉了服务器,你的本机IP
所以,我们大概就知道了到底什么是传输控制协议?
传输控制协议,见名知意,当然就是用于控制传输
的协议,在过程中,涉及到端口号
和对应ip
在这其中,应答确认就是保证消息传递可靠性的关键手段,即三次握手
三次握手
,就是存在三次交互,存在三次TCP报文的传输。
你需要和一个你看不见的人建立联系。
首先,你需要给对方发送一个信息
——第一次握手
此时,你并不知道对方到底有没有收到
然后,对方也会发送一个信息
回来(中间包括你发送过去的)——第二次握手
这时候,你知道对方收到了你的信息了,因为他把你的信息+1了
此时,对方也发送了一个
他的信息
给你,因为他不知道你有没有收到他的信息
此时,你最后回复一句,我也收到你的消息拉——第三次握手
这样,你们就可以开始交互数据,因为此时你们已经确定你->他,和他->你,两端的通信是没有问题的。
打开wireshark软件后,出现以下页面
这里将会显示当前你电脑中所有的曾保存过的网络配置,选择一个当前正在活动的网络
在这里,我一直在波动的就是以太网了
一般情况下,连接了网线直接选择
以太网
即可
当出现一直在跳动的连接时,表示已经成功
这里我直接对局域网 内部署的网站进行分析
注意点1:ping
ping www.baidu.com
- 1
若需要分析如百度等地址的,需要进行ping命令,发现其真实ip地址
注意点2:keep-alive
这里可能出现的一个问题就是当你访问这个地址时,没有发送tcp的三次握手包
因为在TCP协议中存在
keep-alive
的机制,无需每次都先建立连接后访问(建立连接后,可保持一段时间)
在知道你所要访问的ip地址后,在wireshark上,输入
ip.addr == ip地址 && tcp
例如,当前我确定的IP地址为10.6.3.104
,因此限制为
在选择过滤好ip地址后,切换至浏览器访问地址
切换会wireshark
观察数据的变化
一般情况下头部的三个为tcp的三次握手过程
在第一次握手时,我们主动向对应的地址发送连接请求
我们双击查看第一条报文
这里会显示当前网络中每一层的数据
我们开始分析传输控制层的具体信息
打开后,我们查看当前协议中的Flags
此时syn为1,是一个发起连接请求
我们双击点开第二个报文
此时syn = 1 ,ack = 1,是一个确认接受连接请求
我们双击打开第三个报文
此时ack = 1 ,是一个确认请求
自此,服务端与客户端可以进行正常的数据传输了
根据上面的三次握手,我们可以得到当前TCP三次握手的真实示意图
在完成三次握手后,本机通过GET
方法请求HTTP报文
我们点击第四个报文进行查看
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。