hit-computer_network icon indicating copy to clipboard operation
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.pyserver.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

简单网络组件与配置

基本功能

按照实验指导书所示的网路拓扑,选择实体设备并进行网络连接。

项目说明

细节可参照实验指导书,仅保留实验报告。