常见的计算机网络体系结构

OSI体系结构

OSI体系为法律上的国际标准
从上到下为:

  • 7 应用层
  • 6 表示层
  • 5 会话层
  • 4 运输层
  • 3 网络层
  • 2 数据链路层
  • 1 物理层

OSI标准失败了,失败原因为:

  • OSI的专家们缺乏实际经验,完成这个标准时没有商业驱动力
  • OSI协议实现起来过分复杂,而且运行效率很低
  • OSI标准制定周期太长,按该标准生产的设备无法及时进入市场
  • 层次划分不合理

    TCP/IP体系结构

    事实上的国际标准,从上倒下以此为:

  • 4 应用层:包含了大量的应用层协议:HTTP,SMTP,DNS,RTP等

  • 3 运输层:TCP和UDP是运输层的两个重要协议
  • 2 网际层:网络层以IP协议为核心协议,IP协议中文意思是网际协议,所以网络层也称为网际层
  • 1 网络接口层:并没有规定什么特定内容,以使设备适用不同网络接口

IP协议是TCP/IP协议中的核心协议,它主要有两个作用:

  • 互连不同网络接口 IP over everything
  • 为各种网络应用提供服务 everything over IP

TCP和IP协议是比较重要的两个协议,所以用TCP和IP代表整个协议大家族,称为TCP/IP协议族,嵌入式系统开发 中称为TCP/IP协议栈

image.png
图注:用户主机的操作系统中通常会带有符合TCP/IP体系结构的协议族,但是路由器中通常只有网络接口层和网际层

原理体系结构

TCP/IP体系对于我们学习计算机网络完整体系而言,缺少一部分内容因此学习计算机网络原理时,会采取折中的方法,综合OSI和TCP/IP的优点,采取原理体系结构(适合教学):

  • 5 应用层
  • 4 运输层
  • 3 网络层
  • 2 数据链路层
  • 1 物理层

    为什么要分层

    因为有很多问题要解决

物理层

先看最简单的情况,两台计算机通过网线连接起来:
image.png

  • 采用怎样的传输媒体

图中采用双绞线网线

  • 计算机采用怎样的物理接口

图中采用RJ45以太网接口

  • 使用怎样的信号表示比特0和1

图中采用方波信号
以上是物理层要解决的问题

数据链路层

例如在一个交换式以太网中:
image.png
我们要解决以下问题

  • 如何标识网络中的计算机(主机编址问题,例如MAC地址)
  • 如何从信号所表示的一连串比特流中区分地址和数据
  • 以太网交换机如何实现的

    网络层

    解决了物理层和数据链路层就可以实现分组在一个网络上传输了,但是因特网是由很多网络组成的还要解决网络层的问题。
    例如在这个由四台主机和三台路由器组成的小型互联网中:
    image.png
    有如下问题:

  • 如何标识个网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址)

  • 路由器如何转发分组,如何进行路由选择

    运输层

    当网络中的主机可以相互交互时,在运输中还有一些问题:
    image.png

  • 解决进程之间进行网络的通信问题(收到的分组该交给浏览器还是qq)

  • 出现传输错误,应该如何处理

    应用层

    在上面层次的问题解决之后,我们就可以实现进程之间基于网络的通信:
    image.png
    再此基础上:

  • 通过应用进程间的交互来完成特定的网络应用

总结:
image.png

计算机网络体系结构分层思想举例

这里以通过浏览器输入网址访问一个网站为例:
image.png
主机端自顶向下:

  • 应用层:

按照HTTP协议的规定,构建一个HTTP请求报文,将HTTP报文交付给运输层处理

  • 运输层:

给HTTP请求报文添加一个TCP首部,使之成为TCP报文段,以下是TCP报文段的首部格式,该首部的作用主要是为了区分应用进程,以实现可靠传输,运输层将TCP报文段交付给网络层处理
image.png

  • 网络层:

给TCP报文段加上一个IP首部,使之称为IP数据报,以下是IP数据报的首部格式,该首部的作用是为了使IP数报可以在互联网上传输(可以被路由器转发),
image.png

  • 数据链路层:

数据链路层给IP数据包添加一个首部和一个尾部,使之成为帧,下面是以太网帧首部的格式,首部的作用是为了让帧在一段链路上网络上传输,可以被响应的目的主机接收,帧尾部的作用是为了让目的主机检查接收到的帧是否有误码
image.png

  • 物理层:

物理层将帧看作比特流,由于N1是以太网,所以要再在比特流前添加前导码,然后将加上前导码的比特流变换成相应信号发送到传输媒体
路由器

  • 物理层:

将信号变成比特流,去掉前导码,交付给数据链路层,实际交付的是帧

  • 数据链路层:

数据链路层去掉帧的首部和尾部,将其交付给网络层,实际交付的是IP数据报

  • 网络层:

解析IP数据报的首部,从中提取出目的网络地址,查找自身路由表,确定转发端口,以便进行转发。之后再传到数据链路层,变成帧,再传到物理层,N2是以太网,要再添加前导码,转换成响应信号发送到传输媒体。
Web服务器:
向上层层交付就行了 ,最后应用层拿到HTTP请求报文,再发回HTTP响应报文,层层封装,发回主机

计算机网络体系结构中的专用术语

实体

任何可发送或接收信息的硬件软件进程

  • 对等实体:收发双方相同层次中的实体

通信双方的网卡,正在进行通信的应用进程是对等实体
image.png

协议

协议:是控制两个对等实体进行逻辑通信的规则的集合。
为什么是逻辑通信:这种通信其实并不存在,它只是我们假设出来的一种通信,目的在于研究某一层而不用考虑其他层
image.png
协议的三要素

  • 语法:

定义所交换信息的格式
也就是说,语法定义了所交换信息由哪些字段以及何种顺序构成

  • 语义:

定义通信双方所要完成的操作

  • 同步:

定义通信双方的时序关系

服务

  • 在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
  • 要实现本层协议,还需要使用下面一层所提供的服务
  • 协议是“水平”的,服务是“垂直”的。
  • 实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上的实体是“透明”
  • 服务访问点:

在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型

  • 数据链路层的服务访问点为帧的”类型”字段
  • 网络层的服务访问点为IP数据报首部中的”协议字段”。
  • 运输层的服务访问点为”端口号”
    • 服务原语

上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
image.png

  • 协议数据单元PDU

对等层次之间传送的数据包称为该层的协议数据单元

  • 服务数据单元SDU

同一系统内,层与层之间交换的数据包称为服务数据单元

  • 多个SDU可以合并成为一个PDU;一个SDU也可划分为几个PDU.

image.png