五月天视频app下载在线无限观看免费 -五月天app官网无限观看
0731-84728105
15116127200
二层交流机原型设计与完成 (一)
宣布时间 :2021-04-30
     交流机是五月天app官网无限观看网络范围 运用 最为普遍 的网络互联装备 ,其主要 成效 是完成各端口之间分组的交流成效 。交流机仅做分组交流,纰谬 分组举行 任何数据修正 。交流机的端口没有IP与MAC的属性。端口数据IO一样往常 为全双工形式 ,即可同时举行 分组收发事情。端口速率通常为10/100/1000M自顺应 形式 ,更高速率可支持到10G、25G、40G、100G和400G。交流机的端口数目 一样往常 大于2,小于64。
     1)二层交流原理
     二层交流的原理是必需 熟知的,网络基础 课程课本 或网络上都能找到。
     2)Linux系统 职掌
     五月天app官网无限观看的开发情形 都是基于Linux系统 ,故想要在此学习二层交流机的设计与完成 ,一些必备的Linux职掌 要领与经常 运用 下令 要会。引荐 《鸟哥私房菜》一书,可网上搜索。
     3)C言语 编程
     平台开发的编程言语 一切 是C言语 ,这也是接触盘算机先生 通常会学习到的言语 ,更是盘算机专业的必学专业课。不求醒目 ,但求深刻 ,一样往常 的C法式编写、库函数挪用 和基本 打印调试等职掌 要会。
     4)一套OpenBox-S4开发平台
     如题所述,从一最先 ,即是从一个OpenBox-S4开发平台最先 ,二层交流的实验和五月天app官网无限观看后续一切 相关的实验基本 上是构建在这个开发平台之上。若是 没有这个平台也可以 学习这些实验的设计与完成 历程,只是验证和实验 起来会贫穷 一些。
     OpenBox-S4是五月天app官网无限观看用来做实验开发的平台,平台完成了软硬件数据IO的基本 成效 ,提供规范 的软件UA编程开发形式 ,让用户不需求 体恤 平台怎样 完成软硬件数据IO和系统 之间的分组调治与转发成效 ,可以将一切 肉体 集中在自己 买卖 系统 的设计上。以是 平台其实不 是本次网络原理性 成效 完成 的重点,只是一个使劳累 具。运用 该平台需求 对其有个基本 的相识 ,会简朴 的开发编程事情。
      1)全体 架构
     OpenBox是湖南新实的主打品牌,该品牌具有 多种分别 型号详细 产品 。OpenBox-S4是一款专为盘算机网络实验课程打造的软硬件全成效 可编程平台,平台基于FAST架构完成 ,是一种无邪 的软硬件协同方式数据处置赏罚 模子 。全体 架构如图1所示,详细 的FAST架构先容 与OpenBox-S4装备 平台先容 见《FAST简介》《OpenBox网络全成效 可编程平台:工欲善其事,必先利其器!》

图1 全体 框架图
     2)数据名堂
     在FAST框架下,硬件模块之间、软件模块之间和软硬件之间的交互数据接纳一致 尺度界说名堂 。名堂 划定在完整 的以太网数据帧前增添 了32字节的分组metadata内容,用来标志 分组的输入 端口、长度、输入 端口、吸收 时辰 和流标志 等等,详细 如表1所示:

      3)UA数据处置赏罚 流程
     UA是用户运用 (User Application),运转 在用户态的可执行法式。运用 法式经过 向系统 注册和硬件规则设置 ,将切合买卖 成效 要求的分组从硬件提取到软件,并由FAST架构开发情形 的数据路由模块将该特征数据分发给照应 的注册用户。法式注册时需求 提交一个分组处置赏罚 的回调函数,当系统 吸收 到本法式的买卖 分组时,会自动 挪用 法式的回调函数将分组交付给用户的买卖 逻辑处置赏罚 。用户处置赏罚 完分组后可经过 系统 发送函数将分组转发给其他运用 模块(用户运用 UA、深刻 Socket运用 CA、内核运用 KA和硬件运用 HA)举行 处置赏罚 。若是 是直接从硬件发送,则分组的发送字段中的dstmid直接填写HA的编号(硬件发送HA的ID为5)。
     4)编程API
     i.注册UA
     fast_ua_init(mid,callback):向系统 注册一个UA,是UA编程的焦点函数。声明自己 的模块ID号和吸收 到分组后的回调处置赏罚 函数。
     ii.吸收 分组
     callback(pkt,len):开源版本的吸收 分组不是用户自动 请求式要领,为系统 回调方式,即系统 吸收 到了一个切合UA的模块ID号的分组后,会在系统 情形 挪用 UA注册的callback函数,将分组转达 给该函数举行 处置赏罚 。
     iii.发送分组
     fast_ua_send(pkt,len):将一个处置赏罚 完成的分组发送到其他模块,征求 其他UA、HA、CA或HA。只需求 将分组metadata字段中的目的模块ID号设置为对应模块的编号即可。
     iv.规则设置
     FAST的硬件HA中征求 查表婚配 成效 模块,可以支持硬件规则的设置 。规则婚配 模块既可支持细粒度的详细 流属性设置 ,也可支持全表默许 规则设置 。
     在开发自己 的二层交流机成效 之前,可以先搭建实验 情形 ,验证一下系统 自带的二层交流机成效 ,从其运转 输入 中进一步相识 交流原理与数据处置赏罚 流程。
      1)构建情形
     实验 情形 至少 需求 一台OpenBox-S4装备 、两台网络通讯 实验 主机和一台控制主机,控制主机主要 用来毗邻 S4装备 ,运转 系统 下令 、编写代码和编译法式等成效 。拓扑毗邻 图如下所示:

二层交流验证拓扑图
     2)开发平台职掌
     S4装备 支持串口与网口两种登录管理 方式,均可运用 putty工具毗邻 ,工具运用 请网上搜索。
     平台是一个小型Linux主机系统 ,与深刻 Linux效劳 分别 不大,故在下面 的下令 职掌 、代码修正 与编译,与先生 在虚拟机情形 或Linux效劳 器上的职掌 运用 完全分歧 。
     3)交流验证
     经过 串口或网口登录平台后,直接在下令 行终端输入 下令 ,即可启动二层交流机成效 。

#l2switch
fastU->REG Version:20180827,OpenBox HW Version:2030200722
FAST UA REG->from pid:902,state:21,mid:129
fastU->Register UA to FAST Kernel! Wait Reply......
fastU->UA->pid:902,mid:129,Register OK!
fastU->libua version:20180827
Create nm08_mac_aging thread OK!
aging[0]->invalid mac:0
fastU->fast_ua_recv......
ID PORT0 PORT1 PORT2 PORT3
0 . . . .
aging[1]->invalid mac:0
ID PORT0 PORT1 PORT2 PORT3
0 . . . .
aging[2]->invalid mac:0

     建议在平台运转 下令 时运用 串口方式登录,断开连线后,系统 下令 仍可正常事情,而且控制主机也可充任 一台网络实验 主机。若是 是网络毗邻 ,必需 确保毗邻 网络的通路一连 维持 ,否则管理 网络断开后,系统 下令 也会随着链路断开而被阻止 ,招致 系统 下令 成效 无法运转 。
     4)视察与剖析 交流流程
     a)端口吸收 到一个分组,在回调函数中打印输入

inport:0,dstmid:129,len:130,dmac:B8:27:EB:C1:D1:39,smac:B8:27:EB:D8:83:20

     b)在端口0上学习到一个新MAC地址,存储在表项索引为0的位置

learn_smac->add new MAC,port:0,index:0

     c)凭证 目的MAC查表,取得 前往 效果 (-1表现 没有查到婚配 的MAC地址)

find_dmac->ret = -1

     d)泛洪收回 分组,分组输入 端口为0,4端口装备 泛洪到1,2,3端口输入

------pkt_send_flood------
pkt_send_normal->0xb4c00468,outport:1,len:130
pkt_send_normal->0xb4c00468,outport:2,len:130
pkt_send_normal->0xb4c00468,outport:3,len:130

     e)正常发送一个分组,输入 端口为0

pkt_send_normal->0xb4c00468,outport:0,len:130

     1)二层交流的数据处置赏罚 流程
     二层交流的焦点是将一个端口输入 的分组搬到另一个端口输入 ,至于怎样 选择输入 端口,则需求 凭证 分组中的目的MAC地址来确定。怎样 知道 一个目的MAC在哪个端口上呢?则需求 在吸收 分组的时间 对分组的源MAC举行 学习。故二层交流的全体 数据处置赏罚 流程如下:
     1)从端口吸收 到一个分组,携带了输入 端口号、长度和完整 以太网帧内容;
     2)提取以太网帧的源MAC地址和输入 端口,生涯 到MAC转揭晓 中;
     3)提取以太网帧的目的MAC地址,到MAC转揭晓 中搜索 ,输入 查表效果 ;
     4)凭证 查表效果 举行 转发;单播或泛洪收回 。
     2)开发平台编程入门
     一切 实验内容均在OpenBox-S4平台举行 ,其FAST架构的焦点优先不多说了,主要 是该架构下软件分组与硬件分组名堂 分歧 ,软件逻辑成效 完成 后可以很利便 的卸载到硬件完成 ,分组可携带metadata数据在软硬件模块之间转达 ,保管 分组剖析 形状 与处置赏罚 形状 。
     OpenBox-S4只是一个五月天app官网无限观看设计系统 的工具,与详细 完成 网络原理性 成效 有关 ,没有装备 的用户也可以 在深刻 电脑上参考本系列分享文章完成二层交流机的设计与完成 (仅分组收发有点分别 )。下面 一篇文章将导游 各人熟习 一下UA的编程规范 与开发流程(C言语 的main函数加一个callbak函数)。
     接待您和先生 们参与 FAST开源项目群相反 与讨论 ,一同 体验纷歧样的系统 设计历程。请先加微信号15116127200后约请 入群。

关注FAST开源社区
FAST逐一 开源、开放、高速、高效、可编程、可界说!软硬件协同并行处置赏罚 。