IP路由选择过程
来源:互联网 发布:管家婆数据库搬移工具 编辑:程序博客网 时间:2024/03/28 21:07
host1与不同网络host2的ICMP通信过程:
host1:
(1)ICMP递交给因特网协议IP,IP协议创建一个分组,至少,源IP地址172.16.10.2、目标IP地址192.168.1.2和值为01的协议字段将被封装到此分组中。
(2)IP协议判断目标IP地址的位置,判断此目的IP位于本地网络还是某个远程网络(不同IP网段)
(3)由于192.168.1.2是远程网络,分组要发到默认网关172.16.10.1,但主机必须知道172.16.10.1的MAC硬件地址,因为只有知道了接口的硬件地址,分组才可以向下递交给数据链路层,并在那里完成帧的组建。所以主机检查自身ARP缓存,知道默认网关的MAC(即路由器fa0/0接口的硬件地址),最后分组与目标硬件地址(默认网关MAC)被在数据链路层封装成帧,帧中含有目标MAC(默认网关MAC)、源MAC以及以太网类型字段(用于描述给数据链路层交付帧中分组的网络层协议)。
(4)帧递交到物理层,物理层以一次一比特的方式将帧发送到物理介质上(网线)。
Router:
(1)从fa0/0接收到比特,将它们重组成帧。并进行CRC运算与帧中FCS字段对比,检查目标硬件地址与自己(fa0/0接口硬件地址)是否匹配。
(2)将分组从帧中取出,并将其他丢弃,分组被递交给以太网类型字段中列出的协议——示例中是IP协议。
(3)IP接收到分组,并检查它的目的地址IP192.168.1.2,路由器在其路由选择表(show ip route)中查找目的IP网络地址,发现目标网段接口在fa0/1,从而将分组交换到fa0/1缓冲区中,路由器查看arp表(show ip arp)知道目标IP的硬件地址MAC,最后分组和硬件地址被递交到数据链路层形成帧,帧中含有目标硬件地址(host2硬件地址MAC)、源硬件地址(路由器fa0/1接口MAC)、以太网类型字段等。
(4)帧递交到物理层,物理层以一次一比特的方式将帧发送到物理介质上(网线)。
host2:
(1)host2接收到比特,将它们重组成帧。并进行CRC运算与帧中FCS字段对比,检查目标硬件地址与自己(host2硬件地址)是否匹配。
(2)将分组从帧中取出,并将其他丢弃,分组被递交给以太网类型字段中列出的协议——示例中是IP协议。
(3)host2中的网络层,IP接收到分组,并对IP报头运行CRC,如果校验通过,IP随后将检查分组中目标地址,由于它们最终是匹配的,接下来要检查的就是分组的协议字段,并据此了解分组有效负荷的交付对象——示例中是ICMP。
(4)此有效负荷将被递交给ICMP,后者知道这是一个回应请求回应请求数据。ICMP将负责应答这个请求它首先立即德育这个接收到的分组,然后产生一个新的有效负荷作为回应应答数据。这个数据又循环之前的路由选择步骤。
到此IP路由选择过程完毕。
总结:
1、数据是从上层往下层递交的,并在每层封装时附加协议或以太网类型字段等(用在解封装时,知道交付给哪个协议或者端口处理)。如,网络层的分组中含有协议字段ICMP、EIGRP、OSPF等;数据链路层的帧中含有以太网类型字段,判断分组向上交付的网络层协议。
2、硬件地址MAC永远只能作用于本地LAN网络,绝不可以通过或跨路由器使用。
3、本地lan网络中使用的是MAC寻址通信不使用路由器(只有当目标主机是远程网络时才用路由器,才用IP寻址),所以分组/数据报成帧后是通过硬件地址MAC到达目标主机,即数据链路层以下不使用IP寻址的,但到达目标主机并交付到网络层后,要检查目标IP,如果CRC运算结果目标IP与自己(接收主机IP)不匹配将丢弃,匹配则接收。
- IP路由选择过程
- IP路由选择过程
- IP路由选择过程
- 路由方式,IP路由选择过程
- IP子网寻址,IP路由选择,IP首部拆解,IP标准化过程
- IP路由选择
- IP路由选择
- 【TCP/IP】IP路由选择
- TCP/IP详解--IP路由选择详解 ping命令的过程
- IP协议详解之二:深入理解IP路由选择过程
- 唯快不破:TCP/IP详解--IP路由选择详解 ping命令的过程
- 深入理解IP路由选择
- TCP IP详解 (9) IP路由选择
- 路由选择过程与原理
- IP的路由过程分析
- IP网际协议 - IP首部,IP路由选择,子网掩码
- TCP/IP(3.7)路由选择协议
- 【TCP/IP】路由选择之TTL
- Reachability 网络连接
- android L arm64 kernel image压缩、解压
- MFC获取系统的进程及列表控件使用
- Java学习(十)基本数据类型的包装类
- C++调用C# COM组件
- IP路由选择过程
- 接管微信平台验证
- 第十二周 项目3:(1)编写递归函数求n的阶乘
- 简单的裸机makefile工程
- 大型网站架构演变和知识体系
- python执行系统命令并取得输出内容
- 第十二周项目银行系统1
- Mac X 搭建 IOS 越狱开发环境
- Java学习(十一)java实例对象访问类成员