网络地址转换(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内部的客户与中继服务器建立连接、外部客户也与中继服务器建立连接。中继服务器桥接两个连接的分组。

计算机网络-网络层(2)NAT协议的更多相关文章

  1. 计算机网络参考模型与5G协议

    计算机网络参考模型与5G协议 目录 一.分层思想 1.1·2:分层思想概念 1.2.优点 二.OSI七层参考模型 三.TCP/IP协议族 3.1.TCP/IP协议族的组成 3.2.OSI模型与TCP/ ...

  2. 计算机网络之tcp/ip协议族

    TCP/IP协议族是一个四层协议系统: 1. 数据链路层   1.1 作用  (1) 实现网卡接口的网络驱动,以处理数据在以太网线等物理媒介上的传输  (2) 网络驱动程序隐藏了不同物理网络的不同电气 ...

  3. 计算机网络-3-2-点对点协议PPP

    点对点协议PPP 在通信链路较差的年代,在数据链路层使用可靠传输协议曾经是一种好方法,比较简单的点对点PPP协议则是目前使用最广泛的数据链路层协议. PPP协议的特点 互联网用户通过都要连接到某个IS ...

  4. 图文并茂详解 NAT 协议!

    什么是 NAT 协议 我们的计算机要想访问互联网上的信息,就需要一个地址,而且这个地址是大家(其他主机)所认可的,是公共的,这个地址也叫做公有 IP 地址. 与之相对的,除了公有 IP 地址外,还有私 ...

  5. 计算机网络 4.网络层与IP协议

    网络中的每一台主机和路由器都有一个网络层部分.而路由器中也没有网络层以上的层次.网络层是协议栈中最复杂的层次. 转发forwarding:当一个分组到达某路由器的输入链路时.该路由器将分组移动到适当的 ...

  6. 计算机网络-网络层(6)ICMP协议

    互联网控制报文协议(ICMP,Internet Control Message Protocol),被主机和路由器用来彼此沟通网络层的信息 ICMP报文是承载在IP分组中的,即lCMP报文是作为IP有 ...

  7. 计算机网络-网络层(3)DHCP协议

    主机获得IP地址,除了可以通过静态配置,还可以通过动态主机配置协议DHCP: Dynamic Host Configuration Protocol从服务器动态获取IP地址.子网掩码.默认网关地址.D ...

  8. 重读 谢希仁《计算机网络》3 - 网络层和IP协议

  9. 计算机网络——网络层

    一.虚拟线路与数据报线路 1. 在网络层提供有连接的计算机网络为虚电路网络: 如因特网:它需要VC(虚拟电路)号,用于建立虚拟电路的报文称为信令报文,相关的协议称为信令协议: 无连接的网络为数据报网络 ...

随机推荐

  1. PHP date_create_from_format() 函数

    ------------恢复内容开始------------ 实例 返回一个根据指定格式进行格式化的新的 DateTime 对象: <?php$date=date_create_from_for ...

  2. Java和Scala容器转换

    参考:https://blog.csdn.net/dymkkj/article/details/77921573 Java和Scala互操作的一个重要的内容就是容器的转换,容器是一个语言的数据结构,表 ...

  3. 关于if语句的细节

    看下面两个语句: if(p->key>key) p=p->left; if(p->key<key)p=p->right; 上面的写法是很有问题的: 如果第一条条件满 ...

  4. 018_go语言中的结构体

    代码演示 package main import "fmt" type person struct { name string age int } func main() { fm ...

  5. 您能解决这3个(看似)简单的Python问题吗?

    尝试解决以下问题,然后检查以下答案. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识 ...

  6. MySQL--->高级对象

    本章目标: 掌握MySQL视图 掌握MySQL存储过程 掌握MySQL触发器 1.视图: 视图就是一条select语句执行后返回的结果集. 使用场景:权限控制的时候不希望用户访问表中某些敏感信息的列 ...

  7. SSM框架入门——整合SSM并实现对数据的增删改查功能(Eclipse平台)

    一.搭建框架环境 整个项目结构如下: 搭建SSM步骤如下: (1)准备好三大框架的jar包,如图所示 (2)在Eclipse中创建一个web project ,并把这些jar包粘贴到lib文件夹中. ...

  8. 强化学习 3—— 使用蒙特卡洛采样法(MC)解决无模型预测与控制问题

    一.问题引入 回顾上篇强化学习 2 -- 用动态规划求解 MDP我们使用策略迭代和价值迭代来求解MDP问题 1.策略迭代过程: 1.评估价值 (Evaluate) \[v_{i}(s) = \sum_ ...

  9. canvas图片编辑操作:缩放、移动、保存(PC端+移动端)

    最近在写canvas关于图片的操作,看了网上的代码基本都是不行的,于是就自己写了一个. html代码 <canvas id="myCanvas" width="37 ...

  10. 【译】gRPC-Web for .NET now available

    .NET 的 gRPC-Web 现在正式发布了.我们在一月份发布了实验版,从那时起,我们就根据早期的用户反馈进行着改进. 有了这个版本,gRPC-Web 就变成了 grpc-dotnet 项目的一个完 ...