体系结构&参考模型

分层结构

为什么要分层

  1. 发送通信的计算机必须要将数据通信的通路进行激活
  2. 要告诉网络如何识别目的主机
  3. 发送通信的计算机要查明目的主机是否开机,并且与网络连接正常
  4. 发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作
  5. 确保差错和意外可以解决

怎么分层

  1. 各层之间相互独立,每层只实现一种相对独立的功能
  2. 各层之间界面自然清晰,易于理解,相互交流尽可能少
  3. 结构上可分割开。每层都采用最适合的技术来实现。
  4. 保持下层对上层的独立性,上层单项使用下层提供的服务
  5. 整个分层结构能够促进标准化工作

对等实体之间才有协议

认识分层机构

  1. 实体:第n层中的活动元素称为n层实体。同一层的实体叫做对等实体
  2. 协议:为进行网络中的对等实体数据交换而建立的规则、标准或约定称为网络协议。(水平)
  3. 接口(访问服务点SAP):上层使用下层服务的入口。
  4. 服务:下层为相邻上层提供的功能调用(垂直)。

SDU服务数据单元:为用户所要求的功能而传送的数据

PCI协议控制信息:控制协议操作的信息。

PDU协议数据单元:对等层次传送的数据单元。

概念总结

  1. 网络体系结构是从功能上描述叫算计网络结构
  2. 计算机网络体系结构简称网络体系结构是分层结构
  3. 每层遵循某个/些网络协议以完成本层功能
  4. 计算机网络结构是计算机网络各层及其协议的集合
  5. 第n层在向n+1层提供服务时,此服务不仅包含第n层本身的功能,还包含由下层无语提供的功能
  6. 仅仅在相邻层间有接口,且所提供服务的具体实现细节对上一层完全屏蔽
  7. 体系结构是抽象的,而实现是指能运行的一些软件和硬件

7层OSI参考模型(法定标准)

名称 作用
应用层 所有能和用户交互产生网络流量的程序,如:QQ
表示层 向表示层实体/用户进程提供建立连接并在连接上有序地传输数据。这就是绘画,也是建立同步。功能:1.建立、管理、终止会话;2.使用校验点可以是会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步(适用于传输大文件)。
会话层 向表示层实体/用户进程提供建立连接并在连接上有序地传输数据。这就是绘画,也是建立同步。功能:1.建立、管理、终止会话;2.使用校验点可以是会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步(适用于传输大文件)。
传输层 负责主机种两个进程地通信,即端到端的通信。传输单位是报文段或者用户数据段。功能:1.可靠传输、不可靠传输;2.差错控制;3.流量控制;4.复用分用
网络层 主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。功能:1.路由选择 ;2.流量控制;3.差错控制;4.拥塞控制。
数据链路层 主要任务是把网络层传下来的数据报组装成帧。数据链路层/链路层的传输单位是。功能:1.成帧(定义帧的开始和结束);2.差错控制(帧错+位错);3.流量控制;4.访问(接入)控制,控制对信道的访问。
物理层 主要任务是在物理媒体上实现比特流的透明传输。单位是比特。功能:1.定义接口特性;2.定义传输模式;3.定义传输速率;4.比特同步;5.比特编码

数据报:网络传输的基本单位,包含一个报头和数据本身

资源子网(数据处理):应用层、表示层、会话层

通信子网(数据通信)传输层、网络层、数据链路层、物理层

复用:多个应用层进程使用下面运输层的服务。

分用:运输层把收到的信息分别交付给上面应用层种相应的进程。

5层参考模型

名称 作用
应用层 支持各种网络应用;FTP、SMTP、HTTP
传输层 进程-进程的数据传输;TCP、UDP
网络层 源主机到目的主机的数据分组路由与转发;IP、ICMP、OSPF
数据链路层 把网络层传下来的数据报组装成帧
物理层 比特传输

4层TCP/IP参考模型(事实标准)

名称 作用
应用层 应用层只需要专注于为用户提供应用功能,比如HTTPFTPTelnetDNSSMTP
传输层 应用层的数据包会传给传输层,传输层Transport Layer)是为应用层提供网络支持的
网际层 负责将数据从一个设备传输到另一个设备
网络接口层(数据链路层) 网络接口层Link Layer)在 IP 头部的前面加上 MAC 头部,并封装成数据帧(Data frame)发送到网络上

面向连接分为三个阶段,第一是建立连接,在此阶段,发送一个建立连接的请求。第二,只有在连接成建立之后,才能开始数据传输。第三,当数据传输完毕,必须释放连接。而面向无连接没有这么多阶段,他直接进行数据传输。

数据链路层

数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介(比如以太网、令牌环等)上的传输。不同的物理网络具有不同 的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供一个统 一的接口

ARP协议

数据链路层两个常用的协议是ARP协议(Address Resolve Protocol,地址解析协议)和RARP协议(Reverse Address Resolve Protocol,逆地址解析协议)。它们实现了IP地址和物理地址(MAC地址)之间的相互转换

网络层使用IP地址寻址一台机器,而数据链路层使用物理地址寻址一台机器,因此网络层必须先将目标机器的IP地址转化成其物理地

址,才能使用数据链路层提供的服务,这就是ARP协议的用途。

网际层

网络层实现数据包的选路和转发。WANWide Area Network,广域网)通常使用众多分级的路由器来连接分散的主机或LANLocal

Area Network,局域网),因此,通信的两台主机一般不是直接相连的,而是通过多个中间节点(路由器)连接的。

网络层的任务就是选择这些中间节点,以确定两台主机之间的通信路径。同时,网络层对上层协议隐藏了网络拓扑连接的细节,使得在传输层和网络应用程序看来,通信的双方是直接相连的。

IP协议

网络层最核心的协议是IP协议(Internet Protocol,因特网协议)。IP协议根据数据包的目的IP地址来决定如何投递它。如果数据包不能直接发送给目标主机,那么IP协议就为它寻找一个合适的下一跳(nexhop)路由器,并将数据包交付给该路由器来转发。多次重复这一过程,数据包最终到达目标主机,或者由于发送失败而被丢弃。可见,IP协议使用逐跳(hop by hop)的方式确定通信路径。

ICMP协议

Internet Control Message Protocol,因特网控制报文协议它是IP协议的重要补充,主要用于检测网络连接。ICMP协议使用的报文格式

8位类型 8位代码 16位校验和
报文内容 取决于报文 的类型

8位类型字段用于区分报文类型。它将ICMP报文分为两大类:

一类是差错报文,这类报文主要用来回应网络错误,比如目标不可到达(类型值为3)和重定向(类型值为5);

另一类是查询报文,这类报文用来查询网络信息,比如ping程序就是使用ICMP报文查看目标是否可到达(类型值为8)的。

有的ICMP报文还使用8位代码字段来进一步细分不同的条件。比如重定向报文使用代码值0表示对网络重定向,代码值1表示对主机重定向。ICMP报文使用16位校验和字段对整个报文(包括头部和内容部分)进行循环冗余校验(Cyclic Redundancy Check,CRC),以检验报文在传输过程中是否损坏。不同的ICMP报文类型具有不同的正文内容。

传输层

传输层为两台主机上的应用程序提供端到端(end to end)的通传输层为两台主机上的应用程序提供端到端(end to end)的通和目的端,而不在乎数据包的中转过程。

应用层

应用层负责处理应用程序的逻辑。

数据链路层、网络层和传输层负责处理网络通信细节,这部分必须既稳定又高效,因此它们都在内核空间中实现。

而应用层则在用户空间实现,因为它负 责处理众多逻辑,比如文件传输、名称查询和网络管理等

应用层协议

  • ping是应用程序,而不是协议,前面说过它利用ICMP报文检测网络连接,是调试网络环境的必备工具
  • telnet协议是一种远程登录协议,它使我们能在本地完成远程任务
  • OSPFOpen Shortest Path First,开放最短路径优先)协议是一种动态路由更新协议,用于路由器之间的通信,以告知对方各自的路由信息。
  • DNSDomain Name Service,域名服务)协议提供机器域名到IP地址的转换,我们将在后面简要介绍DNS协议。
  • 我们可以通过/etc/services文件查看所有知名的应用层协议,以及它们都能使用哪些传输层服务

封装

  • 经过TCP封装后的数据称为TCP报文段(TCP message segment),或者简称TCP段。经过UDP封装后的数据称为UDP数据报(UDP datagram)。
  • 经过IP封装后的数据称为IP数据报(IP datagram)。
  • 经过数据链路层封装的数据称为帧(frame)。
    • 以太网上传输的是以太网帧(ethernet frame
    • 而令牌环网络上传输的则是令牌环帧(token ring frame)。

帧的最大传输单元(Max Transmit Unit,MTU),即帧最多能携带多少上层协议数据(比如IP数据报),通常受到网络类型的限制。的以太网帧的MTU1500字节。正因为如此,过长的IP数据报可能需要被分片(fragment)传输。

帧才是最终在物理网络上传送的字节序列。至此,封装过程完成