0%

计网概述3

  • OSI(Open System Interconnection Reference Model,开放式系统互联通信参考模型)体系结构,是一个七层协议的体系结构,从下往上依次是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层

    OSI 体系结构是法律上的国际标准。

★★★1.6 计算机网络体系结构

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

1.6.1.1 OSI 体系结构
  • OSI(Open System Interconnection Reference Model,开放式系统互联通信参考模型)体系结构,是一个七层协议的体系结构,从下往上依次是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层

    OSI 体系结构是法律上的国际标准。

★1.6.1.2 TCP/IP 体系结构
  • TCP/IP 体系结构是一个四层协议的体系结构,从下往上依次是网络接口层、网际层、运输层和应用层

    TCP/IP 体系结构是事实上的国际标准。

  • 事实上,TCP/IP 体系结构可以看作是对 OSI 体系结构的复杂分层的简化,它将 OSI 体系结构的物理层和数据链路层合并为网络接口层,并舍弃了会话层和表示层

  • 如今,只要用户想要接入因特网使用网络,用户的主机就要遵循 TCP/IP 协议,即使用户的网络不需要接入因特网,也可以使用 TCP/IP 协议。

    在用户主机的操作系统中,通常都带有符合 TCP/IP 体系结构标准的 TCP/IP 协议族,而在用于网络互连的路由器中,也带有符合 TCP/IP 体系结构标准的 TCP/IP 协议族,但是路由器的 TCP/IP 体系结构一般只包含网络接口层和网际层。

网络接口层
  • 在 TCP/IP 体系结构的网络接口层中,并没有规定只能使用一种或具体哪几种网络接口,目的在于可以互连全世界各种不同的网络接口,如有线的以太网接口、无线局域网的 WiFi 接口等等。
★网际层
  • IP 协议是网际层的核心协议,IP 协议可以将不同的网络接口进行互连,并向其上的 TCP 和 UDP 协议提供网络互连服务。

    IP协议一方面负责互连不同的网络接口(IP over everything),另一方面,又为各种网络应用提供服务(Everything over IP)。

★运输层
  • TCP 和 UDP 协议是运输层的两个重要协议,TCP 和 UDP 协议在享受 IP 协议提供的网络互连服务的基础之上,可向应用层的相应协议提供可靠的传输服务。
应用层
  • 包含 HTTP、SMTP、DNS、RTP 等等协议。
1.6.1.3 原理体系结构
  • 前面已经说过,由于 TCP/IP 体系结构中 IP 协议的存在,它可以将各种不同的网络接口互连,所以该体系结构的网络接口层并没有规定什么具体内容,但为了学习计算机网络原理的完整体系,于是综合 OSI 体系结构和 TCP/IP 体系结构的优点,采用了一种五层协议的原理体系结构,该结构从下到上依次为物理层、数据链路层、网络层、运输层和应用层

1.6.2 计算机网络体系结构分层的必要性

  • 由于计算机网络是一个非常复杂的系统,所以有必要对其进行分层,将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较容易研究和处理。

    接下来,将从简单到复杂的顺序,来研究实现计算机网络需要面临的主要问题,以及如何将这些问题划分到相应的层次,层层处理。

物理层
  • 要实现计算机网络,在物理层需要考虑以下问题:

    • 采用怎样的传输介质;
    • 采用怎样的物理接口;
    • 采用怎样的信号来表示比特 0 或 1。
数据链路层
  • 当解决了物理层的问题后,此时主机就可以实现传输比特 0 或 1 的信号了。

    如下图所示,在总线型网络中,如果多台主机通过总线连接在一起,假设主机 A 要给主机 C 发送数据,但由于多台主机使用的是同一根总线,所以主机 A 发送的数据实际上发送给了连接总线的其他所有主机,那么除主机 A 外的这些主机该如何知道主机 A 发送的数据是否是发送给自己的呢? -> 这就需要对每台主机进行编制(例如 MAC 地址),所以主机 A 在发送数据时,还应给数据附上目的地址,这样剩余的主机通过比对数据的目的地址和自身地址,就可以确定数据是否是发送给自己的了。

    除此之外,由于共用一条总线,所以当连接在总线上的两台主机同时使用总线发送数据时,就会发生 “碰撞” 问题,因此,如何协调各主机争用主线的问题,也是需要解决的。

  • 所以要实现计算机网络,在数据链路层就要考虑以下问题:

    • 如何标识网络中的各主机;
    • 如何从信号所表示的一连串比特流中区分出数据和地址;
    • 如何协调各主机争用总线。
  • 注意:如今,已不再使用总线型网络,而是使用以太网交换机将多台主机互连形成交换式以太网

网络层
  • 在解决了物理层和数据链路层的问题之后,就可以实现分组在一个网络上进行传输了。

    但是,我们如今所使用的因特网,并不仅仅只有一个网络,而是由许多网络和路由器互连起来的,如下图所示,其中 N1 ~ N4 就是我们在数据链路层阐述的单个网络,所以我们应该对每个网络以及每个网络中的各主机进行标识(例如 IP 地址)

    在图中的 IP 地址中,某一类 IP 地址的前三个十进制数用来标识网络,而第四个十进制数用来标识主机。

    除此之外,由于在进行分组交换时,源主机到目的主机可以走不同的路径,所以还需要考虑路由器如何转发分组的问题。

  • 所以要实现计算机网络,在网络层就要考虑以下问题:

    • 如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如 IP 地址);
    • 路由器如何转发分组,路由器如何选择。
运输层
  • 在解决了物理层、数据链路层和网络层的问题之后,就可以实现分组在网络间进行传输了。

    如下图所示,假设网络 N2 的某台主机中运行着两个与网络通信相关的应用进程,网络 N1 的服务器中运行着与网络通信相关的服务器进程,某个时刻,N2 的主机接收到了 N1 的服务器发送的分组,那么这些分组应该交给哪个应用进程进行处理,就需要对与网络通信相关的应用进程进行标识,进而解决进程之间基于网络通信的问题。

    除此之外,如果在分组交换的过程中,出现了误码、丢包等问题,就需要进行处理。

  • 所以要实现计算机网络,在运输层就要考虑以下问题:

    • 如何解决进程之间基于网络的通信问题;
    • 出现传输错误时,如何处理。
应用层
  • 在解决了物理层、数据链路层、网络层和运输层的问题之后,就可以实现进程之间基于网络的通信了。

    然后再制定一系列的协议,通过应用进程之间的交互来完成特定的网络应用。这就是应用层要解决的问题。

★★★总结
  • 物理层:解决使用何种信号来传输比特的问题;

    数据链路层:解决分组在一个网络(或一段链路)上传输的问题;

    网络层:解决分组在多个网络上传输和路由的问题;

    运输层:解决进程之间基于网络的通信问题;

    应用层:解决通过应用进程的交互来实现特定网络应用的问题。

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

  • 如下图所示的简化网络拓扑,主机属于网络 N1,Web 服务器属于网络 N2,N1 和 N2 通过路由器互连,我们使用主机中的浏览器来访问 Web 服务器,当输入网址后,主机向 Web 服务器发送请求,Web 服务器接收到请求后,会发回相应的响应,主机的浏览器接收到 Web 服务器的响应后,会将其解析为具体的网页内容显示出来。

    以上,主机和 Web 服务器之间的基于网络的通信,实际上是主机中的浏览器应用进程和 Web 服务器中的 Web 服务器应用进程之间基于网络的通信

    接下来,就要讲述原理体系结构中的五层协议结构在这一过程中所发挥的作用。

  • N1 网络中主机端:应用层 -> 运输层 -> 网络层 -> 数据链路层 -> 物理层

    • 应用层:按 HTTP 协议规定,构建一个 HTTP 请求报文,然后将 HTTP 报文交付给运输层进行处理;

    • 运输层:给 HTTP 请求报文添加一个 TCP 首部,使之成为 TCP 报文段,然后将 TCP 报文段交付给网络层进行处理;

    • 网络层:给 TCP 报文段添加一个 IP 首部,使之成为 IP 数据报,然后将 IP 数据报交付给数据链路层进行处理;

    • 数据链路层:给 IP 数据报添加一个 ETH 首部和 ETH 尾部,使之成为,然后将帧交付给物理层进行处理;

    • 物理层:物理层将帧看作是比特流,并在比特流前面添加前导码,然后将添加有前导码的比特流变换成相应的信号发送到传输媒体,再通过传输媒体发送到路由器。

  • 路由器:物理层1 -> 数据链路层1 -> 网络层 -> 数据链路层2 -> 物理层2

    • 物理层1:将信号变换为比特流,并去掉前导码,使之成为,并将帧交付给数据链路层1进行处理;
    • 数据链路层1:将帧的首部和尾部去掉,使之成为 IP 数据报,然后将 IP 数据报交付给网络层进行处理;
    • 网络层:解析 IP 数据报的 IP 首部,得到目的网络地址,然后查找自身的路由表,确定转发端口,对 IP 数据报进行转发,将 IP 数据报交付给数据链路层2进行处理;;
    • 数据链路层2:给 IP 数据报添加一个 ETH 首部和 ETH 尾部,使之成为,然后将帧交付给物理层2进行处理;
    • 物理层2:物理层2将帧看作是比特流,并在比特流前面添加前导码,然后将添加有前导码的比特流变换成相应的信号发送到传输媒体,再通过传输媒体发送到 Web 服务器。
  • N2 网络中 Web 服务器:与 N1 网络中主机类似,不再赘述。

    Web 服务器的应用层对最终得到的 HTTP 请求报文进行解析,并构建一个响应报文,然后以同样的方式将响应报文发回给 N1 网络中的主机。

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

1.6.4.1 实体
  • 实体:任何可发送或接收信息的硬件或软件进程。
  • 对等实体:通信双方相同层次中的实体,如下图所示中的 A - F、B - G、C - H 等。
1.6.4.2 协议
  • 协议:控制两个对等实体进行逻辑通信的规则的集合。

    注意:是逻辑通信,也就是理论意义上的通信,但在实际中并不存在,它只是假设出来的一种通信,是为了方便我们单独研究体系结构中的某一层,而不用考虑其他层。

  • 协议的三要素:

    • 语法:定义通信双方所交换信息的格式;

    • 语义:定义通信双方所要完成的操作;

    • 同步:定义通信双方的时序关系。

1.6.4.3 服务
  • 服务:在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务;同时,为了实现本层协议,还需要使用下面一层所提供的服务。

    注意:协议是“水平”的,服务是“垂直”的。

    注意:实体可以知道相邻的下层所提供的服务,但并不知道实现该服务的具体协议。

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

    • 数据链路层的服务访问点为帧的“类型”字段;
    • 网络服务层的服务访问点为 IP 数据报首部中的“协议字段”;
    • 运输层的服务访问点为“端口号”;
  • 服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。

1.6.4.4 数据包
  • 协议数据单元:PDU(Protocol Data Unit),对等层次之间传送的数据包。

    • 物理层:比特流;
    • 数据链路层:帧;
    • 网络层:IP 数据报或分组;
    • 运输层:TCP 报文段(TCP协议)或 UDP 用户数据报(UDP协议);
    • 应用层:报文。
  • 服务数据单元:SDU(Service Data Unit),同一系统内,层与层之间交换的数据包。

  • 注意:多个 SDU 可以合成为一个 PDU,一个 SDU 也可以划分成几个 PDU。

---------------The End---------------