计算机网络体系结构
OSI七层模型(了解)
应用层、表示层、会话层、运输层、网络层、数据链路层、物理层
TCP/IP 四层结构(了解)
网络接口层、网际层、运输层、应用层
五层原理体系结构(掌握)
首先我们谈谈为什么要分层,也就是分层的好处是什么
计算机是个非常复杂的系统
分层可以将庞大复杂的问题,转化为若干较小的局部问题,方便处理
接下来我们来看一下都会遇到什么样的问题,如何把每个问题都归结到相应的层次中去
物理层:假想最简单的情况-两台计算机通过一条网线连接起来
采用什么样的传输媒体(介质:网线等)
采用怎么样的物理接口
采用怎么样的信号表示比特0和1
数据链路层:这里举总线型的网络进行示例
如何标识网络中的各个主机(主机编址问题,例如MAC地址)
如何从信号所表示的一连串比特流中区分出地址和数据
如何协调各主机争用总线
网络层:
如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址)
路由器如何转发分组,如何进行路由选择
运输层:
如何解决进程之间基于网络的通信问题:服务器返回信息是如何知道应该返回给应用进程一(浏览器)还是引用进程二(QQ)的呢
出现错误传输时,该如何处理呢
应用层:
通过应用进程间的交互来完成特定的网络应用
五层原理体系结构每层功能小结
应用层:解决通过应用进程间的交互来实现特定网络应用的问题
运输层:解决进程间的基于网络的通信的问题
网络层:解决分组在多个网络上进行传输(路由)的问题
数据链路层:解决分组在一个网络(或者一段链路)上传输的问题
物理层:解决使用何种信号来传输比特的问题
分层思想举例:主机向Web服务器发送浏览器访问请求(网络拓扑如下所示)
输入网址之后,主机(浏览器应用进程)会向web服务器(浏览器应用进程)发送请求,web服务器收到请求之后会发回相应的响应,主机收到响应之后,会解析为具体的页面显示出来
主机A的处理过程:
应用层首先会构建一个HTTP请求报文,应用层会交付给运输层处理
运输层会添加一个TCP首部,成为TCP报文段,目的是为了区分应用进程和实现可靠传输,运输层会交付给网络层处理
网络层会给TCP报文段添加一个IP首部,成为IP数据报,目的是使IP数据报可以在互联网上进行传输,也就是可以被路由器转发,网络层把IP数据报交给数据链路层处理
数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧,首部的目的是使得帧能够在一段链路上,或者一个网络上进行传输,能够被相应的目的主机接受,尾部的目的是让目的主机检查,帧是否有误码,然后接着传给物理层
物理层将帧看作是比特流,给比特流前添加前导码,目的是让目的主机做好接收帧的准备。物理层将变化好的比特流变化为相应的信号发送到传输媒体,信号通过传输媒体到达路由器
路由器的处理过程:
物理层将信号变换为比特流,然后去掉前导码后,将其交付给数据链路层,实际上交付的是帧
数据链路层将帧的首部和尾部去掉后,将其交付给网络层这实际上交付的IP数据报
网络层解析IP数据报的首部,从中提取出目的网络地址,然后查找自身的路由表,确定转发端口,以便进行转发,转发给数据链路层
数据链路层给IP数据报添加一个首部和尾部,使之成为帧
物理层将帧看作是比特流,给比特流添加前导码,物理层将变化好的比特流变化为相应的信号发送到传输媒体,信号通过传输媒体到达Web服务器
Web服务器的处理过程:
物理层将信号变化为比特流,然后去掉前导码,变为帧然后交付给数据链路层
数据链路层将帧的首部和尾部去掉之后,交付给网络层,这实际上交付的是IP数据报
网络层将IP数据报的首部去掉之后,将其交付给运输层,这实际上交付的是TCP报文段
运输层将TCP报文段的首部去掉之后,将其交付给应用层,这实际上交付的是HTTP请求报文
应用层对HTTP请求报文进行解析,然后给主机发回HTTP相应报文。
之后的操作与之类似:Web服务器 -> 路由器 ->主机
计算机网络体系结构术语专用术语
1. 实体
实体
任何可发送或者接受信息的硬件或者软件进程
对等实体
收发双方相同层次中的实体
2. 协议
控制两个对等实体进行逻辑连接通信的规则的集合
协议的三要素(语法、语义、同步)
语法
定义所交换信息的格式(IP数据报中的字段和顺序)
语义
定义收发双方所要完成的操作(GET、POST等请求)
同步
定义收发双方的时序关系
3. 服务
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务
要实现本层协议,还需要使用下一层所提供的服务
协议是水平的,服务是垂直的
实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议,也就是说,下面的协议对上面的实体是透明的