SFC中的故障管理
1.SFC中包的格式
网络服务包头,当Obit被设置为1时,表示一个SFC OAM消息
OAM Type:SFC OAM的类型(1、连接认证,2、持续性检验,3、路由跟踪,4、性能度量)
SFC OAM的有效负载描述如下:

Version:SFC OAM消息的版本,总共8bit,当前的版本是0x01
Message Type:SFC OAM消息类型(1持续性检验,2跟踪请求消息,3跟踪响应消息)
Originator Handle:消息原始发送端
Remote Handle:终端,通常用来验证部分SFP,当验证整条SFC时,该字段为0xffff
Sequence Number:该字段由SFC请求消息发送端配置,用来跟踪正确的应答消息。
The Sending Timestamp:发送时间
The Receiving Timestamp:消息接受的时间(接收端的时间)
TLVs:Type-Length-Value

类型尚未定义,长度表示有效字节的长度,value字段会根据Type判断是否可用。
2.工作原理
SFC OAM参考模型

2.1 SFC的连接认证和持续性检验
主动持续性检测探测一个MEG中两个MEP之间的连接性;主动连接认证用来探测两个MEG之间或者MEG意想不到的连接性故障。BFD可以用来主动发送CC & CV包,发送的包按照监测的SFC路径传输。SFC CC-CV包中封装SFC Header,message Type必须被设置为1。

SFF收到CC-CV包,将包转发到下一个SF或者SFF;SF收到CC-CV包,它仅仅是将包返回给SFF;MEP终止一个SFC的CC-CV包,MEP当一段持续时间没有收到主动发送的CC-V包,则存在持续性故障,当MEP对收到CC-V包进行解析,发现连接故障时,产生告警给故障管理系统。
2.2 SFC路由跟踪
SFC可以分为连个抽象层,服务功能层和数据转发层,服务功能层是一个个服务功能的连接,SFC转发层服务功能和转发节点相连,从而使转发路径更加清晰,故障可能发生在服务功能或者服务功能转发节点上,所以路由跟踪需要探测服务功能和转发结点来发现故障位置。
服务功能层:服务功能标识可以作为一个目的MEP来响应路由请求消息,通过对比服务功能标识链和预配置的服务功能链,可以发现服务功能之间是否存在连接性故障,当存在故障时,可以定位故障的位置。
SFC转发层:服务功能和服务功能转发节点都可以设置为目的MEP来响应路由请求消息,通过对比服务功能和服务转发功能结点标识链和预配置的链,从而发现在转发层是否存在故障,如果存在故障,可以定位故障是在服务功能转发节点还是在服务功能上。
路由跟踪机制中存在两种策略:
TTL策略
和IP路由跟踪类似,探测节点发送一系列的跟踪请求包在特定的SFC上,生存时间分别被设置为1,2,......等。当路由跟踪请求包经过每一个服务功能时,服务功能将TTL减1,当生存时间减为0时,服务功能返回响应消息,因此探测节点通过解析路由请求消息响应包获取服务功能列表,如果存在故障,可以定位故障位置。
记录路由机制
探测节点发送一条路由请求消息,消息在特定的SFP上传输,当服务功能收到路由跟踪请求消息,该服务功能将自己的标识加入服务功能链的末尾,产生一个路由跟踪响应消息返回给探测节点。因此探测节点通过解析路由请求消息响应包获取服务功能列表,如果存在故障,可以定位故障位置。
SFC中的故障管理的更多相关文章
- 第十七周翻译-SQL Server中事务日志管理的阶梯,级别5:以完全恢复模式管理日志
SQL Server中事务日志管理的阶梯,级别5:以完全恢复模式管理日志 作者:Tony Davis,2012/01/27 翻译:赖慧芳 译文: 该系列 本文是Stairway系列的一部分:SQL ...
- SQL Server中事务日志管理的步骤,第5级:完全恢复模式管理日志(译)
SQL Server中事务日志管理的步骤,第5级:完全恢复模式管理日志 作者:Tony Davis,2012/01/27 系列 本文是进阶系列的一部分:SQL Server中事务日志管理的步骤 当事情 ...
- Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法(转)
转自:http://blog.csdn.net/lvguanming/article/details/37812579?locationNum=12 写在前面的话 现在是越来越太原讨厌Eclipse这 ...
- .NET Core中的认证管理解析
.NET Core中的认证管理解析 0x00 问题来源 在新建.NET Core的Web项目时选择“使用个人用户账户”就可以创建一个带有用户和权限管理的项目,已经准备好了用户注册.登录等很多页面,也可 ...
- [转].NET Core中的认证管理解析
本文转自:http://www.cnblogs.com/durow/p/5783089.html 0x00 问题来源 在新建.NET Core的Web项目时选择“使用个人用户账户”就可以创建一个带有用 ...
- Unity游戏开发中的内存管理_资料
内存是手游的硬伤——Unity游戏Mono内存管理及泄漏http://wetest.qq.com/lab/view/135.html 深入浅出再谈Unity内存泄漏http://wetest.qq.c ...
- 深入理解javascript中的焦点管理
× 目录 [1]焦点元素 [2]获得焦点 [3]失去焦点[4]焦点事件 前面的话 焦点作为javascript中的一个重要功能,基本上和页面交互都离不开焦点.但却少有人对焦点管理系统地做总结归纳.本文 ...
- C++中的内存管理
在C++中也是少不了对内存的管理,在C++中只要有new的地方,在写代码的时候都要想着delete. new分配的时堆内存,在函数结束的时候不会自动释放,如果不delete我分配的堆内存,则会造成内存 ...
- iOS 如何在一个已经存在多个project的workspace中引入cocoapods管理第三方类库
一种新的第三方库管理工具:Carthage 如何使用Carthage管理iOS依赖库 Podfile Syntax Reference v1.1.0.rc.3 https://guides.cocoa ...
随机推荐
- java并发编程(十七)Executor框架和线程池
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17465497 Executor框架简介 在Java 5之后,并发编程引入了一堆新的启动 ...
- hoj 1014 Niven Numbers
新手上路之我的水题之路 刚开始时,我首先想到的是定义一个int数组,然后让输入的数字从最低位开始在循环不断地*base,从而将 k进制转化成十进制:然后再作取模判断就可以了: 这时在将最低位到最高位依 ...
- Permission denied user=hadoop access=WRITE inode=root rootsupergroup rwxr
有段时间没有写了,反正我写的都是跟流水账一样.不为别人看,当然,其中也记录了很多我踩过的坑,可能也能给别人提个醒.最重要的是:这是我学习的记忆 上面的错误是由于我将reducer的输出目录设置在hdf ...
- 发布一个自用的ansi转utf8程序
前几天网上下载了一个国外的源码示例,布署到IIS上,查看网页中文显示乱码,各种不方便,你懂的. 用记事本打开文件,显示是ANSI格式,另存为UTF8格式,保存,再查看页面就正常显示中文了. 文件好多, ...
- 简单的ATM取款过程
一个简单的ATM的取款过程是这样的:首先提示用户输入密码(pwd),最多只能输3次,超过三次则提示用户“密码已输入三次错误,请取卡.“结束交易.如果用户密码正确,在提示用户输入金额(money),AT ...
- openCV C++ 代码笔记
代码片段1 cv_contourMask_step_tmp=cv_contourMask.clone(); cv::Mat maskImage; UIImageToMat(pathimg, maskI ...
- 安装subversion
安装subversion需要依赖apr.apr-util.sqlite 下载安装包,放在/usr/file目录 subversion-1.9.4.tar.gz apr-1.5.2.tar.gz apr ...
- AMD and CMD are dead之js模块化黑魔法
var define, require, define2, require2; typeof JSON != "object" && (JSON = {}), fu ...
- Azure PowerShell (5) 使用Azure PowerShell创建简单的Azure虚拟机和Linux虚拟机
<Windows Azure Platform 系列文章目录> 本文介绍的是国外的Azure Global.如果是国内由世纪互联运维的Azure China,请参考这篇文档: Azure ...
- 2013 duilib入门简明教程 -- 其他 (18)
一.超链接按钮 代码很简单,参见360Demo: <Button text="{u}{a}求助{/a}{/u}" showhtml="true& ...