计算机网络-传输层(2)NAT协议

网络地址转换NAT:
本地网络内通信的IP数据报的源与目的IP地址均在子网10.0.0/24内
所有离开本地网络去往Internet的数据报的源IP地址需替换为相同的NAT IP地址以及不同的端口号,16bit端口号可以支持六万多个并行连接。
 
使用NAT技术的原因:
(1)IPv4地址耗尽,只能从ISP申请一个IP地址
(2)本地网络设备IP地址的变更,无需通告外界网络
(3)变更ISP时,无需修改内部网络设备IP地址
(4)内部网络设备对外界网络不可见,即不可直接寻址(安全)
 
NAT的实现:
(1)替换
利用(NAT IP地址,新端口号)替换每个外出IP数据报的(源IP地址,源端口号)
(2)记录
将每对(NAT IP地址, 新端口号) 与(源IP地址, 源端口号)的替换信息存储到NAT转换表中
(3)替换
根据NAT转换表,利用(源IP地址, 源端口号)替换每个进入内网IP数据报的(目的IP地址,目的端口号),即(NAT IP地址, 新端口号)
NAT主要争议:
(1)路由器应该只处理第3层功能
(2)违背端到端通信原则
应用开发者必须考虑到NAT的存在,e.g., P2P应用
(3)地址短缺问题应该由IPv6来解决
 
NAT穿透问题:
客户期望连接内网地址为10.0.0.1的服务器,却不能直接利用该地址直接访问服务器;对外唯一可见的地址是NAT地址138.76.29.7
解决方案:
(1)静态配置NAT,将特定端口的连接请求转发给服务器
(2)利用通用即插即用UPnP(Universal Plug and Play)互联网网关设备协议 (IGD Internet Gateway Device )自动配置
UPnP是一种允许主机发现并配置邻近NAT的协议,要求主机和NAT都是UPnP兼容的。
UPnP允许外部主机使用TCP或UDP向NAT化的主机发起通信会话
使用UPnP,在主机上运行的应用程序能够为某些请求的公共端口号请求一个NAT映射,该映射位于其(专用IP 地址,专用端口号)和(公共IP 地址,公共端口号)之间。如果某NAT接受该请求并生成映射,则来自外部的结点能够发起到(公共IP 地址,公共端口号)的TCP 连接。此外, UPnP 让该应用程序知道(公共IP 地址,公共端口号),因此该应用程序能够向外部世界通告它。
(3)中继(如Skype)
NAT内部的客户与中继服务器建立连接;外部客户也与中继服务器建立连接
中继服务器桥接两个连接的分组

猜你喜欢

转载自www.cnblogs.com/yangyuliufeng/p/9285710.html