链路层通信
网桥工作在OSI模型中的第二层,即链路层。完成数据帧(frame)的转发,主要目的是在连接的网络间提供透明的通信。网桥的转发是依据数据帧中的源地址和目的地址来判断一个帧是否应转发和转发到哪个端口。帧中的地址称为“MAC”地址或“硬件”地址,一般就是网卡所带的地址。
但网桥互连会带来不少问题:其一是广播风暴,因为网桥对网络中广播类型的消息处理机制是不管传达内容是什么,最大限度的照发,沟通整个网络,让网络被广播信息充满直至瘫痪;其二是当与外部网络互连时,网桥会把内部和外部网络合二为一,成为一个网,双方都会自动向对方公开自己的所有网络资源,安全隐患非常明显。
路由原理
路由器工作在OSI模型中的第三层,即网络层。路由器根据IP地址来区分识别不同的网络,实现网络之间的互连和隔离,保持各个网络的独立性。路由器不转发广播消息,而把广播消息限制在各自的网络内部。
IP地址的结构分为两部分,一部分定义网络号,另外一部分定义网络内的主机号。目前在Internet网络中采用子网掩码来确定IP地址中的网络地址和主机地址,子网掩码与IP地址一样也是32位,并可以按位对应进行与运算,得到1所对应的部分为网络号,得到0所对应的部分为主机号,举例:
l IP地址192.168.123.108
l 子网掩码255.255.255.0
l 运算结果就是网络号为192.168.123.0,而主机号为0.0.0.108
网络号和主机号必须结合起来才能构成一个完整的IP地址,同一个网络的主机IP地址,其网络号必须是相同的,这个网络成为IP子网。通信只能在具有相同网络号的IP地址之间进行,要与其他IP子网的主机进行通信,比如192.168.1.108,则必须经过同网络上的同一个路由器或者网关(Gateway)来转发,简而言之不同网络号的IP地址不能直接通信,即使它们直连在一起也不行。
所谓路由的原理就是:当IP子网中的一台主机发送一个数据包给同一IP子网的另外一台主机时,它直接把IP分组发送到网络上,对方就能收到。而要发送给不同IP子网时,它要选择一个能够到达对方子网的路由器,把数据包发送给该路由器,由路由器负责把数据包转发到目的地。网关一般代表网络中某个路由器端口的IP地址。
路由器转发IP分组包时,只会根据IP分组包的目的IP地址的网络号部分来选择合适的端口,把IP分组送出去,同主机一样,路由器也要判定端口所接的是否是目的子网,如果是,就直接通过该端口发送,如果不是,就要选择下一个路由来传送分组包,路由器也有缺省的网关,用来传送不知道往哪里送的IP分组。这样一级级的传送,IP分组包最终到达目的地,或者被网络丢弃。
NAT协议
NAT协议的全称是网络地址转换协议,属于一种广域网技术,作用是将本地私有的IP地址转换成合法的IP地址用于发送到互联网中去达到通信的目的。它被广泛的应用于各种类型的Internet接入方式,暂时解决了IP地址不足的问题,而且能够有效的避免来自外部的攻击,隐藏内部计算机的真实IP地址。
虽然NAT可以借助某些代理服务器来实现但考虑到成本,基本都由路由器代劳了。
NAT将自动修改IP报文的源地址和目的地址,IP地址校验规则在NAT处理中自动完成,某些应用将源地址嵌入到了报文的数据部分,所以还需要同时对报文进行修改,以匹配IP头部被替换的源地址。
NAT实现方式有三种:静态转换,动态转换和端口多路复用。静态转换即将内部IP地址转换成一成不变的公有IP地址,IP地址一对一映射;动态转换将内部私有的IP地址转换成不确定的公有IP地址,转换对映是随机的,也是为了应付IP地址不够用的情况。端口多路复用是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT)。采用这种方式,内部网络的所有主机均可共享一个合法外部IP地址实现对互联网的访问,因此目前大多数路由器采取方式都是这种。
UPNP原理
Universal Plug and Play通用即插即用协议,是各种网络设备对等网络互连的结构。系统服务中的SSDP被用来寻找UPNP设备。BT下载中Upnp包含的意思是:
1、 对于一台内网电脑,Upnp功能可以使网关或者路由器的NAT模块做自动端口映射,将BT监听的端口从网关或者路由器映射到内网电脑上
2、 网关和路由器的网络防火墙模块开始对Internet上其他电脑开放这个端口
这也解释了为什么开启了UPNP之后,电驴的Low ID就会变成High ID。UPNP的经典应用就是NAT穿越技术:所谓的NAT穿越就是允许网络应用程序检测它们是否位于一个具有UPNP能力的NAT设备,之后,这些程序将获得共享的全球可路由IP地址,并且配置端口映射以将来自NAT外部端口的数据包转发到应用程序的内部端口上,而且所有的这一切都是自动完成的,用户无需手动映射端口或者进行其他工作。
利用UPNP设备相当于可以自我学习或者查找应当进行的操作和服务的信息,感知别的设备是否存在以及它们的作用和当前的状态,每个设备可以读取属于自己的特定状态和参数。该协议是一个多层协议构成的框架体系,每一层都以相邻的下层为基础,同时相邻上层的基础,直至达到应用层为止。
DMZ
DMZ(Demilitarized Zone)即俗称的非军事区,与军事区和信任区相对应,作用是把Web,email,等允许外部访问的服务器单独接在该区端口,使整个需要保护的内部网络接在信任区端口后,不允许任何访问,实现内外网分离,达到用户需求。DMZ可以理解为一个不同于外网或内网的特殊网络区域,DMZ内通常放置一些不含机密信息的公用服务器,比如Web、Mail、FTP等。这样来自外网的访问者可以访问DMZ中的服务,但不可能接触到存放在内网中的公司机密或私人信息等,即使DMZ中服务器受到破坏,也不会对内网中的机密信息造成影响。
在实际的运用中,某些主机需要对外提供服务,为了更好地提供服务,同时又要有效地保护内部网络的安全,将这些需要对外开放的主机与内部的众多网络设备分隔开来,根据不同的需要,有针对性地采取相应的隔离措施,这样便能在对外提供友好的服务的同时最大限度地保护了内部网络。针对不同资源提供不同安全级别的保护,可以构建一个DMZ区域,DMZ可以为主机环境提供网络级的保护,能减少为不信任客户提供服务而引发的危险,是放置公共信息的最佳位置。在一个非DMZ系统中,内部网络和主机的安全通常并不如人们想象的那样坚固,提供给Internet的服务产生了许多漏洞,使其他主机极易受到攻击。但是,通过配置DMZ,我们可以将需要保护的Web应用程序服务器和数据库系统放在内网中,把没有包含敏感数据、担当代理数据访问职责的主机放置于DMZ中,这样就为应用系统安全提供了保障。DMZ使包含重要数据的内部系统免于直接暴露给外部网络而受到攻击,攻击者即使初步入侵成功,还要面临DMZ设置的新的障碍。