“家用路由器”和书上讲的“路由器”完全不是一个概念!如果仅仅从功能上来说,路由器 = 交换机 + NAT。以下“家用路由器”专指家用路由器,而”路由器“专指书上讲的路由器。

路由器是工作在网络层的设备,交换机是工作在数据链路层的设备,因此路由器比交换机更高一层,正是因为高了一层,所以才能实现NAT这种功能。

一台家用路由器由一个CPU担任网关的角色,一个端口创建一个局域网地址池,连接到交换机芯片上分给四个局域网端口,另一端口接广域网口,与局端设备保持连接,获得一个公网IP。至于无线芯片,其实是连在交换机芯片上的。所以家用无线路由器严格来说产品名称应该是家庭网关。

参考博客1中给出如下描述:

Home routers are actually a combination of three networking components: a router, a firewall, and a switch. In a commercial setting the three pieces of hardware are kept separate but consumer routers are almost always a combination of both the routing and switching components with a firewall added in for good measure.

也就是说,家用路由器 = 路由器 + 防火墙 + 交换机  = 防火墙 + 交换机 + NAT。其中关于防火墙和交换机,参考博客1中分别给出描述:

Firewall: Routers act as basic firewalls in a variety of ways including automatically rejecting incoming data that is not part of an ongoing exchange between a computer within your network and the outside world. If you request a music stream from Pandora, for example, your router says, “We’re expecting you, come on in” and that stream of data is directed to the device that made the request. On the other hand, if a sudden burst of port probing comes in from an unknown address your router acts as a bouncer and rejects the requests, effectively cloaking your computers. Even for a user with a single computer a simple $50 router is worth it for the firewall functionality alone.

Switch: In addition to the inside-to-outside network functionality outlined above, home routers also act as a network switch. A network switch is a piece of hardware that facilitates communication between computers on an internal network. Without the switching function the devices could talk through the router to the greater internet but not to each other—something as simple as copying an MP3 from your laptop to your desktop over the network would be impossible.

路由器和交换机的区别(参考博客2):

两者都是连接互联网的设备,它们之间主要区别就是,交换机发生在网络的第二层数据链路层,而路由器发生在第三层网络层。这个区别是两者各自工作方式的根本区别。路由器可以根据IP地址寻找下一个设备,可以处理TCP/IP协议,而交换机是根据MAC地址寻址的。

最后来看下NAT协议。我们都知道,一台家用路由器可以允许多台设备同时连接上网,如下图所示:

那么当设备通过家用路由器向网络发送请求后,返回的响应到达路由器时,路由器必须要知道该响应对应的是哪台设备发送的请求。我们向网络供应商(ISP)申请网络访问权限时,ISP会给路由器分配一个公网ip,路由器内部的设备只能使用内网ip。NAT的作用就是实现公网/内网ip以及端口的转换。为此,需要一张表,用于记录内外ip和端口的映射关系。

假设内网中有两台设备A和B,同时访问同一个外网ip的相同端口。那么在路由器处就会记录如下映射关系:

(remote ip_r : port_r)--(local ip_a : a_port)

(remote ip_r : port_r)--(local ip_b : b_port)

假设恰好a_port和b_port的值相同,那么来自远端的响应数据到达路由器时,路由器就无法确定该请求应该给A还是给B。对于这种情况,NAT采用一个三元组来进行区分:(remote ip_r : port_r)(nat port)(local ip_a : a_port),即通过增加nat port来进行区分。当A和B请求到来时,为两个请求生成两个尚未使用的端口:a_port和b_port,并记录如下关系:

(remote ip_r : port_r)(nat a_port)(local ip_a : same_port)

(remote ip_r : port_r)(nat b_port)(local ip_b : same_port)

即当A请求到达路由器时,路由器将请求的源ip换成ISP分配的公网ip,并将源端口换成a_port;而当请求B到达路由器时,路由器将请求的源ip换成ISP分配的公网ip,并将源端口换成b_port。当A和B的请求返回时,根据返回的目的端口(返回的目的端口就是请求的源端口)是a_port还是b_port即可确定该将响应给A还是B。

参考博客:

1、https://www.howtogeek.com/99001/htg-explains-routers-and-switches/ Understanding Routers,Switches,and Network Hardware

2、https://baijiahao.baidu.com/s?id=1596373286946216952&wfr=spider&for=pc 路由器和交换机的区别?路由器的作用和工作原理

家用路由器及NAT协议相关推荐

  1. 【计网】(三)超网、路由、NAT协议

    接着上文介绍着走.上文说到了MAC地址和IP地址,以及IP地址的子网划分问题.子网划分所起到的作用是将一个网络,划分成很多份子网,使其每个子网都处于不同的网段.那么今天提到的第一个概念就是超网. 文章 ...

  2. Linux:数据链路层——以太网协议、NAT协议、ARP协议和DNS协议

    Linux:数据链路层--以太网协议.NAT协议.ARP协议和DNS协议 以太网协议 以太网帧格式 MTU以及MTU对IP协议的影响 ARP协议 NAT协议 NAT IP转换过程 静态NAT 动态NA ...

  3. 计算机网络——NAT协议

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

  4. 以太网协议、ARP协议、NAT协议、DNS协议

    目录 1. 数据链路层的以太网协议 2. ARP协议 3. NAT协议 NAPT协议(动态NAT重载) 4. DNS协议 1. 数据链路层的以太网协议 数据链路层的以太网协议本质上其实就是相邻设备之间 ...

  5. 带你一文搞懂网络层的IP协议\数据链路层的以太网\ARP协议以及DNS和NAT协议

    TCP连接管理中的保活机制: TCP协议是面向连接通信,若通信双方长时间没有数据往来,就需要确定对方还是否在线,连接是否正常?        若通信双方长时间(7200秒)没有数据往来,在服务端会向客 ...

  6. IP、MAC地址,交换机路由器,ARP、NAT协议串讲

    MAC地址在数据链路层工作,是绑定物理网卡,出厂时决定,是独一无二的. IP地址在互联网的逻辑上代表一个设备,在ip地址使用到期后,ip地址会被重新分配,然后再次绑定到其他设备上. 交换机和路由器 交 ...

  7. 【计算机网络】家用路由器的NAT模式和路由模式

    参考视频:https://haokan.baidu.com/v?vid=17283785740956069571&pd=bjh&fr=bjhauthor&type=video ...

  8. 网络地址转换协议NAT详解

    NAT(Network Address Translation)协议:在私有地址和全局地址之间转换的协议. 首先什么是私有地址?私有地址是不能用在Internet上(路由器将丢弃寻址这种地址的包)的内 ...

  9. 网络协议上课笔记(三) 路由、重要概念、NAT

    目录(如果对你有所帮助,请三连支持博主!) 路由 路由的定义(摘自维基百科) 动态路由和静态路由 静态路由 动态路由 路由表 路由的规则 路由的优先级 理解第一个包丢失的现象 重要概念 ISP 服务器 ...

  10. CCNA-NAT协议 静态NAT 动态NAT(多对多) PAT(多对一) 内网与外网之间的通信 GNS3实验验证

    目录 实验视频简讲解链接 NAT协议概述 NAT 网络地址转换 NAT协议种类归类: NAT实验练习 实验拓扑 实验设备准备设置 实验验证过程 第一部分: 验证静态NAT 第二部分:验证多对多的动态N ...

最新文章

  1. Struts2-获取值栈对象与结构
  2. php变量赋值给js
  3. 判断android图片是否硬解码(方法)
  4. javascript面试_在编码面试中需要注意的3个JavaScript问题
  5. 由于应用程序配置不正确,未能启动此应用程序
  6. 记账软件,预设收支类别、收支账户进行记账的方法
  7. Android 鼠标样式修改
  8. Vue里的ElementUi点击行 如何获取 Table 的行索引
  9. 遍历一个文件夹下的所有文件和子文件夹
  10. 小王的研发日记-自动对焦(硬件与计算机通信)
  11. 02 C语言使用队列实现缓存模块QueueBuffer
  12. 【循环链表】猴子选大王(约瑟夫问题)
  13. Metal(六) 案例之视频文件的渲染
  14. 逾期催收管理流程优化与催收系统配置
  15. FME入门视频教程:第二节 FME模板的使用,视频讲解如何使用已经做好的FME模板工具
  16. Android 3分钟一个库搞定视频替换音频 视频合成 视频裁剪(高仿剪映)
  17. GBaseDataStudio 管理工具
  18. 图扑软件 | 数字孪生钢厂人员安全定位
  19. python离散余弦变换_Python图像处理 —— DCT变换
  20. 基于javaweb的房地产客户关系管理系统(java+jsp+javascript+servlet+mysql)

热门文章

  1. uni-app实现本地打包安卓APK
  2. 微信小程序分享小程序码的生成,多参数以及参数的获取
  3. AutoHotKey 例程(自用-高手勿喷)
  4. 21、随机调整锐度 transforms.RandomAdjustSharpness()
  5. Android 高效安全加载图片
  6. ios uri正则表达式_众果搜的博客
  7. 信用卡逾期怎么办,如何让信用卡不逾期?
  8. perl安装的详细步骤
  9. 一点接入全网互通,企业上云就用它!
  10. ps裁剪和裁切的区别_PS剪切、裁剪、裁切的区别