路由器的组成和功能
路由器是一种具有多个输入/输出端口的专用计算机,其任务是连接不同的网络(连接异构网络)并完成路由转发。在多个逻辑网络互联的时候,必须用到路由器。
当源主机要向目的主机发送数据报的时候,首先检查源主机和目的主机是否在同一个网络上(同一个LAN内),如果在同一个网络内,就直接交付,不用走路由器,如果不在同一个网络上,那么路由器按照转发表指出的路由把数据报转发给下一个路由器(间接交付),然后由下一个路由器再判断是否在同一个网络内,如果是就直接交付,如果不是就继续间接交付。也就是说:在同一个网络中传递数据无需路由器的参与,而跨网络通信必须通过路由器进行转发
如何判断目的主机和源主机是否在同一个网络内?
源主机把目的IP地址和自身所在的子网掩码向与,得到的结果和自身所在的网络前缀相对比,如果相同,那么目的主机和源主机就在一个网络内,如果不相同,就在不同的网络内。
组成结构:
路由器由路由选择和分组转发两部分构成。这与它的功能一一对应。
路由选择部分也成为控制部分,其核心构件是路由选择处理机。路由选择处理机的任务是根据所选定的路由选择协议构造出一个路由表,同时经常或定期地和相邻路由器交换信息而不断更新和维护路由表。
分组转发部分由三部分组成:交换结构,输入端口和输出端口。输入输出端口进行物理层和数据链路层的工作,也就是进行比特流和数据帧之间的转换。然后去头去尾把帧变成IP数据报。交换结构根据转发表对分组进行处理,将某个输入端口进来的分组放到一个合适的输出端口上。
只有当一个设备是存储转发设备,同时这个设备实现了某个层次的功能,它才能在相同层次上使用不同的协议(例如交换机和路由器,而集线器和中继器不行是因为这俩不是存储转发设备)
路由表和路由转发
路由表一般由{<目的网络IP地址>, <子网掩码>, <下一跳IP地址>, <接口>}四个项目组成。
转发表是由路由表得出的,转发表的表项和路由表的表项有直接对应的关系。不过转发表的格式和路由表不一样,因为转发表针对查找过程做过优化。转发表的结构是{<目的网络地址(IP地址)>, <下一跳地址(MAC地址)>}
转发和路由选择的区别:转发只涉及一个路由器,而路由选择是路由器通过所有路由器的网络拓扑结构计算出的一条最好的路由。
题目(具有总结性---->好题!!)
一、
试描述出主机H1发送一个IP地址到主机H2的过程
主机H1向主机H2发送一个IP数据报的过程如下:
-
主机H1先构造一个源IP地址为202.99.98.18,目的地址为202.99.98.35的IP数据报,然后主机H1把目的地址和自身的子网掩码相与,得到的结果不是H1所在的网络地址,因此H1和H2不在同一个子网,无法直接交付,然后将该数据报传送给数据链路层(端到端)
-
主机H1通过ARP获得路由器R1所对应的MAC地址,并将其作为目的MAC地址,将H1的MAC地址作为源地址,默认地址作为目的地址填到封装有IP数据报的帧内,然后将该帧发送出去
-
路由器R1接收到这个帧之后,去掉帧头和帧尾,就得到了IP数据报,然后根据IP数据报中的目的地址查找路由表,得知下一跳的地址(下一跳要去的网络)和自己直接相连(也就是下一步就是直接交付了)
-
路由器R1通过ARP得到了主机H2的MAC地址,并将其作为目的MAC地址,默认地址为源地址填到封装有IP数据报的帧中,然后发送到Net2上
-
主机H2将收到的帧去掉帧头和帧尾,就得到了H1发送的IP数据报
二、简述路由器的路由功能和转发功能
转发即一个分组到达路由器之后路由器所采取的动作。在路由器中,每个分组到达的时候对它进行处理,它在路由表(转发表)中查找分组所对应的输出线路。通过查询得到的结果,将分组发送到正确的路线上。
路由算法是网络层软件的一部分,它负责确定一个进来的分组应该被放到哪个输出端口上,路由算法负责填充和更新路由表,转发内容则根据路由表的内容来确定当每个分组到来的时候应该采取什么动作(如果是一个网络内的,路由器就不用管,直接丢弃,如果不是一个网络内的,路由器就把它转发给相应的路由器,让下一个路由器来搞定)
注:路由器的端口的IP地址一般与其直接相连的主机的默认网关是一样的。同时路由器在不同的网络中,会占用不同的IP地址,也就是说,一个路由器可以拥有多个IP地址。