哈工大计算机网络课程网络层协议详解之:网络地址转换NAT

这篇具有很好参考价值的文章主要介绍了哈工大计算机网络课程网络层协议详解之:网络地址转换NAT。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

哈工大计算机网络课程网络层协议详解之:网络地址转换NAT

上一节中,我们在DHCP协议中介绍了主机如何配置自己的IP地址,可以通过手动静态配置的方式,或者是利用DHCP协议动态配置的方式。在本节中,我们继续深入探究另一个问题,即:IP地址从哪里来? DHCP协议中我们知道了主机如何配置自己的IP地址,但是这个DHCP服务器返回的IP地址从哪里来?

实际上,是从我们子网对应的ISP(Internet Service Provider)互联网服务提供商,也就是移动、联通、电信这些运营商中来的。

但是这些运营商的IP地址又从哪儿来呢?最终,层层向上追溯来看,IP地址会通过一个国际组织:ICANN(The Internet Corporation for Assigned Names and Numbers)来进行分配。

百度百科

ICANN(The Internet Corporation for Assigned Names and Numbers)互联网名称与数字地址分配机构是一个非营利性的国际组织,成立于1998年10月,是一个集合了全球网络界商业、技术及学术各领域专家的非营利性国际组织,负责在全球范围内对互联网唯一标识符系统及其安全稳定的运营进行协调,包括互联网协议(IP)地址的空间分配、协议标识符的指派、通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理。这些服务最初是在美国政府合同下由互联网号码分配当局(Internet Assigned Numbers Authority,IANA)以及其它一些组织提供。ICANN行使IANA的职能。

遗憾的是,随着近些年互联网的急速发展,对于IPv4的32位地址空间来说,可用于公共互联网的地址已经几乎分配殆尽了。此时,在我们实际的网络通信中,经常会有一些主机所使用的地址是私有地址,这些私有地址在通信过程中,是不能在公共互联网出现的。要保证这些私有地址能够在公共互联网中出现并被识别,就需要一些特殊的协议来支持,这里最典型的协议就是NAT(Network Address Translation)网络地址转换。

网络地址转换(NAT)

假设有下面一个网络结构,左侧是公共互联网Internet,右侧是一个本地网络,比如家庭网络,使用的是10.0.0/24,使用的是一个私有地址,这些主机要在公共互联网上通信的时候就必须要求路由器在将数据报转发到公共网络之前,进行地址转换。

作为这个路由器首先必须具备地址转换的功能,同时必须拥有至少一个公共IP地址(也就是俗称的合法IP地址),这样才能将私有地址进行转换成该公共IP地址。

有了地址转换功能后,此时所有离开本地网络的数据报的源IP地址都会替换成相同的NAT IP地址,也就是图中的路由器公共IP地址:138.76.29.7。

但是,如果所有的数据报都换成同一个源IP地址后,上层应用比如传输层,就无法区分这些请求究竟来源于具体哪一台主机。同时,数据报返回时,该路由器也无法识别应该返回给哪一台主机。此时就需要借助于TCP/IP协议传输时,携带的源端口号和目的端口号来区分。利用端口号记录每次转换时的对应关系,进而根据返回数据报的端口,还原出源主机地址信息。

哈工大计算机网络课程网络层协议详解之:网络地址转换NAT

NAT协议提供的动机:

  1. 只需/能从ISP申请一个IP地址。比如一个本地网络只需要分配一个公共IP地址,其余的私有地址可以内部进行分配,并支持网络内部的通信。此时一个公共IP可以对应若干个主机,而原先的方式一个公共IP只能对应一个主机。

    因为IPv4地址逐渐耗尽,需要利用这种方法,减少公共IP地址的分配和浪费。

  2. 本地网络设备IP地址的变更,无需通告外界网络。

    因为内部都是私有内置,对外只有一个公共IP地址,内部网络设备IP地址的变更,无需通告外界。

  3. 变更ISP时,无需修改内部网络设备IP地址。

    比如原先本地网络的ISP是借助于联通接入,后来更换成移动。此时只需要变更ISP提供的公网地址,而不用修改本地网络设备的IP地址。

  4. 内部网络设备对外界网络不可见,即不可直接寻址(安全)。

NAT实现原理

目前NAT实现最典型的方式是一次替换,一次记录,再一次替换来完成的。

  • 第一次替换:把要离开内部网络去到公共网路的数据报(源IP地址,源端口号),利用NAT地址转换替换成外出IP数据报(NAT IP地址,新端口号)。
  • 记录:将每对(NAT IP地址,新端口号)与(源IP地址,源端口号)的替换信息存储到NAT转换表中。
  • 第二次替换:根据上述记录的NAT转换表,利用(源IP地址,源端口号)替换每个进入内网IP数据报的(目的IP地址,目的端口号),即(NAT IP地址,新端口号)。实际上就是把替换成的公共IP地址和端口号,还原成本地网络中的IP地址和源端口,从而被内网的主机进行接收。

示例性过程如下图所示:

哈工大计算机网络课程网络层协议详解之:网络地址转换NAT

  • 路由器的公共IP地址为138.76.29.7,并包含NAT转换表来记录私有地址—>公网地址的转换记录。
  • 假设此时内网中的主机10.0.0.1,端口号为3345的应用进程,要与公网的主机128.119.40.186,端口号为80的应用进程通信,发送数据报。
  • 数据报到达路由器后,会进行一次替换,将源IP地址,替换成路由器公网IP地址,因此出口IP变成:128.119.40.186,新的源端口号更新为5001。
  • 记录本次NAT转换,WAN端地址为138.75.29.7,端口号5001。LAN端地址为10.0.0.1,端口号3345。
  • 目的主机应用进程返回响应报文,到达路由器后,数据报的目的IP地址就是该路由器的公网IP地址:138.76.29.7,端口号5001
  • 路由器检索NAT转换表,进行第二次替换,将该目的地址转换成内部网络的主机IP地址与端口号,即重新转换成:10.0.0.1,端口号334
  • 最后,根据转换后的目的IP地址和端口号,向内网的目的主机上转发。

在NAT的地址转换中,需要根据端口号来区分私有网络中不同主机应用进程的请求,而端口号是16bit,表示的范围在0~65535之间。因此,一个公共IP地址可以对应区分的端口号为65536个,相当于可以同时支持60000多并行连接。

NAT主要争议:

  • NAT目前主要嵌入到路由器中来实现,而路由器作为标准第三层设备,实现的应该是第三层的功能,而不应该把第三层中的IP数据段中的内容还拿出来进行修改,违背了网络层次关系。
  • 违背了端到端通信原则。我们知道端口号是传输层持有的,传输层是端到端的通信。既然是端到端的通信,那么通信链路中的路由器等网络设备,都不应该对其进行修改。
  • 地址匮乏问题不应该由NAT来解决,应该由下一代IP地址 IPv6来解决。

尽管NAT的引入带了了一些问题和争议,但不可否认的是,NAT技术的出现很好的解决了IPv4地址溃泛等问题,是一项值得肯定的技术。

NAT穿透问题

假设内部网络运行着一个服务器,IP地址为10.0.0.1,而外部网络希望访问这个服务器的话,该怎么做呢?

显然,外部网络的用户是无法直接通过私有IP地址10.0.0.1来访问的。对于外部用户,所能看到访问的,是NAT路由器的公共IPi地址:138.76.29.7。

此时,为了让外部用户能够访问私有网络的主机,就需要进行NAT穿透,相当于穿透NAT,访问NAT路由器后面连接的私有网络。

哈工大计算机网络课程网络层协议详解之:网络地址转换NAT

NAT穿透问题的解决方案

方案一:静态配置NAT,将特定端口的连接请求转发给服务器。

该方案利用NAT路由器的NAT转换表,配置特定的端口号,将该特定的端口号映射为私有网络服务器的IP地址。此时,外部网络客户端的请求携带上该特定目的端口,就可以利用NAT转换表,转换成访问私有网络服务器的请求,实现NAT穿透。

e.g. 配置特定端口号2500,记录转发表的映射关系:(138.76.29.7, 2500) -> (10.0.0.1, 25000)。

方案二:利用UPnP(Universal Plug and Play)互联网网关设备协议(IGD-Internet Gateway Device)自动配置:

这种方案是方案一中实现的目的是一样的,最终都是在NAT转换表中记录到私有网络主机IP地址的转换关系,只是实现的技术不同。

作为NAT路由器,要支持UPnP协议,这个协议使得内部的主机可以自动地获取到NAT公共IP地址,并且通过这个协议,可以实现在NAT转换表中添加/删除端口映射。

完成这样的转发表配置后,内部网络服务器提供的服务就可以借助公共IP地址和端口号,向外发布它所提供的服务,并注册在NAT转发表中。这样外部网络的请求就可以借助NAT地址转换,利用注册端口号转发到对应内部网络的主机中,实现NAT穿透。

哈工大计算机网络课程网络层协议详解之:网络地址转换NAT

方案三:中继(如Skype)

NAT内部的客户与中继服务器建立连接。

外部客户也与中继服务器建立连接。

由中继服务器实现外部客户请求的转发到内部客户。中继服务器桥接两个连接的分组。

哈工大计算机网络课程网络层协议详解之:网络地址转换NAT文章来源地址https://www.toymoban.com/news/detail-500814.html

到了这里,关于哈工大计算机网络课程网络层协议详解之:网络地址转换NAT的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 哈工大计算机网络课程局域网详解之:无线局域网

    本节介绍一下平时经常使用的一个无线局域网技术,也就是通常我们使用的wifi。 wifi是IEEE 802.11这样一个系列标准所定义的无线局域网。作为802.11局域网来说,实际上存在很多版本: 802.11b 2.4-2.5GHz免费频段(unliebensed spectrum) 最高速率:11Mbps 物理层采用直接序列扩频(DSSS)

    2024年02月15日
    浏览(47)
  • 哈工大计算机网络课程局域网详解之:交换机概念

    在介绍完局域网中最具代表性的以太网技术后,接下来我们继续来看一下在局域网中使用非常广泛也是非常重要的网络设备:交换机。 本节主要面向以太网来介绍其中使用的交换机。 作为以太网交换机来说,是一个典型的数据链路层设备,可以实现对链路层数据帧的存储-转

    2024年02月15日
    浏览(47)
  • 哈工大计算机网络课程网络层协议详解之:路由算法概述与链路状态路由算法

    在前面的小节中,我们介绍了网络中路由器的路由与转发等功能。我们说 作为网络层,从功能上来说,核心功能就是要实现路由和转发。 对于转发来说,实际上就是路由器根据存储的转发表,将目的地址转发到对应的输出链路上去。在这个过程中,完成转发的重要依据,就

    2024年02月11日
    浏览(41)
  • 哈工大计算机网络课程网络层协议详解之:互联网控制报文协议(ICMP)

    在互联网中,IP数据报的传输很容易出现差错,当出现差错时,最简单的处理办法就是对该IP数据报进行丢弃。但是,并不是直接丢弃就完了,为了让源主机感知到数据报出现差错,当数据报被丢弃时,IP网络会借助于ICMP协议,向发送数据报的源主机发送一个ICMP差错报文。本

    2024年02月12日
    浏览(49)
  • 哈工大计算机网络课程数据链路层协议详解之:多路访问控制(MAC)协议

    在上一小节介绍完数据链路层功能和所提供的服务后,接下来我们介绍一个在 数据链路层非常重要的一个协议:多路访问控制MAC协议。 多路访问控制主要是为了解决一类链路的使用问题。作为网路中的链路,大致可以分为以下两类: 点对点链路 顾名思义,链路只连接两个相

    2024年02月15日
    浏览(53)
  • 哈工大计算机网络课程网络安全基本原理详解之:消息完整性与数字签名

    这一小节,我们继续介绍网络完全中的另一个重要内容,就是消息完整性,也为后面的数字签名打下基础。 首先来看一下什么是报文完整性。 报文完整性,也称为消息完整性(message integrity),有时也称为报文/消息认证(或报文鉴别),目标: 证明报文确实来自声称的发送

    2024年02月15日
    浏览(44)
  • 哈工大计算机网络传输层协议详解之:TCP协议

    哈工大计算机网络课程传输层协议详解之:可靠数据传输的基本原理 哈工大计算机网络课程传输层协议详解之:流水线机制与滑动窗口协议 哈工大计算机网络课程传输层协议详解之:拥塞控制原理剖析 点对点通信 一个发送方、一个接收方 可靠的、按序的字节流 流水线机制

    2024年02月10日
    浏览(43)
  • 哈工大计算机网络传输层协议详解之:可靠数据传输的基本原理

    哈工大计算机网络课程传输层协议详解之:流水线机制与滑动窗口协议 哈工大计算机网络课程传输层协议详解之:TCP协议 哈工大计算机网络课程传输层协议详解之:拥塞控制原理剖析 什么是可靠? 不错、不丢、不乱 可靠数据传输协议 可靠数据传输对应用层、传输层、链路

    2024年02月12日
    浏览(42)
  • 哈工大计算机网络传输层详解之:流水线机制与滑动窗口协议

    哈工大计算机网络课程传输层协议详解之:可靠数据传输的基本原理 哈工大计算机网络课程传输层协议详解之:TCP协议 哈工大计算机网络课程传输层协议详解之:拥塞控制原理剖析 在上一节中我们逐步分析了可靠传输协议的设计过程,最后讲到rdt3.0的设计和实现机制。但是

    2024年02月10日
    浏览(41)
  • 哈工大 计算机系统 二进制炸弹实验报告

    实验报告 实 验(三) 题     目  Binary Bomb          二进制炸弹   专       业      计算机学院          学    号               班    级                学       生              指 导 教 师                实 验 地 点        实 验 日 期     

    2023年04月15日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包