fix: fix all format in Computer Network Exps
This commit is contained in:
parent
38d7559b83
commit
8ecc438125
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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) 捕获内容如图所示
|
||||
捕获内容如图所示
|
||||
|
||||
> {width="17.007cm"
|
||||
> height="5.3cm"}
|
||||

|
||||
|
||||
2. 1) 分析协议包的内容
|
||||
2.
|
||||
分析协议包的内容
|
||||
|
||||
> {width="8.504cm"
|
||||
> height="3.6cm"}{width="8.504cm"
|
||||
> height="3.579cm"}{width="8.504cm"
|
||||
> height="3.556cm"}{width="8.504cm"
|
||||
> height="3.489cm"}
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
> 根据如上四张图片,可以发现各个协议所占的字节数为
|
||||
根据如上四张图片,可以发现各个协议所占的字节数为
|
||||
|
||||
+---------------------------------------+-------------+
|
||||
| > 协议 | > 字节数 |
|
||||
+---------------------------------------+-------------+
|
||||
| > 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请求也应算入其开销中。根据图片
|
||||

|
||||
可以计算得出由于协议产生的总开销为86+74+(202-128)+74=308
|
||||
bytes,从而计算得出比值约为0.4156,考虑到信息传输的稳定性,协议开销是值得的。
|
||||
|
||||
> {width="17.096cm"
|
||||
> height="1.281cm"}
|
||||
2. 以太网头部中哪一部分是解复用键并且告知它的下一个高层指的是IP,在这一包内哪一个值可以表示IP
|
||||
|
||||
> 可以计算得出由于协议产生的总开销为86+74+(202-128)+74=308
|
||||
> bytes,从而计算得出比值约为0.4156,考虑到信息传输的稳定性,协议开销是值得的。
|
||||
根据图片
|
||||

|
||||

|
||||
可以直观看出ipv6对应的分解键为0x86dd,tcp对应的分解键为6
|
||||
|
||||
4. 1) 以太网头部中哪一部分是解复用键并且告知它的下一个高层指的是IP,在这一包内哪一个值可以表示IP
|
||||
4. 故障分析
|
||||
|
||||
> 根据图片
|
||||
在实验过程中出现了控制台有反馈但Wireshark没有捕获的情况,经排查后发现是由于控制台指令输入错误:误将http输入为https所致。
|
||||
|
||||
> {width="17.096cm"
|
||||
> height="2.009cm"}
|
||||
|
||||
> {width="17.096cm"
|
||||
> height="3.667cm"}
|
||||
|
||||
> 可以直观看出ipv6对应的分解键为0x86dd,tcp对应的分解键为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. 通过查询相关资料,了解开销、分解键等概念
|
||||
|
||||
**六、附录**
|
||||
|
||||
**无**
|
||||
|
|
|
|||
|
|
@ -1,250 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title><center>华东师范大学软件学院实验报告</center></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>
|
||||
|
|
@ -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>
|
||||
<br>
|
||||

|
||||
2. 检查捕获到的数据<br>
|
||||

|
||||
3. 以太网帧结构<br>
|
||||
<table align="center">
|
||||
1. 捕获帧
|
||||

|
||||

|
||||
2. 检查捕获到的数据
|
||||

|
||||
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. 以太网地址范围
|
||||

|
||||
5. 广播帧
|
||||
捕获内容如图:<br>
|
||||
<br>
|
||||
5. 广播帧
|
||||
捕获内容如图:
|
||||

|
||||
1. 以太网地址为 ff:ff:ff:ff:ff:ff,在 Wireshark 中标注为 Broadcast
|
||||
2. 第一个字节的末位为1是组播,反之则是单播,所有比特均为1则是广播
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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. 捕获轨迹
|
||||

|
||||

|
||||
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.
|
||||

|
||||
|
||||
2. 
|
||||
|
||||
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.
|
||||

|
||||
4.
|
||||

|
||||
5. 执行如下代码:
|
||||
```
|
||||
|
||||
``` c
|
||||
#include<bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
|
|
@ -150,4 +150,5 @@
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
其结果为0x4fffb,计算4+fffb=ffff,故正确。
|
||||
|
|
|
|||
|
|
@ -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 流量包后停止捕获,其界面如图:
|
||||

|
||||
2. 检查捕获<br>
|
||||
*因为捕获到的包数量较少,故不设置过滤器。*<br>
|
||||
请求包:<br>
|
||||
2. 检查捕获
|
||||
*因为捕获到的包数量较少,故不设置过滤器。*
|
||||
请求包:
|
||||

|
||||
回复包:<br>
|
||||
回复包:
|
||||

|
||||
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。
|
||||
|
|
|
|||
|
|
@ -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. 检查捕获到的数据
|
||||
捕获包如图所示
|
||||

|
||||
3. UDP 消息结构<br>
|
||||
观察下图所列出的包<br>
|
||||
3. UDP 消息结构
|
||||
观察下图所列出的包
|
||||

|
||||
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
|
||||

|
||||
2. 如图所示,目标 IP 地址为 239.255.255.250<br>
|
||||
2. 如图所示,目标 IP 地址为 239.255.255.250
|
||||

|
||||
3. 捕获到的 UDP 消息大小大多在 100 bytes 与 300 bytes 之间。
|
||||
|
|
|
|||
|
|
@ -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 图表如图:
|
||||
|
||||

|
||||
|
|
@ -204,11 +204,11 @@
|
|||

|
||||
|
||||
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
|
||||
$$
|
||||
|
|
|
|||
|
|
@ -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 捕获到的包信息如下。
|
||||
|
||||

|
||||

|
||||
|
||||
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 捕获到的包信息如下。
|
||||
|
||||

|
||||
|
||||
|
|
@ -59,7 +60,7 @@
|
|||
4. 0号客户端发送测试文本3(测试中文文本):`text3:你好,世界`,服务端显示:`text3:你好,世界`,正常发送,Wireshark 捕获到的包信息如下。
|
||||
|
||||

|
||||
|
||||
|
||||
5. 0号客户端发送测试文本4(测试长文本):`text4:0123456789abcdef...0123456789abcdef`(共计32774字节),服务端显示:`text4:0123456789abcdef...012345678`(共计4096字节),文本发送不正常,仅发送前 4096 字节,检查 Wireshark ,可以发现0号客户端共发送16个包,前15个包中每个包携带255字节的文本,最后一个包携带16字节的文本,捕获到的第一个与最后一个客户端包信息如下。
|
||||
|
||||

|
||||
|
|
@ -91,17 +92,17 @@
|
|||

|
||||
|
||||
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号客户端使用端口为43676,Wireshark 捕获包信息如下:
|
||||
|
||||

|
||||

|
||||
|
||||
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. 尝试重新启动服务端,服务端正常运行
|
||||
|
||||
|
||||
测试截图如下:
|
||||
|
||||
|
||||

|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue