计算机网络学习(3):组建简单网络
要组建成一个基本的网络,只需要一台集线器(Hub)或一台交换机、几块网卡和几十米UTP线就能完成。
事实上,这样的简单网络是更复杂网络的基本单位。把这些小的、简单的网络互连到一起,就形成了
更复杂的局域网(LAN)。
3.1 最简单的网络
如图所示,简单用一个集线器(Hub)就可以将数台计算机连接到一起,使计算机之间可以将数台计
算机连接到一起。在购买一台集线器后,只需要简单用双绞线把各台计算机和集线器连接到一起,
并不需要做其他的任何事情,一个简单的网络就搭建成功了。
集线器的功能是帮助计算机转发数据包,它是最简单的网络设备。集线器的工作原理非常简单,
当集线器从一个端口收到数据包后,它简单的把数据包向所有端口转发。发送主机数据包的报
头包含目标主机的MAC地址,只有与该MAC地址相同的主机才会接收数据包,而其他的主机不会
接收该数据报。
3.2 网络连接的基本技术
3.2.1 数据封装 - 计算机网络通讯的基础
数据包在发送前,主机需要为每个数据段封装报头。而在报头中,最重要的是地址。
图3.2 数据包的分段与封装
如图3.2所示,数据报在传送前,被添上了帧报头(Frame Header)、IP报头(IP Header)、
TCP报头(TCP Header)、帧尾(Frame Trailer)。被封装好了报头报尾的一个数据段,被
称为数据帧。
将数据分段按帧传送的目的有2个:数据出错重发、通讯线路争用平衡。
帧报头(Frame Header)包含目标MAC地址和源MAC地址;
IP报头(IP Header)包含了目标IP地址和源IP地址;
TCP报头(TCP Header)包含了目标端口(port)地址和源端口(port)地址。
网卡通过判断数据报MAC地址是否和自己相同,来决定是否接收数据报;
当搭建复杂网络时,我们不仅需要知道目标主机的地址,还需要知道目标主机的网络地
址。IP地址包含网络地址和主机地址两个信息。当从源主机发送数据报到目标主机时,
互联网中的路由器设备需要查询IP地址中的网络地址信息部分,才能知道要把数据报发
送到哪个网络,而后通过IP地址的主机地址部分发送到目标主机。
当数据通过MAC地址和IP地址联合寻址达到目标主机后,目标主机将数据报交给某个应用
程序去处理,但怎么确定要交给哪个应用程序呢?这就是通过最后目标端口(port)地址
来确定了。
由此可见,要完成数据传输,需要三级寻址:
IP地址用于网间寻址,
MAC地址用于网段寻址,
端口地址用于应用程序寻址。
帧尾(Frame Trailer)用于数据完好校验,较流行的帧校验算法有CRC校验、二维奇偶校
验(Two-dimension parity)、网际校验(Internet checksum)。
3.2.2 MAC地址
如果3.3,高3个字节(00 60 2F)代表生产厂家企业编码(OUI),低3个自己是随机数。需要
保证局域网内各台主机的MAC地址唯一。
特殊的MAC地址 FF:FF:FF:FF:FF:FF是广播地址,使用该地址的数据报表示该帧数据是发
给所有主机的。
3.2.3 网卡
网卡固化了MAC地址。
自带MAC地址比较电路,判断数据报的MAC地址是否和自己相同来决定是否接收该数据报。
3.2.4 以太网
在以太网中,如果多台主机需要同时通讯,那么这些主机谁先争得传输介质(通讯线路),
谁就获得数据发送权利,该技术称为总线争用介质访问。
另外还有令牌网技术,该技术通过令牌大家轮流获取介质访问权限。
以太网规范:IEEE 802.3协议
令牌网规范:IEEE 802.5协议
图3.4 介质访问控制技术
3.2.5 IEEE 802.3数据帧结构
图3.5 IEEE 802.3的帧格式
同步字段(Preamble): 早期用于同步脉冲的字段,值固定为01010101,现已不用,保留
以维持兼容性。
起始标记字段(Start of Frame Delimeter):值固定为10101011。
目标MAC地址字段(Destination Address):目标主机MAC地址。全1是广播地址。
源主机MAC地址字段(Source Address):源主机MAC地址。
帧长度/类型字段(Length/Type):当这个字段数值小于0x0600时,表示长度;
当大于0x0600时,表示类型。
长度是指数据帧的字节数;类型表示接受主机的上层协
议,如ARP,该字段应为0x0806。
数据(Data):帧数据。最小46个字节,最大1500字节。规定帧的最小字节数是为了定时需
要,如果不够这个字节,需填充。
帧校验字节(Frame Check Sequence):一个4字节的CRC校验值。
IEEE 802.3之前,还有个Ethernet协议,现在的IEEE 802.3已经兼容Ethernet协议,用字
段Length/Type是否为0x0600来区分。
3.3 以太网交换机
3.3.1 以太网交换机的工作原理
交换机用以替代集线器(Hub)将PC、服务器、外设连接成一个网络。
交换机区别于集线器的是能够同时提供点对点的多个链路,从而大大提高网络带宽。
图3.6 以太网交换机中的交换表
交换机的核心是交换表。交换表是一个交换机端口与MAC地址的映射表。
一帧数据到达交换机后,交换机从包头取出目标MAC地址,通过查表,得知应该向哪个端口
转发,进而将数据帧从正确的端口转发出去。如果交换机查不到该向哪个端口转发,则向
所有端口转发。
那么交换表是如何得到的呢?交换机是通过自学习得到交换表的。交换表是放置在交换机
的内存中,交换机的刚上电的时候,交换表是空的,此时,如果图3.6中0260.8c01.1111主
机向0260.8c01.2222主机发送报文的时候,交换机无法通过查表得知应该向哪个端口转发
报文,于是向所有端口转发。虽然交换机不知道目标主机0260.8c01.2222在自己的哪个端
口,但是它知道报文来自e0端口,因此,转发报文后,交换机便把帧报头的源MAC地址
0260.8c01.1111放到其交换表的e0端口行中。交换机对其他端口也是这样辨识MAC地址,经
过一个时间后,交换机得到了完整的交换表。
图3.7 交换机(左)的e1端口捆绑多个MAC地址
交换机级联的时候,一个端口可以捆绑多个MAC地址。如图3.7所示,当交换机级联时,连
接到其它交换机的主机的MAC地址都会捆绑到本交换机的级联端口。
交换机为了避免交换表中的垃圾地址,交换机每隔一段时间,会清楚交换表,重新学习。
当然这个也会对带宽造成浪费,新的智能交换机可以选择遗忘那些长时间没有通讯流量
的MAC地址,进而改善交换机性能。
如果用以太网交换机连接一个简单网络,一台新的交换机不需要任何配置,将各个主机
连接到交换机就可以工作了。
3.3.2 以太网交换机的类型
直通式(cut through)和存储转发式(store and forward)。
直通式交换机在接到报文后几乎只要接到报头中的目标MAC地址就可以立即转发,不需要等
待整个数据帧。
存储转发式首先对接收到的报文进行CRC校验,然后根据帧报头中的MAC地址和交换表,确
定转发的输出端口,然后把报文放到那个输出端口的高速缓冲存储器中排队、转发。
直通式快,但会转发损坏的包;而存储转发岁有延迟,但不转发坏包,可靠性高,节省CPU
资源和带宽。
另外,服务质量优先(QoS)技术也只能在存储转发式交换机中实现。