hit-computer_network
hit-computer_network copied to clipboard
哈工大《计算机网络》课程实验。
《计算机网络》实验
本项目为哈尔滨工业大学《计算机网络》实验的代码。使用Python语言进行编写。
~~软件学院将Python作为主要工作语言的人并不是很多,希望你我能将这份信仰坚持下去。~~
~~人生苦短,我用Python!~~
请在使用前用pip安装包依赖。
(sudo) pip install -r requirements.txt
目录
- 代理服务器
- 可靠传输协议的实现
- 使用Wireshark分析网络协议
- 简单网络组件与配置
代理服务器
基本功能
- 代理服务器的基本功能
- ~~缓存机制的实现~~(待完善)
- 屏蔽特定用户、特定网站以及钓鱼功能
项目说明
本项目在proxy
文件夹下。
运行main.py
脚本打开代理服务器,默认端口为5000
。其中filter.json
为屏蔽&钓鱼功能的配置文件。cache
目录为缓存的数据。
可靠传输协议的实现
基本功能
- GBN协议的实现
- 实现数据的双向传输
- SR协议的实现
项目说明
本项目在gbn
文件夹下。
其中util.py
脚本为gbn协议和sr协议的基本实现。而client.py
和server.py
则为服务器和客户端的测试脚本。
基于20%的数据丢包率进行测试,采用双向传输,C->S和S->C分别使用GBN协议和SR协议进行测试。
改进空间
目前双向通信的实现一共使用了四个端口,实际上双向通信两个socket
各自只需要一个端口即可。
使用Wireshark分析网络协议
基本功能
- 使用Wireshark分析HTTP、TCP、IP协议
- 使用Wireshark分析DNS、UDP、ARP协议
项目说明
在Ubuntu下可直接使用以下指令进行安装
sudo apt-get install wireshark
在运行wireshark
时,一般用户没有抓包的权限。
官方推荐使用wireshark
用户组的用户进行抓包,不建议使用superuser
。
如果仅为实验,方便起见可以使用超级管理员权限。
sudo wireshark
简单网络组件与配置
基本功能
按照实验指导书所示的网路拓扑,选择实体设备并进行网络连接。
项目说明
细节可参照实验指导书,仅保留实验报告。