RaymondHuang
RaymondHuang
发布于 2024-03-16 / 111 阅读
0
0

Chapter 2 —— 计算机网络体系结构

计算机网络体系结构的形成

为什么要提出体系结构?

· 计算机网络是个非常复杂的系统。

· 相互通信的两个计算机系统必须高度协调工作,而这是相当复杂的。

· 因此,科学家们就提出用"分层"的方法将复杂的问题转化为简单的问题。

国际标准的提出

· 一开始,科学家们提出了法律上的国际标准OSI,但是这个体系结构因为设计的时候把层次分的太细,而且没有考虑商业因素,故无法得到市场认可。

· 后来提出的事实上的国际标准TCP/IP协议,获得了最广泛的应用。

协议与层次划分

协议

· 网络协议(Network Protocol),简称协议,是计算机网络中数据交换必须遵循的事先约定好的规则

· 这些规则明确规定了所交换的数据的格式以及有关的同步的问题。

· 网络协议分为三个要素

  1. 语法怎么说?):数据与控制信息的结构或格式

  2. 语义说什么?):要发出何种控制信息,完成何种动作以及做出何种响应

  3. 同步何时说?):事件实现顺序的详细说明,包括何时发和发送速率。

分层

· 为什么要分层?因为可以把一件复杂的事情分解为一件件简单的事情

· 比如文件传输,直接在两个主机之间传输文件并不容易,而且程序实现也非常困难,但是我们可以把它们分层。

· 每一层完成自己的任务之后,就把数据进行封装并传输到下一层去,下一层接收到数据后对其进行解封,然后完成自己的任务后,再次封装传到下一层,以此类推。

·分层的好坏:

· 每一层需要完成的任务:

复用指的是来自上层(如应用层)的多个数据流,可以通过同一个下层协议(如传输层的TCP或UDP)来共享同一网络连接。比如在传输层,不同的应用通过指定不同的端口来实现复用。

分用就是复用的逆过程,指的是在接收端网络层如何根据数据的头部信息,如端口号,来把数据正确的传递给对应的应用程序

逻辑连接指的是通过软件实现的一种连接,如TCP通过三次握手实现的连接,他不是物理意义上的那种连接,而是一种概念上的连接。

五层协议的体系结构

· 综合OSI和TCP/IP协议的结构,提出五层协议的体系结构。

各个层的主要作用

· 应用层(Application Layer):负责给用户(人或软件)提供服务。应用层的协议定义应用进程之间的通信和交互规则,不同应用有不同协议,如DNS协议解析域名、HTTP协议支持Web应用、SMTP协议支持电子邮件、FTP协议支持文件传输。

· 运输层(Transport Layer):为两个主机中进程之间的通信提供通用的数据传输服务,运输层负责整个报文到达目标进程。端到端通信常使用TCP和UDP协议,TCP面向连接,传输单位是报文段,提供可靠的交付;而UDP是无连接的,只是尽最大努力交付,不保证数据传输可靠性,传输单位是用户数据报

· 网络层(Network Layer):负责为分组交换网上的不同主机提供通信。网络层负责单个分组到达主机,将报文段或用户数据报封装成分组或包。在传输分组的过程中,要经过很多路由节点,因此要进行逻辑寻址路由选择。但是寻址只是给出方向,并没有给出具体节点,因此还需要数据链路层。

· 数据链路层(Data Link Layer):在两个相邻节点间的链路上传输数据(一跳一跳地传递)。在发送数据的时候,数据链路层将网络层交下来的IP数据报组装成帧(Frame);在接收数据的时候,相邻节点在接收到一个帧后,就从其中提取数据部分上交网络层。帧包含数据和必要控制信息,如同步信息、地址信息、差错控制等。

· 物理层(Physical Layer):负责在节点之间透明地传送比特流。这个透明指的是经过实际电路传输之后,比特流没有发生变化,这个电路对比特流来说好像不存在一样。

多层通信思想——虚拟通信

· 多层通信指的就是上层通信依赖与下层通信,发送时从上往下层层封装;接收时从下到上层层解封。

· 虚拟通信指的就是各对等层之间的通信好像是直接通信。

协议栈(重要概念)

· 协议栈包含两层含义:

  1. 由于分层,每层都有相应的协议,因此是"协议的集合"。

  2. 各层协议配合工作通过封装和解封完成,发送时层层封装,接收时层层解封。封装和解封的次序正好相反,因此叫"栈"。

通过协议来封装构成的数据单元叫协议数据单元(Protocol Data Unit,PDU),如报文、分组、帧。

协议在各层之间传递

· 封装:

· 解封:

  1. 物理层收到比特流,交给数据链路层;

  2. 数据链路层剥去帧首部和尾部后,把帧数据交给网络层;

  3. 网络层剥去分组首部后,把分组的数据部分交给运输层;

  4. 运输层剥去报文首部后,把报文的数据部分交给应用层;

  5. 应用层剥去应用层PDU首部后,把应用程序数据交给应用进程。

协议与服务在概念上的区别

· 在协议的控制下,两个对等实体(硬件、软件)的通信使得本层能够向上一层提供服务

· 要实现本层的协议,还需要下层所提供的服务,服务就是功能的实现。

· 本层的服务用户只能看见服务,而无法看见下面的协议,因为本层不关心数据是怎么来的,只关心结果。因此我们说下面的协议对上层的服务是透明

· 协议是"水平的",即协议是控制对等实体之间通信的规则。

· 服务是"垂直的",即服务是由下层向上层通过层间接口提供的。


评论