计算机网络体系结构简称网络体系结构是分层结构。

网络的层次化不以设备做为标准,协议作为分层的标准

为什么使用分层结构

对网络分层以后,可以将问题细化,使得问题更加容易分析。把一个大的系统分拆成小的体系后,便于在各个层次上制定标准,从而实现层与层之间的标准接口,从而实现各类网络硬件和软件的通信。分层以后,某一层的改动不会影响到其他的层,便于开发。使得层次清晰,可扩展性能,增强稳定性

分层的基本原则

  1. 相互独立 : 各分层之间 , 相互独立 , 每层只有一个独立功能 ;
  2. 界限清晰 : 每层之间界限清晰 , 层级之间的交流尽量减少 ;
  3. 实现技术 : 每层都采用合适的技术实现 , 每层的结构要分开 ;
  4. 独立特定 : 下层对上层是独立的 , 上层需要使用下层的服务 ;
  5. 标准工作 : 分层的结构可以促进标准化工作 ;

分层结构介绍

计算机网络(三)——网络分层结构_字段
  • 每层遵循某个或某些网络协议完成本层的功能
  • 网络体系结构是计算机网络各层以及其相关协议的集合;
  • 第N层在向N+1层提供服务时,此服务不仅包含第N层本身的功能,还包含由下层服务提供的功能;
  • 仅仅在相邻层之间有接口,并且所提供服务的具体实现细节对上一层完全屏蔽;

分层结构——OSI参考模型

OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。

OSI参考模型因为一些原因只是法律上的国际标准,实际使用上还是TCP/IP模型。

OSI参考模型解释通信过程

计算机网络(三)——网络分层结构_传输层_02

1.将传输的数据,从A端发送,在经过不同的层级时,分别增加上符合对应协议的附加信息,需要发送的数据也越来越大

2.数据进入传输介质,在经过网络中继转换设备时,对发送的数据有一个部分还原过程,主要目的是想知道数据的要往哪里发送;

3.部分还原之后需要继续传输,在比特流上继续添加附加信息,进入传输介质继续传输;

4.传输到目的主机时,将之前的附加信息在经过层级的时候一步一步的还原比特流,到达应用层是就等到原来要发送的数据;

参考模型中,

上四层(应用层、表示层、会话层、传输层)在数据传输过程中,只是只经过一次封装/解封交互过程是终端对终端的,所以这四层也称为端对端层。

下三层(网络层、数据链路层、物理层)在传输过程中,会经过多个网络中继设备,经过多次封装/解封比特流,每次传输只负责传输到下一步,不会管传输最后的终点,所以这三层也称为点对点层。

计算机网络(三)——网络分层结构_传输层_03

ISO各个分层解析

名称 

作用

应用层 

直接为用户的应用进程(例如电子邮件、文件传输和终端仿真)提供服务。如HTTP、SMTP、FTP、DNS等

表示层

数据转换为能与接收者的系统格式兼容并适合传输的格式,即让两个系统可以交换信息。

功能:数据格式转换;数据加密解密;数据压缩恢复

会话层 

负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接,保证会话

功能:建立、管理、中止会话;使用校验点可以在通信失效时,通过校验点恢复通信,保证数据同步。

传输层

负责端到端通讯,传输单位为报文段和用户数据报

功能:可靠传输,不可靠传输 ,差错控制,流量控制,复用分用。

网络层

负责选择路由最佳路径,规划IP地址(ipv4和ipv6变化只会影响网络层),拥塞控制。

主要作用是将分组数据报(也称为“包”)从源端传输到目的端。

拥塞:所有的结点都来不及接受分组,从而丢失大量分组的状态。

数据链路层 

主要作用是将从网络层传输下来的数据报组装成帧。帧的开始和结束,还有透明传输,差错校验(纠错由传输层解决)

物理层

利用传输介质为数据链路层提供屋里连接,实现比特流的透明传输。

透明传输:不管传的是什么,所采用的设备只是起一个通道作用,把要传输的内容完好的传到对方。

分层结构——TCP/IP模型

TCP/IP模型同样采用了分层结构,层与层相对独立但是相互之间也具备非常密切的协作关系。

TCP/IP模型将网络分为四层。TCP/IP模型不关注底层物理介质,主要关注终端之间的逻辑数据流转发。TCP/IP模型的核心是网络层和传输层:网络层解决网络之间的逻辑转发问题,传输层保证源端到目的端之间的可靠传输。最上层的应用层通过各种协议向终端用户提供业务应用。

计算机网络(三)——网络分层结构_网络层_04
计算机网络(三)——网络分层结构_字段_05

数据封装:

应用数据需要经过TCP/IP每一层处理之后才能通过网络传输到目的端(数据封装),每一层上都使用该层的协议数据单元PDU(ProtocolDataUnit)彼此交换信息。

数据封装 传输过程:

1.数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段)

2.数据段被传递给网络层;

3.网络层添加IP报头得到的PDU被称为Packet(数据包)

4.数据包被传递到数据链路层,

5.封装数据链路层报头(MAC报头、报尾)得到的PDU被称为Frame(数据帧)

6.最后,帧被转换为比特流,通过网络介质传输。

TCP/IP各个分层解析

名称 

作用

应用层

TCP/IP参考模型的应用层包含了所有高层协议。该层与OSI的会话层、表示层和应用层相对应。

传输层 

TCP/IP参考模型的传输层与OSI的传输层相对应。该层允许源主机与目标主机上的对等体之间进行对话。该层定义了两个端到端的传输协议:TCP协议和UDP协议。

网际层

TCP/IP参考模型的网络层对应OSI的网络层。该层负责为经过逻辑互联网络路径的数据进行路由选择

网络接口层 

TCP/IP参考模型的网络接口层包括了ISO的数据链路层和物理层,因为可以看到源MAC和目标MAC。它是TCP/IP协议的最底层,负责接收从网际层传来的IP数据报,并且将IP数据报通过底层物理网络发出去,或者从底层的物理网络上接收物理帧,解封装出IP数据报,交给网际层处理。

终端通信

数据包在以太网物理介质上传播之前必须封装头部和尾部信息封装后的数据包称为称为数据帧,数据帧中封装的信息决定了数据如何传输。以太网上传输的数据帧有两种格式,选择哪种格式由TCP/IP协议簇中的网络层决定。

MAC地址

计算机网络(三)——网络分层结构_字段_06

网络设备的MAC地址是全球唯一的。MAC地址长度为48比特,通常用十六进制表示。

MAC地址包含两部分:前24比特是组织唯一标识符(OUI,OrganizationallyUniqueIdentifier),由IEEE统一分配给设备制造商。

以太网帧

以太网链路传输的数据包称做以太帧,或者以太网数据帧。在以太网中,网络访问层的软件必须把数据转换成能够通过网络适配器硬件进行传输的格式。

数据链路层控制数据帧在物理链路上传输。

以太网帧格式

以太网上使用两种标准帧格式。

  • 第一种是上世纪80年代初提出的DIXv2格式,即EthernetII帧格式。EthernetII后来被IEEE802标准接纳,并写进了IEEE802.3x-1997的3.2.6节。
  • 第二种是1983年提出的IEEE802.3格式

这两种格式的主要区别在于,

  • EthernetII格式中包含一个Type字段,标识以太帧处理完成之后将被发送到哪个上层协议进行处理。
  • IEEE802.3格式中,同样的位置是Length长度字段

不同的Type字段值可以用来区别这两种帧的类型,

  • 当Type字段值小于等于1500(或者十六进制的0x05DC)时,帧使用的是IEEE802.3格式。
  • 当Type字段值大于等于1536(或者十六进制的0x0600)时,帧使用的是EthernetII格式。

以太网中大多数的数据帧使用的是EthernetII格式

以太帧中还包括源和目的MAC地址,分别代表发送者的MAC和接收者的MAC,此外还有帧校验序列字段,用于检验传输过程中帧的完整性。

两种帧格式的分类解析

Ethernet_II帧格式

计算机网络(三)——网络分层结构_传输层_07

 

Ethernet_II的帧中各字段说明如下:

  1. DMAC(DestinationMAC)是目的MAC地址。DMAC字段长度为6个字节,标识帧的接收者。
  2. SMAC(SourceMAC)是源MAC地址。SMAC字段长度为6个字节,标识帧的发送者。
  3. 类型字段(Type)用于标识数据字段中包含的高层协议,该字段长度为2个字节。类型字段取值为0x0800的帧代表IP协议帧;类型字段取值为0806的帧代表ARP协议帧
  4. 数据字段(Data)是网络层数据,最小长度必须为46字节以保证帧长至少为64字节,数据字段的最大长度为1500字节。
  5. 循环冗余校验字段(FCS)提供了一种错误检测机制。该字段长度为4个字节。

EEE802.3帧格式

计算机网络(三)——网络分层结构_网络层_08

EEE802.3帧格式类似于Ethernet_II帧,只是Ethernet_II帧的Type域被802.3帧的Length域取代,并且占用了Data字段的8个字节作为LLC和SNAP字段。

  1. Length字段定义了Data字段包含的字节数。
  2. 逻辑链路控制LLC(LogicalLinkControl)目的服务访问点DSAP(DestinationServiceAccessPoint)、源服务访问点SSAP(SourceServiceAccessPoint)和Control字段组成。
  3. SNAP(Sub-networkAccessProtocol)机构代码(OrgCode)和类型(Type)字段组成。Orgcode三个字节都为0。Type字段的含义Ethernet_II帧中的Type字段相同。

IEEE802.3帧根据DSAP和SSAP字段的取值又可分为以下几类:

  • 当DSAP和SSAP都取特定值0xff时,802.3帧就变成了Netware-ETHERNET帧,用来承载NetWare类型的数据
  • 当DSAP和SSAP都取特定值0xaa时,802.3帧就变成了ETHERNET_SNAP帧。ETHERNET_SNAP帧可以用于传输多种协议
  • DSAP和SSAP其他的取值均为纯IEEE802.3帧

数据帧传输

数据链路层基于MAC地址进行帧的传输。

以太网在二层链路上通过MAC地址来唯一标识网络设备,并且实现局域网上网络设备之间的通信。MAC地址也叫物理地址,大多数网卡厂商把MAC地址烧入了网卡的ROM中。发送端使用接收端的MAC地址作为目的地址。以太帧封装完成后会通过物理层转换成比特流在物理介质上传输。

数据帧的接收与发送

计算机网络(三)——网络分层结构_mac地址_09

帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网络中,这个帧可能到达多个主机。

主机检查帧头中的目的MAC地址

  • 如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。
  • 如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。

接收该帧,检查帧校验序列(FCS)字段,

  • 如果帧的FCS值与本机计算的值不同,主机会认为帧已被破坏,并会丢弃该帧。
  • 如果该帧通过了FCS校验,则主机会根据帧头部中的Type字段来确定将帧发送给上层哪个协议处理

本例中,Type字段的值为0x0800,表明该帧需要发送到IP协议上处理。在发送给IP协议之前,帧的头部和尾部会被剥掉。

局域网上可以发送帧的三种方式

单播

单播,指从单一的源端发送到单一的目的端。每个主机接口由一个MAC地址唯一标识,MAC地址的OUI中,第一字节第8个比特表示地址类型。对于主机MAC地址,这个比特固定为0,表示目的MAC地址为此MAC地址的帧都是发送到某个唯一的目的端。

在冲突域中,所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机才会接收并处理收到的帧。

广播

广播,表示帧从单一的源发送到共享以太网上的所有主机。广播帧的目的MAC地址为十六进制的FF:FF:FF:FF:FF:FF,所有收到该广播帧的主机都要接收并处理这个帧。

广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。所以只有当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。

组播

组播转发可以理解为选择性的广播,比广播更加高效。主机侦听特定组播地址,接收并处理目的MAC地址为该组播MAC地址的帧。

组播MAC地址和单播MAC地址是通过第一字节中的第8个比特区分的。组播MAC地址的第8个比特为1,而单播MAC地址的第8个比特为0。

当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下通常会使用组播方式。