节点多跳问题
按照三节点为例进行网络建模
每个节点分别设置自己的IP和MAC地址:以下列出源节点的属性值(其他节点同理)
节点模型的每一层分别实现不同的功能:
- 应用层
直接采用bursty_source用于产生数据包,sink用于接收数据包
- 传输层
直接用透传模型(op_pk_get()、op_pk_send()) - 网络层
用来进行路由
进程模型如下:
对于上层发下来的包给他加上源和目的IP然后往下层传递(同时确定下一跳并装入包字段nexthop里)
对于下层发来的数据包,如果目的IP是该节点的IP地址则接收该数据包往上层传递;若不是将下一跳装入nexthop字段往下层发送:
4. 数据链路层
建立相邻节点链路连接
对于上层到达的数据,在该状态机里加上源MAC和目的MAC,再往物理层发送:
对于下层到达,若接收到的数据目的MAC是我的MAC地址则接收,往上层发送;若不是,则摧毁此数据包: