引子
 
数据通讯,简称数通,真要说起来,那可是一言难尽,不过,要说局域网,人缘可就好多了,起码感性认识一般总还都是有一些的吧?
作为一只资深菜鸟,俺这几年总算也有些收获。小时候听我的邻居(一对唱河南坠子的盲人夫妻)说过一句很有哲理的话,那就是“笨鸟先飞懒蛤蟆先蹦(他们当年走村串乡唱坠子书的时候,这通常是他们的开场白,接下来就是说唱得不好请大家多多包涵之类的话了)”,今天俺就做做这先飞笨鸟了。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

言归正传。

 

想当年,俺寝室二、三、四哥在局域网魔兽和反恐战场上,还是小有威名的,尤其三哥打反恐时脑袋往前一伸一伸地一副要把那墙看透的模样,实在是憨态可掬。
不过,有一利必有一敝,有四个同学被劝退了,还有几个重修的,好不伤感呐。
那么,这承载着弟兄们几多欢喜几多愁的局域网战场背后的原理是什么呢?

 

豁出去了,即然是笨鸟与菜鸟之间的交流,就顾不得浅薄了,通俗是最最要紧。

 

不费话了,下面就赶紧以局域网为突破口,先在数通的王国里,溜溜吧。

局域网

局域网的一个特点就是,大家的IP是在同一网段的,不同的网段也就代表了不同的局域网。
不好,这里提到了IP和网段两个概念,既然是菜鸟,连这两个概念也不懂,也说不定哦,那就只好麻烦俺来亲自解说一下了。

 

我们班的局域网,总体上是以寝室为单位的,一般就两三台电脑,后来,几个寝室连在了一起,打起CS来,那场面,就是不一样。
所以,局域网首先要解决的问题,就是三台以上电脑之间两两互相可以通讯。
但是,我们班的电脑都是只有一个网线插口的,顶多可以和另外一台电脑想连,怎么再跟第三台相连呢?这就需要一种神奇的设备,也就是传说中的交换机啦。先不必管它是怎么实现的,目前只需要知道一旦某台电脑连到了一台交换机上,所有连在这同一台交换机上的电脑之间就都可以互相通讯了,就是这么神奇。

 

不过,让神奇的东西变得不神奇,倒是很有意思的一件事情,这就不得不重提前面的IP概念了。三台电脑要想互相通讯,首先要相互区分,老三必须把二哥的电脑同老五的电脑区分开来,因为老五的电脑上面没啥好玩的东西,老五是学习型的人。区分的关键就是两个地址,一是前面说的IP地址,一是MAC地址,属于同一局域网的电脑的IP地址和MAC地址是不能相互重复的,因此,IP地址和MAC地址就可以代表一台电脑,或者说,IPMAC可以标识局域网中的不同主机,这么说,就有两分专业的味道了。
老三要通知老四“墙后有埋伏小心”,老三电脑发出的数据就不能只是这7个字,而是要带上老四的IPMAC,这样,老四就知道这是给自己的信息了,这样,就省得接收一些不相关的信息。数据或者信息,在数通中通常称为报文,而IPMAC由于位于报文的前面,也常被称为IP头和MAC头。
那么,可以小结一下了:局域网上,信息交换以报文为单位,报文是由报文头和有效数据两部分组成的,局域网上起作用的报文头主要是IP头和MAC头。

 

但是,还是不对啊,即使这样,老三要和老四通信,也要先知道老四的IPMAC才行啊,老三怎么知道老四的IPMAC呢?老四固然可以告诉老三自己的IPMAC,但是,那样它们的电脑相互还是不知道对方的IPMAC,也是白答。所以,局域网上的电脑要有一个相互学习对方IPMAC的过程和规则。这就不得不重提前面所说的网段的概念了。
网段说白了就是IP地址的一个连续的范围,但是,此范围的宽度是2N次方,不是任意宽度。比如,192.168.12.0/24就是一个网段,这个网段的宽度为256,也就是说,它包含256IP地址,从192.168.12.0192.168.12.255
那么,即然像第一段所说的那样,同一局域网中的所有主机都必须在同一网段内,就好办了。局域网上的对方IP是静态配置的,但是MAC是动态学习的,不对,应该说是IPMAC的对应关系是动态学习的。由于网段可以标识一个局域网,因此,局域网中只能学习本网段内的IP对应的MAC,这就是网段的一个意义。
当老三要通知老四的时候,他要知道老四的IP,但不需要知道老四的MACIP是老四告诉他,他配置在机器上的(就是在与老四建立CS连接的时候,需要隐式地或者显式地输入老四的IP)。老三要通知老四,实际上就是往老四的IP发数据,前面说过,必须首先知道老四的MAC才能完成这件事。
那怎么办呢?
老三发现老四的IP与自己是同一网段的,首先就给老四发一个特殊的报文,问:“老四(IP1)老四,我是老三(IP2),我的MAC0x00e0fc000001,你的MAC是多少?请回答,请回答”,因为此时老三还不知道老四的MAC,所以,它填的就是一个特殊的MAC,就是0xffffffffffff,老三的这条消息虽然是发给老四的,但是,局域网上的所有主机都会收到,但只有老四会回应,老四回答说:“老三(IP2MAC=0x00e0fc000001)老三,我是老四(IP1),我的MAC0x00e0fc000002,请查收,请查收”,老四再回答老三的同时,也把老三的IPMAC的对应关系记下来了。
这个特殊的报文就叫做ARP报文,这个特殊的过程和规则,就叫做ARP协议,IPMAC的对应关系学到以后,就在各自的主机上形成一条ARP表项。ARP报文的一个很重要的特征就是他的MAC是全F的,目标IP也是全F的,即,255.255.255.255

 

至此,局域网的工作原理就已经说完了。那么,老三发给老四的报文要先经过交换机,交换机怎么知道报文是给老四的而不是给二哥的呢?

 

欲知个中原因,且听下回分解。