UCAS计算机网络实验
经过两周辛勤的的工作,把实验一实验三完成了,不过其中还是有点不足的,不过主要实验目的完成了,后面还有一些不太要紧的就算了。
后面有空的话 应该还会把实验五做一下
源码:https://github.com/cuixuage/NetWorking_MiniNet
Experiment
1.Switch_stack交换机实验 completed in 2017/11/8
实现对数据结构mac_port_map的所有操作,以及数据包的转发和广播操作
思路:
1.对于收到的packet,根据其des_mac在FDB表中进行查询,存在对应的interface则转发,否则在局域网内广播此packet
2.对于收到的packet,如果其src_mac不在FDB表中则认为是新加入的主机,将其src_mac与interface物理端口的映射关系加入FDB
3.key points: 当交换机从某一个interface收到来自src_mac地址的A主机的packet时,可以确定: des_mac为A主机的packet从其对应的inerface转出即可到达A主机
实现函数:
-iface_info_t *lookup_port(u8 mac[ETH_ALEN]);
-void insert_mac_port(u8 mac[ETH_ALEN], iface_info_t *iface);
-int sweep_aged_mac_port_entry();
-void broadcast_packet(iface_info_t *iface, const char *packet, int len);
-void handle_packet(iface_info_t *iface, char *packet, int len);
实验iperf结果: switch:
[ ID] Interval Transfer Bandwidth
[ 13] 0.0-30.2 sec 33.5 MBytes 9.29 Mbits/sec
boardcast:
[ ID] Interval Transfer Bandwidth
[ 13] 0.0-30.3 sec 20.9 MBytes 5.78 Mbits/se
3.NAT_stack NAT地址转换实验 completed in 2017/11/20
实现对于内网外网IP_PORT hash表NAT_mapping_entry操作,从而实现数据包转发(更换IP+PORT,重新计算checksum)
思路:
1.packet方向为DIR_IN
根据packet的tcp协议中des_port,从映射表中查找映射,得到局域网内部主机的IP+PORT,替换des_IP, des_port,重新计算IP\TCP协议的校验和,转发packet
2.packet方向是DIR_OUT
根据packet中的src_IP,src_PORT,从映射表中查找映射,如果不存在则加入映射表,得到NAT新分配的assgined_port。替换src_IP为NAT公网IP,src_port为assgined_port,重新计算校验和,转发packet
3.根据packet的des_IP == NAT公网IP判断packet发送方向
4.超时连接的timeout操作,free删除链接
实现函数:
-struct nat_mapping *nat_lookup_external(struct list_head *mapping_list, u16 external_port);
-struct nat_mapping *nat_lookup_internal(struct list_head *mapping_list,u32 internal_ip, u16 internal_port);
-u16 assign_external_port();
-void free_port(u16 port);
-struct nat_mapping *nat_insert_mapping(struct list_head *mapping_list, u32 internal_ip, u16 internal_port);
-static int get_packet_direction(char *packet);
-void nat_update_tcp_connection(char *packet, struct nat_mapping *mapping, int dir);
-struct nat_mapping *nat_get_mapping_from_packet(char *packet, int len, iface_info_t *iface, int dir);
-void do_translation(iface_info_t *iface, char *packet, int len, int dir);
-void *nat_timeout();
实验结果:
h2启动simpleHTTPServer ;h1 wget h2_IP
获取到当前目录所有文件并写入到index.html
5.Socket_example 分布式字符统计实验 completed in 2017/11/26
需求:统计某个文件中的所有字母出现次数,并将工作合理分配到 conf 中出现的若干个IP 代表的 worker 中,并获取结果展示
测试环境: mininet 搭建 1 个 switch+3 个 host(1 个 master+2 个 worker)
把 master 作为 server 端,worker 作为 client 进行的实验
-1.Server 多线程处理来自 client 的链接请求 避免的 accept 阻塞问题
-2.server 发送 filename + file_start + file_end 到 client. Client 从给定的文件起始位置结束位置加以处理,并将 hash 结果返回到 server
-3.server 端 pthread_join 等待最后一个的线程执行完毕后,再将 static ans 展示
UCAS计算机网络实验相关推荐
- 计算机网络实验五,计算机网络(实验五).docx
计算机网络(实验五).docx 实验五一.实验内容在这个实验室里,我们将探讨ICMP 协议得几个方面由 Ping 项目产生得P 信息Tracer ute程序生成得C消息关于 CM 信息得格式与内容.在 ...
- 计算机网络实验ip数据报转发,计算机网络实验报告三网际协议IP.doc
计算机网络实验报告三网际协议IP 计算机网络实验报告 实验题目:网际协议IP学号:201200301106日期:2014/11/20班级:2012级软工3班姓名: 李凯峰实验目的: 1.掌握IP数据报 ...
- 计算机虚拟网络毕业论文,计算机毕业论文——基于WEB的虚拟计算机网络实验平台.doc...
PAGE Tianjin University of Technology and Education 毕 业 设 计 专 业: 计算机科学与技术 班级学号: 计0203班 – 11 学生姓名: 指导 ...
- 计算机网络协议教案,计算机网络实验教案(6)网络协议分析-IP协议3.pdf
计算机网络实验教案(6)网络协议分析-IP协议3.pdf (2页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 <计算机网络实验> ...
- 配置实验室计算机步骤,计算机网络实验指导书(new)
计算机网络实验指导书 实验一 以太网的组建(2学时) 实验名称:以太网的组建 实验目的: 1.了解实验室布局:认识交换机与路由器的结构与连接方法: 2.掌握简单的局域网组网方法: 3.掌握简单的局域网 ...
- 计算机网络数据分析报告,贵州大学计算机网络实验报告-实验四-分析IP协议数据包格式...
贵州大学计算机网络实验报告-实验四-分析IP协议数据包格式 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 贵州大学GUIZHOU UN ...
- 宁波大学计算机网络实验五,宁波大学计算机网络实验答案.doc
宁波大学计算机网络实验答案 实验三 DNS协议分析 思考题: Q1.运行nslookup,查询并记载你的本地DNS 服务器名称及其IP 地址, 的 权威DNS 服务器名称及其IP 地址: A: 运行 ...
- 计算机网络实验设计应用题,计算机网络实验三实验报告.doc
计算机网络实验三实验报告 实验综合成绩 (百分制) 实验评阅教师签名其中实验态度优良中及格不及格实验报告优良中及格不及格 实 验 报 告 实验时间: 2015年 12 月 24日 实验运行环境 win ...
- 计算机网络技术教法改革方案,计算机网络实验论文,关于“计算机网络”教学改革相关参考文献资料-免费论文范文...
导读:本文是一篇计算机网络实验论文范文,可作为选题参考. (西南科技大学国防科技学院) 摘 要:"计算机网络"是一门理论与实践性都很强的课程,针对该课程存在教学模式与教学方法陈旧. ...
最新文章
- python向量化编程_向量化编程思维。
- excel执行INSERT和UPDATE操作语句
- 数据恢复西藏之旅--硬盘也有高原反应
- Windows上PHP扩展的实现,部署及应用
- 去除有序数组/链表的重复元素--双指针原地修改
- mysql 中报1062_mysql error 1062 问题解决
- 策略模式、观察者模式、代理模式、装饰模式 应用场景和实现
- c++函数不允许递归_面试算法题:不会递归函数被面试官刷了下来!
- 学习用TypeScript写React组件
- Bootstrap入门学习(三)——简单项目
- appium+python 多设备并行执行脚本【转】
- 混合分布(mixture distribution)
- Datalogic DS2100
- 【黑苹果 Hackintosh】Delll成就5468(Vostro 5468)黑苹果
- Python 显示实时时间方法
- 世界上最著名也最危险的APT恶意软件清单
- 12个scp命令传输文件的例子
- vue在vscode代码格式化
- 快来帮你三分钟了解物联网
- .Net 7 CLR和ILC编译函数过程
热门文章
- 1.电磁波传播原理,慢衰落、快衰落、阴影效应、多径传播、多普勒效应、塔下黑。
- 腾讯通服务器删除离线消息,如何撤回RTX离线消息离线文件.docx
- markdown的简单使用,基础的一些用法讲解
- Oracle 天数计算函数
- 如何使用CorelDRAW 2019绘制谷歌浏览器Logo
- 马士兵学习笔记-Java基础网络编程
- android进入wifi权限,判断android设备wifi连接状态,判断android设备wifi,添加访问权限(Andro...
- java 文件解压缩zip_java解压缩zip文件
- 艾宾浩斯遗忘曲线PHP,艾宾浩斯记忆遗忘曲线 复习计划表 网盘下载
- 怎么用计算机管理你的外卖订单,外卖系统怎么确定收到订单 外卖接单软件怎么做...