fix: fix all format in Computer Network Exps

This commit is contained in:
KirisameVanilla 2025-09-11 12:56:29 +08:00
parent 38d7559b83
commit 8ecc438125
No known key found for this signature in database
GPG Key ID: 7FC750F817277AC5
10 changed files with 176 additions and 455 deletions

View File

@ -5,11 +5,9 @@ title: 计算机网络
!!! warning "施工中"
# 计算机网络
## 实验报告
- [lab1](./lab/lab1/lab1)
- [lab1](./lab/lab1/lab1.md)
- [lab2 Ethernet](./lab/lab2/lib2)
- [lab3 IPV4](./lab/lab3/lib3)
- [lab4 ARP](./lab/lab4/lib4)

View File

@ -1,6 +1,10 @@
**华东师范大学软件学院实验报告**
---
title: Lab1
---
**一、实验目的**
# 华东师范大学软件学院实验报告
## 一、实验目的
1. 学会使用curl与wget指令
@ -10,113 +14,86 @@
4. 学会计算并分析协议开销
**二、实验内容与实验步骤**
## 二、实验内容与实验步骤
1. 在控制台中输入"curl <http://1st.moe/"并观察到"200> OK"
1. 在控制台中输入`curl http://1st.moe/`,并观察到`200 OK`
2. 启动Wireshark选择监听以太网并将捕获过滤器设置为tcp port
> 80关闭混杂模式并启用"enable network name resolution"选项
2. 启动Wireshark选择监听以太网并将捕获过滤器设置为tcp port 80关闭混杂模式并启用"enable network name resolution"选项
3. 关闭所有浏览器窗口后开始捕获
4. 重新在控制台输入"curl [**http://1st.moe/**](http://1st.moe/)"
4. 重新在控制台输入 `curl http://1st.moe/`
5. 停止Wireshark捕获
**三、实验环境**
## 三、实验环境
> B226机房电脑
B226机房电脑
**四、实验过程与分析**
## 四、实验过程与分析
1. 实验过程
1) 捕获内容如图所示
捕获内容如图所示
> ![](./Pictures/100000010000094B000002EADEAFEA2E.png){width="17.007cm"
> height="5.3cm"}
![捕获内容](./Pictures/100000010000094B000002EADEAFEA2E.png)
2. 1) 分析协议包的内容
2.
分析协议包的内容
> ![](./Pictures/10000001000003320000015C8A9E98EE.png){width="8.504cm"
> height="3.6cm"}![](./Pictures/100000010000032800000154F3640027.png){width="8.504cm"
> height="3.579cm"}![](./Pictures/100000010000032900000152B123680E.png){width="8.504cm"
> height="3.556cm"}![](./Pictures/100000010000033300000151977B0DF0.png){width="8.504cm"
> height="3.489cm"}
![协议包内容1](./Pictures/10000001000003320000015C8A9E98EE.png)
![协议包内容2](./Pictures/100000010000032800000154F3640027.png)
![协议包内容3](./Pictures/100000010000032900000152B123680E.png)
![协议包内容4](./Pictures/100000010000033300000151977B0DF0.png)
> 根据如上四张图片,可以发现各个协议所占的字节数为
根据如上四张图片,可以发现各个协议所占的字节数为
+---------------------------------------+-------------+
| > 协议 | > 字节数 |
+---------------------------------------+-------------+
| > Ethernet (eth) | > 14 bytes |
+---------------------------------------+-------------+
| > Internet Protocol Version 6 (ipv6) | > 40 bytes |
+---------------------------------------+-------------+
| > Transmission Control Protocol (tcp) | > 20 bytes |
+---------------------------------------+-------------+
| > Hypertext Transfer Protocol (http) | > 128 bytes |
+---------------------------------------+-------------+
| 协议 | 字节数 |
|-------------------------------------|-----------|
| Ethernet (eth) | 14 bytes |
| Internet Protocol Version 6 (ipv6) | 40 bytes |
| Transmission Control Protocol (tcp) | 20 bytes |
| Hypertext Transfer Protocol (http) | 128 bytes |
> 则包的结构大致如下
则包的结构大致如下
+-------------------+--------------------+------------+-------------+
| > eth | > ip | > tcp | > http |
+-------------------+--------------------+------------+-------------+
| > 14 bytes | > 40 bytes | > 20 bytes | > 128 bytes |
+-------------------+--------------------+------------+-------------+
| > Ethernet Header | > Ethernet Payload | | |
+-------------------+--------------------+------------+-------------+
| > IP Header | > IP Payload | | |
+-------------------+--------------------+------------+-------------+
| eth | ip | tcp | http |
|-----------------|------------------|----------|-----------|
| 14 bytes | 40 bytes | 20 bytes | 128 bytes |
| Ethernet Header | Ethernet Payload | | |
| IP Header | IP Payload | | |
3. 问题
1) 分析协议开销
1. 分析协议开销
> 一个GET本身的大小为128
> bytes而其相应产生的SYN、ACK请求也应算入其开销中。根据图片
一个GET本身的大小为128
bytes而其相应产生的SYN、ACK请求也应算入其开销中。根据图片
![alt](./Pictures/10000001000004EE0000005E50C8B369.png)
可以计算得出由于协议产生的总开销为86+74+(202-128)+74=308
bytes从而计算得出比值约为0.4156,考虑到信息传输的稳定性,协议开销是值得的。
> ![](./Pictures/10000001000004EE0000005E50C8B369.png){width="17.096cm"
> height="1.281cm"}
2. 以太网头部中哪一部分是解复用键并且告知它的下一个高层指的是IP在这一包内哪一个值可以表示IP
> 可以计算得出由于协议产生的总开销为86+74+(202-128)+74=308
> bytes从而计算得出比值约为0.4156,考虑到信息传输的稳定性,协议开销是值得的。
根据图片
![alt](./Pictures/10000001000004000000007864293250.png)
![alt](./Pictures/1000000100000470000000F4B4E41AC7.png)
可以直观看出ipv6对应的分解键为0x86ddtcp对应的分解键为6
4. 1) 以太网头部中哪一部分是解复用键并且告知它的下一个高层指的是IP在这一包内哪一个值可以表示IP
4. 故障分析
> 根据图片
在实验过程中出现了控制台有反馈但Wireshark没有捕获的情况经排查后发现是由于控制台指令输入错误误将http输入为https所致。
> ![](./Pictures/10000001000004000000007864293250.png){width="17.096cm"
> height="2.009cm"}
> ![](./Pictures/1000000100000470000000F4B4E41AC7.png){width="17.096cm"
> height="3.667cm"}
> 可以直观看出ipv6对应的分解键为0x86ddtcp对应的分解键为6
5. 故障分析
> 在实验过程中出现了控制台有反馈但Wireshark没有捕获的情况经排查后发现是由于控制台指令输入错误误将http输入为https所致。
**五、实验结果总结**
## 五、实验结果总结
1. 实验完成了对一个HTTP包的拆解与分析其大体结构大致如下
+-------------------+--------------------+------------+-------------+
| > Eth | > ip | > tcp | > http |
+-------------------+--------------------+------------+-------------+
| > 14 bytes | > 40 bytes | > 20 bytes | > 128 bytes |
+-------------------+--------------------+------------+-------------+
| > Ethernet Header | > Ethernet Payload | | |
+-------------------+--------------------+------------+-------------+
| > IP Header | > IP Payload | | |
+-------------------+--------------------+------------+-------------+
|th|ip|tcp|http|
|-|-|--|-|
| 14 bytes | 40 bytes | 20 bytes | 128 bytes |
| Ethernet Header | Ethernet Payload | | |
| IP Header | IP Payload | | |
2. 实验通过curl指令与Wireshark软件完成在其中熟悉网络工具的使用并体会到其强大之处
3. 通过查询相关资料,了解开销、分解键等概念
**六、附录**
**无**

View File

@ -1,250 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>&lt;center&gt;&#x534e;&#x4e1c;&#x5e08;&#x8303;&#x5927;&#x5b66;&#x8f6f;&#x4ef6;&#x5b66;&#x9662;&#x5b9e;&#x9a8c;&#x62a5;&#x544a;&lt;&sol;center&gt;</title>
<style>
/* From extension vscode.github */
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.vscode-dark img[src$=\#gh-light-mode-only],
.vscode-light img[src$=\#gh-dark-mode-only],
.vscode-high-contrast:not(.vscode-high-contrast-light) img[src$=\#gh-light-mode-only],
.vscode-high-contrast-light img[src$=\#gh-dark-mode-only] {
display: none;
}
</style>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Microsoft/vscode/extensions/markdown-language-features/media/markdown.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Microsoft/vscode/extensions/markdown-language-features/media/highlight.css">
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', system-ui, 'Ubuntu', 'Droid Sans', sans-serif;
font-size: 14px;
line-height: 1.6;
}
</style>
<style>
.task-list-item {
list-style-type: none;
}
.task-list-item-checkbox {
margin-left: -20px;
vertical-align: middle;
pointer-events: none;
}
</style>
<style>
:root {
--color-note: #0969da;
--color-tip: #1a7f37;
--color-warning: #9a6700;
--color-severe: #bc4c00;
--color-caution: #d1242f;
--color-important: #8250df;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--color-note: #2f81f7;
--color-tip: #3fb950;
--color-warning: #d29922;
--color-severe: #db6d28;
--color-caution: #f85149;
--color-important: #a371f7;
}
}
</style>
<style>
.markdown-alert {
padding: 0.5rem 1rem;
margin-bottom: 16px;
color: inherit;
border-left: .25em solid #888;
}
.markdown-alert>:first-child {
margin-top: 0
}
.markdown-alert>:last-child {
margin-bottom: 0
}
.markdown-alert .markdown-alert-title {
display: flex;
font-weight: 500;
align-items: center;
line-height: 1
}
.markdown-alert .markdown-alert-title .octicon {
margin-right: 0.5rem;
display: inline-block;
overflow: visible !important;
vertical-align: text-bottom;
fill: currentColor;
}
.markdown-alert.markdown-alert-note {
border-left-color: var(--color-note);
}
.markdown-alert.markdown-alert-note .markdown-alert-title {
color: var(--color-note);
}
.markdown-alert.markdown-alert-important {
border-left-color: var(--color-important);
}
.markdown-alert.markdown-alert-important .markdown-alert-title {
color: var(--color-important);
}
.markdown-alert.markdown-alert-warning {
border-left-color: var(--color-warning);
}
.markdown-alert.markdown-alert-warning .markdown-alert-title {
color: var(--color-warning);
}
.markdown-alert.markdown-alert-tip {
border-left-color: var(--color-tip);
}
.markdown-alert.markdown-alert-tip .markdown-alert-title {
color: var(--color-tip);
}
.markdown-alert.markdown-alert-caution {
border-left-color: var(--color-caution);
}
.markdown-alert.markdown-alert-caution .markdown-alert-title {
color: var(--color-caution);
}
</style>
</head>
<body class="vscode-body vscode-light">
<h1 id="华东师范大学软件学院实验报告"><center>华东师范大学软件学院实验报告</center></h1>
<table align="center">
<thead>
<tr>
<th style="text-align:left"><strong>实验课程:</strong> 计算机网络</th>
<th style="text-align:left"><strong>年级:</strong> 2024</th>
<th style="text-align:left"><strong>实验成绩:</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><strong>实验名称:</strong> Ethernet</td>
<td style="text-align:left"><strong>姓名:</strong> 张春晓</td>
<td style="text-align:left"><strong>实验日期:</strong> 2024.11.29</td>
</tr>
<tr>
<td style="text-align:left"><strong>实验编号:</strong> 2</td>
<td style="text-align:left"><strong>学号:</strong> 10234507025</td>
<td style="text-align:left"><strong>实验时间:</strong> 2学时</td>
</tr>
</tbody>
</table>
<hr>
<h2 id="一实验目的">一、实验目的</h2>
<p>学习以太网帧的组成</p>
<h2 id="二使用内容与实验步骤">二、使用内容与实验步骤</h2>
<ol>
<li>捕获帧
<ol>
<li>对一个远程服务器使用 ping 指令发送信息,并检查是否有回复;</li>
<li>启动 Wireshark ,选择过滤 icmp ,开启“启用 MAC 名称解析”选项,开始捕获以太网帧;</li>
<li>重复第一步;</li>
<li>终止 ping 指令,返回 Wireshark 并停止捕获。</li>
</ol>
</li>
<li>检查捕获到的数据
<ol>
<li>选择捕获到的任意数据包,查看其结构与组成数据包字节的详细信息;</li>
<li>展开以太网报头字段并查看详细信息。</li>
</ol>
</li>
<li>以太网帧结构
绘制一个显示以太网头字段位置与大小的 ping 报文图。</li>
<li>以太网地址范围
绘制一张图,显示电脑、路由器、远程服务器的相对位置。<br>
用以太网地址标注计算机与路由器IP 地址标注计算机与远程服务器。<br>
并显示以太网和互联网其他部分在图中的位置。</li>
<li>广播帧
启动 Wireshark ,选择过滤 ether multicast ,等待一段时间,捕获广播与组播以太网帧,并根据结果完成以下两个任务:<br>
<ol>
<li>找到广播以太网地址</li>
<li>找到以太网地址的哪一位确认是单播还是组播</li>
</ol>
</li>
</ol>
<h2 id="三实验环境">三、实验环境</h2>
<ul>
<li>实验仪器ThinkPad X230i</li>
<li>操作系统Arch GNU/Linux x86_64</li>
<li>以太网控制器Intel Corporation 82575LM Gigabit Network Connection</li>
<li>网络控制器Realtek Semiconductor Co., Ltd. RTL8188CE 820.11b/g/n WiFi Adapter</li>
<li>网络连接校园网ECNU-1X</li>
</ul>
<h2 id="四实验过程与分析">四、实验过程与分析</h2>
<ol>
<li>捕获帧<br>
<img src="file:////home/chiyoyuki/homework/conputer_network/lib3-1.png" alt="ping"><br>
<img src="file:////home/chiyoyuki/homework/conputer_network/lib3-2.png" alt="Wireshark"></li>
<li>检查捕获到的数据<br><br>
<img src="file:////home/chiyoyuki/homework/conputer_network/lib3-3.png" alt="ping"></li>
<li>以太网帧结构<br> <table align="center">
<tr>
<td align="center" colspan=3>Ethernet II</td>
<td align="center">IP&ICMP</td>
</tr>
<tr>
<td align="center">Destination</td>
<td align="center">Source</td>
<td align="center">Type</td>
<td align="center" rowspan=2>60 Bytes</td>
</tr>
<tr>
<td align="center">6 Bytes</td>
<td align="center">6 Bytes</td>
<td align="center">2 Bytes</td>
</tr>
<tr>
<td align="center" colspan=3>Ethernet Header</td>
<td align="center">Ethernet Payload</td>
<tr>
</table>
</li>
<li>以太网地址范围<br>
<img src="file:////home/chiyoyuki/homework/conputer_network/lib2-5.png" alt="mermaid"></li>
<li>广播帧
捕获内容如图:<br>
<img src="file:////home/chiyoyuki/homework/conputer_network/lib3-4.png" alt="broadcast"><br>
<ol>
<li>以太网地址为 ff:ff:ff:ff:ff:ff在 Wireshark 中标注为 Broadcast</li>
<li>第一个字节的末位为1是组播反之则是单播所有比特均为1则是广播</li>
</ol>
</li>
</ol>
<h2 id="五试验结果总结">五、试验结果总结</h2>
<p>在本次实验中,我顺利地完成了各项任务,了解并学习到了以太网传输的各项细节</p>
</body>
</html>

View File

@ -1,10 +1,8 @@
# <center>华东师范大学软件学院实验报告</center>
| **实验课程:** 计算机网络 | **年级:** 2024 | **实验成绩:** |
| :------------------------ | :--------------------- | :------------------------ |
| **实验名称:** Ethernet | **姓名:** | **实验日期:** 2024.11.29 |
| **实验编号:** 2 | **学号:** | **实验时间:** 2学时 |
---
title: Lab2 - Ethernet
---
# 华东师范大学软件学院实验报告
## 一、实验目的
@ -23,11 +21,11 @@
3. 以太网帧结构
绘制一个显示以太网头字段位置与大小的 ping 报文图。
4. 以太网地址范围
绘制一张图,显示电脑、路由器、远程服务器的相对位置。<br>
用以太网地址标注计算机与路由器IP 地址标注计算机与远程服务器。<br>
绘制一张图,显示电脑、路由器、远程服务器的相对位置。
用以太网地址标注计算机与路由器IP 地址标注计算机与远程服务器。
并显示以太网和互联网其他部分在图中的位置。
5. 广播帧
启动 Wireshark ,选择过滤 ether multicast ,等待一段时间,捕获广播与组播以太网帧,并根据结果完成以下两个任务:<br>
启动 Wireshark ,选择过滤 ether multicast ,等待一段时间,捕获广播与组播以太网帧,并根据结果完成以下两个任务:
1. 找到广播以太网地址
2. 找到以太网地址的哪一位确认是单播还是组播
@ -41,22 +39,22 @@
## 四、实验过程与分析
1. 捕获帧<br>
![ping](./lib3-1.png)<br>
![Wireshark](./lib3-2.png)
2. 检查捕获到的数据<br>
![ping](./lib3-3.png)
3. 以太网帧结构<br>
<table align="center">
1. 捕获帧
![ping](./lib2-1.png)
![Wireshark](./lib2-2.png)
2. 检查捕获到的数据
![ping](./lib2-3.png)
3. 以太网帧结构
<table>
<tr>
<td align="center" colspan=3>Ethernet II</td>
<td align="center" colspan='3'>Ethernet II</td>
<td align="center">IP&ICMP</td>
</tr>
<tr>
<td align="center">Destination</td>
<td align="center">Source</td>
<td align="center">Type</td>
<td align="center" rowspan=2>60 Bytes</td>
<td align="center" rowspan='2'>60 Bytes</td>
</tr>
<tr>
<td align="center">6 Bytes</td>
@ -64,15 +62,15 @@
<td align="center">2 Bytes</td>
</tr>
<tr>
<td align="center" colspan=3>Ethernet Header</td>
<td align="center" colspan='3'>Ethernet Header</td>
<td align="center">Ethernet Payload</td>
<tr>
</tr>
</table>
4. 以太网地址范围<br>
4. 以太网地址范围
![mermaid](./lib2-5.png)
5. 广播帧
捕获内容如图:<br>
![broadcast](./lib3-4.png)<br>
5. 广播帧
捕获内容如图:
![broadcast](./lib2-4.png)
1. 以太网地址为 ff:ff:ff:ff:ff:ff在 Wireshark 中标注为 Broadcast
2. 第一个字节的末位为1是组播反之则是单播所有比特均为1则是广播

View File

@ -1,9 +0,0 @@
#include<bits/stdc++.h>
using namespace std;
int main()
{
printf("%x",0x4500+0x0034+0xd124+0x4000+0x2606+0xe0f4+0x344a+0xe83b+0xda06+0xac1e);
return 0;
}

View File

@ -1,9 +1,8 @@
---
title: Lab3 - IPv4
---
# <center>华东师范大学软件学院实验报告</center>
| **实验课程:** 计算机网络 | **年级:** 2024 | **实验成绩:** |
| :------------------------ | :--------------------- | :------------------------ |
| **实验名称:** IPV4 | **姓名:** | **实验日期:** 2024.12.08 |
| **实验编号:** 3 | **学号:** | **实验时间:** 2学时 |
# 华东师范大学软件学院实验报告
## 一、实验目的
@ -38,7 +37,6 @@
3. 将得到的和分为两段,使得其中的一段为最右边的 4 位 16 进制数,计算两段之和;
4. 检查结果是否为 0xffff 。
## 三、实验环境
- 实验仪器ThinkPad X230i
@ -50,9 +48,10 @@
## 四、实验过程与分析
1. 捕获轨迹
![wget](./lib3/lib3-2.png)
![wget](./lib3-2.png)
traceroute 获取到的信息如下:
```
``` bash
traceroute to 1st.moe (52.74.232.59), 30 hops max, 60 byte packets
1 * * *
2 10.100.5.1 (10.100.5.1) 8.795 ms 8.962 ms 9.096 ms
@ -85,20 +84,20 @@
29 * * *
30 * * *
```
2.
![wget](./lib3/lib3-2.png)
2. ![wget](./lib3-2.png)
3.
1. IP结构
<table align="center">
<tr>
<td align="center" colspan=12>IP</td>
<td align="center" colspan='12'>IP</td>
<td align="center">TCP</td>
</tr>
<tr>
<td align="center">Version</td>
<td align="center">Header Length</td>
<td align="center">Differentiated
Services Field</td>
<td align="center">Differentiated Services Field</td>
<td align="center">Total Length</td>
<td align="center">Identification</td>
<td align="center">Flags</td>
@ -108,7 +107,7 @@
<td align="center">Header Checksum</td>
<td align="center">Source Address</td>
<td align="center">Destinatoin Address</td>
<td align="center" rowspan=2>32 Bytes</td>
<td align="center" rowspan='2'>32 Bytes</td>
</tr>
<tr>
<td align="center">4 bits</td>
@ -125,21 +124,22 @@
<td align="center">4 Bytes</td>
</tr>
<tr>
<td align="center" colspan=12>Ethernet Header</td>
<td align="center" colspan='12'>Ethernet Header</td>
<td align="center">Ethernet Payload</td>
<tr>
</tr>
</table>
2.
2.
1. 服务端 IP 地址为 52.74.232.59;电脑 IP 地址为 172.30.218.6
2. 总长字段为 52 = 20 + 32 ,所以计算时包含 IP 报头与 IP 负载
3. 不同
4. 电脑发送的 TTL 值为 38 ,是一个较小的值
5. 通过查看 Flags 字段
6. 长度为 20 Bytes ,编码在 IP 报头第一个字节的 4~8 位
4.
![wget](./lib3/lib3-3.png)
4.
![wget](./lib3-3.png)
5. 执行如下代码:
```
``` c
#include<bits/stdc++.h>
using namespace std;
@ -150,4 +150,5 @@
return 0;
}
```
其结果为0x4fffb计算4+fffb=ffff故正确。

View File

@ -1,8 +1,8 @@
# <center>华东师范大学软件学院实验报告</center>
| **实验课程:** 计算机网络 | **年级:** 2024 | **实验成绩:** |
| :------------------------ | :--------------------- | :------------------------ |
| **实验名称:** ARP | **姓名:** | **实验日期:** 2024.12.13 |
| **实验编号:** 4 | **学号:** | **实验时间:** 2学时 |
---
title: Lab4 - ARP
---
# 华东师范大学软件学院实验报告
## 一、实验目的
@ -42,7 +42,8 @@
1. 捕获
1. 执行`ifconfig`指令,得到的输出如下:
```
``` bash
enp0s25: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 3c:97:0e:27:a3:96 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
@ -69,27 +70,31 @@
TX packets 4771 bytes 2531632 (2.4 MiB)
TX errors 0 dropped 76 overruns 0 carrier 0 collisions 0
```
`wlan0` 下的 `ether` 一行可以得知计算机以太网地址为 `e0:06:e6:c4:be:04`
2. 执行 `route` 指令,得到的输出如下:
```
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 600 0 0 wlan0
172.31.0.0 0.0.0.0 255.255.0.0 U 600 0 0 wlan0
```
可以得知默认网关的 ip 地址为 `172.31.0.0`
3. 启动捕获。
4. 执行 `arp -a` 指令,得到输出 `_gateway (172.31.0.1) at 54:c6:ff:7b:38:02 [ether] on wlan0` 。随后执行 `sudo arp -d 172.31.0.1` 指令清除缓存,该指令没有输出,若重复执行,则会得到 `No ARP entry for 172.31.0.1` 输出。
5. 在观察到已经捕获 7 个 ARP 流量包后停止捕获,其界面如图:<br>
5. 在观察到已经捕获 7 个 ARP 流量包后停止捕获,其界面如图:
![arp](./lib4-1.png)
2. 检查捕获<br>
*因为捕获到的包数量较少,故不设置过滤器。*<br>
请求包:<br>
2. 检查捕获
*因为捕获到的包数量较少,故不设置过滤器。*
请求包:
![request](./lib4-2.png)
回复包:<br>
回复包:
![reply](./lib4-3.png)
3. ARP 请求与回复
3. ARP 请求与回复
其图例如下
```mermaid
flowchart LR
computer[计算机<br>MAC e0:06:e6:c4:be:04<br>IP 172.31.215.159]
@ -97,6 +102,7 @@
computer--request<br>Who has 172.31.0.1? Tell 172.31.215.159-->gateway
gateway--reply<br>172.31.0.1 is at <font color="red"><b>54:c6:ff:7b:38:02</b></font>-->computer
```
4. 以太网上的 ARP 详细信息
1. 请求的操作码为 `0x0001` ,回复的操作码为 `0x0002`
2. 请求与回复的的 ARP 报头均为 28 bytes对于报文请求的报文为 42 bytes回复的报文为60 bytes。

View File

@ -1,8 +1,7 @@
# <center>华东师范大学软件学院实验报告</center>
| **实验课程:** 计算机网络 | **年级:** 2024 | **实验成绩:** |
| :------------------------ | :--------------------- | :------------------------ |
| **实验名称:** UDP | **姓名:** | **实验日期:** 2024.12.20 |
| **实验编号:** 5 | **学号:** | **实验时间:** 2学时 |
---
title: Lab5 - UDP
---
# 华东师范大学软件学院实验报告
## 一、实验目的
@ -15,19 +14,19 @@
2. 浏览网页以产生 UDP 流量。
3. 停止浏览,等待一分钟左右观察背景 UDP 流量。
4. 停止捕获。
2. 检查捕获到的数据<br>
观察所捕获到的流量包UDP 协议包包括如下字段:源端口、目标端口、长度、校验和。<br>
2. 检查捕获到的数据
观察所捕获到的流量包UDP 协议包包括如下字段:源端口、目标端口、长度、校验和。
**注意:协议列所列出的协议可能是 UDP 之上的应用程序协议名称而非 UDP**
3. UDP 消息结构<br>
制作一份 UDP 报文图例并回答如下问题:<br>
3. UDP 消息结构
制作一份 UDP 报文图例并回答如下问题:
1. 长度字段包含什么?
1. UDP 有效负载
2. UDP 有效负载与 UDP 报头
3. UDP 有效负载、UDP 报头与底层报头
2. UDP 校验和的长度为多少?(以位为单位)
3. UDP 报头的长度为多少字节?
4. UDP 使用<br>
回答如下问题:<br>
4. UDP 使用
回答如下问题:
1. 给出标识上层协议为 UDP 的 IP 协议字段的值
2. 检查 UDP 消息并提供**当电脑既不是源IP地址也不是目标IP地址时**使用的目标 IP 地址
3. 捕获到的 UDP 消息的典型大小为多少
@ -42,21 +41,21 @@
## 四、实验过程与分析
1. 捕获
1. 捕获
本步骤采用老师所提供的捕获文件
2. 检查捕获到的数据
捕获包如图所示<br>
2. 检查捕获到的数据
捕获包如图所示
![package](./lib5-1.png)
3. UDP 消息结构<br>
观察下图所列出的包<br>
3. UDP 消息结构
观察下图所列出的包
![struct](./lib5-2.png)
1. UDP 报头为 8 bytes负载为 143 bytes二者之和恰为 UDP 长度字段所标注的 151 bytes故 UDP 长度字段包括 **UDP 有效负载与 UDP 报头**
2. UDP 校验和的长度为 2 bytes即 16 位。
3. UDP 报头的长度为 8 bytes。
UDP 报文结构如下表所示:<br>
UDP 报文结构如下表所示:
<table align="center">
<tr>
<td align="center" colspan=4>UDP Header</td>
<td align="center" colspan='4'>UDP Header</td>
<td align="center">UDP Payload</td>
</tr>
<tr>
@ -64,7 +63,7 @@
<td align="center"> Destination Port</td>
<td align="center">Length</td>
<td align="center">Checksum</td>
<td align="center" rowspan=2> many bytes</td>
<td align="center" rowspan='2'> many bytes</td>
</tr>
<tr>
<td align="center">2 bytes</td>
@ -74,8 +73,8 @@
</tr>
</table>
4. UDP 使用
1. 如图所示IP 协议字段的值为 0x11 ,即 17<br>
1. 如图所示IP 协议字段的值为 0x11 ,即 17
![IP](lib5-3.png)
2. 如图所示,目标 IP 地址为 239.255.255.250<br>
2. 如图所示,目标 IP 地址为 239.255.255.250
![des](lib5-4.png)
3. 捕获到的 UDP 消息大小大多在 100 bytes 与 300 bytes 之间。

View File

@ -1,8 +1,8 @@
# <center>华东师范大学软件学院实验报告</center>
| **实验课程:** 计算机网络 | **年级:** 2024 | **实验成绩:** |
| :------------------------ | :--------------------- | :------------------------------------------ |
| **实验名称:** TCP | **姓名:** | **实验日期:** <br>2024.12.27<br>2025.01.03 |
| **实验编号:** 6 | **学号:** | **实验时间:** 2学时 |
---
title: Lab6 - TCP
---
# 华东师范大学软件学院实验报告
## 一、实验目的
@ -110,33 +110,33 @@
<table align="center">
<tr>
<td align="center" colspan=20>TCP 报头</td>
<td align="center" colspan='20'>TCP 报头</td>
<td align="center">TCP 负载</td>
</tr>
<tr>
<td align="center">源端口<td>
<td align="center">目标端口<td>
<td align="center">序列号<td>
<td align="center">确认号<td>
<td align="center">报头长度<td>
<td align="center">Flags<td>
<td align="center">窗口<td>
<td align="center">校验和<td>
<td align="center">紧急指针<td>
<td align="center">Options<td>
<td a序列号: 0, ACK号: 1lign="center">TCP Payloads</td>
<td align="center">源端口</td>
<td align="center">目标端口</td>
<td align="center">序列号</td>
<td align="center">确认号</td>
<td align="center">报头长度</td>
<td align="center">Flags</td>
<td align="center">窗口</td>
<td align="center">校验和</td>
<td align="center">紧急指针</td>
<td align="center">Options</td>
<td align="center">TCP Payloads</td>
</tr>
<tr>
<td align="center">2 bytes<td>
<td align="center">2 bytes<td>
<td align="center">4 bytes<td>
<td align="center">4 bytes<td>
<td align="center">4 bits<td>
<td align="center">12 bits<td>
<td align="center">2 bytes<td>
<td align="center">2 bytes<td>
<td align="center">2 bytes<td>
<td align="center">12 bytes<td>
<td align="center">2 bytes</td>
<td align="center">2 bytes</td>
<td align="center">4 bytes</td>
<td align="center">4 bytes</td>
<td align="center">4 bits</td>
<td align="center">12 bits</td>
<td align="center">2 bytes</td>
<td align="center">2 bytes</td>
<td align="center">2 bytes</td>
<td align="center">12 bytes</td>
<td align="center">Many bytes</td>
</tr>
</table>
@ -196,7 +196,7 @@
```
5. TCP 数据传输
IO 图表如图:
![IO](lib6-5.png)
@ -204,11 +204,11 @@
![IO](lib6-6.png)
1. 下载方向的大致数据速率是
$$
\frac{\frac{1}{8}(18+35+13+8+46+23+28+21) packets}{0.1 s} = 240\ packets/s
$$
$$
\frac{\frac{1}{8}(185300+401500+149100+91780+527700+263900+321200+226600) bits}{0.1 s} =2708850\ bits/s
$$
@ -224,7 +224,7 @@
$$
\frac{\frac{1}{8}(16+29+13+8+32+10+23+22) packets}{0.1 s} = 191.25\ packets/s
$$
$$
\frac{\frac{1}{8}(8448+15310+6864+4224+16990+5280+12140+11620) bits}{0.1 s} =101095\ bits/s
$$

View File

@ -1,4 +1,5 @@
# <center>华东师范大学软件学院实验报告</center>
| **实验课程:** 计算机网络 | **年级:** 2024 | **实验成绩:** |
| :-------------------------------- | :--------------------- | :------------------------ |
| **实验名称:** Socket Programming | **姓名:** | **实验日期:** 2025.01.03 |
@ -44,9 +45,9 @@
1. 0号客户端发送测试文本0测试短文本)`text0:hello, world`,服务端显示:`text0:hello, world`正常发送Wireshark 捕获到的包信息如下。
![png3](./lib7-3.png)
![png3](./lib7-3.png)
2. 0号客户端发送测试文本1测试ACSII可显示字符)text1: !"#\$%&'()\*+,-./0123456789:;<=>?\`ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^\_@abcdefghijklmnopqrstuvwxyz{|}~服务端显示text1: !"#\$%&'()\*+,-./0123456789:;<=>?\`ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^\_@abcdefghijklmnopqrstuvwxyz{|}~正常发送Wireshark 捕获到的包信息如下。
2. 0号客户端发送测试文本1测试ACSII可显示字符)text1: ``!"#\$%&'()*+,-./0123456789:;<=>?`ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_@abcdefghijklmnopqrstuvwxyz{|}~``服务端显示text1: ``!"#\$%&'()*+,-./0123456789:;<=>?`ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_@abcdefghijklmnopqrstuvwxyz{|}~``正常发送Wireshark 捕获到的包信息如下。
![png4](./lib7-4.png)
@ -59,7 +60,7 @@
4. 0号客户端发送测试文本3测试中文文本)`text3:你好,世界`,服务端显示:`text3:你好,世界`正常发送Wireshark 捕获到的包信息如下。
![png7](./lib7-7.png)
5. 0号客户端发送测试文本4测试长文本)`text4:0123456789abcdef...0123456789abcdef`共计32774字节服务端显示`text4:0123456789abcdef...012345678`共计4096字节文本发送不正常仅发送前 4096 字节,检查 Wireshark 可以发现0号客户端共发送16个包前15个包中每个包携带255字节的文本最后一个包携带16字节的文本捕获到的第一个与最后一个客户端包信息如下。
![png](./lib7-8.png)
@ -91,17 +92,17 @@
![png12](./lib7-12.png)
0号客户端发送了带有 SYN 的信息包由于服务端已经关闭7701端口空闲故返回带有RST的数据报0号客户端收到后报告错误并退出
7. 执行指令`./client`,不指定地址,报错`usage: simplex-talk host`
6. 多客户端测试
1. 重新启动服务端
2. 启动0号客户端观察 Wireshark 可以发现0号客户端使用端口为53092
3. 0号客户端发送文本`client0`,服务端显示:`client0`,正常发送。
4. 启动1号客户端观察 Wireshark 可以发现1号客户端使用端口为43676Wireshark 捕获包信息如下:
![png13](./lib7-13.png)
![png13](./lib7-13.png)
5. 1号客户端发送文本`client1`,服务端没有显示,但 Wireshark 捕获到信息包。
6. 0号客户端发送文本`text from client0`,服务端显示`text from client0`,正常发送。
@ -124,9 +125,9 @@
5. 尝试重新启动服务端,报错`simplex-talk: bind: Address already in use`Wireshark 未捕获到内容
6. 客户端退出
7. 尝试重新启动服务端,服务端正常运行
测试截图如下:
![png15](./lib7-15.png)
8. 局域网通信测试
@ -281,7 +282,7 @@ main()
exit(1);
}
while (len = recv(new_s, buf, sizeof(buf), 0))
fputs(buf, stdout);
fputs(buf, stdout);
close(new_s);
}
}