协议分析

2024-04-13

协议分析(通用8篇)

篇1:协议分析

Ethereal 是一个开放源码的 网络 分析系统,也是是目前最好的开放源码的网络协议分析器,支持 Linux 和 windows平台, Ethereal 起初由Gerald Combs 开发 ,随后由一个松散的 Etheral 团队组织进行维护开发。它目前所提供的强大的协议分析功能完全可以媲美

Ethereal是一个开放源码的网络分析系统,也是是目前最好的开放源码的网络协议分析器,支持Linux和windows平台。Ethereal起初由Gerald Combs开发,随后由一个松散的Etheral团队组织进行维护开发。它目前所提供的强大的协议分析功能完全可以媲美商业的网络分析系统,自从发布最早的0.2版本至今,大量的志愿者为Ethereal添加新的协议解析器,如今Ethereal已经支持五百多种协议解析。很难想象如此多的人开发的代码可以很好的融入系统中;并且在系统中加入一个新的协议解析器很简单,一个不了解系统的结构的新手也可以根据留出的接口进行自己的协议开发。这都归功于Ehereal良好的设计结构。事实上由于网络上各种协议种类繁多,各种新的协议层出不穷。一个好的协议分析器必需有很好的可扩展性和结构。这样才能适应网络发展的需要不断加入新的协议解析器。

1 Ethereal的捕包平台

网络分析系统首先依赖于一套捕捉网络数据包的函数库。这套函数库工作在在网络分析系统模块的最底层。作用是从网卡取得数据包或者根据过滤规则取出数据包的子集,再转交给上层分析模块。从协议上说,这套函数库将一个数据包从链路层接收,至少将其还原至传输层以上,以供上层分析。

在Linux系统中, 1992年Lawrence Berkeley Lab的Steven McCanne和Van Jacobson提出了包过滤器的一种的实现,BPF(BSD Packet Filter)。Libpcap是一个基于BPF的开放源码的捕包函数库。现有的大部分Linux捕包系统都是基于这套函数库或者是在它基础上做一些针对性的改进

在window系统中,意大利人Fulvio Risso和Loris Degioanni提出并实现了Winpcap函数库,作者称之为NPF。由于NPF的主要思想就是来源于BPF,它的设计目标就是为windows

系统提供一个功能强大的开发式数据包捕获平台,希望在Linux系统中的网络分析工具经过简单编译以后也可以移植到windows中,因此这两种捕包架构是非常现实的。就实现来说提供的函数调用接口也是一致的。

Ethereal网络分析系统也需要一个底层的抓包平台,在Linux中是采用Libpcap函数库抓包,在windows系统中采用winpcap函数库抓包

2层次化的数据包协议分析方法

取得捕包函数捕回的数据包后就需要进行协议分析和协议还原工作了。由于OSI的7层协议模型,协议数据是从上到下封装后发送的。对于协议分析需要从下至上进行。首先对网络层的协议识别后进行组包还原然后脱去网络层协议头。将里面的数据交给传输层分析,这样一直进行下去直到应用层

Ip

|

Tcp udp

|

HTTPTFTP

由于网络协议种类很多,就Ethereal所识别的500多种协议来说,为了使协议和协议间层次关系明显。从而对数据流里的各个层次的协议能够逐层处理。Ethereal系统采用了协议树的方式。上图就是一个简单的协议树。如果协议A的所有数据都是封装在协议B里的,那么这个协议A就是协议B是另外一个协议的儿子节点。我们将最低层的无结构数据流作为根接点。那么具有相同父节点的协议成为兄弟节点。那么这些拥有同样父协议兄弟节点协议如何互相区分了?Ethereal系统采用协议的特征字来识别。每个协议会注册自己的特征字。这些特征字给自己的子节点协议提供可以互相区分开来的标识。比如tcp协议的port字段注册后。 Tcp.port=21就可以认为是ftp协议, 特征字可以是协议规范定义的任何一个字段。比如ip协议就可以定义proto字段为一个特征字。

在Ethereal中注册一个协议解析器首先要指出它的父协议是什么。另外还要指出自己区别于父节点下的兄弟接点协议的特征。比如ftp协议。在Ethereal中他的父接点是tcp协议,它的特征就是tcp协议的port字段为21。

这样当一个端口为21的tcp数据流来到时。首先由tcp协议注册的解析模块处理,处理完之后通过查找协议树找到自己协议下面的子协议,判断应该由那个子协议来执行,找到正确的子协议后,就转交给ftp注册的解析模块处理,

这样由根节点开始一层层解析下去。

由于采用了协议树加特征字的设计,这个系统在协议解析上由了很强的扩展性,增加一个协议解析器只需要将解析函数挂到协议树的相应节点上即可。

3 基于插件技术的协议分析器

所谓插件技术,就是在程序的设计开发过程中,把整个应用程序分成宿主程序和插件两个部分,宿主程序与插件能够相互通信,并且,在宿主程序不变的情况下,可以通过增减插件或修改插件来调整应用程序的功能。运用插件技术可以开发出伸缩性良好、便于维护的应用程序。它著名的应用实例有:媒体播放器winamp、微软的网络浏览器ie等。

由于现在网络协议种类繁多,为了可以随时增加新的协议分析器,一般的协议分析器都采用插件技术,这样如果需要对一个新的协议分析只需要开发编写这个协议分析器并调用注册函数在系统注册就可以使用了。通过增加插件使程序有很强的可扩展性,各个功能模块内聚。

在协议分析器中新增加一个协议插件一般需要插件安装或者注册,插件初始化,插件处理3个步骤,下面以Ethereal为例进行分析如何利用插件技术新增加一个协议分析模块。

Ethereal由于采用插件技术,一个新加入开发的程序员开发一种新的协议分析模块的时候不需要了解所有的代码,他只需要写好这个协议模块的函数后,写一个格式为proto_reg_handoff_XXX的函数,在函数内调用注册函数告诉系统在什么时候需要调用这个协议模块。比如

你事先写好了一个名为dissect_myprot的协议解析模块,它是用来解析tcp协议端口为250的数据。可以利用这些语句来将这个解析器注册到系统中

proto_reg_handoff_myprot(void)

{

dissector_handle_t myprot_handle;

myprot_handle = create_dissector_handle(dissect_myprot,

proto_myprot);

dissector_add(“tcp.port”, 250, myprot_handle);

}

这段代码告诉系统当tcp协议数据流端口为250的时候要调用dissect_myprot这个函数模块。

在Ethereal中有一个角本专门来发现开发者定义的类式proto_reg_handoff_xxx这样的注册函数名,然后自动生成调用这些注册函数的代码。这样开发者不需要知道自己的注册函数如何被调用的。这样一个新的协议分析模块就加入到系统中了。

由于采用了插件方式,Ethereal良好的结构设计让开发者只需要关系自己开发的协议模块,不需要关心整个系统结构,需要将模块整合进系统只需要写一个注册函数即可,连初始化时调用这个注册函数都由脚本自动完成了。正是因为有很好的体系结构,这个系统才能够开发出如此多的协议解析器

尽管Ethereal是目前最好的开放源码的网络分析系统,但Ethereal仍然有一些可以改进的地方,一个优秀的网络分析器,尽可能的正确分析出数据协议和高效的处理数据是两个重要的指标。在协议识别方面Ethereal大多采用端口识别,有少量协议采用内容识别。这就让一些非标准端口的协议数据没有正确解析出来。比如ftp协议如果不是21端口的话,Ethereal就无法识别出来,只能作为tcp数据处理。另外对于内容识别式。Ethereal是将所以内容识别的函数组成一张入口表。每次协议数据需要内容识别时,按字母顺序逐个调用表里的每个识别函数。比如对于识别yahoo massanger协议。主要是看数据前几个字节是不是’ymsg’.由于协议名为y开头。所以当识别出协议时已经把所有内容识别函数调用了一遍。这些都是由于Ethereal没有实现tcp协议栈,无法做到流级别的识别。导致在协议识别方面有点缺陷。

各位,想进一步了解Ethereal的请搜索Ethereal Packet Sniffing这本书,网上有下载的

请著名作者和出处

Ethereal协议分析系统介绍

作者:staring

email :staring_cs@yahoo.com.cn

出处:中国协议分析网

原文转自:www.ltesting.net

篇2:协议分析

4.5、租金还款方式

为加快本协议的顺利实施,双方决定以脱硝电价的收入和电厂副产品的经营收入作为租金的支付方式,全部租金支付完成后,停止支付。

4.5.1、脱硝电价的计算:以年供电88亿kwh为基数,以脱硝电价0.008547元/kwh(含税0.01元/kwh)为单价计算为1538.46万元/年,决算以实际供电量为准,支付起始日为电厂脱硝设施运行正常,享受到脱硝电价的次月。

4.5.2、电厂副产品经营收入的计算:自20**年1月1日起电厂粉煤灰等副产品经营权委托给乙方,经营收入用于租金的支付。年营业收入为****万元,一次包定,不可更改。全部租金支付完成后,经营权及营业收入另行协商。

4.3、租金支付

4.3.1、租金支付起始日为施工项目验收交接完毕开始,届时双方签订具体的租金支付协议并在一个月内支付第一次租金;

4.3.2、租金的支付周期为五年,按月进行支付;如五年期到期,甲方因实际原因确实存在付清困难时,经乙方同意可签订延期付款协议并补偿乙方相应的经济损失(融资成本及手续费);

4.3.3、建设期利息在项目竣工后按双方约定总价及利率单独支付;

4.5、租金还款保证

篇3:协议分析

多协议标记交换MPLS (Multi-Protocol Label Switching) 最初是为了提高网络的转发速度而提出的。多协议的含义是指MPLS不仅可以支持网络层的很多协议, 同时也可以使用多种数据链路层协议, 如PPP, ATM, 以太网等。MPLS是面向连接的, 在网络上使用标签标记数据流, 减少了网络的复杂性, 同时还兼容主流的网络技术。

2001年, MPLS成为因特网的建议标准 (RFC3031, 3032) 。

2 MPLS的工作原理

在传统的IP网络中, 路由器需要查找路由表来处理收到的每个分组。通信量增大时, 会出现缓存溢出, 引起分组丢失、传输时延增大等问题。MPLS可以给每个IP分组打上固定长度的标记, 然后对打上标记的这些分组进行转发。这样就省去了查找路由表的过程, 大大增加了转发分组的速率。

图1描述了MPLS基本的工作原理。

MPLS域是指一组彼此相邻的路由器, 同时所有的路由器都是支持MPLS技术的标记交换路由器LSR (Lable Switching Router) 。标记交换路由器同时具有标记交换功能和路由选择功能。MPLS域中的LSR使用标记分配协议LDP (Lable Distribution Protocol) 交换报文, 并找出相应的路径, 这个过程叫做标记交换路径LSP (Lable Switched Path) 。LSR根据这些路径构造转发表, 这个过程和路由器构造转发表的过程类似。域中的第一个LSR根据IP分组的初始标记确定整个标记交换路径, 类似一条虚连接。所以MPLS是面向连接的。

当一个IP分组到达MPLS域时, 域中入口路由器就给他打上一个标记, 并查找转发表把分组转发给下一个LSR。后面的LSR都是按照标记进行转发。

要在全网范围内统一分配标记是不可能的, 所以一个标记只在两个LSR之间才有意义。当分组到达时, LSR要进行分组的转发和更换新的标记。当IP分组离开MPLS域时, 出口处的LSR就把MPLS的标记去掉, 把分组交付给非MPLS的节点 (主机或路由器) 。

在上述过程中, 由入口处的LSR确定分组在MPLS域中的转发路径, 这和传统网络中由路由器逐跳进行路径选择的方式, 有根本的区别。

3 MPLS的格式

给IP分组打上标记, 就是在分组的前面插入一个MPLS头部, 然后再到第二层组装成帧。图2显示了4个字节的MPLS头部的位置和结构。

MPLS的头部包括四个字段。标记值:20位;试验:3位, 保留作为试验使用;栈S:1位;生存时间TTL:8位, 防止分组在域中兜圈子, 时间耗尽后分组将被抛弃。

设置MPLS时可以使用标记值所占的20位, 所以可以同时容纳很多的数据流。但实际上不会用到这么大的数量, 一般由人工来设置每条交换路径。

MPLS允许使用多个标记。当MPLS的头部添加到IP分组的前面时, 就可以把这个MPLS头部看做是MPLS标记栈。如果再产生一个MPLS标记, 依然要把他添加到标记栈中, 放在上一个标记的前面。栈是一种后进先出的数据结构, MPLS协议规定, 最后入栈的标记最靠近帧的头部, 叫做栈顶;最先入栈的标记最靠近IP头部, 叫做栈底。在MPLS的字段结构中, S=1表示这个MPLS标记是栈底, 其他情况下S均为0。标记栈用于MPLS的域出现嵌套的情况。

4 结语

MPLS支持面向连接的服务质量, 可以平衡网络负载, 同时还能有效的支持虚拟专用网VPN, 所以受到了越来越多的重视。很多公司的设备, Cisco、ASCEND、3Com等, 都支持类似的技术。MPLS能解决当前IP网络的一些瓶颈问题, 有的资料称其是新一代IP高速骨干网络交换标准, 是一种很有发展前途的技术。

参考文献

[1]Andrew S.Tanenbaum.计算机网络 (第四版) [M].潘爱民译, 清华大学出版社, 2005。

[2]谢希仁.计算机网络 (第六版) [M].电子工业出版社, 2013.

[3]RFC 3031 MultiPRotocol Label Switching Architecture, January2001.

[4]RFC3032-MPLS Label Stack Encoding, January, 2001.

篇4:OSPF路由协议分析

【关键词】OSPF;邻接关系通告;分组;区域;数据库

一、OSPF介绍

OSPF:Open Shortest Path First 开放最短路径优先是基于RFC 2328的开放标准协议,它非常复杂涉及到多种数据类型,网络类型,数据通告过程等,灵活的接口类型,可以随处设置通告网络地址,方便的修改链路开销等。

二、OSPF邻居关系的建立

1.在局域网中路由器A启动后处于down状态,此时没有其它路由器与它进行信息交换,它会从启用OSPF协议的接口向外发送Hello分组,发送分组使用组播地址:224.0.0.5。

2.所有运行OSPF的直连路由器将会收到Hello分组,并将路由器A加入到邻居列表中,此时的邻居处于Init状态(初始化状态)。

3.所有收到Hello分组的路由器都会向路由器A发送一个单播应答分组,其中包含它们自身的信息,并包含自己的邻居表(其中包括路由器A)。

4.路由器A收到这些Hello分组后,将它们加入到自己的邻居表中,并发现自己在邻居的邻居表中,这时就建立了双向邻居关系(two-way)状态。

5.在广播型网络中要选举DR和BDR,选举后路由器处于预启动(exstart)状态。

6.在预启动状态下路由间要交换一个或多个的DBD分组(DDP),这时路由器处于交换状态。在DBD中包含邻居路由器的网络、链路信息摘要,路由器根据其中的序列号判断收到的链路状态的新旧程度。

7.当路由器收到DBD后,使用LSAck分组来确认DBD包,并将收到的LSDB与自身的相比较,如果收到的较新,则路由器向对方发出一个LSR请求,进入加载状态,对方会用LSU进行回应,LSU中包含详细的路由信息。

8.当对方提供了自身的LSA后,相邻路由器处于同步状态和完成邻接状态,在lan中路由器只与DR和BDR建立完全邻接关系,而与DRothers只建立双向邻接关系,此时的相邻路由器进入了Full状态,完成了信息同步。

三、OSPF的分区机制

OSPF路由协议可以使用在大型网络规模中,如要规模太大,路由器需要维持很大的链路状态作息,构建大的链路状态数据库存(LSDB),路由表要较大,影响工作效率,并且当网络中拓扑出现问题时,会引起大的路由波动,所有路由器要重建路由表,所以分区的概念被提出来。

设计者可以将整个网络分为多个区域,每个区域内部的路由器只需要了解本区域内部的网络拓扑情况,而不用掌握所有路由器的链路情况,这样LSDB就减小了很多,并且当其它区域的网络拓扑变化时,相应的信息不会扩散到本区域外,如变化后影响到其它区域,这时ABR才会生成LSA发往其它区域,这样大部分的拓扑变化被隐藏在区域内部,其它区域的自身并不需要明白这些,内部路由器只需维持本区域的LSDB即可,这样就减少了协议数据包,减轻路由器及链路的负载。

四、OSPF的分组类型

1.HELLO报文(Hello Packet)。最常用的一种报文,周期性的发送给本路由器的邻居。内容包括一些定时器的数值,DR,BDR,以及自己已知的邻居。

2.DBD报文(Database Description Packet)。两台路由器进行数据库同步时,用DD报文来描述自己的LSDB,内容包括LSDB中每一条LSA的摘要(摘要是指LSA的HEAD,通过该HEAD可以唯一标识一条LSA)。这样做是为了减少路由器之间传递信息的量,因为LSA的HEAD只占一条LSA的整个数据量的一小部分,根据HEAD,对端路由器就可以判断出是否已经有了这条LSA。

3.LSR报文(Link State Request Packet)。两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地的LSDB所缺少的或是对端更新的LSA,这时需要发送LSR报文向对方请求所需的LSA。内容包括所需要的LSA的摘要。

4.LSU报文(Link State Update Packet)。用来向对端路由器发送所需要的LSA,内容是多条LSA(全部内容)的集合。

5.LSAck 报文(Link State Acknowledgment Packet)。用来对接收到的LSU报文进行确认。内容是需要确认的LSA的HEAD(一个报文可对多个LSA进行确认)。

OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,簡称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。与RIP相比,OSPF是链路状态路由协议,它在各方面具有较大的优势,虽然比较复杂,但其优越的工作机制却是网络规划中不可或缺的。

篇5:Internet协议分析

MTU是网络上传送的最大数据包,MTU的单位是字节,当IP层接收到一份要发送的IP数据包时,如果数据包大于发送系统的本地MTU的话,这时系统就得把数据包分成多个片里发送

IP数据包结构

生存时间TTL 说明数据包在不可发送和破坏之前还可以经过的跳数

源IP地址 用来存储最初发送该数据包的主机的32位IP地址

目的IP地址 用来存储该数据包到达目的系统的32位IP地址

第三章

源端口号和目标端口号(16)

在每一个TCP的头部都包含有源端口号和目的端口号,用于定位源端的应用进程和目的端的应用进程

序列和确认号(Seq和Ack)(32)

序列号和确认号是TCP实现可靠连接的关键,当建立一个TCP连接时,发送方主机发出一个随机的初始化序列号给接收方,接收方将其+1后送回发送方,意味着发送方可以发送下一个字节

标志(6)标志字段部分包含6个标志位,它说明了其他字段包含有意义的数据或说明某种控制功能。

窗口(16)此字段告诉接收这个TCP报文的接收端自己还可以接收多少数据字节。它大致对应于滑动窗口协议的窗口尺寸。反过来,接收TCP报文的接收端可以使用此字段来改变发送端的窗口的大小。窗口最大为65535字节。

MSS(最大报文段长度)和MTU(最大传输单元)大小

在TCP初建连接时,通讯双方要交换MSS,以确定将要传输的数据的大小,MSS值设置为外出接口上的MTU长度减去固定的IP首部和TCP首部长度。但是如果网络的中间设备的MTU要小于通信双方计算机的MTU,那么数据在传输过程中就要分段。TCP采用一个PATH MTU DISCOVERY 机制来避免当不同网络的计算机要通信时出现的分段问题,即通信前先发送一个IP探测数据,数据包的大小为输出接口或者对端声名的MSS 中的最小MTU,这个数据包的IP报头“不分开”标志字段必须设置为1,已表明禁止数据包分段,如果IP探测器没有被分段到达了目的地,那么就会采用此探测器段中用到的MTU用作数据传输。TCP端口号

TCP 21 文件传输

TCP 23 Telnet

TCP 25 SMTP

TCP 52 DNS

TCP 80 http

TCP 110 Pop3

TCP的拥塞控制

拥塞避免算法和慢启动算法需对每个连接维持两个变量,一个拥塞窗口cwnd和一个慢启动门限ssthresh

慢启动算法在cwndssthresh时使用,当cwnd=ssthresh时,既可以使用慢启动算法也可以使用拥塞避免算法

慢启动算法设置cwnd为一个报文字段即cwnd=1mss,此后每收到一个确认,cwnd以指数方式增长:发送1个报文段,然后是2个,4个

拥塞避免算法要求每次收到一个确认将cwnd增加1/cwnd,与慢启动的指数增加相比,这是一种加性增长

第四章

ARP包含的字段:源端的硬件地址,源端的IP地址,目标的硬件地址,目标的IP地址,一个“消息类型”字段

ARP报文结构

Hardware Type 标识被请求的硬件地址类型

Protocol Type 标识使用的高层协议

Hardware Address Length 指定源和目的硬件地址中提供的硬件地址长度

Protocol Address Length 指定源和目的协议地址字段中找到的高层协议地址的长度 Message Type 说明包的类型

GARP

重复地址检查,Gratuitous ARP

当主机第一次获得IP地址的时候,会使用自己的IP地址作为目标地址发送ARP请求,以确定自己使用的IP地址是否有人在用,如收到ARP响应则表明这个IP地址有人在使用

第五章

ICMP不是传输协议,也不能用来发送应用程序数据,ICMP是消息控制协议,作用是发送消息把网络事件和变化告诉设备

ICMP消息类型

Ping用到的ICMP Message Type值Echo Reply是0,Echo Request是8

第六章

HTTP协议的请求方法

GET 当浏览器要从服务器读取指定文档,GET方法要求服务器将URL定位的资源放在响应报文的正文中,回送给浏览器

POST 从客户端向服务器传送数据,在要求服务器和CGI做进一步处理时会用到POST方法,POST主要用于发送HTML文本中的FORM内容,让CGI程序处理,使用Post请求时需要在报文首部字段ContentLength字段中指出body的长度

HTTP常见的响应代码

200OK 一切正常,对GET和POST请求的应答文档跟在后面

404Not Found 无法找到指定位置的资源

HTTP的请求头字段

Accept 客户端接受的数据类型

Authorization 认证消息

User—agent 客户端软件类型

Accept-charset 客户端浏览器能够处理的字符集

Accept-encoding 浏览器能够进行解码的数据编码方式

Accept-language 浏览器希望的语言类型

Authorization 授权信息

Host 请求初始的主机和端口

Range 请求的正文范围

User-Agent 客户端产生请求的软件类型

Cookie 最重要的请求头信息

HTTP正文头字段

Content-Type 标明发送或者接手的正文的MIME类型

第七章

Telnet使用TCP端口23来提供远程登录

Telnet如何解决不同操作系统之间使用命令不同的问题

Telnet可以运行在不同的操作系统之间,为了让Telnet协议适应异构环境,Telnet定义了NVT,NVT定义了数据和命令在Internet上的传输方式,当客户端发送数据时,客户端软件把来自用户终端的键盘输入转换为NVT格式发送到服务器端,服务器端软件将收到的数据和命令从NVT格式转换为远程系统需要的格式,当服务器端返回数据时,远程服务器端将数据将数据从远程服务器的格式转为NVT格式发送给客户端,客户端将收到的NVT格式数据再转换为本地格式

第八章

FTP客户与服务器之间用TCP建立双重连接,一个是控制连接一个是数据连接

与HTTP不同的是,FTP在整个会话期间,服务器必须把控制连接与特定的用户关联起来,随时跟踪用户的状态,跟踪每个活跃的用户会话极大地限制了FTP能够同时维护的会话数 FTP被动模式与主动模式的区别如下

主动模式

(1)客户端主动连接服务器,服务器以被动方式打开21端口,以建立控制连接

(2)文件在客户端与服务器之间传输时,服务器主动打开端口20,以建立控制连接 被动模式

(1)主动模式时,客户端发送一个PORT命令给服务器端,服务器依据PORT命令中指定的端口和客户端建立数据连接,在被动模式下,客户端发送PASV命令给服务器端,表明客户端希望进入Passive模式

(2)服务器进行应答,包括服务器的IP地址和一个用以建立建立数据连接的端口,而不是前述服务器所用的20端口

(3)客户端发送一个SYN包,源端口为客户端自己选择的一个端口,目的端口为服务器在PASV应答命令中指定的端口号

(4)服务器端发送SYN ACK包给客户端,目的端口为第三步中客户端自己选择的端口号,源端口为PASV应答中指定的端口号

(5)客户端发送一个ACK包,服务器在被动方式下,建立数据连接传输数据时用的端口是由服务器在发送PASV应答时指定的,不是被动方式时的20端口

第九章

MIME(Multipurpose Internet Email Extension)多用途因特网邮件扩充协议,允许非ASCII数据能够通过电子邮件传送,在发送方把非ACSII数据转换为NVT ACSII数据,接收方在把收到的数据还原

MIME定义了五种首部,用来加在原始的邮件首部来定义参数的转换,MIME-Version、Content-Type、Content-Transfer-Encoding、Content-Id、Content-Description

MIME-Version以前的部分为电子邮件首部,MIME-Version开始为MIME部分

第十章

DHCP服务器集中管理网络环境资料并负责处理客户端的DHCP请求,客户端根据从服务器端分配下来的IP环境资料来设置自身的网络环境

DHCP工作过程:

(1)DHCP客户机寻找DHCP服务器阶段

DHCP客户机以广播方式发送DHCP discover报文来寻找DHCP服务器,这个广播报文向255.255.255.255发送,网络上每一台安装了TCP/IP协议的主机都会收到这个广播消息,但只有DHCP服务器才会做出响应

(2)DHCP服务器提供IP地址阶段

在网络中接收到DHCP discover发现信息的DHCP服务器都会做出响应,它从IP地址池中挑选一个未分配的IP地址给DHC客户端,通过向DHCP客户端发送一个包含出租的IP地址和其他设置的DHCP offer来提供信息

(3)DHCP客户端选择某台DHCP服务器提供IP地址的阶段

如果有多台DHCP服务器向DHCP客户端发来DHCP offer提供信息,那么DHCP客户端只接受第一个收到的DHCP offer提供的信息,然后以广播的方式回答一个DHCP request请求信息,该信息中包含向他所选定的DHCP服务器请求IP地址等内容,发送这个请求是为了让所有DHCP服务器知道,他将选择某台DHCP服务器所提供的IP地址,请求使用的是广播地址

(4)DHCP服务器确认所提供的IP地址阶段

当DHCP服务器收到DHCP客户端的DHCP request请求信息之后,便向DHCP客户端发送一个包含他所提供的IP地址和其他设置的DHCP ack确认信息,告诉DHCP客户端可以使用它所提供的IP地址

DHCP服务器向DHCP客户端出租的IP地址一般有一个租借期限,期满后DHCP服务器会收回出租的IP地址,如果DHCP客户端继续使用该IP地址,必须更新其DHCP租约信息 DNS查询方法:

(1)递归查询

递归查询是最常见的查询方式,域名服务器将代替提出请求的客户机(下级DNS服务器)进行域名查询,若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机,在域名服务器查询期间,客户机将完全处于等待状态

(2)迭代查询

迭代查询又称重指引,当服务器使用迭代查询时能使其他服务器返回一个最佳的查询点提示或主机地址,若此最佳的查询点中包含需要查询的主机地址,则返回主机地址信息,若此时服务器不能够直接查询到主机地址,则是按照提示的指引依次查询,直到服务器给出的提示中包含所需要查询的主机地址为止,一般每次指引都会更靠近根服务器(向上),查寻到根域名服务器后,则会再次根据提示向下查找

五种主要资源记录类型

主机(A):用于将DNS域名映射到计算机使用的IP地址

别名(CNAME):用于将DNS域名的别名映射到另一个主要的或规范的名称

邮件交换器(MX):用于将DNS域名映射为交换或转发邮件的计算机的名称

指针(PTR):用于映射基于指向其正向DNS域名的计算机的IP地址的反向DNS域名 服务位置(SRV):用于将DNS域名映射到指定的DNS主机列表,该DNS主机提供诸如Active Directory域控制器之类的特定服务

IP协议是因特网的核心协议,是不同数据链路层协议网络能够互联的基础。IP协议属于分组交换中的数据报服务,是无连接的、不可靠的协议。IP协议的主要功能是在网络中确定一条合适的路径,然后将数据报通过该路径由发送方传输到接收方,IP协议的首部格式体现了这个功能。

与IP协议类似,TCP协议也是因特网中的核心协议。TCP协议是面向连接的、保证可靠传输的协议,具有分用与复用、可靠传输、流量控制、拥塞控制的功能,TCP协议的首

部格式体现了这些功能。TCP建立连接时,需要控制数据传输3次才能建立连接,称为三次握手。

UDP协议也是因特网中运输层的协议。UDP协议是无连接的、不保证可靠传输的协议,仅具有分用与复用的功能。虽然功能比TCP少很多,但效率却比TCP高,因此UDP与TCP,需要根据具体情况选用。

当进行网络通信时,用户通常只指定目的IP地址,并不指定目的物理地址,但在帧的首部中,却需要目的物理地址,因此需要一个机制,将IP地址转换为物理地址。ARP协议正是完成这个功能的协议。

ICMP协议不是用来传输用户数据的协议,而是一种用来报错或查询的协议。当数据在传输过程中出错时,利用ICMP协议,可以向发送方报告多类错误。利用ICMP协议中查询类的echo request与echo reply报文,开发出了ping命令,可以判断本机与远程计算机间的网络连通性。

HTTP协议是因特网中应用层的重要协议。HTTP协议是典型的客户-服务器模式的协议,浏览器向服务器发出HTTP请求报文,服务器则向浏览器返回HTTP响应报文。HTTP协议原本是用于传输WWW超文本(即网页)的协议,实际上它可以传输任意类型的文件。

FTP协议是因特网中应用层的重要协议,用于在网络中不同计算机间传输文件。FTP协议是典型的客户-服务器模式的协议,客户与服务器间建立两条TCP连接,一条连接传输控制信息,称为控制连接,另一条连接传输文件本身,称为数据连接。

区别:FTP 是完整、面向会话、常规用途文件传输协议。而 TFTP 用作 bones bare-特殊目的文件传输协议。交互使用 FTP。TFTP 允许仅单向传输的文件。FTP 提供身份验证。而TFTP 不。FTP 使用已知 TCP 端口号: 20 的数据和 21 用于连接对话框。TFTP 用于 UDP 端口号 69 其文件传输活动。因为 TFTP 不支持验证 WindowsNT,所以FTP 服务器服务不支持 TFTP。FTP 依赖于 TCP,是面向连接并提供可靠的控件。TFTP 依赖 UDP,需要减少开销, 几乎不提供控件。POP(Post Office Protocol)邮局通讯协定 POP是互联网上的一种通讯协定,主要功能是用在传送电子邮件,当我们寄信给另外一个人时,对方当时多半不会在线上,所以邮件服务器必须为收信者保存这封信,直到收信者来检查这封信件。当收信人收信的时候,必须通过POP通讯协定,才能取得邮件。

SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP

协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。

DNS 是域名系统(Domain Name System)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。在Internet上域名与IP地址之间是一对一(或者多对一)的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。DNS 命名用于 Internet 等 TCP/IP 网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的IP地址,这样才能上网。其实,域名的最终指向是IP。

NAT就是网络地址翻译的英文缩写。NAT在内部网络中使用内部地址,通过

篇6:网络协议分析课程设计

设计题目: 网络构建与协议分析

院 系: 信息技术学院

班 级:

设 计 者:

学 号:

指导教师:

设计时间:

信息技术学院

昆明学院课程设计(大作业)任务书

课程设计(大作业)报告

网络构建及分析

一、题目分析

1. 在S2126与S3750B上划分VLAN,并把PC机与服务器加入到相应的VLAN中。

2. 配置S2126与S3750A之间的两条交换机间链路,以及S3750A与S3750B之间的交换机间链路。

3. 在S2126与S3750A之间的冗余链路中使用STP技术防止桥接环路的产生,并通过手工配置使S3750A成为STP的根。

4. 为S3750A的VLAN接口和R1762的接口配置IP地址。

5. 在S3750A上使用具有三层特性的物理端口实现与R1762的互联。

二、总体设计

三、实验器材

1、网络环境

根据具体协议构建合适的网络环境

2、操作系统

WindowsXP,如果需要,安装相应的服务(如FTP,SSH,TELNET,HTTP等)

3、协议分析工具

Windows环境下常用的工具有:Sniffer Pro、Ethereal、Iris以及Packet Tracer 等。实验中可具体选择一种协议分析工具,本实验选择Ethereal。

四、制作步骤

1、分析实验设计要求,进行初步的规划;

2、按照要求的网络拓扑图在思科模拟器上进行对网络拓扑图的连接,此处要特别注意对设备和连接线的选择;

连线时要特别注意选用的线的种类:同种设备之间互联使用交叉线,不同种设备互联使用直通线。

3、按照实验的要求,对模拟好的拓扑图进行内部的配置和设置

4、进行设置和配置的检测,对实验的结果进行分析

五、分析网络中可能用到的网络协议

可能用到的网络协议有:

应用层DNS, FTP,HTTP, RIP, DHCP

传输层TCP, UDP

网络层IP,ICMP,IGMP

数据链路层 ARP,RARP

物理层 以太网,RS-232

.路由协议(RIP):路由协议主要运行于路由器上,路由协议是用来确定到达路径的,它包括RIP,IGRP,EIGRP,OSPF。起到一个地图导航,负责找路的作用。它工作在网络层。路由选择协议主要是运行在路由器上的协议,主要用来进行路径选择。

FTP :FTP(File Transfer Protocol, FTP)是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。

HTTP:HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。HTTP是客户端浏览器或其他程序与Web服务器之间的`应用层通信协议。

IP: IP是英文Internet Protocol(网络之间互连的协议)的缩写,中文简称为“网协”,也就是为计算机网络相互连接进行通信而设计的协议。

ARP:在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP地址。

篇7:垄断协议刑事责任分析

荣国权、郭宗旋、魏巍

点击:2

5【文章编号】CEL14539

【正文】

一、反垄断法中垄断协议刑事责任的缺失

(一)现行规定

我国现行的《反垄断法》对垄断协议法律责任的规定集中体现在第46 条:经营者违反本法规定,达成并实施垄断协议的,由反垄断执法机构责令停止违法行为,没收违法所得,并处上一销售额百分之一以上百分之十以下的罚款;尚未实施所达成的垄断协议的,可以处50 万元以下的罚款。经营者主动向反垄断执法机构报告达成垄断协议的有关情况并提供重要证据的,反垄断执法机构可以酌情减轻或者免除对该经营者的处罚。行业协会违反本法规定,组织本行业的经营者达成垄断协议的,反垄断执法机构可以处50 万元以下的罚款;情节严重的,社会团体登记管理机关可以依法撤销登记。很显然,此条规定的是仅仅是垄断协议的行政责任。此外,第50 条还规定了实施垄断行为应当承担民事责任。因此,在现行《反垄断法》中,作为垄断行为之一的垄断协议仅仅规定了民事及行政责任,而没有刑事责任的规定,这与我国现实需要及国际上的普遍做法相差甚远。

(二)我国的现实需要

随着经济全球化与我国经济的高速发展,我国面临的垄断协议行为也愈来愈严重。首先是发达国家的各种跨国企业凭借其资金及技术优势,在全球范围内已形成各种垄断集团。由于我国推行改革开放时间较短,经济发展水平相对较低,使得这些跨国企业无论是以中外合资、合作或独资的形式进入我国, 还是以设立分支机构或其它合作方式进入我国,都具有极强的垄断能力。我国垄断法律制度的滞后更加剧了垄断行为对我国的危害。他们借助强大的金融后盾和大量的现代金融工具, 抢占市场制高点,影响非凡。如国际钢铁巨头力拓、必和必拓和巴西淡水河谷联手对我国的钢铁企业实施铁矿石涨价,中国钢协与其进行数次谈判都未果,使我国的整个钢铁市场受到威胁。但由于我国垄断立法的滞后,我国束手无策。而在欧盟,由于垄断执法机构的极力反对,必和必拓被迫放弃收购力拓。同时最近出现的日化产品、洋奶粉等行业的集体涨价行为也表明我国现在面临的国际垄断行为的严峻性,这要求我国的垄断立法应及时跟上形势做出调整。

其次,随着市场经济的发展,市场的优胜劣汰,逐渐形成了一批大的企业,为了减少竞争压力和竞争风险,总是想方设法的限制竞争。经济学家亚当·斯密曾经说过:“同一行业的人即使为了娱乐和消遣而集合在一起,他们的谈话也很少不涉及反对公众的阴谋和某种提高价格的策略。”[1]它们通过秘密达成垄断协议或者以行业协会的名义达成各种行

业自律价格等方式,形成对行业的垄断,限制或排除了竞争。而现有的法律法规对垄断协议行为的制裁难以制止这种违法行为,需要法律制裁的进一步强化。

二、我国垄断协议刑事责任的构成要件

(一)主体

世界各国(地区)的《反垄断法》均规定,实施垄断协议的行为主体需为经营者,在日本称之为“事业者”,我国台湾地区称为“事业”。而且,各国(地区)一般对经营者的涵义予以明确的界定。如日本《独占禁止法》第2条第1 款规定:本法所称“事业者”,是指从事商业、工业、金融业及其他事业的人。为事业者的利益进行活动的干部、从业人员、代理人及其他人员在适用下列条款及第三章的规定时,也视为事业者。而在我国台湾地区,《公平交易法》通过列举的方式对其予以界定,该法第2 条规定,本法所称的事业如下:(一)公司;(二)独资或合伙制工商行号;(三)同业公会;(四)其他提供商品或服务从事交易指人或团体。在我国《反垄断法》第十二条对经营者做出明确规定:本法所称经营者,是指从事商品生产、经营或者提供服务的自然人、法人和其他组织。

在实践中,行业协会往往会借助其自身优势,通过达成行业协议的方式来限制竞争,如方便面行业的集体涨价等。这实际上是一种变相的经营者之间的一种垄断协议,而且行业协议具有一定的权威性,对限制竞争效果更为明显。因此我国的《反垄断法》已明确将行业协会纳入到垄断协议实施主体的范畴中,并规定了行业协会违法应承担的法律责任。

(二)客体

垄断协议行为侵犯的客体, 是市场的竞争秩序和市场相对人的合法权益, 具体包括其他企业或自然人参与市场自由竞争、公平交易的权利以及国家整体经济发展和社会公共利益。市场竞争机制是市场机制核心机制和社会主义市场经济发展的根本动力, 因此从市场经济发展的宏观角度来看, 垄断协议侵犯了市场经济秩序和社会公共利益; 从市场相对人合法权益的微观角度看,垄断协议侵犯了其他经营者的公平竞争权和广大用户、消费者的公平交易权及应当享有的福利水平。

(三)主观方面

垄断协议行为的主观方面是故意, 即垄断协议的行为人明知自己在生产经营中实施的共谋串通行为,会排除、限制竞争,从而损害国家整体经济利益、社会公共利益或他人合法权益, 而希望或放任这种结果发生。为了防止市场竞争过于激烈行为人达成垄断协议的,都可以认定行为人主观是故意的,而过失一般不会承担刑事责任。

(四)客观方面

客观方面是指垄断协议行为的外在表现形式,又包括行为和效果两个要件。

1.行为要件。垄断者承担刑事责任需具备的垄断协议的行为要件是指两个或两个以上的经营者通过达成垄断协议共同实施的了互约束对方经营活动行为,如固定价格、划分市场、限制产量、联合抵制、串通投标等。它又包括形式要件与实质要件两要件: 形式要件是指经营者之间达成垄断协议的行为,具体包括经营者之间达成的协议与协同行为,以及通过行业协会达成决议、决定等;实质要件是指垄断协议能够对经营者的经营行为进行约束,从而限制或消除彼此之间的竞争。认定经营者承担刑事责任时需要实质要件与形式要件共同存在,缺一不可。

2.效果要件。对自由竞争秩序具有损害效果,是所有违法垄断协议的特征。而垄断协议构成犯罪的话,需要程度更加严重的损害后果。这种损害效果的认定往往需要借助经济学的知识,因此在法律中,界定行为对竞争的损害效果大多数国家都是通过规定犯罪形态入手。如针对核心卡特尔的刑事制裁,当然有些国家也做出了一些限制,如美国《反垄断执法手册》要求垄断协议需要达到影响州际贸易的程度。在我国,根据以往的立法经验,追究刑事责任的违法行为需要达到情节严重的程度。具体到垄断协议而言,情节严重应表现为以下情形:一是数额巨大,具体包括垄断协议行为本身数额巨大、垄断协议违法所得数额巨大和垄断协议给他人造成损失数额巨大;二是影响范围广,包括影响区域范围广和影响人员范围广; 三是垄断协议造成的严重的后果的。

三、垄断协议刑事责任的特殊认定原则

在认定垄断协议行为刑事责任过程中,国际上有二项特殊原则,用作垄断协议刑事责任的构成要件的变通与补充。

(一)本身违法原则

本身违法原则就是当然违法原则,是指某些竞争行为已被依法确定为违法,只要实施这些行为就认定其违法,而不再根据具体情况进行分析判断,即在认定垄断协议行为刑事责任过程时,不再考虑垄断协议行为的主观要件和客观效果要件。这是国际上核心卡特尔(竞争者为固定价格、操纵投标、产量限制、制定配额、分享市场的反竞争的协定、具体的行为或安排)通用的归责原则。其中各国反垄断法主要对三种卡特尔适用本身违法规则,他们是价格卡特尔、生产数量卡特尔和分割市场卡特尔。运用本身违法原则处理固定价格、划分市场、限制产量等的垄断协议案件,原告只需要证明有这样的卡特尔存在,而无需证明卡特尔的限制竞争性,这可以减轻当事人的举证责任,节约诉讼成本,同时也加大了胜诉的可能性。同时也方便法院及政府机构的调查,即他们不必调查订立卡特尔的目的及后果,就可以认定该卡特尔的违法性,从而可以节约审理案件的时间和费用,用有限的司法资源去维护作为市场经济核心的自由公平的竞争机制,因此确立这样简便易行的执法原则十分必要。

(二)合理原则

合理原则是指对某些垄断协议的行为是否在实质上构成限制竞争,并在法律上是否予以禁止需具体问题具体对待,需对企业的动机、行为方式及其后果加以考察后做出判断并认定。[2]具体表现为某一垄断协议虽然含有一些限制竞争的条款,但没有超出法律或商业上合理的限度,不会对市场的竞争环境造成实质意义上得削弱或消灭,行为合理的举证责任应由被告承担。虽然这种行为符合认定垄断协议刑事责任的构成要件,但由于一些特殊情况,适用合理原则对其进行豁免。合理原则实际上也是本身违法原则的补充,在适用本身违

法原则可能对正常经济活动产生消极影响时,通过合理原则对一些特殊情况予以排除。如小企业之间的联合、为公共利益的一些垄断协议等。

因此,在认定垄断协议行为刑事责任过程中,必须具体问题具体分析,以促进竞争为目标,坚持原则性与灵活性相结合,即在坚持垄断协议刑事责任的构成要件的基础上,灵活运用本身违法和合理原则予以变通与补充。

四、垄断协议刑事责任的适用除外及豁免、宽恕政策

(一)垄断协议刑事责任的适用除外

垄断协议刑事责任的适用除外是指由于国家基于社会经济总体及长远利益以及其他国计民生等方面考虑,对于某些特定的行业、主体的垄断协议,予以例外许可,使其不受反垄断法的调整,因此也不会承担刑事责任的行为。如我国反垄断法五十六条规定:“农业生产者及农村经济组织在农产品生产加工、销售、运输、储存等经营活动中实施的联合或协同行为,不适用本法。”因此农业生产者进行联合或协同行为,签订协议,通过共同的农业经营组织做出规划,提高应对风险的能力,同时也能提高市场竞争力的行为属于垄断协议刑事责任适用除外的范围。

(二)垄断协议刑事责任的豁免

垄断协议虽然是对市场竞争危害最严重的垄断行为,但是,并非所有的垄断协议都会损害市场经济的发展。在市场经济发展过程中,基于对整体经济效益和社会效益的考虑,在某些垄断协议的行为在其他方面带来的好处要大于对竞争秩序的损害,对市场经济总体是有促进作用时,酌情给与豁免。

根据我国反垄断法规定,可得以豁免的垄断协议的主要类型有以下几种:1.为改进技术、研究开发新产品的;2.为提高产品质量、降低成本、增进效率,统一产品规格、标准或者实行专业化分工的;3.为提高中小经营者经营效率,增强中小经营者竞争力的;4.为实现节约能源、保护环境、救灾救助等社会公共利益的;5.因经济不景气,为缓解销售量严重下降或者生产明显过剩的;6.为保障对外贸易和对外经济合作中的正当利益的;7.法律和国务院规定的其他情形。

(三)垄断协议刑事责任的宽恕政策

垄断协议的参与者一旦被发现,就会为此付出沉重代价,在这种情况下,他们总会想法设法掩盖他们的共谋行为,如果垄断协议不以书面方式作出,政府很难发现竞争者之间的密谋行为。为了解决这一问题,美国在1978 年就制定了这样一种政策,即鼓励参与卡特尔的企业杀回马枪,揭发卡特尔行为。1993 年发布新的宽恕政策规定违法反托拉斯法的企业如果向政府坦白交代,且符合一定条件,就可以得到政府的宽恕,即减轻甚至免除其应承担的刑事责任。这些条件包括:(1)企业向政府报告违法行为时,政府还没有从其他任何方面得到这一违法活动的任何信息;(2)该企业一旦发现参与了违法行为,就采取迅速和有效的行动终止了这一活动;(3)该企业坦率和全面地向政府报告了违法行为,且整个调查阶段向反托拉斯局提供完整、连续和全面的合作;(4)这一坦白行为是企业行为,而不是

企业领导的个人行为;(5)可能的情况下,企业可以向受害者赔偿损失;(6)企业没有胁迫其他当事人参与这一违法活动,且明显不是违法活动的领导者或者倡议者。[3]现在很多发达市场经济国家借鉴美国的做法,制定了各自的宽恕政策。如欧共体1996 年制定的《卡特尔案件中免除或者减轻罚款的通告》,1998 年《英国竞争法》中规定了鼓励卡特尔成员坦白的内容。对我国而言,由于监管水平不是很高,一些隐蔽的垄断协议行为难以发现,这更需要在追究垄断协议刑事责任时引入宽恕政策,促进垄断协议参与者的坦白,从而更好地发现垄断协议行为。

根据以上对垄断协议刑事责任的分析,笔者建议在未来的《反垄断法》修订中应当加入追究垄断协议参与者刑事责任的内容,刑法中也应加入垄断协议罪的具体犯罪构成及刑罚处罚,以期为我国的社会主义市场经济创造良好的竞争环境。

【注释】

[1](英)亚当·斯密著:《国富论》,杨敬年译,陕西人民出版社2001 年版。

[2]从丽沙:《中国垄断协议制裁机制研究》,中国海洋大学2009 年硕士学位论文。[3]王晓晔著:《论反垄断法》,社会科学文献出版社2010 年版,第120 页。

【版权声明】本网站刊登文章仅用于学术目的,如有版权问题,请作者及相关利益人直接与本网站联系。

【编后语】

出处:《检察前沿》2012年第2期(司法实务)/总第141期

【大 中 小】【我要纠错】【下载】【打印】【关闭】■本栏其他文章

· 论中国反垄断执法机构的设置(覃有土、常茜奕)

· 《反垄断法》下特许经营限制竞争行为研究(杨继飞)

· 企业垄断的判定标准之质疑(李炎龙)

· 从“两权合一”走向“三权合一”——我国反垄断执法机关导入准司法[ 2012-12-14 ] [ 2012-11-29 ] [ 2012-11-29 ] [ 2012-11-15 ]

篇8:金融通讯协议分析实现

国际标准化委员会制定的ISO8583协议最多由128个域组成, 在8583包前端为位图域, 用来确定包的域组成情况。协议中包含数据的多少主要依靠最开始的位图在确定数据字段的构成。在128个域中有63个域有固定用法, 还有65个保留域仅对长度规定以外, 其他每个字段的格式, 用途都有规定。那么既然那么多无具体定义的字段, 我们不可能每次做一个新业务的时候都要求协议这部分进行修改。因此最好的方式是根据每个业务接口的具体要求进行配置, 以达到在通讯层上的灵活性。

既然需要对ISO8583进行配置, 就需要对他的基本类型进行分类:字母、数字、特殊符号等;从用途分类:时间日期、金额、货币符号、证件号等。从字符属性上分类有:可见字符、不可见字符。这里拿余额查询的报文进行举例说明。

我们将此交易例文作为我们分析的入口, 从文中我们可以看出这个例文的交易类型码是0210。消息类型码是第一域描述N4, 4个字节的定长数字字符域。压缩时用BCD码表示的2个字节的定长域。第3, 11, 12, 13域分别是交易处理码、终端流水号、交易时间、交易日期, 他们都与第一域相同, 这里关键字:BCD。

例文中位图域信息是70 38 00 01 0A C0 84 11, Bit为信息可以得出, 这个例文中包含以下数据字段:2、3、4、11、12、13、32、37、39、41、42、49、54、60、64, 下面我们挑选不同类型的字段分析。

根据规范介绍第2域是主账号:N20 (LLVAR) , 2个字节的长度值+最大20个字节的主账号。压缩时用BCD码表示的1个字节的长度值+用右填充BCD码表示的最大10个字节的主账号。例文中1个字节的长度值为19, 账号:6227 003372180039169。第32域受理方标识与此域相同处理, 关键字:2位变长、BCD、右填充。

第4域交易金额, 描述N12, 12个字节的定长数字字符域, 压缩时用BCD码表示的6个字节的定长域。例文中金额是13400元, 最后的两个0表示的角分。数值形式的表达, 使用左补0的方式。关键字:定长、数值、BCD、左填充。

第37域系统检索号, 描述AN12, 定长字符域。例文中的系统检索号是589799259300, 这里不用填充补位, 没有长度描述字节。第39、41、42、49域应答码、终端号、网点号、货币代码使用相同方法处理, 关键字:ASC、定长。

第54域附加金额域, 描述AN020 (LLLVAR) , 3个字节的长度值+最大20个字节的数据。例文0212156C000001340000表示储蓄账户可用余额为13400元, 02表示余额, 12表示储蓄账户, 156表示人民币的货币代码, 一个域中有4种信息, 这里称之为复合域。关键字:3位变长、ASC、复合域。

第60域自定义域, 描述N 032 (LLLVAR) , 压缩时用右靠BCD码表示的2个字节的长度值+用左靠BCD码表示的最大7个字节的数据, 包含消息类型码和批次号。同54域有部分类似, 只是使用BCD压缩方式。关键字:3位变长、BCD、复合域。

从上述可以得出需要定义以下基本接口, 下面从程序设计的角度来进行设计。

2 程序设计

2.1 接口定义

2.1.1 Interface Padder

(1) 处理固定长度字段需要填充的情况, 有可能是左、右侧可以填充。

(2) 处理需要进行BCD编码方式压缩的情况, 这种编码方式要压缩的数据长度必须要是偶数, 如遇长度为奇数的需要填充。

(3) 对与变长数据域的长度描述部分, 如果是三位长度在制成报文的时候需要左侧填充字符‘0’。

2.1.2 Interface Prefixer

需要有长度描述的数据字段, 在这里我们把固定长度的数据字段作为一种特殊的变长情况处理。

2.1.3 Interface Binary Interpreter

(1) 从业务采集到的数据需要原封不动地放入报文中。例如:在规范中的第52号字段是存放用户密码的。这个密码已经有密码键盘加密过, 不需要程序在做什么处理。

(2) 将报文中的某个字段提出来原封不动地交给程序使用。例如:在64或者128 (如果是8583扩展使用的情况) , 通常放置的是整个报文的MAC信息。方便服务端和客户端验证报文的有效性使用。

2.1.4 Interface Interpreter

对可见字符, 以及需要BCD压缩方式的字段处理。

2.2 字段类

IF_BINARY:固定长度二进制类型数据字段。适用于位图、校验码、密文数据。

IF_CHAR:固定长度字段, 属于字符串类型。主要面对字母、数字混合的情况。终端编号、网点编号之类的字段。

IF_LLCHAR, IF_LLLCHAR:相对于IF_CHAR的不固定长度情况, 字段长度描述部分不做压缩处理。

IFB_LLCHAR、IFB_LLLCHAR:处理字母、数字混合需要压缩的字段。适用于二磁道, 三磁道。

IFB_NUMERIC:固定长度字段。适用于纯数字组成的字段, 例如:金额、流水、时间、日期。

IFB_LLLNUM, IFB_LLNUM:不固定长度的数字字段, 例如:主账号。

2.3 特殊用法的类定义

IFB_LLCOMPLEX、IFB_LLLCOMPLEX:应用于固定长度的自定义字段。例如:63号字段在某些交易中需要包含证件类型、证件号码、客户姓名、联系电话、家庭住址、DCC客户号, 而且不同的交易中自定义字段规定的内容不同。需要将这种复合字段内容进行定义类处理。

IF_BITMAP:用于创建位图。上面IF_BINARY适用于已经知道交易位图而且在数据包发送出去之前位图信息不需要改变的情况下使用。IF_BITMAP比较灵活在交易数据传到适配器中之后, 在适配器中每完成一个字段的处理之后都修改IF_BITMAP中的位图信息。

ISOField Packager:这是一个抽象类, 主要定义了pack和upack方法, 属性len对应字段定义的最大长度。ISOString Field Packager、ISOBinary Field Packager是其子类。

ISOString Field Packager、ISOBinary Field Packager:实施具体字段的pack、unpack, 类成员Interpreter, Binary Interpreter的接口组成。

2.4 工厂类

介绍了接口、字段类如何有效地对这些类进行组合, 完成一条报文的创建和解析, 因此还需要一个工厂类协调这些类之间的工作。

接口、抽象类、实现类、配置文件在ISOPackage Factory的组织下完成一条报文的创建解析。

(1) 根据交易码加载通用配置文件, 提取配置信息。

(2) 按照交易码查找有无对应交易的配置文件, 如果有则提取文件中的信息。将通用配置文件中已存在的字段配置替换掉, 以适应业务中对自定义字段的不同用法。

(3) 按照输入参数中字段的信息计算位图信息。

(4) 按照配置文件将存在的字段创建实例, 并对长度和值进行初始化。

(5) 调用抽象类ISOField Packager的pack或者upack接口生成一条报文或者解析一条报文。

上一篇:填满回忆的相册小学生作文400字下一篇:辛店乡机关工作纪律