网络的根本目的非常简单:方便人们交换所获得的信息。
但是网络的应用需求非常复杂:有的用户希望高带宽,但并不要求很长的传输距离;有的用户要求很长的距离,但对带宽要求很低;有的对网络的可靠性要求较高,而另外一些则要求较低,等等。这些都导致了网络的多样化,
现在比较常见的局域网有以太网、令牌环和FDDI,广域网有DDN、X.25、帧中继、ATM等,这些网络分别从不同方面满足用户需求。这些网络的物理介质和协议都不相同,彼此之间不能直接相互通信。
将它们相互连接,使不同网络上的用户之间可以交换信息的技术就称为网络互联技术。
实现网络互联的技术有两种:协议转换和隧道技术。
TCP/IP 和Novell的IPX是两种常见的协议转换技术。
Novell的IPX曾经红火一时,但现在网络互联中占统治地位的是TCP/IP,风靡世界的nternet就是利用TCP/IP作为互联协议的实例。 路由器就是一种利用协议转换技术将异种网进行互联的设备。
VPN(Virtual Private Network,虚拟私有网)则是隧道技术的代表。
路由器如何连接不同网络的?
路由器的协议转换发生在IP层。如图所示,路由器试图互联局域网和Internet。 局域网是以太网,运行IEEE802.2 和IEEE802.3。路由器和接入服务器之间为专线,而链路层协议为PPP(Point to Point Protocol,点对点协议)。以太网上的主机以及Internet上的接入服务器的网络层协议都是IP。主机将IP包封装在以太网帧中发向路由器;路由器的以太网口收到主机发来的以太网帧后处理帧头并上交路由器的IP层;IP查看报文头后将IP包交给广域网口的PPP;PPP将IP包封装在PPP帧中并通过专线发往接入服务器。上述互联原理具有普遍性:某种网络设备要在第n层上互联异种网N1和N2,那么N1和N2在第n层及以上的协议(若有)必须相同。这实际上也是N1和N2能够互联的充要条件。
路由器是如何实现内网访问外网的?
地址代理的另一个名称为地址转换(NAT),它试图通过建立IP地址与传输层端口的映射。
地址代理的工作原理
如图所示,本地的PC机Local PC(IP地址为129.102.1.56)要访问远端的WWW服务器Foreign server(IP地址为9.9.9.9)时发出报文(9.9.9.9,80;129.102.1.56,5000),报文中的成员从左到右依次为:目的地址、目的端口号、源地址、源端口。
该报文经过路由器的地址转换后变为(9.9.9.9,80;202.38.161.1,10000),地址代理将源地址替换成了路由器的广域网口地址。为了保持一一对应,地址代理还修改了源端口号。
当路由器收到Foreign Server的回文(202.38.161.1,10000;9.9.9.9,80)时,地址代理做相反的替换后得到报文(129.102.1.56,5000;9.9.9.9,80),这个报文可以被IP正确地发往Local PC。
为完成这些工作地址代理显然需要维护一张内网IP地址与路由器端口号之间的对应表格。
为了解决网络中IP地址不足的情况,NAT应运而生。其实现方式主要有三种:
1.静态转换(一对一)
静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。私有地址和公有地址的对应关系由管理员手工指定。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问,并使该设备在外部用户看来变得“不透明”。
2.动态转换 (多对多)
动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址对并不是一一对应的,而是随机的。所有被管理员授权访问外网的私有IP地 址可随机转换为任何指定的公有IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。每个地址 的租用时间都有限制。这样,当ISP提供的合法IP地址略少于网络内部的计算机数量时,可以采用动态转换的方式。
3.端口多路复用(Port address Translation,PAT)(多对一)
通过使用端口多路复用,可以达到一个公网地址对应多个私有地址的一对多转换。在这种工作方式下,内部网络的所有主机均可共享一个合法外部IP地 址实现对Internet的访问,来自不同内部主机的流量用不同的随机端口进行标示,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有 主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式
NAT和PAT有什么区别?
PAT叫端口地址转换,NAT是网络地址转换,由RFC 1631定义。
PAT可以看做是NAT的一部分。
在NAT时,考虑一种情形,就是只有一个Public IP,而内部有多个Private IP,这个时候NAT就要通过映射UDP和TCP端口号来跟踪记录不同的会话,比如用户A、B、C同时访问CSDN,则NAT路由器会将用户A、B、C访问分别映射到1088、1098、23100(举例而已,实际上是动态的),此时实际上就是PAT了。
由上面推论,PAT理论上可以同时支持(65535 - 1024)= 64511个连接会话。但实际使用中由于设备性能和物理连接特性是不能达到的,CISCO的路由器NAT功能中每个Public IP最多能有效地支持大约4000个会话。
PAT普遍应用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。PAT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。也就是采用port multiplexing 技术,或改变外出数据的源port的技术将多个内部ip地址映射到同一个外部地址