计算机网络体系结构

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

OSI制定周期长,复杂,运行效率低

TCP/IP 更简单,且有商业驱动,抢占市场,成为标准

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

计算机网络是个非常复杂的系统。早在最初的ARPANET设计时就提出了分层的设计理念。

分层“可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。

下面,我们按照由简单到复杂的顺序,来看看实现计算机网络要面临哪些主要的问题,以及如何将这些问题划分到相应的层次,层层处理。

1.若两台计算机用一根网线连接起来,有何问题

归到物理层

2.若几台计算机都连到一根线上(总线型网络)

归到数据链路层

3.若由几个网络和路由器组成一个小型互联网

归到网络层

4.若一台主机开了一个浏览器进程和QQ进程(与网络通信相关的进程),一台服务器里运行着与网络通信相关的服务器进程,某时刻,主机收到了来自服务器的分组,要将分组交给哪个进程进行处理

归类到运输层

5.通过上述,已经实现了进程间基于网络的通信,在此基础上,只需要制定各种应用层协议,并按协议标准编写相应的应用程序,通过应用进程间的交互来完成特定的网络应用。

归类到应用层

总结

分层思想举例

主机

应用层按http协议的规定构建一个http请求报文

应用层将http请求报文交给运输层处理

运输层给http请求报文添加一个tcp首部(区分应用进程,实现可靠传输) 使之成为tcp报文段 运输层将tcp报文段交给网络层处理

网络层给tcp报文段添加一个ip首部(能在互联网上传输即能被路由器转发) 使之成为ip数据报 网络层将ip数据报交付给数据链路层处理,

数据链路层给ip数据报添加一个首部(能在一个链路或一个网络上传输)和一个尾部(让目 的主机检测接收到的的帧是否有误码)

使之成为 数据链路层将交付给物理层

物理层将看作是比特流(如果是以太网,还会加一个前导码,为让目的主机做好接受的准备)变换成相应的信号发送到路由器

路由器 物理层将信号变换为比特流,去掉前导码后,交付给数据链路层,实际上交付的是

数据链路层将首部尾部去掉后交付给网络层,实际上交付的是ip数据报

网络层解析ip数据报首部,从中提取出目的网络地址,然后查找自身的路由表,确定转发端口,以便进行转发,再将其交付给数据链路层

数据链路层给ip数据报添加一个首部(能在一个链路或一个网络上传输)和一个尾部(让目 的主机检测接收到的的帧是否有误码)(也是路由器自己的)

使之成为 数据链路层将交付给物理层

物理层将看作是比特流,变换成相应的信号发送到相应服务器

服务器

物理层将信号变换为比特流,去掉前导码后,交付给数据链路层,实际上交付的是

数据链路层将首部尾部去掉后交付给网络层,实际上交付的是ip数据报

网络层去掉ip数据报的首部,交付给运输层,实际上交付的是tcp报文段

运输层去掉tcp报文段首部,交付给应用层,实际上交付的是http请求报文

应用层收到http请求报文后,进行解析,如何向主机发回http响应报文

过程同理。再倒过来

计算机网络体系结构中的专用术语 实体,协议,服务

实体:任何可发送或接收信息的硬件或软件进程。

对等实体:收发双方相同层次中的实体。

如,通信双方的网卡,正在进行通信的应用进程就是对等实体

协议:控制两个对等实体进行逻辑通信的规则的集合。

协议的三要素:语法 语义 同步

在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。

要实现本层协议,还需要使用下面一层所提供的服务。

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

实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是”透明“的。

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

服务原语 上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。

协议数据单元PDU ** 对等层次之间传送的数据包**称为该层的协议数据单元。

服务数据单元SDU 同一系统内,层与层之间交换的数据包称为服务数据单元。

多个SDU可以合成为一个PDU;一个SDU也可划分为几个PDU。