C语言实现题目《路由器与连网模拟程序》
路由器有四个端口,分别为g0/0/1~4,每个端口可以连接一个网线,通过网线连接一个网络。每个端口都有一个在该网络中的一个IP地址。
路由器内存中有路由表,路由器根据路由表转发数据。路由表中有以下字段组成:目的网络地址、子网掩码、下一站地址、发出端口组成。
报文(消息)可抽象为源IP地址、目的IP地址、消息内容组成。
匹配目的IP与路由表项中子网掩码运算求网络地址,与表项中的目的网络对比,相同则匹配成功。
路由器匹配路由路径规则如下
- 匹配路由表中的目的IP地址相同的路由表项
- 匹配路由表中的目的网络地址与子网掩码相同的路由表项
- 若有多个网络地址与子网掩码匹配时,优先选择子网掩码长度最长的路由表项
- 若路由表中有默认路由表项(网络地址为0.0.0.0,子网掩码0.0.0.0),则匹配默认路由表项。
若能匹配成功路由表项,把报文发送给该表目指定的下一站路由器或直接相连的网络接口。
目的主机收到消息给源主机回复消息,方法为将收到的消息中的源IP地址与目的IP地址互换,消息为”replay”。开启一条新的消息路由过程。
实现一个至少两个路由器连接的网络,每个路由器至少连接1台主机。
实现以下功能。
- 路由器与主机间网络动态管理功能。
- 网络配置的保存、读取。
- 路由器中路由表的增加、删除、修改、查看功能,包含默认路由。
- 路由器中路由表的保存、读取。
- 完成连接在不同路由器中的主机间至少一次发送与收到回复消息模拟。