arplab report finished
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -242,19 +242,19 @@ ARP层、IP层和ICMP层之间需要正确地交互,特别是IP层需要调用
|
||||
- *抓包工具*:Wireshark 4.6.3,网络协议分析工具,用于捕获和分析网络数据包,验证协议实现的正确性
|
||||
- *文本编辑器*:支持语法高亮的代码编辑器,用于编写和调试代码
|
||||
|
||||
开发环境配置简单,只需安装GCC、CMake和Npcap即可开始开发。Npcap提供了类似libpcap的接口,使得代码可以在Windows和Linux平台上移植。
|
||||
开发环境配置简单,只需安装GCC、CMake和Npcap即可开始开发。Npcap提供了类似libpcap的接口,使得代码可以在Windows和Linux平台上移植。本程序在Linux和Windows均完成过测试,本报告以Windows实验验证环境为主进行说明。
|
||||
= 实验步骤
|
||||
== 环境配置
|
||||
=== 网络配置
|
||||
在`port_pcap.c`和`xnet_tiny.c`中配置了本机的IP地址。在本实验中,本机的IP地址被配置为`192.168.43.70`,网关地址为`192.168.43.1`。
|
||||
目标机器(被Ping机器)的IP地址在`app.c`中定义为`192.168.43.146`。
|
||||
在`port_pcap.c`和`xnet_tiny.c`中配置了本机的IP地址。在本实验中,本机的IP地址被配置为`192.168.254.1`,网关地址为`192.168.254.3`。
|
||||
目标机器(被Ping机器)的IP地址在`app.c`中定义为`192.168.254.3`。
|
||||
|
||||
```c
|
||||
// xnet_tiny.c
|
||||
const uint8_t my_ip_addr[] = {192, 168, 43, 70};
|
||||
const uint8_t my_ip_addr[] = {192, 168, 254, 1};
|
||||
|
||||
// app.c
|
||||
const uint8_t target_ip[] = {192, 168, 43, 146};
|
||||
const uint8_t target_ip[] = {192, 168, 254, 3};
|
||||
```
|
||||
|
||||
使用Npcap作为底层的抓包和发包驱动。在`port_pcap.c`中打开指定的网卡设备:
|
||||
@@ -684,7 +684,7 @@ ICMP Echo Request的处理流程包含以下步骤:
|
||||
|
||||
1. *报文验证*:检查报文长度是否满足ICMP头部最小要求,验证校验和是否正确
|
||||
2. *类型判断*:检查ICMP类型字段是否为Echo Request(8)
|
||||
3. *特殊处理*:当源IP为192.168.43.146时,调用 `do_traceroute` 函数打印路由信息(用于实验演示)
|
||||
3. *特殊处理*:当源IP为192.168.254.3时,调用 `do_traceroute` 函数打印路由信息(用于实验演示)
|
||||
4. *构造响应*:分配发送缓冲区,填充IP头部和ICMP头部
|
||||
5. *类型转换*:将ICMP类型字段从Echo Request(8)修改为Echo Reply(0)
|
||||
6. *地址交换*:将IP头部的源地址和目的地址互换,实现响应报文的正确路由
|
||||
@@ -699,10 +699,10 @@ ICMP Echo Request的处理流程包含以下步骤:
|
||||
== 网络拓扑与测试环境
|
||||
本次实验采用简单的局域网拓扑结构,包含两台主机:
|
||||
|
||||
- *主机A(本机)*:IP地址为192.168.43.70,运行xnet_tiny协议栈
|
||||
- *主机B(目标主机)*:IP地址为192.168.43.146,运行标准操作系统
|
||||
- *主机A(本机)*:IP地址为192.168.254.1,运行xnet_tiny协议栈
|
||||
- *主机B(目标主机)*:IP地址为192.168.254.3,运行标准操作系统
|
||||
|
||||
两台主机通过同一个Wi-Fi接入点连接,处于同一个局域网内,可以直接进行二层通信。网关地址为192.168.43.1。
|
||||
两台主机通过同一个Wi-Fi接入点连接,处于同一个局域网内,可以直接进行二层通信。网关地址为192.168.254.3。
|
||||
|
||||
#figure(image("环境配置ping测试.png",format: "png",width: 100%,fit: "stretch"),caption: "实验网络拓扑与测试环境")
|
||||
|
||||
@@ -780,5 +780,5 @@ ARP协议的设计体现了网络协议中的几个重要原则。首先是"简
|
||||
// #h(0.5em)
|
||||
#it.body
|
||||
]
|
||||
#pagebreak()
|
||||
#bibliography("ref.yml",full: true,title: "参考文献",style:"gb-7714-2015-numeric")
|
||||
//#pagebreak()
|
||||
//#bibliography("ref.yml",full: true,title: "参考文献",style:"gb-7714-2015-numeric")
|
||||
Reference in New Issue
Block a user