环回流量
- 本地主机之间的通信:
当你在本地主机上运行一个服务器应用程序(如 Web 服务器、数据库服务器等)时,客户端与服务器之间的通信可能会使用环回接口。例如,你在本地主机上运行一个 Web 服务器,并通过浏览器访问该服务器,此时浏览器向服务器发送的 HTTP 请求就会经过环回接口。
2. 本地主机上的网络服务:
当你在本地主机上运行一个网络服务(如 DNS 服务器、代理服务器等)时,该服务可能需要与自身进行通信。例如,当你的计算机上运行一个 DNS 服务器,并且其他程序需要解析域名时,这些程序向本地 DNS 服务器发送的 DNS 查询请求就会经过环回接口。
在wireshark中存在两种模式
具体开启方式如图标注:
Tcp
TCP全称传输控制协议,必须对数据的传输进行控制
tcp连接三次握手:
(第一次握手syn=1,第二次syn=1 ack=1,第三次ack=1)
tcp.flags.syn1 and tcp.flags.ack0表示筛选出由本机发送的请求并且通信协议是tcp其中的flags表示数据包头部中的特定位或字段
在 TCP 协议中,常见的标志位包括:
- SYN(同步):用于发起连接,表示请求建立连接。
- ACK(确认):用于确认数据包的接收,表示已收到数据包。
- FIN(结束):用于关闭连接,表示不再发送数据。
- RST(复位):用于重置连接,表示连接异常或被拒绝。
- PSH(推送):用于立即传送数据,表示应用层数据应立即传输而不缓存。
- URG(紧急):表示数据包中有紧急数据,需要优先处理。
具体如图:
第一次握手:
第二次握手:
第三次握手:
我们可以在流量图中很形象的看到三次握手 具体操作如图:
流量图如图:
找到正确的流量指向方法:(可以依据目标ip、端口和源ip、端口即可)
tcp连接断开四次挥手
原理如图:
相关数据:
第一次挥手:
第二次:
第三次:
第四次:
关于在wireshark中的相关过滤的操作:
tcp.flags.syn==1 and tcp.flags.ack==0
可以找到三次握手(根据三次握手的信息不同即可做出区分)
ip.src_host==127.0.0.1
(可以找到指定ip所发送的请求)
ip.dst_host==202.108.22.5
(可以找到数据所发送到的地方)
二者可以通过or
或者and
来连用
如图:
ip.addr==127.0.0.1
(此命令可以把ip为127.0.0.1的全部显示出来)
ARP协议
地址解析协议ARP(Address Resolution Protocol)
分类:普通ARP、反向ARP(RARP)、免费ARP和代理ARP
网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址而获取目的MAC地址的过程是由ARP(Address Resolution Protocol)协议来实现的
根据IP地址获取物理地址一个TCP/IP协议
这句话的意思是**(根据IP地址获取物理地址一个TCP/IP协议"的意思是指通过使用 TCP/IP 协议来查询某个设备的 IP 地址,然后利用这个 IP 地址去获取相应设备的物理地址(即 MAC 地址)。这个过程通常通过 ARP(地址解析协议)来实现,ARP 会将 IP 地址映射到对应的 MAC 地址)**
根据 IP 地址获取物理地址的过程涉及到 TCP/IP 模型中的多个层面:
- 物理层:物理层定义了数据传输的物理媒介和信号传输的规范。尽管获取物理地址的过程通常不直接涉及物理层,但是在实际数据传输中,通过物理层的传输媒介,如网线、无线信号等,才能确保数据帧从源设备传输到目标设备。
- 数据链路层:数据链路层负责将数据帧从一个网络设备传输到相邻的网络设备。在这个层面上,每个网络设备都有一个唯一的物理地址,即 MAC 地址。ARP 协议在数据链路层上实现,用于将 IP 地址映射到对应的 MAC 地址,以便进行数据帧的传输。
- 网络层:网络层使用 IP 地址来唯一标识网络中的设备,并负责数据包的路由和转发。获取物理地址的过程中,首先需要查询目标设备的 IP 地址,然后通过 ARP 协议将该 IP 地址映射到相应的 MAC 地址,以确定数据帧的接收者。
- 应用层:尽管获取物理地址的过程通常不涉及应用层,但某些应用程序可能会利用网络信息(如 IP 地址)来实现特定功能,例如网络发现或远程管理。
根据 IP 地址获取物理地址的过程涉及到 TCP/IP 模型中的多个层面,包括物理层、数据链路层、网络层和在某些情况下可能涉及的应用层
根据 IP 地址获取物理地址的过程不涉及传输层因为输层主要负责从发送端到接收端的数据传输和通信
一个数据包的传输流程如下:
- 应用层:数据包从应用程序生成,该层负责应用程序与网络的通信。例如,HTTP、FTP、SMTP 等协议运行在应用层。
- 传输层:传输层负责提供端到端的通信服务。例如,TCP 和 UDP 协议运行在传输层,它们将数据分割成数据段,并添加相应的头部信息。
- 网络层:网络层负责将数据包从源主机传输到目标主机。在这个过程中,数据包被封装成 IP 数据包,并添加相应的 IP 头部信息。“路由器”等网络设备在网络层进行路由和转发。
- 数据链路层:数据链路层负责将数据包从一个网络设备传输到相邻的网络设备。在这个过程中,数据包被封装成帧,并添加相应的数据链路层头部信息。“交换机、网桥”等网络设备在数据链路层进行数据帧的转发。
- 物理层:物理层负责定义物理连接和传输介质的特性,例如电压、频率等。在这个层面上,数据被转换成比特流,并通过物理介质传输。
所以,在一个数据包的传输过程中,并不是所有的层都被逐一经过。例如,当两台主机在同一局域网中进行通信时,数据包可能只经过数据链路层和物理层,而不经过网络层和传输层。而在跨越多个网络进行通信时,数据包则会经过更多的层次。
在wireshark上操作
查看arp协议 建议可以先去随便ping一下这样比较方便的去看出网关和本机的交互过程
再看之前需要先去分清本地ip和网关ip
如图:(因为我在这里抓的是WLAN的包所以选择去查看WLAN分发的ip)
然后如图:
第一行:
- Frame 13663: 这是数据包的编号,表示网络捕获工具捕获的第13663个数据包。
- 60 bytes on wire (480 bits): 数据包在网络上传输时的大小,以字节和位表示。
- 60 bytes captured (480 bits): 实际捕获到的数据包大小,以字节和位表示。
- on interface \Device\NPF_{7921C416-3C04-48A7-8126-1736AC2C8BE7}: 数据包捕获时所使用的网络接口,这里是一个设备标识符。
- id 0: 数据包的标识符,通常用于唯一标识捕获到的每个数据包
上图中的ARP部分如下:
- Hardware type(硬件类型): 指定硬件类型,这里是以太网(Ethernet)。
- Protocol type(协议类型): 指定网络层协议类型,这里是IPv4。
- Hardware size(硬件地址长度): 指定硬件地址的长度,这里是6个字节也就是48位(以太网地址的长度)。
- Protocol size(协议地址长度): 指定协议地址的长度,这里是4个字节(IPv4地址的长度)。
- Opcode(操作码): 指定ARP消息类型,这里是请求(request)。
- Sender MAC address(发送者MAC地址): 指定发送ARP请求的设备的MAC地址,这里是 FiberhomeTel_2e:2d:40(68🇩🇪ce:2e:2d:40)。
- Sender IP address(发送者IP地址): 指定发送ARP请求的设备的IPv4地址,这里是192.168.1.1。
- Target MAC address(目标MAC地址): 指定要解析MAC地址的设备的MAC地址,这里是未知,表示正在请求目标设备的MAC地址。
- Target IP address(目标IP地址): 指定要解析MAC地址的设备的IPv4地址,这里是192.168.0.159,表示正在请求该IP地址对应的设备的MAC地址。
这个过程表示的是网关在向本机请求mac地址的过程 其中192.168.0.159是本机ip
192.168.1.1是网关ip
以上是网关的请求(request)包 下面是本机的响应(reply)包