zoukankan      html  css  js  c++  java
  • 计算机网络-网络层(2)NAT协议

    网络地址转换(NAT,Network Address Translation)协议
    本地网络内通信的IP数据报的源与目的IP地址均在子网10.0.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地址—目的端口号
    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),其允许外部主机使用TCP或UDP向NAT化的主机发起通信会话。
    使用UPnP,在主机上运行的应用程序能够请求一个与公共端口号的NAT映射,该映射位于其专用IP地址—专用端口号和公共IP地址—公共端口号之间。如果某NAT接受该请求并生成映射,则来自外部的结点能够发起到公共IP地址—公共端口号的TCP 连接。
    此外, UPnP让该应用程序知道公共IP 地址—公共端口号,因此该应用程序能够向外部世界通告它。
    (3)中继(如Skype)
    NAT内部的客户与中继服务器建立连接、外部客户也与中继服务器建立连接。中继服务器桥接两个连接的分组。
  • 相关阅读:
    ASP.NET中使用javascript
    遍历DataList控件
    史上最强劲之android模拟器命令详解
    Android开发环境配置简介
    Android模拟器adb命令介绍
    听一名普通android应用开发人员谈:怎样成为一名Android开发者
    android模拟器安装及优化(集锦)
    Ubuntu 快捷键集锦
    smplayer 中文字幕乱码,进度条及拖放MKV
    如何在Windows下搭建Android开发环境
  • 原文地址:https://www.cnblogs.com/yangyuliufeng/p/9285710.html
Copyright © 2011-2022 走看看