TCP/IP IP转发
IP协议:转发IP数据报
因特网中的转发
routing 和 forwarding 的区别
routing指整个从源到目标转发的过程,路由选择
forwarding指转发,是路由器本地的操作
IP的目标
对用户而言,构建成一个概念上的虚拟网
转发信息库(FIB)
称为:转发表、路由表
一个路由节点在发送IP分组的时候的依据
一些转发难度
进行转发决策时依据的参数
处理分组首部服务质量的需求
直接传递和非直接传递
转发过程中的两种形式
- 直接:节点发送的目标(不一定是最终目标)与自己在同一个物理网络
- 间接:不在同一个物理网络,转发给下一跳的路由器
1 直接传递(单一网络的传输)
1 | 1 将IP数据报封装在链路层帧中 |
2 间接传递
1 | 1 发送方必须指出下一跳路由器, |
表驱动的IP转发
1 | 包含:目标IP与目标主机地址,到达目标的下一跳 |
默认路由
转发表中的一个重要路由
- 功能:在转发表中没有找到对应的路由表项,那么任何目标地址都会与默认路由匹配
- 作用:
1 | 1 合并多个路由的具体表项为一个 |
特定主机路由
表项对应一个特定主机
- 作用:本地管理网络控制
1 便于网络管理
2 允许网络测试
3 出于安全的控制
IP转发算法
1 | 收到上层的IP分组,需要将其转发 |
转发表表项匹配方法
最长前缀匹配:
表项中的子网掩码长的优先匹配
IP地址和转发表
对于分组中字段的修改情况:
1 大部分字段不改动,例如:不改动源地址和目标地址
2 改变TTL,若TTL减一为零则丢弃,首部校验和会改变
下一跳的IP地址如何存放?
(IP地址首部不存储下一跳节点的IP地址)
- 存储在帧的首部目标物理地址字段
1 | 1 即将被处理的IP地址交到网络接口上进行处理, |
节点处理到来的IP分组
链路层将分组交给IP模块
- 对于一个主机节点:
1 检查目标IP地址,匹配(转交高层
2 差错情况,丢弃 - 对于一个路由器节点:
IP分组首部的目标地址是否和路由器接口地址匹配?
1 匹配,转交处理(一般用于测试的环境
2 不匹配则转发,TTL-1,若TTL大于0重新计算首部和然后封装在帧中转发出去,否则丢弃
转发表的获取、初始化、更新
1 | …… |
参考资料:
- INTERNETWORKING WITH TCP/IP PRINCIPLES, PROTOCOLS, AND ARCHITECTURE Vol1 (6th Edition). DOUGLASE E. COMER