实体层Physical Layer
实体层负责信号的传递,由于信号的本身是一种物理特性,经过量化以后用来代表资料,所以信号本身有其涵义,而信号的传递,实际上就是一连串资料位的传递。
在数学上的信号是一个时间为定义域的函数,其大小随着时间的改变而改。若根据函数的连续性来区分,信号可以分别为模拟信号和数字信号两种。模拟信号为连续函数,数字信号则为不连续函数,也就是离散函数。
传输媒体指的传递信号的介质,各种媒体都有其优点和适用时机。直接携带磁带或磁盘来传输资料,虽然有其实用性,但却缺乏实时的反应能力。双绞线,同轴电缆,和光纤这一系列的实体线路虽然具备实时的处理能力,但布线时却又轻易受地形的限制。至于无线传输则是以空气作为传输的介质,虽然可以省掉布线的困扰,但是却轻易受天候影响。通信卫星必须发射进入同步轨道,其涵盖范围最广,大约是地球表面的四分之一,地面上的站台则以天线来配合发送和接收等动作。
不同种类的信号其传输方式也不同,模拟传输使用调变技术来将资料的意义融入信号中,数字传输则以编码的方式来付予信号相当的意义。模拟信号行经放大器的时候,除了将信号放大以外,也将挟杂其间的噪声放大了,所以每次次放大都会累积一些噪声,次数多了以后轻易导致错误。数字传输则没有这种困扰,有于数字信号的准位非常分明(不是0就是1),很轻易区分,所以当数字信号行经接器的时候,不但可以将信号恢复到原来的准位,而且还可以过滤掉噪声,所以数字传输的错误率总是些模拟传输低。
多任务技术是为了避免频宽的浪费,当资料行经某些高速段落的时候,可以将多个低速的信号合并成一个高速信号来可以传输,之后再将这个高速信号还原成原来个别的低速信号。现在的多任务技术有分时多任务和频多任务两种,分时多任务是以轮流分配使用时段的方式来达到多任务的目的,分类多任务则是以划分频宽的方式来达到多任务的目的。
交换的技术被用于计算机网络的线路转接,最常用的交换技术有电路交换,分封交换,和信息交换三种。电路交换在传送之前先建立一条专用的路径,所有封包的传递都使用这条路径。分封交换采用先储存再转送的方法,逐步将封包送往目的地,在传送之前不预设任何路径,所以各个封包所走的路径未必相同。信息交换也是采用先储存再转送的方法,逐步将资料送到目的地。但因传送的时候以整份讯息为单位,所以整份信息都行经同一路径。
数据链结层 Data Link Layer
数据链结层的主要功能在相邻的主机之间建立一条既可靠又有效率的联机。因为实体层的功能只是单纯的信号传递,没有任何资料框的概念。所以到了数据链结层以后,必需这些位资料分段加框,形成资料单元,并配合流量和错误的管制措施,以确保传输的正确性。
除了人为因素外,噪声的干扰是造成传输错误的主要原因。噪声可分为四种,分别为热噪声、互相调变噪声、串音噪声和脉冲噪声。
数据链结层有三种运作模式,分别为"无需认可的非连接导向模式"、"需认可的非连接导向模式"和"连接导向模式".
由于实体层在数据的传递上并没有框的概念,所以接收端所收到的资料并未必就是正确的,可能比原来的资料多、或少、或甚至收不到资料。资料加框的目的便是为了侦测出这些错误情况,并加以更正。
错误的管制包括错误侦测和回复两个步骤,一般是先找出错误的所在,再加以更正。
网络层Network Layer
从发送端主机送出资料开始,网络层就开始引导这些资料穿越各个中间网络,最后到达接收端主机,所以网络层负责的是收、送两端点主之间整条路径的通信行为,主要功能包括命名、寻址、路径选择和拥塞管制。
命名的理由是为了应用上的方便,我们常会为网络上的各个主机取一个有意义的名字,以方便记忆,必要时还可以让一个主机同时拥有几个别名,以应付更复杂的应用环境。寻址的功能则是为了确定各个主机的正确位置,在实际传输时候,只知道收、送两端主机的名称是不够的,一定要知道该主机的确切地址,才能正确资料的流向,通常主机名称和地址之间是以对照表的方式来相互查询。
路径选择是在各个资料封包的流向掌舵,负责引导资料封包穿越各个中间网络,最后到达目的。常用的路径选择法有洪流法,伸展树路径先折法,静态路径选择法,贝尔曼福特法,焊阶层是路径选择法。
拥塞管制主要是在疏通流量,并且引导封包避开拥塞的路径,以避免资料回堵,确保传输的效率。死结是拥塞的一个特例,通常是由于互动的双方都在等候对方做出响应,才能继续进行未完的工作,所以造成了死结。如何避免死结,也是网络层的工作之一。
传输层Transport Layer
当网络层把各个封包导引到接收端主以后,须要传输层来将各个封包重组回来的信息。所以传输层的通信行为与网络层类似,也是负责在收、送两个端点主机之间传输资料,只是传输层的通信协议资料单元(TPDU)是整份讯息而不是分段处理以后的各个封包。
传输层的主要功能有分段处理、重新编号、流量管制和多任务处理。分段处理指将传输层的通信协议资料单元分割成网络层通信协议资料单元,也就将一份讯息分封成各个封包。重新编号指的是将属于同一份讯息的各个封包重新加上依序列的编号,以便接收端能重组回来的信息。流量管制则是在协调收、送的速度,以避免发送速度太快,导致接收端来不及接收的问题。多任务处理是指传输层联机的多任务情形,当一网络层联机的速度够快,且足提供多个传输层联机使用的时候,可以经由多任务处理这些传输层联机导入一个网络层联机。
;传输层的运作模式,可以为连接导向和非连接导向两种运作模式。非连接导向传输的特征是在传送资料之前不需要建立联机。当传输层要通过网络层送出封包的时候,先由发送端的传输层提出传送〞资料单元的要求(N-UNITDADT.request)〞,网络层便针对该项要求执行相关的服务,并将此一要求〞通知(指示) (N-UNITDATA.indication)〞接收端的传输层。接收端的传输层收到〞指示(N-UNITDATA.indication)〞以后,则依实际状况做出相对的〞响应(N-UNITDATA.response)〞,再由网络层根据该响应执行相关的服务,并向发送端的传输层〞确认(N-UNITDATA.confirm)〞该〞要求〞的执行结果。
连接导向在传送数据之前必须要建立联机。之后所有资料的传输都是经由这一条联机,完成所有资料的传输以后,再将联机释放出来。其联机的建立是使用网络层的〞联机(N-CONNECT)〞服务来完成;之后的封包传送是使用网络层的〞资料(N-DATA)〞服务来完成;当收、送的步调错乱时,则以网络层的〞重置(N-RESET)〞服务来重置该联机,让收、送步调重新取得同步;完成所有资料的传输以后,再以网络层的〞断线(N-DISCONNECT)〞服务来释出该联机。
交谈层Session Layer
当传输层各个讯息导引到接收端主机以后,交谈层继续将各个讯息组合起来变端点主机之间的对话(Dialog)。所以交谈层也是负责在收、送两端主机之间传输资料,指示所使用的通信协议资料单元(PDU)更大而已,交谈层的通信协议资料单元(SPDU)是一个对话的内容,其主要功能有建立交谈、交换资料、释放交谈、对话治理和错误回复五种。
交谈层的运作模式也和传输层一样有非连接导向和连接导向之分。非连接导向交谈直接使用〞数据(T-DATA)〞服务来交换数据,而连接导向交谈则先使用〞联机(T-CONNECT)〞服务来建立交谈,然后再以〞资料(T-DATA)〞服务来交换资料,最后则以〞释放(T-RELEASE)〞服务或〞离线(T-ABORT)〞服务来释放联机。
交谈层释放交谈的方法有两种,分别为唐突释放和循序释放,唐突释放使用〞释放(T-RELEASE)〞服务来释放联机,而循序释放则使用〞离线(T-ABORT)〞服务来释放联机,唐突释放会导致正在传输中的资料流失,循序释放则不会。
交谈层的对话治理是使用资料信物(Data Token)来管制发言的时机,并规定只有持有信物(Token)的一方可以发言(发送资料),另一方只能倾听(接收资料),假如传输有错误,则将整个对话的内容重送。
表示层Presentation Layer
当交谈层把各个对话导引到端点主机以后,表示层负责将各个对话的语法转成应用程序所使用的语法(Syntax)。所以表示层也是负责收、送两个端点主机之间传输资料,其通信协议资料单元(PPDU)也是一个对话的内容,但语法上已经转成应用程序所使用的语法。
表示层的主要功能有资料保密、数据压缩和语法转换三种,其运作模式也有非连接导向和连接导向之分。非连接导向的运作模式在传送资料之前不需要建立交谈,只是使的〞资料(S-DATA)服务,来完成资料的传递。连接导向交谈模式在传送资料之前要先建立联机,然后所有的对话都经由这个联机来进行,直到完成所有对话以后,再将联机释放出来。
资料保密是为了网络的安全,其过程可分为加密和解密两部分。当发送端送出资料的时候,为资料的安全起见,先将资料经过加密处理,变成保密资料来后再送出去,到达接收端以后,再经过解密处理可以得到原来传送的资料。
加密和解密是一套成对的编码和译码规则,加密实际上就是一种编码过程,而解密实际上也就是一种过程,编码的反向功能就是译码。字母与编码和更换位置编码是两种比较简单的加密/解密方法。
数据压缩是为了减少传输的资料量,压缩的时候以不失真为原则,压缩后的文字资料经过解压缩以后要能完全的还原回来,而压缩后的影像或语言资料,经过解压缩以后其影像或语音的品质也要符合一定的品质。
不同的应用程序常使用不同的语法,为了要让两端的应用程序顺利的通信双方必须先就传输过程中所使用的语法取得共识,所以发送端在送出资料之前其表示层必须将资料从发送端的语法较换成传输过程语法,到达接收端以后,再由接收端的表示层转换成接收端的语法。
Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...
07-05
Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...
07-05
KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...
07-05
Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...
07-05