前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >三层交换机报文转发过程

三层交换机报文转发过程

原创
作者头像
利又德智能感知
发布于 2022-06-13 07:14:57
发布于 2022-06-13 07:14:57
1.5K01
代码可运行
举报
运行总次数:1
代码可运行

    如图所示,假如主机A想访问主机B,首先主机A会将自己的IP地址和子网掩码做与操作,得出网路地址(如:Host-A的IP地址100.1.1.2与自身掩码255.255.255.0做与操作后,得到的网络号是100.1.1.0).然后判断目的IP地址(即Host-B的IP地址)与自己的网络地址是不是在同一个子网.因为图中主机A和主机B不在同一子网内,所以需要进行三层转发.

1、主机A发送ARP广播获取网关MAC地址

    主机A想访问主机B首先要有主机B的MAC地址,由于主机A和主机B不在同一子网,所以主机A首先会向缺省网关发送ARP广播报文来获取网关的MAC地址。ARP报文格式如下:

2、交换机形成主机A的MAC表项,并用网关MAC地址回应主机A的ARP请求

    交换机收到ARP广播报文后,首先学习ARP报文Ethernet头部的源MAC地址,交换机芯片将自动记录主机A的MAC地址(00e0-d26b-8121)、接收该ARP报文的交换机接口号(E1/0/0)及此接口所属的VLAN(VLAN 10)等信息,并形成一条MAC表项放入交换机MAC表中.同时,交换机也会通过软件把主机A的IP、MAC、上连到交换机的接口等信息保存到交换机的硬件转发表里(三层硬件表项,MAC表是没有IP的)。

    由于主机A发送的ARP广播报文中的目的IP地址(100.1.1.1)就是交换机上接收该ARP广播报文的接口(E1/0/0)所属VLAN(VLAN 10)的IP地址,所以交换机将使用vlan10的MAC地址回复主机A的ARP请求。ARP回复报文如下:

  3、主机A把网关MAC当作主机B的MAC访问主机B

    主机A收到网关的ARP回应报文后,会把网关的MAC地址当成是主机B的MAC地址,这样主机A发送数据给主机B时就会使用网关MAC作为目的MAC来封装数据侦,侦格式如下:

  4、交换机查找硬件转发表/路由表进行三层转发

    交换机收到主机A发来的数据报文后,仍然会首先学习数据报文Ethernet头部的源MAC地址,然后根据Ethernet头部的目的MAC查找交换机的MAC表,此时发现目的MAC地址就是本地VLAN的MAC地址,这种情况下交换机会把该报文上送到交换芯片的三层引擎处理。三层引擎将首先查找硬件转发表。

    ⑴ 如果硬件转发表中有匹配项,则根据报文目的IP地址作相应处理:

①、目的IP地址就是本地的IP地址,则交相应模块处理。

②、目的IP是其他设备IP地址,本地只是转发,则根据硬件转发表项使用出接口MAC替换报文的源MAC地址,用下一跳MAC替换报文的目的MAC地址,同时TTL值减1,继续转发。(此处与二层的区别在于需要对报文进行源、目的MAC进行替换)

    ⑵  如果不匹配则查找路由表,有匹配项则按照上面(2)中的操作进行,同时把相应的目的IP、下一跳MAC、出接口等信息存储到硬件转发表项中,下次就不需要查路由表了,这就是所谓的一次路由多次交换。

    ⑶  如果路由表也没有匹配项,则丢弃报文。

    此处,由于主机A数据报文的目的IP是主机B的地址,并且主机B和交换机直连,交换机的硬件转发表/路由表已经有主机B的路由表项,所以交换机将主机A发来的报文中的源、目的MAC地址作替换,同时TTL值减1,然后发给主机B。经过MAC替换后的报文格式如下:

    这样主机A就把数据报文发到了不同网段的主机B。同时交换机上也保存了关于主机A和主机B的硬件转发表项,以后主机A和主机B互访,以及其他网段主机访问主机A或主机B交换机就可以根据硬件转发表项直接转发,而不需要查找路由表。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
在Jetson上玩转大模型Day5:Ollama指令模式的智能助手
本系列第3期文章,在Jetson Orin Nano上使用text-generation-webui项目搭建智能助手,十分轻松。但是大部分入门者都会在“选择模型”、“下载模型”以及选择“加载器”这三部分,遭遇比较大的障碍,毕竟要在几万个开源模型中找到合适的,犹如大海捞针一般地困难,再加上Orin Nano只有8GB显存的限制,能执行的大语言模型相当有限。
GPUS Lady
2024/10/27
6310
在Jetson上玩转大模型Day5:Ollama指令模式的智能助手
台胞證辦的銀行卡可綁定微信支付啦!
以前大陸同胞都在發微信紅包拜年、用微信支付買年貨,幾乎所有支付活動 通通都可以在微信裏解決。 但台灣同胞們因為微信無法綁定銀行卡,只有羡慕嫉妒的份了。 不過這些都將成為歷史, 最新消息: 微信支付及QQ錢包現已支持71家主要銀行儲蓄卡及信用卡的多證件綁卡及支付功能。 親愛的台灣同胞們,不必再羡慕別人可以發紅包炫富表白了,更不必擔心20萬零錢限額不夠花了! 只要你有台胞證,只要你手中的銀行卡在這71家銀行的名單上,你就可以任性發紅包送祝福,用微信支付買年貨啦! 微信支付及QQ錢包支持多證件綁卡銀行列表
企鹅号小编
2018/01/18
5.8K0
台胞證辦的銀行卡可綁定微信支付啦!
在Jetson上玩转大模型Day9:建立EffectiveViT测试环境
雖然DCNN深度卷積神經網絡在2010年代爲視覺AI技術開創新格局,但實用性受到很大的限制。後來受到NLP在Transformer技術的突破,對視覺技術產生非常大的衝擊,於是Google在2021年提出的ViT(Vision Transform)技術,對機器視覺上的圖片分類、物體檢測、語義分割等應用,產生非常大的變化,不僅在效能上有所突破,並且爲視覺與大語言模型相結合的多模態技術,開創新的格局。
GPUS Lady
2024/11/04
1450
在Jetson上玩转大模型Day9:建立EffectiveViT测试环境
Newsletter@8 | 職場管理學
職場管理學|管理比提問,領導比傾聽,3步驟當好一個管理者和領導者 《可複製的領導力》|生活CEO|馬克凡讀書觀點
Abalone
2022/09/08
2030
web 开发规则,代码规范
參數取得需透過 filter_input 函數取得,不得使用 _GET、 _POST
Cell
2022/02/25
7970
linux 信号sigabrt,關於Linux中的SIGABRT信號
SIGABRT是中止一個程序,它可以被捕捉,但不能被阻塞。處理函數返回后,所有打開的文件描述符將會被關閉,流也會被flush。程序會結束,有可能的話還會core dump。 當程序調用abort(3)時,該進程會向自己發送SIGABRT信號。所以,SIGABRT一般用於信號中一些關鍵的處理,assert失敗時也會使用它。你不應該去捕捉SIGSEGV和SIGABRT信號,如果收到這種信號,說明進程處於一個不確定的狀態,很可能會直接掛起。
全栈程序员站长
2022/07/23
3K0
【Rust日报】 2019-09-09:glint 用Rust編寫的commit 提示工具
然後再用 Linux perf 跑看看,發現分析結果與 cargo-profiler 相同
MikeLoveRust
2019/09/11
4200
【Rust日报】 2019-09-09:glint 用Rust編寫的commit 提示工具
計算機程序設計:7大編程原則
編程的工作同石匠的工作相類似,即是技術活,也是體力活,而編寫優秀的軟件,算是一件比較難的事。編程大牛們並不是直接上手編寫,而是根據需求進行設計,不但將代碼中 Bug 出現的機率降到最低,還要讓代碼具有高可讀性,高安全性等等。
一个会写诗的程序员
2020/09/01
6180
ios苹果app上架流程
什麼都是假的,只有 App 上架 Store 才是真的。千辛萬苦完成 App 後,下一步、也是最重要的一步,就是把 App 送審上架!為了讓新手都能一次就送審成
iOS程序应用
2023/02/10
1.4K0
ios苹果app上架流程
RESTful
HTTP 状态码(HTTP Status Code)是用以表示网页服务器 HTTP 响应状态的 3 位数字代码。所有状态码的第一个数字代表了响应的五种状态之一。 除非另有说明,状态码是 HTTP / 1.1 标准(RFC 7231)的一部分。
Cell
2022/02/25
8680
【Rust日报】 2019-12-20 Serverless - Rust 使用 WASM 加 Cloudflare
#[non_exhaustive] structs, enums, and variants
MikeLoveRust
2019/12/25
8050
主动学习与被动学习
美國學者艾德格‧戴爾(Edgar Dale)提出了「學習金字塔」(Cone of Learning)的理論:在初次學習兩個星期後,透過閱讀學習能夠記住內容的10%;透過聽講學習能夠記住內容的20%;透過圖片學習能夠記住內容的30%;透過影像、展覽、示範、現場觀摩來學習能夠記住50%;參與討論、提問、發言來學習能夠記住70%;做報告、教學、模擬體驗、實際操作能夠記住90%。美國緬因州國家訓練實驗室(National Training Laboratories)做過類似的研究,結論跟戴爾差不多。由此可知,閱讀是最沒用的學習方式,而模擬、體驗與實作才是最好的學習方式。是嗎?
超蛋lhy
2018/08/31
1.8K0
主动学习与被动学习
RN之回調函數-百步九折縈巖巒
函數可以稱得上是編程語言的靈魂所在之處,它就像是一個個工廠,總能創造出開發者需要的效果。本文就將介紹RN中回調函數的四種寫法。 方法一:使用箭頭函數指向回調。這種寫法就不需要bind函數來綁定。{(newText)this.updateNum=>this.updateNum(newText)}這句代碼的意思是在花括號中有一個箭頭符號定義的函數,它將收到的字符串為參數調用本類組件的updateNum函數,并將該函數的返回值返回。 //構造函數 constructor(props) { super(p
谦谦君子修罗刀
2018/05/02
6640
解密特斯拉自動駕駛晶片背後的一號人物
源自:虎嗅網 作者:國仁 在自動駕駛領域,AI晶片其實並非新奇玩意。Mobileye的EyeQ系列晶片,就是較早應用於自動駕駛的AI晶片之一。 而在這個月早些時候,矽谷鋼鐵俠馬斯克,還宣佈了特斯拉正在研發用於自動駕駛的AI晶片,回顧馬斯克對自動駕駛晶片的各種動作,我們發現近來各種跳票“不靠譜”的他,其實對技術發展的趨勢,遠比看上去更理解。 馬斯克對特斯拉自行研發自動駕駛晶片的佈局,從兩年前就開始了。 一、從Mobileye到英偉達 特斯拉的自動駕駛焦慮症 2014年,特斯拉找上Mobileye,用上了它
企鹅号小编
2018/01/25
9720
【Rust日报】 2020-01-10 track_caller 錯誤處理大突破
use anyhow + thiserror in place of failure
MikeLoveRust
2020/02/12
5720
Using Automake and Autoconf「建议收藏」
Murray Cumming <murrayc@usa.net> Chen Chih-Chia <pigfoot@CDPA.nsysu.edu.tw>
全栈程序员站长
2022/07/25
4510
C#-筆記-基礎
/r/n win系統輸出的回車 Ctrl+k+d 快速對齊 Ctrl+k+c 快速注釋 Ctrl+k+u 快速取消注釋
用户9857551
2022/06/28
5050
C#-筆記-基礎
在Jetson上玩转大模型Day6:Ollama的Webui智能助手
前面已經教會大家很輕鬆地使用 Ollama 搭建一個在指令終端的交互式智能助手,但這種操作模式畢竟比較粗糙,而且只能在一臺機器上使用,實用性並不高,如果能搭建一個Web界面的智能助手,並且可以讓局域網裏的其他人一起使用的話,就能大大提高這個項目的實用價值。
GPUS Lady
2024/10/28
2490
在Jetson上玩转大模型Day6:Ollama的Webui智能助手
第一性原理 《禅与计算机程序设计艺术》 / 陈光剑
第一性原理(First Principle Thinking),指的是回歸事物最基本的條件,將其拆分成各要素進行解構分析,從而找到實現目標最優路徑的方法。
一个会写诗的程序员
2021/04/20
1.2K0
第一性原理 《禅与计算机程序设计艺术》 / 陈光剑
區塊鏈在網絡安全中的應用
通過數字化日常生活的各個方面逃離現實世界危險的人們開始意識到,與離線相比,互聯網不再是一個安全的地方。在2018年,我們看到了網絡犯罪分子造成的許多災難性故障,看起來在即將到來的一年中,我們將會有更多的故障。 幸運的是,黑客並不是唯一一個正在開發其電力庫的人 - 多年來,網絡安全中的區塊鏈一直在增長,並在所有可能的行業中得到開發。儘管該技術僅用於存儲加密貨幣比特幣,但其影響和影響現在已經擴散到更多不同的領域。在本文中,我們將討論Blockchain在2019年的含義,為您提供安全性中Blockchain的一些用例。
用户4624829
2019/02/15
3690
推荐阅读
相关推荐
在Jetson上玩转大模型Day5:Ollama指令模式的智能助手
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验