资源描述
NATandP2P1精选ppt网络地址装换(NAT)NetworkAddressTranslationNAT允许一个机构专用Intranet中的主机透明地连接到公共域中的主机,无需内部主机拥有注册的(以及越来越缺乏的)Internet地址。NAT是一种把内部私有网络IP地址翻译成合法网络IP地址的技术。2精选pptNAT技术3精选pptNAT技术引入的原因解决IP地址不够用的问题A类10.0.0.010.255.255.255B类172.16.0.0172.31.255.255C类192.168.0.0192.168.255.255对内部计算机进行有效的安全保护内部网络中的所有计算机上网时受到路由器或服务器(防火墙)的保护,黑客与病毒的攻击被阻挡在网络出口设备上,大大提高了内部计算机的安全性。4精选pptNAT分类基本的NAT(BasicNAT)将私网主机的私有IP地址转换成公网IP地址,但并不将TCP/UDP端口信息进行转换。网络地址/端口转换器(NAPT)NAPT检查、修改包的IP地址和TCP/UDP端口信息。这样,更多的内部主机就可以同时使用一个公网IP地址。5精选pptNAPT当一个内部网主机通过NAT打开一个外流的TCP或UDP会话时,NAPT分配给这个会话一个公网IP和端口,用来接收外网的响应的数据包,并经过转换通知内部网的主机。这样做的效果是,NAPT在私网IP:私网端口和公网IP:公网端口之间建立了一个端口绑定。端口绑定指定了NAPT将在这个会话的生存期内进行地址转换任务。对通信双方而言,这种IP地址和端口的转换是完全透明的。6精选ppt7精选ppt服务器S1服务器S218.181.0.31:1235138.76.29.7:1235会话1(A-S1)会话2(B-S2)18.181.0.31:1235138.76.29.7:1235155.99.25.11:6200062000155.99.25.11:6200162001NAT155.99.25.11会话1(A-S1)会话2(B-S2)18.181.0.31:12351235138.76.29.7:1235123510.0.0.1:123410.0.0.2:1234ClientAClientB8精选pptNAT地址转换表私网IP:Port外部IP:PortNAT公网IP:公网Port10.0.0.1:123418.181.0.31:1235155.99.25.11:6200010.0.0.2:1234138.76.29.7:1235155.99.25.11:620019精选ppt虚拟服务器虚拟服务器:对路由器任何一个或一段协议端口的访问(从WAN口进来的访问),都可以重定位到局域网内某一台指定的网络服务器。192.168.1.1:80wwwhttp:/202.38.135.17:80/192.168.1.3:2smtp25pop311010精选pptNAPT如果P2P应用程序从内部网络的一个私网IP:私网端口对同时发出多条会话给不同的外网主机,根据NAT处理方式,分成下面两类:1.对称NAT(SymmetricNAT)2.锥锥形形NAT(Cone NAT)11精选ppt对称NAT服务器S1服务器S218.181.0.31:1235138.76.29.7:1235|+-+-+|会话1(A-S1)|会话2(A-S2)|18.181.0.31:1235|138.76.29.7:1235|v155.99.25.11:6200062000v|v155.99.25.11:6200162001v|对称NAT155.99.25.11|会话1(A-S1)|会话2(A-S2)|18.181.0.31:1235|138.76.29.7:1235|v10.0.0.1:1234v|v10.0.0.1:1234v|ClientA12精选ppt锥锥形形NAT建立在(私网IP、私网端口)和(公网IP、公网端口)之间端口的绑定之后,如果ConeNAT再次创建一个从同一(私网IP、私网端口)建立的会话时,不会新分配一个端口号,而是用原来分配的端口号,只要这个会话使绑定的端口仍然有效。13精选ppt锥锥形形NAT服务器S1服务器S218.181.0.31:1235138.76.29.7:1235|+-+-+|会话1(A-S1)|会话2(A-S2)|18.181.0.31:1235|138.76.29.7:1235|v155.99.25.11:62000155.99.25.11:62000v|v155.99.25.11155.99.25.11:6200062000v|锥形NAT155.99.25.11|会话1(A-S1)|会话2(A-S2)|18.181.0.31:1235|138.76.29.7:1235|v10.0.0.1:1234v|v10.0.0.1:1234v|客户机A10.0.0.1:123414精选pptP2P(Peer-to-Peer)15精选pptP2P概述很多NAT的采用使通信处在一种不对称的模式下:内网的主机可以主动访问链接到外网主机上,但是外网的主机除非通过代理管理员的特定设置,否则不能主动访问链接到内网主机上。P2P技术是一种用于不同PC用户之间、不经过中继设备直接交换数据或服务的技术。它打破了传统的C/S模式,在对等网络中,每个节点的地位都是相同的,具备客户端和服务器双重特性,可以同时作为服务使用者和服务提供者。由于P2P技术的飞速发展,互联网的存储模式将由目前的“内容位于中心”模式转变为“内容位于边缘”模式,改变Internet现在的以大网站为中心的状态,重返“非中心化”,将权力交还给用户。16精选pptP2P通信方式通信方式17精选pptP2P的技术特点(1)既是S(Server)又是C(Client),如何表现取决于用户的要求,网络应用由使用者自由驱动。(2)信息在网络设备间直接流动,高速及时,降低中转服务成本。(3)构成网络设备互动的基础和应用。(4)在使网络信息分散化的同时,相同特性的P2P设备可以构成存在于互联网这张大网中的子网,使信息按新方式又一次集中。18精选ppt基于NAT代理设备上的P2P技术中继转发(Relaying)反向连接(Connectionreversal)UDP打洞技术(UDPHolePunching)19精选ppt中继转发(Relaying)穿越代理实现P2P通信,最可靠但是效率最低的的方法,将P2P通信看作一个C/S结构,通过服务器来转发消息。举例来说,假设二个客户机A和B,与一个有公网固定IP地址的服务器S各创建一个TCP或UDP连接,这两个客户机在不同的私网上,这样,他们各自的NAT代理服务器不允许他们向对方创建直接的连接。20精选ppt中继转发(Relaying)服务器S|+-+-+|NATANATB|客户机A客户机B21精选ppt中继转发(Relaying)优势:当两个客户端都与服务端保持连接的时候,它将始终如一的正常工作。劣势:它消耗服务器不必要地处理能力和网络带宽,而且即使服务器有好的链接性,在二个客户机之间的通信反应时间比较长。22精选ppt反向连接(Connectionreversal)如果只有一个客户机在NAT后,那么采用反向连接技术。如下图,假设客户机A在NAT后,而客户机B有一个公网IP地址:服务器S18.181.0.31:1235|+-+-+|NATA|155.99.25.11:62000|客户机A客户机B10.0.0.1:1234138.76.29.7:123423精选ppt反向连接(Connectionreversal)现在假设客户机B想要和客户机A创建一个P2P通信会话,B可能先尝试连接客户机A的任何一个地址或是客户机A的私网地址10.0.0.1:1234,或是从服务器S观察到的地址155.99.25.11:6200。然而在任一情况,连接都会失败。在第一种情况中,因为10.0.0.1不是公网可路由的IP地址,所以不能通过网络直接连接IP地址10.0.0.1。在第二种情况中,来自B的TCPSYN请求将会直接到达NATA的62000端口,但因为NATA只允许外流的连接从而拒绝该连接请求。24精选ppt反向连接(Connectionreversal)在所有尝试失败后,客户机B只能请求服务器S对客户机A转发一个请求到客户机A,请求A创建一个“反向”的连接到B。客户机A一收到这个经过S的转发请求后,将建立一个与B通信的TCP连接(在B的公网IP地址和端口号上)。NATA允许这个连接通过,因为这个连接起源于NATA的内部,同时客户端B接受这个连接因为B并不位于NAT之后。现在很多的P2P系统采用这种技术。主要缺陷:只有一端在NAT之后这个技术才能生效。而通常情况中,往往两端都在NAT后面,不能采用这种技术。因为反向连接不是问题的通用解决办法,并不推荐。25精选pptNAT存在问题通过NAT,子网内的计算机向外连结是很容易的(NAT相当于透明的,子网内的和外网的计算机不用知道NAT的情况)。但是如果外部的计算机想访问子网内的计算机就比较困难了!怎么办?26精选ppt客户机分别位于不同NAT后面服务器S18.181.0.31:1234|+-+-+|NATANATB155.99.25.11:62000138.76.29.7:31000|客户机A客户机B10.0.0.1:123410.1.1.3:123427精选pptUDP打洞技术(UDPHolePunching)“UDP打洞技术”依赖公共防火墙和锥形NAT,允许恰当的有计划的P2P应用程序通过NAT打洞,即使通信双方的计算机都在NAT之后。28精选ppt谁发起?有了上面的理论,实现两个内网的主机通讯就差最后一步了:那就是鸡生蛋还是蛋生鸡的问题了,两边都无法主动发出连接请求,谁也不知道谁的公网地址,那我们如何来打这个洞呢?我们需要一个中间人来联系这两个内网主机。29精选ppt“打洞”过程(一)(1)首先,ClientA登录服务器,NATA为这次连接分配了一个端口62000,那么ServerS收到的ClientA的地址是155.99.25.11:62000,这就是ClientA的外网地址了。(2)同样,ClientB登录ServerS,NATB给此次连接分配的端口是31000,那么ServerS收到的B的地址是138.76.29.7:31000。此时,ClientA与ClientB都可以与ServerS通信了。30精选pptP2P通信方式通信方式(1)(2)31精选pptNATA地址转换表客户AIP:Port外部IP:PortNAT公网IP:公网Port10.0.0.1:1234 18.181.0.31:1234155.99.25.11:62000客户BIP:Port外部IP:PortNAT公网IP:公网Port10.0.0.3:1234 18.181.0.31:1234 138.76.29.7:31000NATB地址转换表服务器S客户客户IP:Port客户机A155.99.25.11:62000客户机B138.76.29.7:31000(1)(2)32精选ppt“打洞”过程(二)如果ClientA此时想直接发送信息给ClientB,那么他可以从ServerS那儿获得B的公网地址138.76.29.7:31000,是不是ClientA向这个地址发送信息ClientB就能收到了呢?答案是不行,因为如果这样发送信息,NATB会将这个信息丢弃(因为这样的信息是不请自来的,为了安全,大多数NAT都会执行丢弃动作)。客户BIP:Port外部IP:PortNAT公网IP:公网Port10.0.0.3:123418.181.0.31:1234 138.76.29.7:31000155.99.25.11:62000-138.76.29.7:3100010.0.0.3.1234155.99.25.11:62000138.76.29.7:31000不存在不存在33精选ppt“打洞”过程(三)(3)现在我们需要的是在NATB上打一个方向为155.99.25.11(即ClientA的外网地址)的洞,那么ClientA发送到138.76.29.7:31000的信息,ClientB就能收到了。这个打洞命令由谁来发呢,当然是ServerS。总结一下这个过程:如果ClientA想向ClientB发送信息,那么ClientA发送命令给ServerS,请求ServerS命令ClientB向ClientA方向打洞。34精选pptP2P通信方式通信方式(1)(2)(3)35精选pptNATA地址转换表客户AIP:Port外部IP:PortNAT公网IP:公网Port10.0.0.1:1234 18.181.0.31:1234155.99.25.11:62000客户BIP:Port外部IP:PortNAT公网IP:公网Port10.0.0.3:1234 18.181.0.31:1234 138.76.29.7:3100010.0.0.3.1234155.99.25.11:62000138.76.29.7:31000NATB地址转换表服务器S客户客户IP:Port客户机A155.99.25.11:62000客户机B138.76.29.7:31000(1)(2)(3)36精选ppt“打洞”过程(四)(4)然后ClientA就可以通过ClientB的外网地址与ClientB通信了。客户AIP:Port外部IP:PortNAT公网IP:公网Port10.0.0.1:123418.181.0.31:1234155.99.25.11:6200010.0.0.1.1234138.76.29.7:31000155.99.25.11:6200037精选pptP2P通信方式通信方式(1)(2)(3)(4)38精选ppt锥形NAT注意:以上过程只适合于ConeNAT的情况,如果是对称NAT,那么当ClientB向ClientA打洞的端口已经重新分配了,ClientB将无法知道这个端口。39精选pptBT原理40精选pptBT特点在下载download的同时,也在为其他用户提供上传upload,所以不会随着用户数的增加而降低下载速度。使用非常方便,很适合新发布的热门下载。其特点简单的说就是:下载的人越多,速度越快。41精选ppt传统下载方式42精选ppt传统下载方式缺点随着用户的增多,对带宽的要求也随之增多,用户过多就会造成瓶颈,而且搞不好还会把服务器挂掉,所以很多的服务器会都有用户人数的限制,下载速度的限制,这样就给用户造成了诸多的不便。43精选pptBT原理种传销的方式来达到共享的,工作原理如下图:44精选pptBT原理BT首先在上传者端把一个文件分成了Z个部分,甲在服务器随机下载了第N各部分,乙在服务器随机下载了第M个部分,这样甲的BT就会根据情况到乙的电脑上去拿乙已经下载好的M部分,乙的BT就会根据情况去到甲的电脑上去拿甲已经下载好的N部分,这样就不但减轻了服务器端得负荷,也加快了用户方(甲乙)的下载速度,效率也提高了,更同样减少了地域之间的限制。比如说丙要连到服务器去下载的话可能才几K,但是要是到甲和乙的电脑上去拿就快得多了。所以说用的人越多,下载的人越多,大家也就越快,BT的优越性就在这里。而且,在你下载的同时,你也在上传(别人从你的电脑上拿那个文件的某个部分),所以说在享受别人提供的下载的同时,你也在贡献。45精选ppt
展开阅读全文