目录
- 常见的计算机网络体系结构
- 计算机网络体系结构分层的必要性
- 计算机网络体系结构分层思想举例
- 计算机网络体系结构中的专用术语
常见的计算机网络体系结构
TCP/IP体系结构相当于将OSI体系结构的物理层和数据链路层合并为网络接口层。并去掉了会话层和表示层。
由于TCP/IP在网络层使用的协议是IP协议,IP协议的中文意思是网际协议,因此TCP/IP体系结构的网络层通常称为网际层。
在用户主机的操作系统中,通常都带有符合TCP/IP体系结构标准的TCP/IP协议族;而用于网络互连的路由器中也带有符合TCP/IP体系结构标准的TCP/IP协议族,不过路由器一般只包含网络接口层和网际层。
TCP/IP体系结构的网络接口层并没有规定什么具体的内容,这样做的目的是可以互连全世界各种不同的网络接口。
IP协议是TCP/IP体系结构网际层的核心协议,TCP和UDP是TCP/IP体系结构运输层的两个重要协议,TCP/IP体系结构的应用层包含了大量的应用层协议,例如HTTP/SMTP/DNS/RTP等。
IP协议可以将不同的网络接口进行互连,并将其上的TCP协议和UDP协议提供网络互连服务,TCP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的响应协议提供可靠传输服务,UDP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的响应协议提供不可靠传输的服务。
IP协议作为TCP/IP体系结构中的核心协议,一方面负责互连不同的网络接口(IP over everything),另一方面为各种网络应用提供服务(everything over IP)。
TCP/IP协议族通常称为TCP/IP协议栈,这是因为TCP/IP协议体系的分层结构与数据结构中的栈在图形画法上是类似的。
由于TCP/IP体系结构为了将不同的网络接口进行互连,它的网络接口层并没有规定什么具体的内容。然而对于我们学习计算机网络的完整体系而言,就会缺少一部分内容,因此在学习计算机网络原理时往往采取折中的办法,也就是综合OSI和TCP/IP的优点,采用一种五层协议的原理体系结构。
计算机网络体系结构分层的必要性
- 计算机网络是个非常复杂的系统。早在最初的ARPANET设计时就提出了分层的设计理念;
- 分层可以将庞大二复杂的问题转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理;
- 下面我们按照由简单到复杂的顺序,看看实现计算机网络要面临哪些主要的问题,以及如何将这些问题划分到相应的层次,层层处理;
计算机网络体系结构分层思想举例
假设网络拓扑如下所示:
主机属于网络N1,Web服务器属于网络N2,N1和N2通过路由器互连,我们使用主机中的浏览器来访问Web服务器;当输入网址后,主机会向Web服务器发送请求,Web服务器收到请求后会发回相应的相应,主机的浏览器收到响应后将其解析为具体内容显示出来;
主机和Web服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与Web服务器中的Web服务器应用进程之间基于网络的通信。
从主机端按体系结构自顶向下的顺序看,应用层按HTTP协议规定,构建一个HTTP请求报文。
应用层将HTTP请求报文交付到运输层处理,运输层给HTTP请求报文添加一个TCP首部,使之成为一个TCP报文段,首部的作用主要是为了区分应用进程以及实现可靠传输;
运输层将TCP报文段交付到网络层处理,网络层给TCP报文段添加一个IP首部,使其成为一个IP数据报,IP首部的作用主要是为了使IP数据报可以在互联网上传输,也就是被路由器转发;
网络层将IP数据报交付给数据链路层处理,数据链路层给IP数据报添加一个首部和一个尾部使其成为帧,该首部的作用主要是为了让帧能够在一段链路上或一个网络上传输,能够被相应的目的主机接收,尾部的作用是为了让目的主机检查所接收到的帧是否有误码;
数据链路层将帧交付给物理层,物理层将帧看做是比特流,假设网络是以太网,物理层还会在该比特流前添加前导码,前导码的作用是为了让目的主机做好接收帧的准备,物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体,信号通过传输媒体到达路由器。
信道到达路由器后,物理层将信号转换为比特流;
去掉前导码后,将其交付到数据链路层,这实际上交付的是帧;
数据链路层将帧的首部和尾部去掉后,将其交付给网络层,实际上交互的是IP数据报;
网络层解析IP数据报的首部,从中提取出目的网络地址,然后查找自身的路由表,确定转发端口,以便进行转发;
网络层将IP数据报交付给数据链路层,数据链路层给IP数据报添加一个首部和一个尾部使之成为帧;
数据链路层将帧交付给物理层,物理层将帧看做是比特流,假定当前网络是以太网,物理层还会在给该比特流前面添加前导码;
物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体,信号通过传输媒体到达Web服务器。
在Web服务器中,物理层将信号变换为比特流;
去掉前导码后,将其交付给数据链路层,实际上交付的是帧;
数据链路层将帧的首部和尾部去掉后,将其交付给网络层,实际上交付的是IP数据报;
网络层将IP数据包的首部去掉后,将其交付给运输层,这实际上交付的是TCP报文段;
运输层将TCP报文段的首部去掉后,将其交付给应用层,这实际上交付的是HTTP请求报文;
应用层对HTTP请求报文进行解析,然后给主机发回HTTP响应报文;
HTTP响应报文需要在Web服务器层层封装,然后通过物理层变换成相应的信号,再通过传输媒体传输到路由器,路由器转发该响应报文给主机,主机通过物理层将收到的信号转换为比特流,之后通过逐层解封,最终取出HTTP响应报文;
计算机网络体系结构中的专用术语
-
实体:指任何可发送或接收信息的硬件或软件进程;
-
对等实体:收发双方相同层次中的实体;
-
协议:控制两个对等实体进行逻辑通信的规则的集合;
-
协议的三要素:语法、语义、同步
- 语法:定义所交换信息的格式;
- 语义:定义收发双方所要完成的操作;
- 同步:定义收发双方的时序关系;
-
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务;
-
要实现本层协议,还需要使用下面一层所提供的服务;
-
协议是“水平的”,服务是“垂直的”;
-
实体看得见相邻下层所提供的的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是“透明”的;
-
服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型;
- 数据链路层的服务访问点为帧的“类型”字段;
- 网络层的服务访问点为IP数据报首部中的“协议字段”;
- 运输层的访问服务点为“端口号”;
-
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语;
-
协议数据单元PDU:对等层次之间传送的数据报称为该层的协议数据单元;
-
服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元;
-
多个SDU可以合成为一个PDU;一个SDU也可划分为几个PDU;