首页 以太网帧格式.doc

以太网帧格式.doc

举报
开通vip

以太网帧格式.doc以太网帧格式.doc ///定义IP头 struct IpHeader { BYTE Version:4; //IP协议版本号 BYTE hLen:4; //IP报头长度,以每四个字节为一单位 BYTE Tos; //服务类型字段 WORD TotalLen; //IP数据报总长度,以字节为单位 WORD Ident; //分段标识符 WORD FragAndFlags; //分段偏移量 BYTE TTL; //生命周期 BYTE Proto; //协议字段,表示放在此IP数据报中传送的是何种...

以太网帧格式.doc
以太网帧格式.doc ///定义IP头 struct IpHeader { BYTE Version:4; //IP协议版本号 BYTE hLen:4; //IP报头长度,以每四个字节为一单位 BYTE Tos; //服务类型字段 WORD TotalLen; //IP数据报总长度,以字节为单位 WORD Ident; //分段标识符 WORD FragAndFlags; //分段偏移量 BYTE TTL; //生命周期 BYTE Proto; //协议字段,表示放在此IP数据报中传送的是何种协议的数据 WORD CkSum; //校验和 DWORD SourceIP; //源IP地址 DWORD DestIP; //目的IP地址 }; ///定义IP选项头 struct IpOptionHeader { BYTE DupliFlag:1; //复制标志 BYTE OptionClass:2; //选项类 BYTE OptionNum:5; //选项号 BYTE Len; //IP选项的长度 BYTE Ptr; //指针 BYTE Fill; //选充字段 }; ///定义ICMP报文头 struct ICMPHeader { USHORT iType:8; //报文类型 USHORT iCode:8; //报文说明 WORD iCkSum; //整个ICMP报文的校验和 WORD iID; //标识ID WORD iSeq; //标识序号 }; 基于IP寻址的多媒体通信网(2) 蒋林涛 这一讲介绍基于IP寻址的多媒体通信网的通信协议。IP寻址的通信网是基于TCP,IP协议的,因此IP协议和TCP协议是IP网中的一对重要协议,同时为了能保证实时业务在IP网中很好运行,还需要使用实时传送协议(协议RTP)和实时传送控制协议(RTCP)。为了给实时业务或其它特定业务提供足够宽的通 )。这5个通信协议是IP网的主要通信协议道,还要用到资源预留协议(RSVP (四层以下),它是IP网的通信基础,IP网的所有业务基本都是在这些通信协议的基础上建立起来的。 1 IP协议 TCP,IP协议是为包含多种物理网技术而 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 的,而这种包容性主要体现在IP层当中。我们知道,各种网络技术的帧格式、地址格式等上层协议可见的因素差别很大,设置IP层的重要思想之一就是通过IP协议向上层(TCP,IP等)提供统一的IP数据报和IP地址,使得各种物理帧的差异性对上层协议不复存在,从而达到屏蔽低层细节提供一致性向上接口的目的。 IP协议主要涉及两个方面的内容:第一是IP层的数据报传输机制和IP层的无连接服务;第二是IP数据报的数据格式。 1.1 IP数据报传输机制 IP数据报传输是一种简洁而有效的分组交换方式,为了达到最高传输速率,它放弃了可以放弃的任何可靠性工作(如检错、重传等),能尽快将数据报传往信宿。IP数据报传输的关键问题是分片和重组。分片是为了适应物理网的最大传输单元(MTU),重组则反之。数据报传输的另一关键问题是数据报延时控制,数据报传输的一大特点是随机寻径,因而从信源到信宿的延时也具有随机性。由于某种原因数据报会进入一条循环路径,无休止地在网中流动,这种情况应给予控制,IP数据报采用“生存时间法”来进行控制。 1.2 IP数据报的数据格式 IP数据报的数据格式如图1所示。 IP数据报分为报头和数据区两部分,报头是为网络提供一系列信息供寻址等使用,数据区则是放置用户数据的。在IP数据报中报头长为24B,这24B又分为若干个字段,每一个字段有其特定的含义。下面对各字段的功能作逐一描述。 IP数据报中第一个字段为“版本”字段,其长度为4bit,代表IP协议的版本号,目前使用的版本号为“4”。 第二个字段为“报头长度”,其长度为4bit,它指出字长为32bit的报头长度。在图1中IP数据报除IP选项字段和填充字段外,其它各字段均为定长字段。各定长字段的长度和为20B,这样不含选项的IP报的报头长度为“5”;一个含选项的IP数据报的报头长度则取决于选项的长度。但是报头必须是32bit的整数倍,否则用“0”来填充。 第三个字段为“服务类型”字段,其长度为8bit,其结构如图2所示。 在“服务类型”数据字段中,前3个bit(0,2)为优先级,共有“0”,“7”8个优先级,其中“0”为一般用户优先级,“7”为网络控制优先级。 D、T、R 3位表示本数据报所希望的传输类型。其中,D比特置位代表要求网络能提供低的时延,T比特置位代表要求网络能提供高的吞吐量,R比特置位表示要求网络提供高的可靠性。目前这些比特位只是用户要求,对网络不具有强制性。与之相似的是优先级同样对网络没有强制性,而目前大多数网络对此一般不作处理。但服务类别的字段是很重要的,它为今后业务的发展保留了进一步采用必要技术的手段。 第四个字段为“总长”字段,其长度为16bit。它指示整个IP数据报的长度,以字节为单位。由于该字段为16bit长,因而IP包的最大长度可达2 16--1=65535B?64kB。 第五、六、七3个字段是用于分片和片的重组。因为在各种不同物理网中,对帧的大小有不同的规定(即对每一个物理网都有一个最大传输单元MTU的规定),很显然一个IP包的尺寸不可能正好等于一个MTU的尺寸,这时在发送时,IP包要进行分片装入MTU中进行发送,在接收时要将片进行重组还原成IP包。第五、六、七3个字段就是为此目的而设计的。 第八字段为“生存时间”,其长度为8bit。它表示一个数据报的生存时间,单位为s。其主要用途是防止数据报在网内的一条循环路径中无休止地流动,白白浪费网络资源。数据报生存期一到,该数据报即从网内删除。 第九字段为“协议”,其长度为8bit,它表示本数据报内数据区中数据采用的协议,即它表示数据区内数据的格式(如TCP、VDP等)。 第十字段是“报头检验和”,长度为16bit。其作用是以此保证报头的完整性和正确性。 第十一字段是“信源IP地址”,第十二字段是“信宿IP地址”,其长度均为32bit。这两个地址分别表示本IP数据报发送者(信源)和接收者(信宿)的地址,在整个数据的报传输过程中,无论经过什么路径,无论怎样分片,这两个字段均保持不变。 其它还可以有一些选项字段如源路径、路径记录和时戳等。 在IP数据报的报头下,紧接的是用户数据字段,用户数据字段的最大长度为(2 16-1)B,这个字段放置的是用户真正要传送的信息数据。 2 TCP协议和UDP协议 在IP网中运输层有两个并列的协议:TCP(运输控制协议)和UDP(用户数据报协议)协议。TCP是面向连接的,它提供高可靠性服务;UDP是无连接的,它提供高效率的服务。高可靠性的TCP用于一次传输要交换大量报文的情况(如:文件传输、电子信箱、远程登录等),高效率的UDP用于一次交换少量报文或实时性要求较高的信息(如:IP电话、会议系统、交易型应用及一些管理和控制信息)。 2.1 UDP协议 用户数据报协议UDP(User Datagram Protocal)建立在IP协议之上,同IP协议一样提供无连接数据报传输。它不提供可靠性通信服务,而是提供高效及时的用户数据报服务。相对于IP协议,它唯一增加的能力是提供协议端口,以保证进程通信。UDP报文的格式如图3所示。 从报文的格式可以看出,报头是很小的(仅8B),因而UDP的报文效率是很高的。 2.2 TCP协议 运输控制协议TCP是运输层的另一个协议,除了提供和UDP一样的进程通信能力外,其主要特点是可靠性很高。其主要工作是:连接管理、流量控制和崩溃恢复等。 TCP协议是建立不可靠的IP协议之上的,IP协议不可能提供任何可靠性机 制,因此TCP的可靠性完全由自身来实现。TCP协议采用的最基本可靠性技术是:确认与超时重传、流量控制和拥塞控制。 (1)确认与超时重传 TCP流的特点是无结构的字节流,流中数据是一个个字节构成的序列,而无任何可供解释的结构,因而TCP的段是可变长度的。TCP协议中的确认和重传机制是所谓的“累计确认”,即TCP协议中的确认是针对流中的字节,而不是段。一般情况下,接收方确认的是已正确收到的字节流,每一个确认指出下一个希望接收的字节。 累计确认的优点之一是在变长段传输方式下不会产生二义性;另一个优点是确认丢失后不一定导致重传。累计确认的缺点是发送方不能获得关于所有成功的段传输的信息。累计确认和超时重传提供了一定的数据传送可靠保证。 (2)TCP的拥塞控制 在IP网中,拥塞是由于路由器中的数据超载而引起的,是网络能力不足的表现。一旦发生拥塞,路由器将会抛弃一定量的数据报,从而导致重传,大量的重传又会进一步加强拥塞。这种恶性循环有可能导致整个网无法正常工作。因此,简单地采用确认超时重传技术并不能完全解决可靠性传输问题。TCP还必须提供适当机制以进行拥塞控制。TCP的拥塞控制也是基于滑动窗口协议的,通过限制发送端滑动窗口的尺寸而达到控制拥塞的目的。 具体地说,TCP通过控制发送窗口的大小来控制拥塞。决定发送窗口大小的因素有两个:第一是接收方约定的窗口大小,第二是发送端的拥塞窗口的限制。发送窗口的大小是取两者之中的最小者。在非拥塞状态下,拥塞窗口和接收方通告窗口的大小相等。一旦发现拥塞,TCP将减小拥塞窗口。为了迅速抑制拥塞,拥塞窗口以几何级数减小;拥塞结束,则采用算术级数来恢复窗口直到拥塞窗口等于接收方通告的窗口。 采用以上这些技术后,就可以很好地解决可靠性传输问题。 TCP段是不定长的,为提高传输效率,TCP软件往往要收集到足够的数据后才发送一段,这种方式在实时性要求很高的场合是不适用的。为此,TCP提供强迫数据传输机制。TCP向应用程序提供“PUSH”操作,以强迫传输当前流中的数据不必等待缓冲区满。当TCP软件中收到PSH操作报文后,将段头中PSH位置 “1”,并迅速将本段发送出去。接收端收到PSH位置1的一段后,立即将它交给应用程序。 数据经“PUSH”操作后,能得到最及时的传输。 图4是TCP的报文格式。 3 RTP和RTCP协议 实时传送协议(Real Time Protocol)提供具有实时特征的、端到端的数据传送服务,可以用来传送声音和运动图像数据。在这项数据传送服务中包含了装载数据的标识符、序列计数、时戳和传送监视。通常RTP的协议元是用UDP协议元来装载的,并利用UDP的复用、校验和来实现RTP的复用。如图5所示。 如果支持它的网络能提供组播(multicast)功能,则RTP也可用组播将数据送给多个目的用户。 必须注意的是,RTP没有提供任何确保按时传送数据的机制,也没有提供任何质量保证的机制,因而要实现服务质量(QoS)必须由下层网络来提供保证。同样必须注意的是,RTP同样不保证数据包按序号传送,即使在下层网络能使保证可靠性传送的条件下,也不保证数据包按序号传送。包含在RTP中的序号可供接收方用于重构数据包序列,也可用于包的定位。 在RTP中,复用是由目的传送地址(网络地址和端口号)来提供的,一个传送地址定义了一个RTP会话。例如,在一个会议中包含有编码的音频码流和视频码流是分别用不同的RTP会话(一般用同一个目的地网络地址和不同的端口号来确定不同的传送地址)来传送,而不是用载荷类别或SSRC字节作区分而在单一个RTP会话中来进行复用传送。 固定报头的RTP报文的结构如图6所示。 RTP报头中的的字母含义如下: V:版本;P:填充;X:扩展;CC:CSRX计数;M:标字。 RTP协议是用户携带具有实时特征的数据,与之作为配套的另一个协议是RTCP协议。RTCP是RTP的控制协议,它用于监视服务质量和正在进行的与会者会话上传递信息。 RTCP的基本做法是周期性地向会话的所有参加者进行通信,采用和数据包分配传送的相同机制来发送控制包。和RTP协议相同,RTCP协议也要求下层协议提供复用手段(如,要UDP提供不同的端口号来实现复用)。RTCP有4个功 能: (1)它的最主要的功能是用反馈信息的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 来提供分配数据的传送质量。这种反馈可用来进行流量的拥塞控制,也可以直接用来监视网络,用来诊断网络中出现的问题。这种反馈功能由RTCP中的接收者报告和发送者报告来实现。 (2)它的第二项功能是为一个RTP源携带一个永久性的被称为规范性名字(CNAME)的传送层标识符。这是因为在发现冲突或者在程序更新启动后SS,RC可能会改变,而接收者为了保持一个与会者的运作痕迹就需要一个CNAME,另外在一组相关的会话中接收方也需要用CNAME从一个给定的与会者中得到相联系的数据流,举例来说接收方要用CNAME来获得同步的音频和视频码流。 (3)前面两项功能是需要所有与会者发送RTCP包。为了能使RTP有大量的与会者,单位时间段内RTCP包发送次数必须受到控制。每一个与会者可以独立地去观察与会者的数量,根据与会者的数量来调整RTCP包的发送率。 (4)第四个功能是一个可选功能,可以用来传送很小的会话控制信息,如可用来在用户接口去显示与会者标识(身份)。 其中1,3项功能是RTCP必备功能,而第四项功能为可选功能。 RTCP包的类型有下述多种: SR:发送者报告。 RR:接收者报告。 SDES:源描述条款,其中包括CNAME。 BYE:指示与会者退出。 APP;应用的特定功能。 每一个RTCP包都以和RTP数据报的固定部分类似的结构开始,后随的结构单元和RTCP包的类型相似,其长度随类型不同而不同,但都是32bit的整数倍。 作为一个例子,图7给出发送者报告的RTCP包的报文结构。 4 RSVP协议 RSVP是一个资源预约协议,提供一种有效的资源预约方式,可以有效地描述应用程序对资源的需求。RSVP建立在IP协议之上,可以利用IP数据报传输RSVP消息。RSVP是一个单工协议,只在一个方向上预订资源。特别的,RSVP是一个面向客户端协议,由信宿负责资源预订,可以满足点到多点群通信中客户端异构的需求,每个客户端可以预订不同数量的资源,接收不同的数据流。RSVP还提供了动态适应成员关系的变化和动态适应路由变化的能力。RSVP可以满足大型点到多点通信群的资源预订需求。为了建立并维护分组数据传输通道中各个交换机的状态,RSVP建立了一个信宿树。信宿树以信宿为根结点,以信源为叶结点,信源和信宿之间的通道作为树的分支。资源预订消息由信宿开始,沿信宿树传输到各个信源结点。 资源预订的产生和维护过程如下。 在每个数据源开始传输数据之前,首先发一个包含数据源流量规范的消息,当中间交换机(路由器)接收到此消息后,建立并维护一个包括输入(incoming)和输出(outcoming)接口的通道状态表。当一个客户端收到消息后,根据数据 源流量规范,发送一个预订消息,该预订消息沿着信宿树到达各个用户,在预订消息经过的路由上,各个交换机可以拒绝该预订,并将拒绝消息传送回客户端,丢弃该预订。如果预订消息到达信源,资源预订过程完成。在接收各个信宿的预订消息后,各个中间交换机(路由器)可以将同一个点到多点群(multicast group)中的资源请求合并。为了维护各个中间结点的通道状态,需要周期性地沿着信宿树传输刷新消息。当客户端确定终止连接时,可以发出一个通道撤消消息,释放网络的通道状态和预订资源。 RSVP具有以下特点: (1)RSVP由客户端启动一个资源预订过程,可以满足各个客户端的异构和动态成员关系的变化。 (2)资源预订和分组过渡分离,满足信道动态变化的需求。 (3)动态适应路由变化,自动修正点到点、点到多点路由的变化。 (4)将路由协议和资源预订分开,可以充分利用已有任何点到点和点到多点的路由协议,使协议设计更通用化。 .4.2.1. TCP matches TCP matches只能匹配TCP包或流的细节,它们必须有--protocol tcp作为前提条件。 Table 6-5. TCP matches Match --sport, --source-port Example iptables -A INPUT -p tcp --sport 22 Explanation 基于TCP包的源端口来匹配包,端口的指定形式如下: 1、不指定此项,则暗示所有端口。 2、使用服务名或端口号,但名字必须是在/etc/services 中定义 的,因为iptables从这个文件里查找相应的端口号。从这可以看 出,使用端口号会使规则装入快一点儿,当然,可读性就差些了。 但是如果你想写一个包含200条或更多规则的规则集,那你还是老 老实实地用端口号吧,时间是主要因素(在一台稍微慢点儿地机子 上,这最多会有10秒地不同,但要是1000条、10000 条呢)。 3、可以使用连续的端口,如:--source-port 22:80这表示从22 到80的所有端口,包括22和80。如果两个号的顺序反了也没关 系,如:--source-port 80:22这和 --source-port 22:80的效果 一样。 4、可以省略第一个号,默认第一个是0,如:--source-port :80 表示从0到80的所有端口。 5、也可以省略第二个号,默认是65535,如:--source-port 22: 表示从22到 65535的所有端口 6、在端口号前加英文感叹号表示取反,注意空格,如: --source-port ! 22表示除22号之外的所有端口; --source-port ! 22:80表示从22到80(包括22和80)之外的 所有端口。 注意:这个匹配操作不能识别不连续的端口列表,如: --source-port ! 22, 36, 80 这样的操作是由后面将要介绍的多 端口匹配扩展来完成的。 Match --dport, --destination-port Example iptables -A INPUT -p tcp --dport 22 Explanation 基于TCP包的目的端口来匹配包,端口的指定形式和--sport完全 一样。 Match --tcp-flags Example Explanation 匹配指定的TCP标记。有两个参数,它们都是列表,列表内部用英 文的逗号作分隔符,这两个列表之间用空格分开。第一个参数指定 我们要检查的标记(作用就象掩码),第二个参数指定“在第一个 列表中出现过的且必须被设为1(即状态是打开的)的”标记(第 一个列表中其他的标记必须置0)。也就是说,第一个参数提供检 查范围,第二个参数提供被设置的条件(就是哪些位置1)。这个 匹配操作可以识别以下标记:SYN, ACK,FIN,RST ,URG,PSH。 另外还有两个词也可使用,就是ALL和NONE。顾名思义,ALL是指 选定所有的标记,NONE是指未选定任何标记。这个匹配也可在参 数前加英文的感叹号表示取反。例如: 1、iptables -p tcp --tcp-flags SYN,FIN,ACK SYN表示匹配那 些SYN标记被设置而FIN和ACK标记没有设置的包,注意各标记之 间只有一个逗号而没有空格。 2、--tcp-flags ALL NONE匹配所有标记都未置1的包。 3、iptables -p tcp --tcp-flags ! SYN,FIN,ACK SYN表示匹配 那些FIN和ACK标记被设置而SYN标记没有设置的包,注意和例1 比较一下。 Match --syn Example iptables -p tcp --syn Explanation 这个匹配或多或少算是ipchains时代的遗留物,之所以还保留它, 是为了向后兼容,也是为了方便规则在iptables和ipchains间的 转换。它匹配那些SYN标记被设置而 ACK和RST标记没有设置的 包,这和iptables -p tcp --tcp-flags SYN,RST,ACK SYN 的作 用毫无二样。这样的包主要用在TCP连接初始化时发出请求。如果 你阻止了这样的包,也就阻止了所有由外向内的连接企图,这在一 定程度上防止了一些攻击。但外出的连接不受影响,恰恰现在有很 多攻击就利用这一点。比如有些攻击黑掉服务器之后安装会一些软 件,它们能够利用已存的连接到达你的机子,而不要再新开一个端 口。这个匹配也可用英文感叹号取反,如:! --syn用来匹配那些 RST或ACK被置位的包,换句话说,就是状态为已建立的连接的包。 Match --tcp-option Example iptables -p tcp --tcp-option 16 Explanation 根据匹配包。TCP选项是TCP头中的特殊部分,有三个不同的部分。 第一个8位组表示选项的类型,第二个8位组表示选项的长度(这 个长度是整个选项的长度,但不包含填充部分所占的字节,而且要 注意不是每个TCP选项都有这一部分的),第三部分当然就是选项 的内容了。为了适应 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 ,我们不必执行所有的选项,但我们可以 查看选项的类型,如果不是我们所支持的,那就只是看看长度然后 跳过数据部分。这个操作是根据选项的十进制值来匹配的,它也可 以用英文感叹号取反。所有的选项都可在Internet Engineering 里找到。 Task Force 6.4.2.2. UDP matches UDP matches是在指定--protocol UDP时自动装入的。UDP是一种无连接协议,所以在它打开、关闭连接以及在发送数据时没有多少标记要设置,它也不需要任何类型的确认。数据丢失了,就丢失了(不会发送ICMP错误信息的)。这就说明UDP matches要比TCP matches少多了。即使UDP和ICMP是无连接协议,状态机制也可以很好的工作,就象在TCP上一样,这在前面讨论过。 Table 6-6. UDP matches Match --sport, --source-port Example iptables -A INPUT -p udp --sport 53 Explanation 基于UDP包的源端口来匹配包,端口的指定形式和TCP matches中 的--sport完全一样。 Match --dport, --destination-port Example iptables -A INPUT -p udp --dport 53 Explanation 基于UDP包的目的端口来匹配包,端口的指定形式和TCP matches 中的--sport完全一样。 6.4.2.3. ICMP matches ICMP协议也是无连接协议,ICMP包更是短命鬼,比UDP的还短。ICMP协议不是IP协议的下属协议,而是它的辅助者,其主要作用是报告错误和连接控制。ICMP包的头和IP的很相似,但又有很多不同。这个协议最主要的特点是它有很多类型,以应对不同的情况。比如,我们想访问一个无法访问的地址,就会收到一个ICMP host unreachable信息,它的意思是主机无法到达。在附录ICMP类型里有完整的ICMP类型列表。虽然有这么多类型,但只有一个 ICMP matche,这就足够对付它们了。这个matche是在指定--protocol ICMP时自动装入的。注意所有的通用匹配都可以使用,这样我们就可以匹配ICMP包的源、目地址。 Table 6-7. ICMP matches Match --icmp-type Example iptables -A INPUT -p icmp --icmp-type 8 Explanation 根据ICMP类型匹配包,类型的指定可以使用十进制数值或相应的 名字,数值在RFC792中有定义,名字可以用iptables --protocol icmp --help 查看,或者在附录ICMP类型中查找。这个匹配也可 用英文感叹号取反,如:--icmp-type ! 8就表示匹配除类型8之 外的所有ICMP包。要注意有些ICMP 类型已经废弃不用了,还有 一些可能会对无防护的主机带来“危险”,因为它们可能把包重定 向到错误的地方。
本文档为【以太网帧格式.doc】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_682974
暂无简介~
格式:doc
大小:137KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-12-12
浏览量:21