计算机网络的体系结构篇
计算机网络体系结构的形成(仅限了解)
计算机网络是个非常复杂的系统,本篇文章仅从架构层面进行介绍,里面的诸多概念请不要深究,知道计算机网络是分层的就足够了。相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”是相当复杂的。“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
1974 年,美国的 IBM 公司宣布了系统网络体系结构 SNA(System Network Architecture)。这个著名的网络标准就是按照分层的方法制定的。不久后,其他一些公司也相继推出自己公司的具有不同名称的体系结构。由于网络体系结构的不同,不同公司的设备很难互相连通。
为了使不同体系结构的计算机网络都能互连,国际标准化组织 ISO(International Organization for Standardization) 于 1977 年成立了专门机构研究该问题,并提出了一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型 OSI/RM (Open Systems Interconnection Reference Model),简称为 OSI。这也就意味着,只要遵循 OSI 标准,一个系统就可以和位于世界上任何地方的、也遵循这同一标准的其他任何系统进行通信。
OSI 只获得了一些理论研究的成果,在市场化方面却失败了。原因包括:
- OSI 的专家们在完成 OSI 标准时没有商业驱动力;
- OSI 的协议实现起来过分复杂,且运行效率很低;
- OSI 标准的制定周期太长,因而使得按 OSI 标准生产的设备无法及时进入市场;
- OSI 的层次划分也不太合理,有些功能在多个层次中重复出现。
法律上的国际标准 OSI 并没有得到市场的认可。非国际标准 TCP/IP 却获得了最广泛的应用。TCP/IP 常被称为事实上的国际标准。
协议与划分层次
计算机网络中的数据交换必须遵守事先约定好的规则,这些规则明确规定了所交换的数据的格式以及有关的同步问题。
网络协议 (network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。网络协议是计算机网络不可或缺的组成部分。
网络协议的三个组成要素:
语法:数据与控制信息的结构或格式 。
语义:需要发出何种控制信息,完成何种动作以及做出何种响应。
同步:事件实现顺序的详细说明。
ARPANET 的研制经验表明,对于非常复杂的计算机网络协议,其结构应该是层次式的。
计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合。体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。实现 (implementation) 是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。体系结构是抽象的,而实现则是具体的,是真正在运行的计算机软硬件。
如上图所示,(a)表示 OSI 的七层协议体系结构,其概念清楚,理论也较完整,但它既复杂又不实用。(b)是商业上获得成功的 TCP/IP 四层体系结构:应用层、运输层、网际层和网络接口层。但最下面的网络接口层并没有具体内容。(c)是综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构 。
OSI 的七层协议体系结构的理解
应用层:能够产生流量并与用户发生交互的应用程序,比如微信、QQ、微博、抖音等应用,像记事本等单机应用不属于应用层。
表示层:进行加密、压缩,该层需要开发人员进行考虑。
会话层:服务器和客户端建立的会话,连接远程桌面,查木马,telnet -nb
传输层:可靠传输、不可靠传输、流量控制
网络层:IP地址编址、选择最佳路径
数据链路层:输入如何封装,添加物理地址。
物理层:电压、接口标准等。
五层协议体系结构
物理层主要包含:底层传输介质,电磁能及其利用,信号中信息的表示,无线电频率和电压等电学特性,以及相关联的硬件。
数据链路层:计算机与网络硬件之间的通信,访问共享媒体的机制,硬件(MAC)寻址,分组(帧)格式、数据包(帧)类型和解复用、差错检测和纠正技术。
网络层:通过 Internet 实现两台计算机之间的通信、数据报的格式、IP地址编址及分配、转发和路由选择等等。
运输层:可靠传输、不可靠传输、拥塞控制(流量控制)。
应用层:能够产生流量并与用户发生交互的应用程序。
TCP/IP 的体系结构
TCP/IP 体系结构包含四层:应用层、运输层、网际层和网络结构层。
应用层:为用户的应用程序提供接口,使用户可以访问网络。HTTP 超文本传输协议(浏览网页服务)FTP 文件传输协议(提供文件上传,文件下载服务,较慢但是可靠),SMTP 简单邮件传输协议(邮件的发送和转发)、Talnet 远程登录功能(配置交换机、路由器)、DNS 域名系统,将域名解析为IP地址(将百度的域名转换为服务器的IP地址)。
运输层:提供端到端(Port to Port)的通信(两台计算机上的软件间的连接),对信息流具有调节作用。面向连接的可靠传输协议 TCP,以及非面向连接的用户数据报协议 UDP。
网际层:IP数据包的封装和路径选择。主要协议:IP (数据包的封装,定义IP地址)、ICMP (错误诊断,比如用ping 命令测试网络连通性)、ARP协议(将IP地址解析为MAC地址)和 RARP (将MAC地址转换为IP地址)
网络接口层:网络接口层是TCP/IP与各种LAN或WAN的接口,主要功能就是对IP数据包进行拆封。
TCP/IP体系结构,各层主要协议:
两台主机之间的通信过程
主机 1 的应用进程数据先传送到应用层 ,然后加上应用层首部,成为应用层PDU (Protocol Data Unit,协议数据单元,OSI 参考模型把对等层次之间传送的数据单位称为该层的协议数据单元 PDU):
应用层 PDU 再传送到运输层,加上运输层首部,形成运输层报文:
运输层报文再传送到网络层,加上网络层首部,成为 IP 数据报(或分组):
IP 数据报再传送到数据链路层,加上链路层首部和尾部,成为数据链路层帧 :
数据链路层帧再传送到物理层,最下面的物理层把比特流传送到物理媒体 :
电信号(或光信号)在物理媒体(光纤、网线、路由器等)中传播从发送端物理层传送到接收端物理层:
主机 2 的物理层收到比特流后交给数据链路层:
数据链路层剥去帧首部和帧尾部后,把帧的数据部分交给网络层:
网络层剥去分组首部后,把分组的数据部分交给运输层:
运输层剥去报文首部后,把报文的数据部分交给应用层:
应用层剥去应用层 PDU 首部后,把应用程序数据交给应用进程:
最后,主机 2就可以对收到的应用程序数据进行处理啦!
OSI 参考模型把对等层次之间传送的数据单位称为该层的协议数据单元 PDU (Protocol Data Unit)。这个名词现已被许多非 OSI 标准采用。
任何两个同样的层次把数据(即数据单元加上控制信息)通过水平虚线直接传递给对方。这就是所谓的“对等层”(peer layers)之间的通信。各层协议实际上就是在各个对等层之间传递数据时的各项规定。
实体、协议、服务和服务访问点
实体 (entity) 表示任何可发送或接收信息的硬件或软件进程。
协议是控制两个对等实体进行通信的规则的集合。
服务:即上下层,下层向上层提供服务,上层需要使用下层提供的服务来实现本层的功能。
服务访问点 SAP (Service Access Point):相邻两层实体间交换信息的地方。
本文转载自微信公众号「景禹」,可以通过以下二维码关注。转载本文请联系景禹公众号。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341