网络分层概念

绪言

           在当今社会,科技发展如此迅速、网络膨胀如此剧烈、信息爆炸如此剧烈,当众多新生的专业术语(term),特别是计算机、通信和电子方面的术语以疯狂之势向你的大脑发起强烈的占领企图时,你是否一筹莫展?  这些术语使你置身于山岚云蔼般的仙境,飘忽而令人迷茫。本系列文章就是为你让你明了这些虚无飘渺的术语的本质,它们只不过是环绕在简单理论周围的雾气罢了。透过这些雾气,你才会发现,原来内在的世界是如此的简单明了。这也是此类文章取名一针见血的本意!

网络分层概念


           为什么首先解释这个概念呢?一来是学习计算机网络,必不可少的是网络分层这一概念(Term, network architecture)。其二是我刚学的时候也是比较迷惑的,我还以为是我的理解能力有问题。当其他的初学者问我如何理解网络分层时,我才发觉初学者要理解其中的概念其实的确有一定难度。谁叫计算机世界是一个发挥想象力的世界呢,这也是如此多的大师聚集于此的根本原因-它是艺术和科学、抽象和具体的完美结合!    

     
           现在,先来了解一下TCP/IP网络的一些概念。总所周知,TCP/IP网络分为四层,每层有不同的协议,见下图。
           每层的功能各不相同,每一层负责不同的功能:
           1) 链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中的网卡以及网络传输电缆(或无线电等其他任何传输媒介)。
           2) 网络层,处理数据分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议(网际协议),ICMP协议(internet互联网控制报文协议),以及IGMP协议(internet组管理协议)。
           3) 传输层,主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议: TCP(传输控制协议)和UDP(用户数据报协议)。
           TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。而另一方面, U D P则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。 这两种运输层协议分别在不同的应用程序中有不同的用途。
            4) 应用层负责处理特定的应用程序细节。我们的应用程序正是工作在这一层,如QQ、MSN、FTP等等。 了解上面一些概念以后,你懂了吗?也许你很迷惑,不禁要问,为什么要分层?为什么各层是独立的?这些层在那里,我能看见吗?数据是怎么封装的?也许还是云里雾里吧!其实这种分层概念是一种抽象的概念,没有真正的事物作为参照的。我将这种分层对应到邮政系统的具体事务中时,我想你就会明白了。


            首先,把邮政系统看成一个巨大的计算机网络。当你在北京向你在水富(云南的一个县城)的同学邮寄一封信时,这信中的内容就是你要传递的数据,你去邮局邮寄的时候,通过信封把信纸封装起来,然后在信封上添上邮政编码、地址和姓名,交给邮局后,邮局根据你的信封的邮政编码分类,然后通过火车、汽车运送到成都的邮局,成都的邮局可能再转发给水富当地的邮局。水富的邮局再用邮递人员直接送你同学的单位。你同学再去单位管理信件的工作人员那里取得信件,然后拆封阅读。由此就完成了一封信件的传递。


            看到这里你想到邮政系统和TCP/IP网络的关联的吗?其实这两个系统之间的映射非常简单。信件的内容其实就是数据,当你用信封装信纸时,其实如同应用层的的程序,如QQ,把你发的信息通过TCP协议,在你信息的前面加一个TCP头,里面包含了目的地计算机的端口。计算机中的端口和特别的应用程序关联,说明数据是发给那天计算机中的QQ程序。这就如同你在信封上填写的你同学的名字,这证明你是邮寄给一个单位中的你同学的,现在这信封加上你同学的名字就变成了TCP数据包了。信封上添上的单位地址,邮政编码就等同给TCP数据包加上IP报头,邮政编码,单位地址就是IP地址,指出邮件的目的地址。此时你要问为什么一个信封上既写了端口号又写了IP地址?那好,如果用两个信封,一个小的,一个大的。把信纸放进小的信封,写上你同学的名字,再把小信封放入大信封里,在大信封上写上你同学的单位地址,邮政编码。这样的信件也是可以寄到你同学手中了,这也算是两个不同的数据封装吧。当信件在邮局中,由邮件分类机按照邮件的地址分类(这种机器不会去读信件上收信人的姓名),再发送到下一级的邮局。实际上这就如同网络中的路由器,根据IP地址将不同的IP数据包分发到下一级的路由器。当信件到达你同学的单位时,信件管理人员不知信件是谁的,他拆了大信封,发现小信封上写有你同学的名字,就给了你同学了。就如同目的计算机收到IP包后,拆开得到TCP数据包,看到端口号后就转给相应的应用程序。你同学拆开小信封,就可以阅读信中的内容了。这如同应用程序收到TCP数据包,拆开后读取其中的数据一样。


            现在我们抽象出邮政系统中的分层概念。
            1) 链路层,即邮政系统的传输网络,如火车、汽车等等就是输入链路层。
            2) 网络层,处理信件地址的活动,你的大信封是网络层中的数据包,邮件分类机就是工作在网络层的路由器。
            3) 传输层,处理信件上的人名,你的小信封就是传输层的数据包,那个单位的邮件管理人员就工作在传输层。
            4) 应用层:你和你同学就相当于计算机的应用程序,拥有各自的名字,看作应用程序的端口。你们工作在应用层,主要工作是书写阅读信件,即处理数据。而所在的公司单位就相当于计算机的应用层,里面有很多的工作人员即应用程序。


            每一层都是独立的。火车、汽车等不理解管网络的的数据包的内容是什么,即不用了解信封上的地址的是什么意思。而邮件分类机也不用知道传输层的用户姓名是谁,单位的邮件管理人员也不用知道信件中的内容,他只负责把信件给你同学。你同学也不用知道前面几层是如何工作的,他的目的主要是读取邮件中的内容。还有一个要说明的,将你的信件封入小信封当中,实际上应该由一个专门负责封装信封的人来处理,他是工作在传输层的,如邮局的包裹封装人员,而你是工作在应用层的,应该不管传输层的事情。小信封由单位的信件管理员阅读,再把信件给你同学,他是工作在传输层的。你和你同学工作在应用层。由此可见,这种层的概念是抽象出来的,并不是真正的事物,是一种人为的根据特点来划分出来的层次,真正的实物是工作在不同层中的人和物。
            下一层为上一层提供服务。每一层都是为上一层服务的。火车、汽车等运送大信封。大信封内装入小信封。小信封再封装为人们的信纸,这就是下层向上层提供的服务。
            每层中的协议。邮政编码实际上如同网络层中的IP协议,只有邮件分类机才了解它的意思。写上你同学的名字发信件这种方式实际上如同UDP协议的,你和你同学没有建立连接,是属于无连接的服务,信件存在丢失的可能性。如果你给你同学通过邮局打电话,那么采用的就是面向连接的TCP协议,只有打通你同学的手机,你才叙述你要告知他你的消息。 你和你同学通过中文这种协议来通信。如果是个老外,那么当然就是英文这种协议了。当然也可以用你和你同学才能看懂的符号来通信,就算别的人偷窃你同学的信件,也不明白其中的内容,那么这就是应用层加密了。也可见,应用层的协议也是最多的,不同的程序采用不同的应用层协议。这就是为什么QQ不能和MSN通信的主要原因了。
            数据包的分组。网络中数据包是有长度,如果不符合规定的长度,就拆分成多个数据包。这就如同你写的内容太多,写了好几千张纸,装在一个信封里寄。但是邮局觉得太厚,不方便,就在你不知道的情况下把你的信封给你拆开,重新装入到好几信封中,再在到了目的地的邮局给你再装入到一个信封里。这就是数据的分组。这几个信封还可以走不同的路径,如一些走成都再到水富,一些走重庆再到水富,但只要到达水富邮件后,根据原有的信件顺序组装到一个信封里面就可以了。


            到这里,我想网络分层的概念大致能说清楚了,其他一些术语你也可以发挥想象。如信件中如果有个什么有毒小虫,可以看作一个病毒。安检人员,相当于杀毒软件,把这个小虫从信封中移除,就是杀毒。


BTW:由于时间比较仓卒,可能很多地方不对,欢迎指正。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值