网络处理器与网络系统设计第9章分类和转发.docx

上传人:b****3 文档编号:2127285 上传时间:2022-10-27 格式:DOCX 页数:9 大小:316.98KB
下载 相关 举报
网络处理器与网络系统设计第9章分类和转发.docx_第1页
第1页 / 共9页
网络处理器与网络系统设计第9章分类和转发.docx_第2页
第2页 / 共9页
网络处理器与网络系统设计第9章分类和转发.docx_第3页
第3页 / 共9页
网络处理器与网络系统设计第9章分类和转发.docx_第4页
第4页 / 共9页
网络处理器与网络系统设计第9章分类和转发.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

网络处理器与网络系统设计第9章分类和转发.docx

《网络处理器与网络系统设计第9章分类和转发.docx》由会员分享,可在线阅读,更多相关《网络处理器与网络系统设计第9章分类和转发.docx(9页珍藏版)》请在冰豆网上搜索。

网络处理器与网络系统设计第9章分类和转发.docx

网络处理器与网络系统设计第9章分类和转发

第9章分类和转发

回忆

包多路分解

--用于分层协议

--包每次穿过一层

--在输出(发送)端,在每层封装头部的类型字段中存储一个类型值

--在输入(接收)端,每一层软件为下一个高层协议选择合适的协议模块

--原因:

每层都有多个协议

--优点:

高效:

协议不同,首部不同,减少冗余

灵活:

创建新协议,修改老协议,不影响其它协议

缺点:

虽然多路分解可以自由定义和使用任意的协议

而不需要增加传输开销

但是因为它必须在各层之间执行顺序操作,

所以其效率不高。

包分类

●另一种多路分解

●为更高的速度设计

●保留分层协议设计和首部类型值

●在同一时刻考虑所有层

Ethernet/IP/TCP/Web服务

●两种实现方法:

软/硬件

包分类例子

●对发往一个Web服务器的以太帧分类

●按规则指定确切的头部内容

●如:

以太帧类型字段说明为IP数据报

EthernettypefieldspecifiesIP

IP类型字段说明为TCP包IPtypefieldspecifiesTCP

TCPdestinationportspecifiesWebserver

●Fieldsizesandvalues

–2-octetEthernettypeis080016

–2-octetIPtypeis6

–2-octetTCPdestinationportis80

高亮度字段:

Web服务器流量分类

分类的软件实现

●比较头部字段的值

●概念上:

所有头部类型字段比较的逻辑与

●如:

if((frametype==0x0800)&&(IPtype==6)&&(TCPport==80))

declarethepacketmatchestheclassification;

else

declarethepacketdoesnotmatchtheclassification;

优化基于软件的分类

●按顺序执行比较操作

●重新排序比较操作,减少第1次比较的成功率

例:

假定:

95%包是IP包,92%的IP数据报携带TCP,85%TCP段的目的端口号为80

–95.0%ofallframeshaveframetype080016

–87.4%ofallframeshaveIPtype6=95%*92%

–74.3%ofallframeshaveTCPport80=87.4%*85%

重新排序比较操作,可优化处理时间

if((TCPport==80)&&(IPtype==6)&&(frametype==0x0800))

declarethepacketmatchestheclassification;

else

declarethepacketdoesnotmatchtheclassification;

在每一步,比较字段将排除尽量多的包

分类的硬件实现

●可以建立专用于“比较”的硬件

●步骤:

--提取需要的字段

--连接组合成字节串

--存放到寄存器中

--与一个常量相比较

●可并行执行字段提取与比较

Web流量分类的常量是:

08.00.06.00.5016

分类的特殊情况

●多个分类

●可变长度首部的分类

●动态分类

实际上

●分类常常包含有多个类

●包组合在一起,形成流

●可以有一个缺省分类

●每个分类由一个规则集描述

例:

含多个类的分类

●发往Web服务器的流量

●携带ICMP回应请求消息的流量

●所有其他流量

RuleSets

●Webservertraffic

–2-octetEthernettypeis080016

–2-octetIPtypeis6

–2-octetTCPdestinationportis80

●ICMPechotraffic

–2-octetEthernettypeis080016

–2-octetIPtypeis1

–1-octetICMPtypeis8

SoftwareImplementationOfMultipleRules

if(frametype!

=0x0800){

sendframetoflow3;

}elseif(IPtype==6&&TCPdestinationport==80){

sendpackettoflow1;

}elseif(IPtype==1&&ICMPtype==8){

sendpackettoflow2;

}else{

sendframetoflow3;

}

Furtheroptimizationpossible

可变长度首部的分类

●字段不在固定的偏移位置

●用软件容易处理

●可用规则描述有限的类

变长度首部例子:

IPOptions

●RuleSet1

–2-octetframetypefieldcontains080016

–1-octetfieldatthestartofthedatagramcontains4516

–1-octettypefieldintheIPdatagramcontains6

–2-octetfield22octetsfromstartofthedatagramcontains80

●RuleSet2

–2-octetframetypefieldcontains080016

–1-octetfieldatthestartofthedatagramcontains4616

–1-octettypefieldintheIPdatagramcontains6

–2-octetfield26octetsfromthestartofdatagramcontains80

协议设计对分类的影响

固定长头部易于分类

每一个可变长首部增加一个计算步骤

最坏情况下,分类处理不比多路分解快

极端例子:

IPv6

混合的硬件/软件分类器

●结合硬件和软件机制

–Hardwareusedforstandardcases

–Softwareusedforexceptions

●注意:

软件分类器可以以较慢的速率处理,处理量少了

分类的两种基本类型

●静态

流用规则集描述

首部字段和相应的值预先知道

●动态

流通过观察包流量产生

用于分类的值也取自首部

允许细粒度流

要求状态信息:

语音信息、前20条信息

静态分类例子

●每个服务类型分派一个流

●一个首部字段用于标识流

IPTYPEOFSERVICE(TOS)

●UseDIFFSERVinterpretation

●Note:

Ethernettypefieldalsochecked

ExampleDynamicClassification

●每一个TCPconnection分派一个flow

●Headerfieldsusedtoidentifyflow

–IPsourceaddress

–IPdestinationaddress

–TCPsourceportnumber

–TCPdestinationportnumber

●Note:

EthernettypeandIPtypefieldsalsochecked

动态分类的实现

●通常用软件实现

●要保存状态信息

●Stateinformationcreated/updatedatwirespeed

包处理过程:

分类,转发

两个概念上的绑定

classification:

packet→flow

forwarding:

flow→packet处理

●Classificationbindingisusually1-to-1

●Forwardingbindingcanbe1-to-1ormany-to-1

流标识

●面向连接的网络(如ATM)

--每个flow的SVC可以根据需要创建

--FlowIDequalsconnectionID

●无连接的网络

--FlowID用于内部

--EachflowIDmappedto(nexthop,interface)

在面向连接的网络中分类和转发的关系

由分类指派的FlowID可以这样选择,

它匹配于底层网络所使用的连接标识符。

这样省去一个绑定环节,从而使转发获得更高的效率。

无连接网络的分类和转发

原:

目的地址(下一跳步,接口)

现:

包flow;flow(下一跳步,接口)

flowID可以是无符号整数

流生成时就决定了flow的路由

flowID对应转发缓冲区的入口索引

使用索引代替路由表查找

优点:

分类比多路分解快得多,查索引比查路由表快

缺点:

路由表更新时,转发缓冲区也必须更新

第二代网络系统

●为更大规模设计

●使用分类代替多路分解,

包处理速率更快,数据速率更快

●分散体系结构

--每个NIC上具有额外的计算能力

--NIC实现分类和转发

●高速内部互连机制

--NIC间互连

--NIC间提供快速数据通路(fastdatapath)

更多的网络连接,更快的接口转发速率

分类和转发芯片

●产商提供和出售

●实现硬件分类和转发

●典型配置:

在ROM等中给定规则集

小结

●Classificationfasterthandemultiplexing

●Canbeimplementedinhardwareorsoftware

●Dynamicclassification

--根据包的内容指派flows

--需要状态信息

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1