为了便于理解,先从同一广播域内两台主机通信开始叙述吧。只要能理解这些,那也就差不多可以理解跨路由传输过程了(两者不同之处在于源和目标MAC地址的转换)。

情景一:同一广播域内,两台主机通信过程。

我们知道两主机要通信传送数据时,就要把应用数据封装成IP包(因为我们的网络大多都是TCP/IP的以太网了),然后再交给下一层数据链路层继续封装成帧;之后根据MAC地址才能把数据从一台主机,准确无误的传送到另一台主机。

如图:当NO要和N1通信时,假如N0知道N1的IP但却不知道它的MAC地址,那NO就会发送一个ARP的广播请求(里面源IP是NO 目标IP是N1  源MAC是N0  目标MAC是12个F)给同一广播域中的所有成员,当交换机SW0从自己的1接口上收到这个广播包,然后它会读取这个帧的源MAC地址和目标MAC地址,由于交换机SW0刚启动加电时,它的MAC表为空的。所以它会把NO的MAC地址与之相对应的接口1放到一张表里,这张表就是MAC地址表。然后他再从别的接口广播这个数据帧,当别的主机收到这个广播时,查看目标IP不是自己的,就会丢弃此包。如果N1接收到这个数据帧,它检查目标IP和这个的IP是一样的,就会回应这个ARP请求,把自己的IP和MAC封装成源IP和源MAC,N0的IP和N0的MAC地址为目标IP与目标MAC,并记录NO的MAC与IP,放进自己的ARP缓存表中。此时,这个应答包经过交换机SWO时,它又会检查源MAC 、 目标MAC,把N1的MAC和自己接口2放进MAC地址表中,再查看自己的MAC地址表,发现存在目标MAC与自己的1接口对应(由于刚开始有记录过N0的MAC),那它就会直接把这个应答包从接口1送出去了。主机N0收到这个包后发现目标MAC是自己,就会处理这个包。并把N1的MAC与IP放进自己的ARP缓存表中。这时主机N0就知道N1的MAC地址了,以后要发送数据,就直接把N1的IP与MAC封装进帧中进行点对点的发送了。

情景二:跨路由的数据传输过程。

当NO要和N2通信时,此时NO会检查N2的IP地址跟自己是否处在同一网段,图上得知,两主机肯定不会是同一网段的。因为N2和自己处在不同网段,所以,N0会把数据包发给它的网关,也就是R0上的F0/0接口了。源IP和源MAC地址是N0自己的,目标IP是N2的,目标MAC是R0上接口F0/0的(如果N0不知道F0/0的MAC,就会跟情景一相似,发个ARP广播来得到F0/0的MAC地址)。当这个数据包到达R0时,路由器R0会查看目标IP的是否是自己,由于目标不是自己,所以,会查看自己的路由表,找出到达N2网段的路由;如果没有相关条目,就直接丢弃。当查看路由表后发现到达N2网段的出接口是F0/1。于是,把数据包转到F0/1接口上,再由接口F0/1传给R1。这个过程,数据包的源IP是N0 源MAC是F0/1 目标IP是N2 目标MAC是R1的F0/1接口IP 。

当R1收到这个数据包后,同样也要检查包的目标IP是否是自己,它会主动查找自己的路由表,发现目标IP跟自己F0/0接口处在同一网段,于是就把包传到F0/0接口上去发给N2 (假如R1上的ARP缓存表中没有N2的MAC,则接口F0/0会发送一个ARP广播给跟它相连的广播域中;这个ARP广播包的源IP是接口F0/0的IP 源MAC也是F0/0的MAC  目标IP是N2 目标MAC为12个F),假如N2的MAC地址已经在R1的ARP缓存中了,那就会直接把数据包封装成:源IP为N0 源MAC为R1的F0/0 目标IP为N2 目标MAC为N2了。

哈哈~!到了这里,包的跨路由传输就会结束了,当包到达N2,做反向操作即可把包发给N0了。

总结:同一广播域中,包的源、目标IP;源、目标MAC是真实的两台主机上的IP与MAC地址。

跨路由中,包的源IP与目标IP始终不会发生变化,源和目标MAC根据所经过的路由接口不同而发生相应变化。

参考:http://blog.chinaunix.net/uid-23886490-id-3038875.html

数据包从源主机到达目标主机过程详解相关推荐

  1. 数据包从源主机到达目标主机的过程

    情景一:同一广播域内,两台主机通信过程 ------------------------------------------------------------------- 两主机要通信时,要把应用 ...

  2. MySQL数据库迁移到达梦数据库过程详解

    1-达梦数据库本地安装: 数据库安装 | 达梦技术文档 2-使用可视化工具迁移达梦数据库: 从 MySQL 迁移到 DM | 达梦技术文档 可能遇到的问题: 2-1 连接数据库失败[Communica ...

  3. 路由器怎么知道外网返回的数据包发给局域网中哪台主机呢?

    这个已经困扰了我很久的问题,今天终于把它查出来了,拖延症啊..... 首先内网中的客户端将数据包传送给路由器,路由器解析数据包后发现,这个数据包是送给外网的.例如这个数据包的源IP:192.168.1 ...

  4. python对比excel两列数据_python 对比excel表格数据表-python实现两个excel表列数据对比若源表与目标表存......

    在数据分析方面,比起python,excel的局限性在哪 data3 = pandas.merge(data1, data2, on=['名称'], how='inner') inner:内连接,取交 ...

  5. 网络安全等级保护测评——主机安全(三级)详解

    网络安全等级保护测评--主机安全(三级)详解 最近去了项目组打杂,偷学了些对服务器做整改的等保要求,写下一篇废话,看完了就可以跟我一起打杂了. 一.主机安全概念 主机指我们整个系统里面的操作系统(wi ...

  6. hadoop作业初始化过程详解(源码分析第三篇)

    (一)概述 我们在上一篇blog已经详细的分析了一个作业从用户输入提交命令到到达JobTracker之前的各个过程.在作业到达JobTracker之后初始化之前,JobTracker会通过submit ...

  7. U-Boot 之三 U-Boot 源码文件解析及移植过程详解

      在之前的博文 Linux 之八 完整嵌入式 Linux 环境介绍及搭建说明 中我们说了要一步步搭建整个嵌入式 Linux 运行环境.我所使用的硬件平台及整个要搭建的嵌入式 Linux 环境见博文 ...

  8. [Python从零到壹] 十五.文本挖掘之数据预处理、Jieba工具和文本聚类万字详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  9. 浏览器实现抓包过程详解

    浏览器实现抓包过程详解 几乎所有浏览器都提供了抓取数据包的功能,因为浏览器为抓包提供了一个专门的操作界面,因此这种抓包方式也被称为"控制台抓包".本节以 Chrome 浏览器为例进 ...

最新文章

  1. Mininet的介绍安装
  2. Android中的eventBus传值
  3. 起源、进化、创造、探索——穿越138亿年的时间之旅
  4. 机器学习博士自曝:实验室「阉割」我的创造力,劝你别读
  5. iOS之深入解析保证线程安全的“锁”的使用和性能分析
  6. 事件监听机制——鼠标事件MouseEvent
  7. python 数组 元组 列表_python_Day_02[数组、列表、元组之篇]
  8. eclipse中设定文档注释
  9. (转)嵌入式按键驱动,支持短按、长按、双击(中断方式)
  10. 苹果iOS开发深入浅出Cocoa之类与对象
  11. 中国产品质量协会AAA等级企业限定为500家
  12. 基于企业微信和钉钉的工资条发送工具 - 工资条帮新版操作说明
  13. php生成海报像素低,TP5.1生成海报
  14. 【IoT】成功十大因素,命、运、风水 、、贵人、养生,哪个最重要?
  15. android实现菜单侧滑栏,Android侧滑-RecyclerView轻松实现高效的侧滑菜单
  16. 保时捷卡宴Cayenne升级原厂360全景影像系统,行车更安全
  17. OSI七层模型及各层功能概述
  18. 论文阅读笔记 Sparse Representation-Based Intra Prediction for Lossless/Near Lossless Video Coding
  19. 论文精读:Mask R-CNN
  20. MPC学习笔记1:基于状态空间模型的预测控制(1)

热门文章

  1. 看透“海底两万里” ——MapGIS海图模块
  2. 手机日程提醒在哪里设置?
  3. 广东开放大学形考任务大学英语2(专,2022春)形考测验4答案
  4. 自律的交易者:成功的交易80%靠心理,20%是方法
  5. 如何设置和安装ecobee SmartCamera
  6. 地址对齐和非对齐是指什么?
  7. 红外波长的高性能测量新突破
  8. 新辰:90后大学生创业开口笑馒头店火爆全市 卖馒头日赚2000!
  9. 建行广东江门分行落实员工关爱,凝聚干事创业热情
  10. 音视频工程师 YUV 和 RGB 详解