当前位置:文档之家› 网络的分层结构体系

网络的分层结构体系

OSI的七层协议体系结构既复杂又不实用,但其概念清楚,体系结构理论较完整。

TCP/IP的协议现在得到了广泛的应用,但它原先并没有一个明确的体系结构。

TCP/IP是一个四层的体系结构,它包含应用层、运输层、网际层和网络结构层。

不过从实质上讲,TCP/IP只有三层,即应用层、运输层和网际层,因为最下面的网络接口层并没有什么具体内容。

两台计算机进行通信时的各层数据流如图2.1所示:图2.1两台计算机进行通信时的各层数据流结构应用层应用层是体系结构中的最高层。

应用层确定进程之间通信的性质以满足用户的需要。

应用层不仅要提供应用进程所需要的信息交换和远地操作,而且还要作为相互作用的应用进程的用户代理,来完成一些为进行语义上有意义的信息交换所必须的功能。

应用层直接为用户的应用进程提供服务。

在因特网中的应用层协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传输的FTP协议等等。

运输层运输层的任务就是负责主机中两个进程之间的通信。

因特网的运输层可使用两种不同协议。

即面向连接的传输控制协议TCP,和无连接的用户数据报协议UDP。

面向连接的服务能够提供可靠的交付,但无连接服务则不保证提供可靠的交付,它只是“尽最大努力交付”。

这两种服务方式都很有用,各有其优缺点。

在分组交换网内的各个交换接点机都没有运输层。

运输层只能存在于分组交换网外面的主机之中。

运输层以上的各层就不再关心信息传输的问题了。

正因为如此,运输层就成为计算机网络体系结构中非常重要的一层。

网络层网络层负责为分组交换网上的不同主机提供通信。

在发送数据时,网络层将运输层产生的报文段或用户数据报封装成分组或包进行传送。

在TCP/IP体系中,分组也叫作IP数据报,或简称为数据报。

因特网是一个很大的互联网,它由大量的异构网络通过路由器相互连接起来。

因特网主要的网络协议是无连接的网际协议IP和许多路由选择协议,因此因特网的网络层也叫网际层或IP层。

数据链路层在发送数据时,数据链路层的任务是将在网络层交下来的IP数据报组装成帧,在两个相邻接点间的链路上传送以帧为单位的数据。

每一帧包括数据和必要的控制信息。

控制信息使接受端能够知道一个帧从哪个比特开始和到哪个比特结束。

控制信息还使接受端能够检测到所收到的帧中有无差错。

如发现有差错,数据链路层就丢弃这个出了差错的帧。

物理层物理层的任务是透明地传送比特流。

在物理层上所传数据的单位是比特。

传递信息所利用的一些物理媒体,如双绞线、同轴电缆、光缆,并不在物理层之内而是在物理层的下面。

2.4网络协议的数据格式网络中计算机的硬件和软件存在各种差异,为了保证相互通信及双方能够正确地接收信息,必须事先形成一种约定,即网络协议(Protocol)。

这些协议可划分为网络访问层(物理层)、网络(互联)层、传输层、应用层四层。

2.4.1链路层数据链路层最基本的服务是将源计算机网络层来的数据可靠的传输到相邻节点的目标计算机的网络层。

为达到这一目的,数据链路层必须将上层传入的数据组合成数据块(帧,帧是数据链路层的传送单位)。

最后将数据块传给下层(物理层),而物理层传入链路层的数据格式即为帧的格式。

链路层的帧也是我们通过计算机能获得的最底层的数据格式,网卡将得到的比特流处理成帧后通过网卡驱动规定的接口传入系统,而我们所能捕获的数据也是从此接口获得。

通过分析可以知道上层系统收到的帧格式为:其中的前12Bytes为帧的MAC信息,后2Bytes的内容包含着以太网类型,即对应着上层协议,通过对这两Byte的解析就可以得出帧中封装的数据需要何种协议来进行下一层的分析,如以太网类型0x0800代表网际协议(IP),0x0806表示地址解析协议(ARP :Address Resolution Protocol),0x86DD表示帧中封装的是网际协议v6(IPv6,Internet Protocol version 6)数据。

2.4.2 网络层从图2.2-1 Internet主要协议可以看到,网络层中包含的协议有:IP、ARP 、RARP、ICMP四个协议,但从数据包的封装来看ICMP是封装在IP数据包中进行传输的,所以ICMP结构的解析将放入传输层。

(1) IP数据格式网际协议IP在主机和网络之间寻址和路由数据包。

IP是一个无连接的协议,主要就是负责在主机间寻址并为数据包设定路由,在交换数据前它并不建立会话。

因为它不保证正确传递,另一方面,数据在被收到时,IP不需要收到确认,所以它是不可靠的。

IP协议的数据格式如下:版本号:协议的版本号,不同版本的协议格式或语言可能不同,现在常用的是IPV4。

IHL:IP头长度,以32位字计数,最小为5,即20个字节(5*32bit=8*20Byte)。

服务类型:用天区分不同的可靠性,优先级,延迟和吞吐率的参数。

总长度:包含IP头在内的数据单元的总长度(字节数)。

标识(identificaiton):16bit,组成一个无符号整型值,用于IP分组的分片和重组。

标识字段是IP分组在传输时的唯一标识符号。

同属于一个IP分组的各个分片其标识字段完全相同。

根据IP协议,源IP主机每发送一个IP分组,则IP 分组中的标识字段被顺序加1。

此字段取值范围为0-65535。

标志(Flag):第0比特为最终分片标志MF(More Fragment),当MF=1时表示后面还有同属于此IP分组的其它分片。

MF=0表示此分片已经是此IP分组的最后一个分片。

第1比特为禁止分片标志DF(Don't Fragment),DF=1时表示此IP 分组未分片。

第2比特保留未用。

片偏移(fragment offset):13bit。

指出本分片的数据字段的第1字节在初始IP分组数据段中的偏移值,以8Bytes为单位。

用于在目标IP主机把同属于一个IP分组的各个IP分片重组。

生存时间(Time To Live,TTL):8bit,即IP分组在IP网络中的寿命。

协议(Protocol):8bit,指明IP分组中数据字段携带的是哪种高层协议数据。

首部检查和(header checksum):16bit。

此字段只用于检查IP分组的首部,不包括数据字段。

源IP地址(source IP address):32bit,填入源主机的IP地址。

目标IP地址(destination IP address):32bit,填目标主机的IP地址。

可选字段(IP options):可选,可变长,1字节-40字节,但加上填充字段(填充0)后两个字段长度必须为4Bytes的整数倍。

(2) ARP数据格式ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写,它的作用是将IP地址转换成物理地址(就是常说的MAC地址)。

协议ARP的分组格式如下:图2.4 ARP数据格式硬件类型:2 bit,网络接口硬件的类型,对以太网此值为1。

协议类型:2 bit,发送方使用的协议,0800H表示IP协议。

硬件地址长度:1 bit,对以太网,地址长度为6字节。

协议地址长度:1 bit,对IP协议,地址长度为4字节。

操作:2 bit,1——ARP请求;2——ARP响应;3——RARP请求;4——RARP响应。

(3) RARP数据格式反向地址解析协议RARP (Reverse Address Resolution Protocol),RARP 分组的格式与ARP分组基本一致。

它们之间主要的差别是RARP请求或应答的帧类型代码为0x8035,而且RARP请求的操作代码为3,应答操作代码为4。

对应于ARP ,RARP请求以广播方式传送,而RARP应答一般是单播传送的。

(4) ICMP数据格式ICMP协议是网络层中一个非常重要的协议,其全称为Internet Control Message Protocol(因特网控制报文协议),ICMP协议弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。

ICMP报文封装在IP数据报中传送。

ICMP报文有11种之多,报文格式如图2.5所示:类型字段表示ICMP报文的类型,代码字段可表示报文的少量参数,当参数较多时写入32们的参数字段,ICMP报文携带的信息包含在可变长的信息字估中,校验和字段是关于整个ICMP报文的校验和。

ICMP的类型字段可以有15个不同的值(0、3-5、8-18)。

某些报文还使用代码字段来进一步描述不同的条件。

不同类型的ICMP报文其参数及信息字段内容都不相同,如ICMP地址掩码请求与应答报文格式如图2.6所示,而时间戳请求与应答报文格式如图2.7所示。

2.4.3 传输层因特网的传输层有两个协议:TCP和UDP,分别提供面积连接的伟输服务和无连接的传输服务。

TCP的协议数据单元叫做TCP段,段头结构如图2.8所示,字段解释如下:图2.8 TCP段头结构源端口(Source Port):2字节,说明源报务访问点。

目的端口(De stination Port):2字节,目的端口号。

发送序号(SEQ,Sequence Number):4字节。

在一个TCP连接中传输的数据流中每一个字节(无论此字节是此TCP连接中的哪个TCP报文段所携带的)都给予一个序号,用于唯一标识每个字节在此TCP连接字节流中的位置,并且用于实现预期确认和滑动窗口。

确认号(ACK,Acknowledgment Number):4字节。

指明接收方期望接收的下一个数据字节的顺序号。

偏移量/头长度(HLEN,header length):4比特,与IP分组中的头长度相类似。

表示TCP报文头的长度,以4Bytes为单位。

保留(reserved):6比特,保留不用,全置为0。

码位(code bits):6比特。

一共表示6个标志:紧急比特URG(URGent)、确认比特ACK、复位比特RST(Reset)、同步比特SYN(Sychronous)、终止比特FIN(FINal)。

窗口(Window):2字节。

用于实滑动窗口。

单位是字节。

窗口字段表示了本主机的接收窗口大小,同时也表示了允许对方的发送窗口大小。

校验和(Checksum):2字节,用于校验TCP的数据字段和包括TCP报文段首部在内的伪首部。

紧急指针(Urgent Pointer ):2字节。

配合紧急比特URG使用。

当URG=1时此字段有效。

表示本TCP报文段中紧急数据的总长度。

紧急数据是从数据字段的开始第一个字节到紧急指针指明的最后一个字节为止。

选项(option):长度可变。

TCP只定义了一个选项,即最大报文段长度MSS (Maximum Segment Size),单位是字节。

用户数据报协议UDP提供无连接的传输报务,UDP运行在IP协议层之上,由于它不提供连接,所以只是在IP协议之上加上端口寻址能力,UDP的报头如图2.9所示。

相关主题