一、什么是计算机网络?
我们这代人一出生就生活在互联网的世界里,可能会觉得这一切稀疏平常,理所应当。我第一次接触计算机的时候还是在小镇的一个网吧里,当时的计算机已经可以上网并且通过搜索引擎查阅资料了,那大概是在百度上市的2005年吧,所以我一直有种计算机天生就能上网的错觉。
事实上计算机的发展和网络技术的发展,是两条分叉并行的道路,在某一个阶段才得以汇合,共同构成了今天错综复杂的互联网时代。
计算机网络是通信技术与计算机技术紧密结合的产物。
计算机联网这一主题覆盖了许多不同类型的网络,规模有大有小,有知名的也有不知名的。不同的网络具有不同的目标、尺度和技术。其中有覆盖全球的因特网Internet,3G、4G等移动互联网(无线广域网,这是另外一个大的主题了),无线局域网802.11,以及正在发展的车联网、物联网(传感器网络)等等。
当下发展火热的云计算技术也与计算机网络息息相关。
二、计算机网络体系结构
计算机网络是个非常复杂的系统 。
比如,连接在网络上的两台计算机需要进行通信时,由于计算机网络的复杂性和异质性,需要考虑很多复杂的因素,比如:
- 这两台计算机之间必须有一条传送数据的通路;
- 告诉网络如何识别接收数据的计算机;
- 发起通信的计算机必须保证要传送的数据能在这条通路上正确发送和接收;
- 对出现的各种差错和意外事故,如数据传送错误、网络中某个节点交换机出现故障等问题,应该有可靠完善的措施保证对方计算机最终能正确收到数据。
计算机网络体系结构标准的制定正是为了解决这些问题从而让两台计算机(网络设备)能够像两个知心朋友那样能够互相准确理解对方的意思并做出优雅的回应。也就是说,要想完成这种网络通信就必须保证相互通信的这两个计算机系统达成 高度默契。
事实上,在网络通信领域,两台计算机(网络设备)之间的通信并不像人与人之间的交流那样自然天然,这种计算机间高度默契的交流(通信) 背后需要十分复杂、完备的网络体系结构作为支撑。那么,用什么方法才能合理地组织网络的结构,以保证其具有结构清晰、设计与实现简化、便于更新和维护、较强的独立性和适应性,从而使网络设备之间具有这种 “高度默契” 呢?
答案是分而治之,更进一步地说就是分层思想。
分而治之的思想正好可以解决上面提到的这个复杂的问题。也就是说,我们可以将这个庞大而复杂的问题转化为若干较小的、容易处理的、单一的局部问题,然后在不同层次上予以解决,这也就是我们所熟悉的分层思想。在计算机网络体系结构中,分层思想的内涵就是:每层在依赖自己下层所提供的服务的基础上,通过自身内部功能实现一种特定的服务。
分层思想的优点如下:
- 耦合度低(独立性强)
上层只需通过下层为上层提供的接口来使用下层所实现的服务,而不需要关心下层的具体实现。也就是说,下层对上层而言就是具有一定功能的黑箱。
- 适应性强
只要每层为上层提供的服务和接口不变,每层的实现细节可以任意改变。
- 易于实现和维护
把复杂的系统分解成若干个涉及范围小且功能简单的子单元,从而使得系统结构清晰,实现、调试和维护都变得简单和容易。也就是说,对于设计/开发人员而言,这种方法使设计/开发人员能够专心设计和开发他们所关心的功能模块;对于调试/维护人员而言,这种方法也方便调试/维护人员去处理他们所负责的功能模块。
1、计算机网络体系结构的概念
计算机网络体系结构采用了分层的思想。那么,既然计算机网络体系结构的设计采用的是分层思想,那么它就必须得解决以下几个问题:
1、网络体系结构应该具有哪些层次,每个层次又负责哪些功能呢?分层与功能
2、各个层次之间的关系是怎样的,它们又是如何进行交互的呢?服务与接口
3、要想确保通信的双方能够达成高度默契,它们又需要遵循哪些规则呢? 协议
计算机网络体系结构必须包括三个内容,即分层结构与每层的功能,服务与层间接口和协议。所以,计算机网络体系结构的定义为:
在计算机网络中,层、层间接口及协议的集合被称为计算机网络体系结构。
2、计算机网络体系结构的标准
目前,由国际化标准组织ISO制定的网络体系结构国际标准是OSI七层模型,但实际中应用最广泛的是TCP/IP体系结构。换句话说,OSI七层模型只是理论上的、官方制定的国际标准,而TCP/IP体系结构才是事实上的国际标准。
OSI标准的制定者以专家、学者为主,他们缺乏实际经验和商业驱动力,并且OSI标准自身运行效率也不怎么好。与此同时,由于Inernet在全世界覆盖了相当大的范围,并且占领市场的标准是TCP/IP体系结构,因此导致OSI标准没有市场背景,也就只是理论上的成果,并没有过多地应用于实践。
三、计算机网络协议
OSI七层模型
OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即OSI开放互连系统参考模型。如下图。
每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实现的无关。
TCP/IP四层模型
TCP/IP是一组用于实现网络互连的通信协议。Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,它们分别是:
TCP/IP各层 | 功能 |
---|---|
应用层 | 应用层对应于OSI参考模型的高层(会话层、表示层、应用层),为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等。 |
传输层 | 传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP) 和 用户数据报协议(UDP)。 |
网络层 | 网际互联层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。注重重新赋予主机一个IP地址来完成对主机的寻址,它还负责数据包在多种网络中的路由。该层有三个主要协议:网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。 |
数据链路层(也称网络接口层、网络接入层) | 网络接入层与OSI参考模型中的物理层和数据链路层相对应。它负责监视数据在主机和网络之间的交换。事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接入层进行连接。地址解析协议(ARP)工作在此层,即OSI参考模型的数据链路层。 |
典型通信过程
其中,协议头部中含有完成数据传输所需的控制信息,比如地址、序号、长度、分段标志、差错控制信息等。传输层及以下各层的PDU均有各自特定的名称:
- 传输层 —— 段(Segment)
- 网络层 —— 分组/包(Packet)
- 数据链路层 —— 帧(Frame)
- 物理层 —— 比特(Bit)
TCP/IP五层协议(这里为了方便描述,将物理层也加上)和OSI的七层协议对应关系如下:
在每一层都工作着不同的设备,比如我们常用的交换机就工作在数据链路层的,一般的路由器是工作在网络层的。
在每一层实现的协议也各不同,即每一层的服务也不同。下图列出了每层主要的协议,其中每层中具体的协议如下:
更详细的图如下:这里只做简单了解