计算机网络体系结构
常见的计算机网络体系结构
OSI体系结构(开放系统互联参考模型)
- 该模型是一个七层协议的体系结构,从下往上依次是:
- 物理层
- 数据链路层
- 网络层
- 运输层
- 会话层
- 表示层
- 应用层
- 这是法律上的国际标准
TCP/IP体系结构
- 因特网1983年开始使用TCP/IP协议族,并逐步演变为TCP/IP参考模型
- 该模型是一个四层模型的体系结构,从下往上依次是:
- 网络接口层
- 网际层
- 运输层
- 应用层
- 这是事实上的国际标准
详细信息:
- 网络接口层并没有规定什么具体内容,这样做的目的就是可以互连全世界各种不同的网络接口(例如,有线的以太网接口,无线局域网的WIFI接口),因此本质上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协议中的核心协议,一方面负责互联不同的网络接口,另一方面,为各种网络应用提供服务
OSI标准的失败原因
- OSI的专家缺乏实际经验,没有商业驱动力
- OSI协议实现起来过分复杂,实现起来效率很低
- OSI标准的制定周期太长,因而使得按照OSI标准生产的设备无法及时进入市场
- OSI标准的层次划分不太合理,有些功能在多个层次中重复出现
对比这两个体系结构
- TCP/IP体系结构相当于把OSI体系结构的物理层和数据链路层合并为一个网络接口层
- 去掉了会话层和表示层
原理体系结构
- 因为如果学习TCP/IP体系结构,网络接口层没有具体的内容,所以学习会少一部分,如果学习OSI体系结构,又太繁琐,使用不到,所以,为了了解原理,就发明一种原理体系结构,分为五层,从下到上依次为:
- 物理层
- 数据链路层
- 网络层
- 运输层
- 应用层
计算机网络体系结构分层的必要性
-
计算机网络是一个非常复杂的系统,最早在APRANET设计时就提出了分层的设计理念
-
"分层"可以将庞大而负责的问题,转换成若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理
-
下面我们举例说明
-
物理层
-
数据链路层
-
网络层
-
运输层
-
应用层
各个层次解决的问题
- 物理层解决了使用何种信号来传输比特的问题
- 数据链路层解决了分组在一个网络(或一段链路)上传输的问题
- 网络层解决了分组在多个网络上传输(路由)的问题
- 运输层解决了进程间基于网络的通信问题
- 应用层解决了通过应用程序进程的交互来实现特定网络应用的问题
计算机网络体系结构分层思想举例
主机处理过程
-
网络拓扑图如下:
一台主机想通过web浏览器访问网页。
-
过程如下:
-
应用层按照HTTP协议的规定,构建一个HTTP请求报文
-
应用层将HTTP报文交给运输层处理,运输层给HTTP报文加上一个TCP首部,使之成为TCP报文段,首部的作用主要是区分应用进程以及实现可靠传输
-
运输层将TCP报文段交给网络层处理,网络层给TCP报文段加上一个IP首部,使其成为IP数据包,该首部的作用是使IP数据包可以在互联网上传播,也就是被路由器转发
-
网络层将IP数据包交给数据链路层处理,数据链路层给IP数据报添加一个首部和一个尾部,使其成为帧,首部的作用就是为了让帧能够在一段链路上传输,能够被相应的目的主机接收,帧尾部的作用是为了让目的主机检查所接收到的数据是不是有误码
-
数据链路层将帧交付给物理层,物理层将帧看做是比特流,由于网络是以太网,所以物理层会给该比特流添加前导码,其作用是为了让目的主机做好接收帧的准备
-
物理层将加入了前导码的比特流变换成相应的电信号发送给传输媒体,信号通过传输媒体到达路由器。
路由器处理过程
- 物理层将电信号变换为比特流,去掉前导码后将数据交给数据链路层,实际上交付的是帧
- 数据链路层将帧的首部和尾部去掉后,交付给网络层,这实际上是IP数据报。
- 网络层解析IP数据报的首部,从中提取目的网络地址,然后查找自身的路由表,确定转发端口,以便于进行转发
- 网络层将IP数据报交给数据链路层,数据链路层给IP数据报添加一个首部和尾部使之成为帧
- 数据链路层将帧交付给物理层,物理层将帧看做比特流,在加入一个前导码之后,变换为相应的信号发送给传输媒体
- 信号通过传输媒体到达web服务器
web服务器的处理过程
- 物理层将电信号变换为比特流,去掉前导码后将数据交给数据链路层,实际上交付的是帧
- 数据链路层将帧的首部和尾部去掉后,交付给网络层,这实际上是IP数据报。
- 网络层将IP数据报的首部去掉后,交付给运输层,这实际上交付的是TCP报文段。
- 运输层将TCP报文段的首部去掉后,交付给应用层,这实际上交付的是HTTP请求报文
- 应用层对HTTP报文进行解析,然后给主机发回HTTP相应报文,与之前类似
计算机网络体系结构中的专业术语
实体
- 实体是指任何可发送或接受信息的硬件或软件进程
- 对等实体:收发双方相同层次中的实体
协议
- 协议是控制两个对等实体进行逻辑通信的规则的集合
- 协议的三要素(语法,语义,同步)
- 语法:定义所交换信息的格式
- 语义:定义收发双发所要完成的操作
- 同步:定义收发双方的时序关系
服务
-
在协议的控制下,两个对等实体间的逻辑通信是本层能够向上一层提供服务
-
要实现本层协议,还需要使用下面一层所提供的服务
-
协议是水平的,服务是垂直的
-
实体看的见下次所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是透明的
-
服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型
- 数据链路层的服务访问点为帧的“类型”字段
- 网络层的服务访问点为IP数据首部中的“协议字段”
- 运输层的服务访问点为“端口号”
-
服务原语:上层使用下次所提供的服务必须通过与下层交换一些命令,这些命令被称为服务原语
-
协议数据单元(PDU): 对等层次之间传输的数据包成为改成协议数据单元
-
服务数据单元(SDU): 同一系统内,层与层之间交换的数据包成为服务数据单元
-
多个SDU可以何为一个PDU,一个SDU也可以划分为几个PDU