网络通信基础知识


本文主要介绍网络分层、网络分段、子网掩码、网关功能、数据路由等基础知识。

1 网络分层

ISO提出的OSI(Open System Interconnection)模型将网络分为七层,即物理层(Physical)、数据链路层(Data Link)、网络层(Network)、传输层(Transport)、会话层(Session)、表示层(Presentation)和应用层(Application)。

  • 物理层:参考模型的最低层,该层是网络通信的数据传输介质,由连接不同结点的电缆与设备共同构成。主要功能是:利用传输介质为数据链路层提供物理连接,负责处理数据传输并监控数据出错率,以便数据流的透明传输。
  • 数据链路层:主要功能是在物理层提供的服务基础上,在通信的实体间建立数据链路连接,传输以“帧”为单位的数据包,并采用差错控制与流量控制方法,使有差错的物理线路变成无差错的数据链路。
  • 网络层:主要功能是为数据在结点之间传输创建逻辑链路,通过路由选择算法为分组(packet, 也称数据包)通过通信子网选择最适当的路径,以及实现拥塞控制、网络互联等功能。
  • 传输层:主要功能是向用户提供可靠的端到端(End-to-End)服务,处理数据包错误、数据包次序,以及其他一些关键传输问题。传输层向高层屏蔽了下层数据通信的细节,因此,它是计算机通信体系结构中关键的一层。
  • 会话层:主要功能是负责维护两个结点之间的传输链接,以便确保点到点传输不中断,以及管理数据交换等功能。
  • 表示层:主要功能是用于处理在两个通信系统中交换信息的表示方式,主要包括数据格式变换、数据加密与解密、数据压缩与恢复等功能。
  • 应用层:主要功能是为应用软件提供了很多服务,例如文件服务器、数据库服务、电子邮件与其他网络软件服务。

物理层实际上就是布线、光纤、网卡和其它用来把两台网络通信设备连接在一起的东西。第2层是以太网等协议,如果你在谈论有关MAC地址、交换机或者网卡和驱动程序,你就是在第2层的范畴。如果你在谈论一个IP地址,那么你是在处理第3层的问题,这是“数据包”问题,而不是第2层的“帧”。有关路由的一切事情都在第3层处理,地址解析和路由是3层的重要目的。第4层的数据单元也称作数据包(packets)。但是,当你谈论TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为“段(segments)”而UDP的数据单元称为“数据报(datagrams)”。有一些应用程序和协议在5层和6层。但是,对于理解网络问题来说,谈论这些问题没有任何益处。第7层是“一切”。7层称作“应用层”,是专门用于应用程序的。

2 网络分段

A类地址用于少量的网络(最多127个)主机数大于2¹⁶的大型网,每个A类网络可容纳最多2²⁴台主机;B类地址用于主机数介于2⁸~2¹⁶之间数量不多不少的中型网,B类网络最多2¹⁴个;C类地址用于每个网络只能容纳2⁸台主机的大量小型网,C类网络最多2²¹个。

A类表示的地址范围是1.0.0.0到127.255.255.255;B类表示的地址范围是128.0.0.0到191.255.255.255;C类表示的地址范围是192.0.0.0到223.255.255.255。A、B、C分别分配给特别大的网络,中型网络和小型网络使用,比如局域网就是用C类地址。A类网络的默认子网掩码是255.0.0.0,B类网络的默认子网掩码是255.255.0.0,C类网络的默认子网掩码是255.255.255.0。将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机地址,从而区分出任意IP地址中的网络地址和主机地址。

3 子网掩码

子网掩码(Netmask)是一个32位的2进制数, 其对应网络地址的所有位都置为1,对应于主机地址的所有位置都为0。子网掩码告知路由器,地址的哪一部分是网络地址,哪一部分是主机地址,使路由器正确判断任意IP地址是否是本网段的,从而正确地进行路由。网络上,数据从一个地方传到另外一个地方,是依靠IP寻址。从逻辑上来讲,是两步的。第一步,从IP中找到所属的网络;第二步,再从IP 中找到主机在这个网络中的位置。

子网掩码工作过程是:将32位的子网掩码与IP地址进行二进制形式的按位逻辑“与”运算得到的网络地址,将子网掩码二进制的非的结果和IP地址二进制进行逻辑“与”运算,得到的就是主机地址。如:192.168.10.11与 255.255.255.0,结果为192.168.10.0,其表达的含义为:该IP地址属于192.168.10.0这个网络,其主机号为11,即这个网络中编号为11的主机。

使用子网掩码划分子网后,子网内可以通信,跨子网不能通信,子网间通信应该使用路由器,并正确配置静态路由信息。划分子网,就应遵循子网划分结构的规则。就是用连续的1在IP地址中增加表示网络地址,同时减少表示主机地址的位数。例如,IP地址为130.39.37.100,网络地址为130.39.37.0、子网地址为130.39.37.0、子网掩码为255.255.255.0,网络地址部分和子网标识部分为“1”所对应,主机标识部分为“0”所对应。 使用CIDR表示为:130.39.37.100/24即IP地址/ 掩码长度。其中第三个字节上的255 所对应的8位二进制数值就是将主机地址位数借给了网络地址部分,充当了划分子网的位数。

另外,通过VLAN可以进一步的划分通信范围。VLAN技术的出现,使得管理员根据实际应用需求,把同一物理局域网内的不同用户逻辑地划分成不同的广播域,每一个VLAN都包含一组有着相同需求的计算机工作站,与物理上形成的LAN有着相同的属性。由于它是从逻辑上划分,而不是从物理上划分,所以同一个VLAN内的各个工作站没有限制在同一个物理范围中,即这些工作站可以在不同物理LAN网段。由VLAN的特点可知,一个VLAN内部的广播和单播流量都不会转发到其他VLAN中,从而有助于控制流量、减少设备投资、简化网络管理、提高网络的安全性。

4 网关功能

网关(Gateway)本质上不是一个产品而是一个网络层的概念,网关就是一个网络连接到另一个网络的“关口”。 计算机本身不具备路由寻址能力,所以计算机要把所有的IP包发送到一个默认的中转地址上面进行转发,也就是默认网关。这个网关可以在路由器上,可以在三层交换机上,可以在防火墙上,可以在服务器上,所以和物理的设备无关。按照不同的分类标准,网关也有很多种。TCP/IP 协议里的网关是最常用的,下文所讲的“网关”均指TCP/IP协议下的网关。

比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1-192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。TCP/IP 协议会根据子网掩码(255.255.255.0)与主机的IP地址作 “与” 运算的结果,判定两个网络中的主机处是否在同一的网络里。在没有路由器的情况下,两个网络之间是不能进行 TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上。而要实现这两个网络之间的通信,则必须通过网关。

如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。

一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。现在主机使用的网关,一般指的是默认网关。网关的IP必须要和局域网在同一网段,比如一个局域网网段为192.168.2.0/24,那么网关可以是192.168.2.1-192.168.2.244之间任意一位,其中192.168.2.255是广播地址,所以不能选择。但是,在选择默认网关的时候,一般选择192.168.2.1或者是192.168.2.244,因为这样比较好认,如果选择中间区域,在划分IP的时候,很容易冲突,选择两端的IP作为默认网关是最合适的,也是约定俗成的。但在实际使用是,默认网关最后一位总是习惯设置为1。

现实生活中,很多人也会把具有网关功能的设备称作是网关,比如路由器。网关是网络中的一个概念,指的是一个“网络”中的出口,是一个逻辑概念,并不是具体某种设备。路由器是一种设备,路由器可以实现网关的功能,但是路由器功能不仅仅是实现网关。网关可以由路由器实现,但是也不仅仅是由路由器实现,其他设备也可以实现网关功能。

5 数据路由

路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。路由通常与桥接来对比,它们的主要区别在于桥接发生在OSI参考模型的第二层(数据链路层),而路由发生在第三层(网络层)。路由器能够连接不同类型的局域网和广域网,如以太网、ATM网、FDDI网、令牌环网等。不同类型的网络,其传送的数据单元(包)的格式和大小是不同的。数据从一种类型的网络传输至另一种类型的网络,必须进行帧格式转换。路由器就有这种能力。实际上,我们所说的“互联网”,就是指各种路由器将各种不同的网络类型互相连接起来。

路由器是第三层网络设备。集线器工作在第一层(即物理层),没有智能处理能力,当一个端口的电流传到集线器中时,它只是简单地将电流传送到其他端口,不关心其他端口连接的计算机是否接收这些数据。交换机工作在第二层(即数据链路层),它要比集线器智能一些,对它而言,网络上的数据就是MAC地址的集合,它能分辨出帧中的源MAC地址和目的MAC地址,因此可以在任意两个端口间建立联系,但是交换机并不懂得IP地址,它只知道MAC地址。路由器工作在第三层(即网络层),它比交换机还要“聪明”一些,它能理解数据中的IP地址,如果它接收到一个数据包,就检查包中的目标网络地址以判断该包的目的地址在当前的路由表中是否存在(即路由器是否知道到达目标网络的路径)。如果发现包的目标地址与本路由器的某个接口所连接的网络地址相同,那么马上将数据转发到相应接口;如果发现包的目标地址不是自己的直连网段,路由器会查看自己的路由表,查找包的目的网络所对应的接口,并从相应的接口转发出去;如果路由表中记录的网络地址与包的目标地址不匹配,则根据路由器配置转发到默认接口,在没有配置默认接口的情况下会给用户返回目标地址不可达的ICMP信息。

出于安全和管理方便的考虑,主要是为了减小广播风暴的危害,必须把大型局域网按功能或地域等因素划成一个个小的局域网,这就使VLAN技术在网络中得以大量应用,而各个不同VLAN间的通信都要经过路由器来完成转发,随着网间互访的不断增加。单纯使用路由器来实现网间访问,不但由于端口数量有限,而且路由速度较慢,从而限制了网络的规模和访问速度。基于这种情况三层交换机便应运而生,三层交换机是为IP设计的,接口类型简单,拥有很强二层包处理能力,非常适用于大型局域网内的数据路由与交换,它既可以工作在协议第三层替代或部分完成传统路由器的功能,同时又具有几乎第二层交换的速度,且价格相对便宜些。在企业网和教学网中,一般会将三层交换机用在网络的核心层,用三层交换机上的千兆端口或百兆端口连接不同的子网或VLAN。不过应清醒认识到三层交换机出现最重要的目的是加快大型局域网内部的数据交换,所具备的路由功能也多是围绕这一目的而展开的,所以它的路由功能没有同一档次的专业路由器强。毕竟在安全、协议支持等方面还有许多欠缺,并不能完全取代路由器工作。在实际应用过程中,典型的做法是:处于同一个局域网中的各个子网的互联以及局域网中VLAN间的路由,用三层交换机来代替路由器,而只有局域网与公网互联之间要实现跨地域的网络访问时,才通过专业路由器。三层交换技术的本质就是由二层交换技术结合了三层转发技术而研发出的新型技术。

路由工作包含两个基本的动作:确定最佳路径和通过网络传输信息。在路由的过程中,后者也称为(数据)交换。交换相对来说比较简单,而选择路径很复杂。

  • 路径选择:metric是路由算法用以确定到达目的地的最佳路径的计量标准,如路径长度。为了帮助选路,路由算法初始化并维护包含路径信息的路由表,路径信息根据使用的路由算法不同而不同。路由算法根据许多信息来填充路由表。目的/下一跳地址对告知路由器到达该目的最佳方式是把分组发送给代表“下一跳”的路由器,当路由器收到一个分组,它就检查其目标地址,尝试将此地址与其“下一跳”相联系。路由表比较metric以确定最佳路径,这些metric根据所用的路由算法而不同。路由器彼此通信,通过交换路由信息维护其路由表,路由更新信息通常包含全部或部分路由表,通过分析来自其它路由器的路由更新信息,该路由器可以建立网络拓扑图。路由器间发送的另一个信息是链接状态广播信息,它通知其它路由器发送者的链接状态,链接信息用于建立完整的拓扑图,使路由器可以确定最佳路径。
  • 交换算法:交换算法相对而言较简单,对大多数路由协议而言是相同的,多数情况下,某主机决定向另一个主机发送数据,通过某些方法获得路由器的地址后,源主机发送指向该路由器的物理(MAC)地址的数据包,其协议地址是指向目的主机的。路由器查看了数据包的目的协议地址后,确定是否知道如何转发该包,如果路由器不知道如何转发,通常就将之丢弃。如果路由器知道如何转发,就把目的物理地址变成下一跳的物理地址并向之发送。下一跳可能就是最终的目的主机,如果不是,通常为另一个路由器,它将执行同样的步骤。当分组在网络中流动时,它的物理地址在改变,但其协议地址始终不变。ISO定义了用于描述此过程的分层的术语。在该术语中,没有转发分组能力的网络设备称为端系统(ES–end system),有此能力的称为中介系统(IS–intermediate system)。IS又进一步分成可在路由域内通信的域内IS(intradomain IS)和既可在路由域内又可在域间通信的域间IS(interdomain IS)。

主机A与主机B通信,首先主机A肯定要封装这些需要发给主机B的数据包,这个数据包路径部分需要:主机A的IP和MAC,目标主机B的IP和MAC,可根本没有目标主机B的MAC地址,所以需要通过ARP报文在网路内查询目标主机的MAC地址。对于同一网段和不同网段的两台主机,其路由的过程不同。主机A会比较源IP和目标IP,通过子网掩码计算一下,查看源IP和目标IP是否在同一个IP网段内。

  • 相同网段:首先主机A就向本网段发一个ARP(地址转换协议)请求,这个ARP请求包中包括主机A的源IP地址,源MAC地址,目标主机B的IP地址,而目标MAC地址为广播MAC地址(全部为F),因为我们要找的就是目标MAC,所以这里用广播MAC地址,所以整个局域网的所有主机都能收到这个请求MAC地址的数据包,当主机B收到此ARP请求后,立即构建一个包括自己的MAC地址的ARP回应包,回应给主机A,当主机A收到这个ARP回应后,完成了找寻目标MAC,从而把目标主机B的MAC地址正确封装进上面还未封装结束的正准备发给主机B的数据包,在这时,源IP和源MAC以及目标IP和目标MAC都已正确存在于数据包中,那么这里主机A向网络内发出这些数据包,因为目标地址在本网段,所以本网段所有主机都能收到这个数据包(这是以太网的特性),最后只有真正的目标主机B能够打开这些数据包。
  • 不同网段:两个主机在不同网段,就要用到网关了,主机A在准备发向主机B的数据中,封装好自己的IP地址和MAC地址,同时也封装好目标主机B的IP地址,数据包封装到这里,同样也是用ARP去广播,因为网关必须和本机在同一网段,理所当然,网关能够收到这个ARP请求并能正确回应给主机A,这时主机A在数据包中封装好自己的IP地址和MAC地址,同时也封装好目标主机B的IP地址和网关的MAC地址,把数据包从网卡发出去,因为目标MAC是网关的,所以网关收到这个数据包后,发现目标MAC是自己,而目标IP却是别人,所以它不可以再往上打开这个数据包,它要做的工作就是把这些数据包发给下一跳路由器(如果网关自身就是一台路由器的话),如果网关是一台普通PC,那么它就发给路由器,让路由器把这些数据包正确传输到远程目标网络,到达远程网络后,它们的网关再将数据包发给数据包中的目标IP,即源主机A寻找的目标主机B,从而真正结束不同网络之间的通信,回应的数据包也是用同样的方法到达目的地,在这里,还需要注意的是,当网关把数据包发给下一跳路由器时,这个数据包必须由网关把目标MAC改成下一跳路由器的MAC地址(通过ARP得到),而源端MAC改成发出端口的MAC地址,否则下一跳路由器收到目标MAC不是自己的数据包,会丢弃不予理睬,下一跳路由器再发给下一跳路由器同样要把目标MAC地址改为下一跳路由器的MAC地址再发出去。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值