网络其他

关注公众号 jb51net

关闭
网络 > 网络其他 >

NAT和服务器解析

脚本之家

网络地址转换(NAT)是一种方法,重新映射一个IP的地址空间通过修改到另一网络地址中的信息的互联网协议(IP)数据报分组报头,而他们在整个交通运输路由设备。该技术最初用于为便于重新路由IP网络流量,而不会重编的每个主机的。它已成为在保护中面对全局地址空间分配一个流行的和必要的工具,IPv4地址耗尽通过共享NAT网关的一个Internet路由的IP地址,整个专用网络。

NAT和TCP / UDP 

“纯的NAT”信息,IP操作单独,可能或可能不正确地分析完全关心IP信息的协议,如ICMP,取决于有效载荷是否由主机解释的“内部”或翻译的“外” 。只要协议堆栈遍历,即使有这样的基本协议如TCP和UDP的协议将打破除非NAT采取行动超出网络层。

IP分组在每个分组首部,其只为头提供误差检测的校验和。IP数据报可能会变得支离破碎,这是必要的NAT重新组合这些片段,让更高级别的校验和正确的跟踪重新计算正确的哪些分组属于哪个连接。

主要的传输层协议,TCP和UDP,有一个校验和,它涵盖了所有携带的数据,以及在TCP / UDP头,加上包含携带包的源和目的IP地址的“伪首部” TCP / UDP报头。对于始发NAT通过TCP或UDP成功,就必须重新计算基于转换后的IP地址,而不是原来那些在TCP / UDP报头校验和,并将该校验到零散集的第一个数据包的TCP / UDP报头的数据包。接收的NAT必须重新计算在每个其传递给目标主机分组的IP校验,并且还利用重新翻译地址和伪首识别和重新计算的TCP / UDP报头。这不是一个完全解决问题。一种解决方案是对于接收的NAT重新组装整个段,然后再重新计算所有的数据包计算的校验和。

源主机可以进行最大传输单元(MTU)路径发现,以确定无分片传输的数据包大小,然后设置不分段在适当的数据包报头字段(DF)位。当然,这仅仅是一个单向解决方案,因为响应的主机能够发送任何大小,其可到达的NAT之前被分段的数据包