常见的计算机网络体系结构
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协议栈
图注:用户主机的操作系统中通常会带有符合TCP/IP体系结构的协议族,但是路由器中通常只有网络接口层和网际层
原理体系结构
TCP/IP体系对于我们学习计算机网络完整体系而言,缺少一部分内容因此学习计算机网络原理时,会采取折中的方法,综合OSI和TCP/IP的优点,采取原理体系结构(适合教学):
物理层
先看最简单的情况,两台计算机通过网线连接起来:
- 采用怎样的传输媒体
图中采用双绞线网线
- 计算机采用怎样的物理接口
图中采用RJ45以太网接口
- 使用怎样的信号表示比特0和1
数据链路层
例如在一个交换式以太网中:
我们要解决以下问题
- 如何标识网络中的计算机(主机编址问题,例如MAC地址)
- 如何从信号所表示的一连串比特流中区分地址和数据
-
网络层
解决了物理层和数据链路层就可以实现分组在一个网络上传输了,但是因特网是由很多网络组成的还要解决网络层的问题。
例如在这个由四台主机和三台路由器组成的小型互联网中:
有如下问题: 如何标识个网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址)
-
运输层
当网络中的主机可以相互交互时,在运输中还有一些问题:
解决进程之间进行网络的通信问题(收到的分组该交给浏览器还是qq)
-
应用层
在上面层次的问题解决之后,我们就可以实现进程之间基于网络的通信:
再此基础上: 通过应用进程间的交互来完成特定的网络应用
计算机网络体系结构分层思想举例
这里以通过浏览器输入网址访问一个网站为例:
主机端自顶向下:
- 应用层:
按照HTTP协议的规定,构建一个HTTP请求报文,将HTTP报文交付给运输层处理
- 运输层:
给HTTP请求报文添加一个TCP首部,使之成为TCP报文段,以下是TCP报文段的首部格式,该首部的作用主要是为了区分应用进程,以实现可靠传输,运输层将TCP报文段交付给网络层处理
- 网络层:
给TCP报文段加上一个IP首部,使之称为IP数据报,以下是IP数据报的首部格式,该首部的作用是为了使IP数报可以在互联网上传输(可以被路由器转发),
- 数据链路层:
数据链路层给IP数据包添加一个首部和一个尾部,使之成为帧,下面是以太网帧首部的格式,首部的作用是为了让帧在一段链路上网络上传输,可以被响应的目的主机接收,帧尾部的作用是为了让目的主机检查接收到的帧是否有误码
- 物理层:
物理层将帧看作比特流,由于N1是以太网,所以要再在比特流前添加前导码,然后将加上前导码的比特流变换成相应信号发送到传输媒体
路由器:
- 物理层:
将信号变成比特流,去掉前导码,交付给数据链路层,实际交付的是帧
- 数据链路层:
数据链路层去掉帧的首部和尾部,将其交付给网络层,实际交付的是IP数据报
- 网络层:
解析IP数据报的首部,从中提取出目的网络地址,查找自身路由表,确定转发端口,以便进行转发。之后再传到数据链路层,变成帧,再传到物理层,N2是以太网,要再添加前导码,转换成响应信号发送到传输媒体。
Web服务器:
向上层层交付就行了 ,最后应用层拿到HTTP请求报文,再发回HTTP响应报文,层层封装,发回主机
计算机网络体系结构中的专用术语
实体
任何可发送或接收信息的硬件或软件进程
- 对等实体:收发双方相同层次中的实体
协议
协议:是控制两个对等实体进行逻辑通信的规则的集合。
为什么是逻辑通信:这种通信其实并不存在,它只是我们假设出来的一种通信,目的在于研究某一层而不用考虑其他层
协议的三要素:
- 语法:
定义所交换信息的格式
也就是说,语法定义了所交换信息由哪些字段以及何种顺序构成
- 语义:
定义通信双方所要完成的操作
- 同步:
服务
- 在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
- 要实现本层协议,还需要使用下面一层所提供的服务
- 协议是“水平”的,服务是“垂直”的。
- 实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上的实体是“透明”的
- 服务访问点:
在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型
- 数据链路层的服务访问点为帧的”类型”字段
- 网络层的服务访问点为IP数据报首部中的”协议字段”。
- 运输层的服务访问点为”端口号”
- 服务原语
上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
- 协议数据单元PDU
对等层次之间传送的数据包称为该层的协议数据单元
- 服务数据单元SDU
同一系统内,层与层之间交换的数据包称为服务数据单元
- 多个SDU可以合并成为一个PDU;一个SDU也可划分为几个PDU.