中国斜学我术大学 信息网给与协议 UKIVERIITY OF SCIENCE AND TECHNOLOOY OF CHINA 解决方法一NAT 网络地址和端口转换NAPT:Network Address and Port Translation 一最常用的一种NAT方式 -使用IP地址和TCP/UDP端口号 ·端口号标识了同一台主机上不同的应用,例如TP服务器进程一 般运行在21号端口,web服务进程一般运行在80号端口, TCP/UDP根据端口号将数据投递给相应的应用进程 NAPT操作不仅仅要修改分组的IP头标,还要修改 TCP/UDP头标中的端口号 -在NAT设备上,虽然内部网络所有的主机共享同一个全 局P地址,但是经过NAT之后不同会话使用的端口号不同
信息网络与协议 解决方法—NAT • 网络地址和端口转换NAPT:Network Address and Port Translation – 最常用的一种NAT方式 – 使用IP地址和TCP/UDP端口号 • 端口号标识了同一台主机上不同的应用,例如FTP服务器进程一 般运行在21号端口,web服务进程一般运行在80号端口, TCP/UDP根据端口号将数据投递给相应的应用进程 • NAPT操作不仅仅要修改分组的IP头标,还要修改 TCP/UDP头标中的端口号 – 在NAT设备上,虽然内部网络所有的主机共享同一个全 局IP地址,但是经过NAT之后不同会话使用的端口号不同
中国钟学我术大草 信息网倍与协议 VERIITY OF SCIENCE AND TECHNOLOOY O年C框NA Direction Fields Old Values New Values Out 源P地址:协议:源端口号 10.0.0.3:TCP:2000 202.38.75.11:TCP:2000 In 目的P地址:协议:目的端口号202.38.75.11:TCP:2000 10.0.0.3:TCP:2000 Internet Web server 10.0.0.1 <10.0.0.3,2000>map to <202.38.75.11,2000> 10.0.0.254 202.38.75.11 10.0.0.2 Connection request from'c'forwarded to <web server>source 202.38.75.11,port 2000. 10.0.0.3 Connection request to port 80 from'c'to <web server>source 10.0.0.3,port 2000
信息网络与协议 Internet 10.0.0.254 10.0.0.3 10.0.0.2 10.0.0.1 Web server a b c NAT 202.38.75.11 Connection request to port 80 from ‘c‘ to <web server> source 10.0.0.3, port 2000. <10.0.0.3, 2000> map to <202.38.75.11,2000> Connection request from ‘c’ forwarded to <web server> source 202.38.75.11, port 2000. Out 源IP地址:协议:源端口号 10.0.0.3:TCP:2000 202.38.75.11:TCP:2000 Direction Fields Old Values New Values In 目的IP地址:协议:目的端口号202.38.75.11:TCP:2000 10.0.0.3:TCP:2000
中国钟学我术大草 信息网给与协议 UKIVERIT背OP SCIENC建D TECHNOLOOY O年Ca框N Direction Fields Old Values New Values Out 源P地址:协议:源端口号 10.0.0.3:TCP:2000 202.38.75.11:TCP:2000 In 目的1P地址:协议:目的端口号202.38.75.11:TCP:2000 10.0.0.3:TCP:2000 Out 源P地址:协议:源端口号 10.0.0.2:TCP:2000 202.38.75.11:TCP:2010 In 目的IP地址:协议:目的端口号202.38.75.11:TCP:2010 10.0.0.2:TCP:2000 Internet刀 Web server 10.0.0.1 响应发往 <10.0.0.2,2000>map to 202.38.75.11:2000 <202.38.75.11,2010> 10.0.0.254 10.0.0.2 将202.38.75.11:2000 转换为10.0.0.3:2000 10.0.0.3
信息网络与协议 Internet 10.0.0.254 10.0.0.3 10.0.0.2 10.0.0.1 Web server a b c NAT 响应发往 202.38.75.11:2000 将202.38.75.11: 2000 转换为 10.0.0.3:2000 Out 源IP地址:协议:源端口号 10.0.0.3:TCP:2000 202.38.75.11:TCP:2000 Direction Fields Old Values New Values In 目的IP地址:协议:目的端口号202.38.75.11:TCP:2000 10.0.0.3:TCP:2000 Out 源IP地址:协议:源端口号 10.0.0.2:TCP:2000 202.38.75.11:TCP:2010 In 目的IP地址:协议:目的端口号202.38.75.11:TCP:2010 10.0.0.2:TCP:2000 <10.0.0.2, 2000> map to <202.38.75.11,2010>
中国斜学技术大学 信息网倍与协议 UKIVERIITY OF SCIENCE AND TECHNOLOOY OF CHINA 解决方法一NAT ·局限性 一地址和端口转换将带来比较大的开销 - P地址和端口号可能存在于载荷的任何位置,因此需要 软件针对具体的应用做额外的处理 ·例如,FTP在PORT命令的FTP头标中包含有十进制表示的IPv4地 址,如果不处理则将导致连接问题 -并不是说有的数据都是使用UDP或者TCP来传输 例如PpTP(Point-.to-Point Tunneling Protcol)使用GRE( Generic Routing Encapsulation)封装数据,使用GRE头标中Call ID域来标识一个数据流,因此需要NAT设备对GRE头标中的Cal ID进行转换处理 一破坏了原有的主机到主机的通信模型
信息网络与协议 解决方法—NAT • 局限性 – 地址和端口转换将带来比较大的开销 – IP地址和端口号可能存在于载荷的任何位置,因此需要 软件针对具体的应用做额外的处理 • 例如,FTP在PORT命令的FTP头标中包含有十进制表示的IPv4地 址,如果不处理则将导致连接问题 – 并不是说有的数据都是使用UDP或者TCP来传输 • 例如PPTP(Point-to-Point Tunneling Protcol)使用GRE( Generic Routing Encapsulation)封装数据,使用GRE头标中Call ID域来标识一个数据流,因此需要NAT设备对GRE头标中的Call ID进行转换处理 – 破坏了原有的主机到主机的通信模型
中国钟学我术大草 信息网给与协议 UKIVERIITY OF SCIENCE AND TECHNOLOOY OF CHINA Intranet NAT和P2P应用 Host A Internet NAT Drop Host C Host B 在所有主机上运行P2P应用的情况下,A能够发起到B或者C的会 话,但是: 1)A不能够告诉C关于B的全局P地址和端口号信息 2)C不能主动发起到A或者B的会话,因为如果转换表中没有相 应的表项,会话请求会被NAT设备丢弃 更复杂的情况:A、B、C都位于NAT设备之后I
信息网络与协议 NAT和P2P应用 在所有主机上运行P2P应用的情况下,A能够发起到B或者C的会 话,但是: 1)A不能够告诉C关于B的全局IP地址和端口号信息 2)C不能主动发起到A或者B的会话,因为如果转换表中没有相 应的表项,会话请求会被NAT设备丢弃 更复杂的情况:A、B、C都位于NAT设备之后! ? Drop