计算机网络
1 概述
计算机网络就是把多种形式的计算机用通信线路连接起来,并使其能够互相进行交换的系统。实际上,计算机网络包括了计算机、各种硬件、各种软件、组成网络的体系结构、网络传输介质和网络通信计数。因此,计算机网络是计算机和通信技术结合的产物。
2 计算机网络体系结构
要想让两台计算机进行通信,必须使他们采用相同的信息交换规则。在计算机网络中,我们把用于规定信息的格式以及如何发送和接收信息等为数据交换而建立的规则、标准和约定称为网络协议。具体来说,一个网络协议主要由以下三个要素组成:
- 语法:是指数据与控制信息的结构或格式,语法确定通信双方“如何讲”,定义传输的信息格式,相当于说明语言中语句的格式。
- 语义:指需要发出何种控制信息,完成何种动作以及作出何种应答,语义确定通信双方之间“讲什么”,对请求、执行的功能等进行解释,包括识别结果的处理,相当于对一个语句含义的说明。
- 同步:事件实现顺序、速度匹配等的详细说明。
我们将计算机网络的各层次及其协议的集合称为网络的体系结构。
2.1 协议分层
为了减少网络设计的复杂性,绝大多数网络采用分层设计方法。所谓分层设计方法,就是按照信息的流动过程将网络的整体功能分解成一个个的功能层,不同机器上的同等功能之间采用相同的协议,同一机器上的相邻功能层之间通过接口进行信息传递。
协议是不同机器同等层之间的通信约定,而接口是同一机器相邻层之间的通信约定。不同的网络中,分层数量、各层的名称和功能以及协议都各不相同。然而,在所有的网络中,每一层的目的都是向它的上一层提供一定的服务。
2.2 服务类型
服务(Service)这个极普通的术语在计算机网络中无疑是一个极重要的概念。在网络体系结构中,服务就是网络中各层向其相邻上层提供的一组操作,是相邻两层之间的界面。
服务和协议常常被混淆,而实际上两者是截然不同的概念。为此我们再强调一下两者的区别。服务是网络体系结构中各层向他的上层提供的一组原语(操作),尽管服务定义了该层能够代表他的用户完成的操作,但丝毫未涉及这些操作是如何实现的。服务描述两层之间的接口,下层是服务提供者,上层是服务用户,而协议是定义同层对等实体之间交换帧、数据包的格式和意义的一组规则。网络各层实体利用协议来实现他们的服务。只要不改变提供给用户的接口和服务,实体可以随意地改变它们所使用的协议。这样,服务和协议就完全被分离开来。在 OSI 参考模型之前的很多网络都没有把服务从协议中分离出来,造成网络设计的困难。
2.3 ISO/OSI 参考模型
2.3.1 什么是 OSI 模型
OSI(Open System Interconnect),即开放式系统互连。OSI 参考模型是研究如何把开放式系统(即为了与其它系统通信而相互开放的系统)连接起来的标准。
2.3.2 为什么用 OSI 模型
OSI 参考模型将计算机网络分为 7 层,将联网计算机间传输信息的任务划分为 7 个更小、更易于处理的任务组。每一个任务或任务组则被分配到各个 OSI 层、每一层都是独立存在的,因此分配到各层的任务能够独立地执行。
在网络发展的初期,许多研究机构、计算机厂商和公司都大力发展计算机网络。这种自行发展的网络,在体系结构上差异很大,以至于他们之间互不相容,难以相互连接以构成更大的网络系统。为此,国际标准化组织(ISO)提出了开发系统互联参考模型(OSI/RM)。
2.3.3 OSI 七层模型的分层结构
OSI划分的七个层次由高到低依次为:Application(应用层)、Presentation(表示层)、Session(会话层)、Transport(传输层)、Network(网络层)、DataLink(数据链路层)和Physical(物理层)。
- 应用层
应用层是网络服务与最终用户的一个接口,是OSI模型中的最高层,是直接面向用户的一层。应用层是人机交互的窗口,通过应用层把人的语言输入到计算机当中去,为网络用户之间的通信提供专用的程序服务。 - 表示层
表示层为在应用过程之间传送的信息提供表示方法的服务。负责将接收到的数据翻译成二进制数组成的计算机语言,主要通过数据格式变化、数据加密与解密、数据压缩与解压等。表示层提供的数据加密服务是重要的网络安全要素,其确保了数据的安全传输,也是各种安全服务最为重视的关键。 - 会话层
会话层用于建立、管理、中止会话。会话层的主要功能是负责维护两个节点之间的传输联接,确保点到点传输不中断,以及管理数据交换等功能。会话层还可以通过对话控制来决定使用何种通信方式,全双工通信或半双工通信。 - 传输层
传输层是计算机通信体系结构中关键一层,传输层定义了传输数据的协议端口号,以及流控和差错校验(两个端之间建立tcp、udp连接,对数据完整性要求高使用tcp,保障数据传输的完整性 ,但是成本比udp高,速度慢,语音视频这类实时采集的数据,没有文件完整性一说,而是采集多少就传输 多少,就用udp)。将上层应用数据分片并加上端口号封装成数据段,或通过对报文头中的端口识别。传输层实现了网络中不同主机上的用户进程之间的数据通信,为用户提供了端到端的服务。传输层起到了承上启下的作用,承接上层软件应用,下启网络数据传输。 - 网络层
网络层是以路由器为最高节点俯瞰网络的关键层,它负责将上层数据加上源和目的方的逻辑(IP)地址封装成数据包,实现数据从源端到目的端的传输。网络层进行逻辑地址寻址,实现不同网络之间的路径选择,这也就是我们所说的网络层的寻址功能。传输层为端到端通信,而网络层以下为点对点通信。 - 数据链路层
数据链路层的主要功能是如何在不可靠的物理线路上进行数据的可靠传输,它完成的是网络中相邻节点之间可靠的数据通信。为了保证数据的可靠传输,发送方把用户数据封装成帧,并按顺序传递各帧。由于物理线路的不可靠,因此发送方发出的数据帧有可能在线路上发生出错或丢失(所谓丢失实际上是数据帧的帧头或帧尾出错),则发送方必须重传这一帧数据,知道这一帧没有错误的到达接受方为止。这样,数据链路层就把一条实际可能出凑的链路转变成对网络层来说好像是不出错的一条链路。 - 物理层(Physical Layer)
物理层的主要功能是完成相邻节点之间原始比特流的传输。物理层协议关心的典型问题是使用什么样的物理信号来表示数据“1” 和“0”。物理层连接报文头部和上层数据信息都是由二进制数组成的,物理层将这些二进制数字组成的比特流转换成电信号在网络中传输。
3 参考资料
- OSI参考模型
- OSI七层模型