我是一个路由器

实现一个简单版的 Vue 路由器 请注意,这只是一个简单的示例,用于演示如何实现一个基本的 Vue 路由器。在实际的项目中,您可能需要处理更复杂的路由逻辑,例如带有参数的路由、嵌套路由等。它允许您根据 URL 的变化来加载不同的组件,并实现页面之间的导航。如果找到了对应的组件,我们可以执行渲染组件的逻辑。首先,我们需要创建一个路由器对象,用于管理路由和组件之间的映射关系。这个简单版的路由器可以根据 URL 的变化加载不同的组件,并实现页面之间的导航。现在,我们需要监听 URL 的变化,并根据 URL 的变化加载相应的组件。 阅读详情

前言: 《我是一个网卡》发出以后,受到很多人喜欢, 感谢大家的支持, 这也促使我多写一些网络相关的文章,以飨读者。

我注意到很多人提出了很好的问题, 主要集中在数据包出了局域网以后的处理。所以特别写下这一篇文章, 试图回答一下这些疑问。

我就是网卡TP-Link 7954经常和大家提起的网关路由器,  我在网络中的位置是这样的:

0?wx_fmt=png

为啥叫网关呢? 因为大家想上网,一定得经过我这一关  :-)


这不是开玩笑,确实是这样, 所有的对局域网之外的访问那非得经过我不可。


其实我直接和ISP(就是联通!)的网络相连,  我从联通那里搞了一个外网的地址: 61.52.247.112 。


可是只有这么一个地址, 我们局域网内这么多电脑, 如果轮流着让每个电脑去用, 那大家可就抱怨死了。 


于是我巧妙的构思了一个网络世界,  成功的欺骗了TP-Link 7954这些网卡们。

1

NAT (网络地址转换)

还记得上次TP-Link 7954 向我要地址的事儿吗 ? 

因为我不仅仅是个路由器, 还是一个DHCP服务器, 掌握着这个局域网的IP生杀大权。


我给TP-Link 7954 分配的IP是 192.168.1.2  , 但是他拿这个地址是无法直接上网的, 因为这是属于我管辖的内网地址, 别的网站像www.baidu.com  根本都不知道!


即使知道了也没用, 因为在这个世界上可能有无数的路由器都会分配192.168.xxx.xxx 这样的地址, 你到底要找哪一个?


所以TP-Link 7954 想上网必须得通过我, 我需要施展一点点小魔法, 比如说它想访问百度, 通过交换机给我发来这么一个数据帧:

0?wx_fmt=png

我把数据链路层的外衣去掉, 发现IP数据包中的目标地址是 115.239.211.112, 我就知道这是要向外网发出请求了。


于是我就把IP数据包中的源地址192.168.1.2 替换成我从联通那里搞到的外网地址  61.52.247.112。


这还不够, 我会创建一个新的端口号2001, 把TCP数据包中的源端口也替换掉, 数据包就变成了这个样子:

0?wx_fmt=png

不知道你看出来其中的奥妙没有,我把源地址和源端口都替换了, 其实我的目的就是让外部的网络认为这是我(路由器)发出的, 他们根本不知道什么TP-Link 7954 这个网卡 !


然后我需要查一下我的路由表,确定到底转发到哪个输出端口去,再给这个IP数据报穿上数据链路层的外衣,把数据包发给了联通的网络, 剩下的事我就不管了。

0?wx_fmt=png

注意看以太网帧的MAC地址, 源地址已经是我了,而不是TP-Link 7954了, 因为这是我和联通网络之间的数据链路。


这个替换源地址和源端口的小把戏就叫做网络地址转换 , 人类简称为NAT。


当然不只是TP-Link7954通过我上网, 还有很多别的电脑呢, 我得把我的小把戏记下来 ,形成这么一张表:

0?wx_fmt=png

过了不久, baidu 网站的回复就会通过别的路由器转到我这里,正如你所想的, 我需要反过来处理一遍:

首先去掉数据链路层的外衣,发现TCP和IP数据报中包含这样的信息:

目的地IP : 61.52.247.112 , 端口 2001 


这时候我就去查表, 找到了 192.168.1.2:3345  , 我就明白这是给TP-Link 7954的信了。 


那就再次把数据报中的IP地址和端口号改了吧, 让TP-Link 7954 认为这个数据包就是我给他的。


就这样, 我成功的用区区一个外网的IP就支持了局域网内多个电脑的上网需求, 并且他们根本就不知道是怎么回事!

2

NAT 穿越

欺骗终究是不能长久的, 我的麻烦很快就来了。


TP-Link 7954 所在的机器为了下载一个大电影, 安装了一个P2P软件: 电驴。 


所谓的P2P 就是Peer to Peer, 即网络中的机器是对等的。


所有使用电驴的机器不仅仅是一个发起请求下载数据的客户端,    他们同时也是一个能够接受请求,向外发送数据的服务器。


这样一来, 当下载大文件的时候, 你就可以从很多安装了电驴的机器上分块下载, 而不是仅仅从一个服务器上下载, 速度快了很多。


人人为我, 我为人人啊。 


可是TP-Link7954 很快就发现, 当它试图做服务器的时候, 其他电驴根本就连不上它, 为什么? 


因为IP地址是我分配的啊, 是个内网地址 192.168.1.2, 外网的人根本就不知道, 怎么连?


TP-Link 7954 给我发了一封措辞严厉的信件,质问我为什么他没法作为一个服务器接受外边的连接, 这强烈的阻碍了他们下载各种电影的需求。


我估摸着是瞒不住了, 只好把所有的网卡都召集起来,开个会大家商量一下。


我解释说: “现在IP地址很稀缺, 我用这种NAT的方法也是不得已而为之,要不然大家怎么上网啊, 你们之前不是过的也挺好吗? 我听说电驴会占用很大的流量, 我们公司很快就会禁止的。”


D-Link 3925 说 : "公司的政策根本不是你应该考虑的事, 你考虑的是怎么才能让外网的电驴连上我们!"


可是我实在是没有办法, 就这一个外网的IP地址啊。 


TP-Link 7954倒是很聪明, 他立刻就意识到了问题所在,想出了解决办法:


“这样吧, 路由器,你不是擅长搞玩小把戏吗, 可以继续玩下去, 但是得允许我们这些网卡参与进来玩, 比如说我(ip地址192.168.1.2)会主动的要求你建立一个NAT映射 (192.168.1.2 : 4096) <-> (61.52.247.112: 3001)。


“你还可以保存在你的NAT表中,  然后我就会对外通告了, 我是一个电驴服务器, 谁要是想连接我的话,请到这里来:61.52.247.112: 3001,当外网的连接来的时候, 你必须把连接请求转发到我这里来”


大家一致认为这个方法很简单, 很实用, 就这么决定了。


“码农翻身”公众号注:这其实就是UPnP , 你打开你的无线路由器,就能看到 :

0?wx_fmt=jpeg

事情就这么解决了,生活又恢复了平静,当然,我作为一个路由器,这些NAT, UPnP都是我的附加功能, 我最重要的事情还是建立路由表, 做路由选择,转发IP数据包,下次再说吧。


声明:原创文章,未经授权,禁止转载


你看到的只是冰山一角, 更多精彩文章,尽在“码农翻身” 微信公共号,回复消息"m" 或者"目录" 查看更多文章。

我是一个线程

我是一个Java class

Javascript: 一个屌丝的逆袭

Java : 一个帝国的诞生

我是一个网卡

Basic : 一个老兵的自述

小王的架构师之路

程序员在工作中必备的能力

码农需要知道的潜规则

TCP/IP 之 大明王朝的邮差

CPU 阿甘

IE为什么把Chrome和火狐打伤了

Node.js :我只需要一个店小二

假如我是计算机系老师

假如时光倒流,我会这么学Java

学会编程,而不是学会Java

15年编程生涯,资深架构师总结的7条经验


0?wx_fmt=jpeg

公共号:码农翻身

“码农翻身”公众号由工作15年的前IBM架构师创建,分享编程和职场的经验教训。

基于禾赛32线雷达和Xsens MTi-G-710 组合导航模块,松灵Scout mini 底盘实现 Cartographer 3D 建图过程 地下车库 Cartongrapher 3D建图 阅读详情

相关推荐

ABAP FB05 清账实战:POSTING_INTERFACE_CLEARING 核心参数与业务场景解析

本文深入解析ABAP FB05清账操作中的核心函数POSTING_INTERFACE_CLEARING,详细讲解其关键参数与业务场景应用。通过实战案例展示收款清账(EINGZAHL)流程,提供常见错误排查方法,并分享批量清账优化与财务凭证集成的高级技巧,帮助开发者高效处理SAP财务模块清账需求。

weixin_33423874的博客 475

读码农翻身之我是一个路由器

1、网关路由器在网络中的位置: 网关是和网络运营商相连接的,故:为啥叫网关?因为想上网,一定得经过我这关。 2、NAT(网络地址转换) 路由器同时也是一个DHCP服务器,以类比来说,路由器相当于就是一个国家的外交部长,如果国内的声音要想发送到国外,声音就需要通过外交部长来传达!同时,在国外看来,外交部长的声音就会认为是国内的每个老百姓的声音。即替换源地址和源端口的小把戏叫做网络地址转换。简称为NAT 也正是这种NAT,所以比如一个公司中,可以只有一个路由器,但是却能支持很多人上网,就是因为所有人的电脑都连

夏季版 335

【翼型】基于Matlab的NACA翼型气动性能仿真与优化【附源码】

本文详细介绍了如何使用Matlab进行NACA翼型的气动性能仿真与优化。内容涵盖从生成NACA翼型坐标、利用面板法快速估算升阻力,到进阶的粘性流模拟与优化设计入门。通过清晰的代码示例和分步指南,帮助读者掌握基于Matlab的翼型分析与优化流程,为飞行器或叶片设计提供实用工具和方法。

weixin_29032489的博客 411

网卡和路由器

一、网卡:每一块网卡都有唯一的标志:11:27:F5: 8A:79:54 ,人们把它叫做MAC地址,简单起见,你可以叫我 “TP-Link 7954”。有了网卡,我们要想上网还需要获取ip,以及DNS域名转换等。下面我们就来描述这几个过程是如何进行的。1、DHCP(动态主机配置协议)动态地址分配过程:主机首先需要在局域网内发送一个广播,来获得DHCP动态分配的ip地址。报文的格式:先是一个应用层的...

赶路人儿 6688

卫星测试科普(三):卫星载荷的核心测试设备探秘

总的说来,卫星芯片与元器件,部组件与单机,整机与子系统,系统与整星的设计、定型、制造、验证、总装、发射、在轨等环节都离不开各种测试场景,对于这些卫星测试场景而言,“射频三大件”与高速数字示波器是构成强大测试系统的基础。卫星通信信号生成:覆盖Ka、Q等波段,具备扫频、脉冲、数字调制、噪声信号、雷达信号、数据链信号、OFDM 等多种信号库,用于测试和验证卫星电子设备的电气性能、频率响应、抗干扰能力等。卫星的通信需要高效、快速地传输大量数据,高速信号的质量至关重要,如果卫星信号不佳,卫星就会出现故障或者隐患。

spwbjss的博客 2319

Linux下用SquareLine Studio开发LVGL界面:从安装到实战的完整避坑指南

本文提供了一份在Linux系统下使用SquareLine Studio开发LVGL图形界面的完整实战指南。内容涵盖从SDL库安装、SquareLine Studio环境配置、界面可视化设计,到工程导出、源码编译及常见错误排查的全流程。重点解析了如何将设计界面无缝集成到Linux开发流程中,并针对嵌入式设备移植提供了关键步骤,旨在帮助开发者高效避坑,快速上手LVGL界面开发。

egg99的博客 905

路由器后面再接一个路由器怎么设置(二级路由)

路由器后面再接一个路由器怎么设置(二级路由) 总结: 这种设置方法二级路由是在同一个vlan里面的,也就是在同一个局域网里面。   我们在日常上网中有时会遇到这样的问题:A房间有一无线路由器,B房间到A房间有七八十米,我们要在B房间再用手机上无线网的时候信号可能就不好了,中间又有墙,哪么应该怎么办呢?呵呵,其实很简单在B屋加个无线路由用网线接到A就可以了,其实路由后再接路由...

weixin_34032792的博客 5230

LLM - windows下的Dify离线部署:从镜像打包到无网环境部署(亲测,包含插件部署)

LLM - windows下的Dify离线部署:从镜像打包到无网环境部署(亲测,包含插件部署)

ocean00008899的博客 1286

一个交换机下配置两个路由器

【技术区】技术区主要讲一下如何在一个交换机下面配置两个路由器,喜欢研究的朋友可以再研究一下其他区一个交换机下面链接多个路由器,思路很多,比如:(1)交换机----路由器1wan口;路由器1lan口----路由器2wan口;路由器2lan口----电脑使用这种方法也ok,大家肯能感觉PC1,2,3可能会跟路由器II抢夺网路,具体是不是这样还没验证(2)交换机----路由器Awan口,路由器Bwan口...

宏伟伟的博客 5万+

汽车OTA自动化测试解决方案

目前OTA远程升级技术已成为众多汽车制造商的标配。由于OTA升级可能会带来潜在的风险(特别是包含ECU固件更新的FOTA升级),针对OTA系统的测试过程就尤为重要。

东舟技术的博客 7760

汽车电子零部件(14):TMS热管理系统

TMS(thermal management system)热管理系统,这是新能源汽车诞生后随之而产生的一种新汽车零部件,一旦热管理失控会触发自燃,这种现象也是对EV来说是件头疼的事。汽车的热管理系统(TMS)是一个关键部件,有助于调节汽车电池组、车厢和其他车辆系统的温度。TMS的主要目的是在驾驶过程中保持最佳的电池性能和乘客舒适度。TMS使用各种加热和冷却系统来调节电池组和车厢的温度,并通过优化其使用,降低能耗,提高车辆的整体效率。

码农17年的博客 3161

一个移动光猫能连几个路由器?

回答本行业问题,一个光猫能连几个路由器?现在的家庭光纤宽带基本都是三网合一了,即宽带业务、固话业务、IPTV电视业务使用同一根光纤传输,通常情况下,一个光猫设备只能连接一个路由器,简单介绍一下。 家庭光纤宽带,一个光猫设备通常只能连接一个路由器 家庭的光纤入户,通常都是以弱电箱为最终汇聚点,连接着终端的光猫设备。光纤猫也称调制解调器,主要的功能是调制和解调的作用,它是将光纤光信号转变成网络电信号。一个光猫通常有1个RJ11接口、1个光纤接口、4个RJ45网络接口(含1个IPTV电视接口),由于在光纤宽带

地推 1万+

SAP 供应商寄售(VMI)完整实现方案

摘要:本文详细讲解了SAP系统中供应商寄售(Consignment)和VMI(供应商管理库存)的实现方法。核心逻辑是物料所有权属于供应商,仅在领用时才触发采购。文章包含配置步骤(物料主数据、供应商设置、定价协议、会计科目等)、端到端操作流程(收货、库存查询、领用、结算、付款)、关键差异比较(与普通采购的区别)、核心事务码和数据表。重点说明了寄售流程无需采购订单,通过信息记录维护价格,领用时才产生应付账款的特点,并提供了常见问题解决方案和VMI进阶优化建议。

金牌架构师 1045

在一个路由器上连接另外一个路由器

本来有一个路由器安装在客厅,可是信号不好,所以想在卧室再安装一个路由器,就在网上新买了一个路由,写下安装过程。 1.将路由器的电源线,网线之类的连接好。一根网线从第一个路由器中连接到这边的wan接口。 2.打开电脑,连接到路由器。账户和密码 看买的路由器说明手册,好多都是admin。(可惜我这个就不是,开始郁闷了我半天。看了说明书,才知道错了)。 3.修改默认的路由ip为:192.1

月清空的博客 3606

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

一个宽带猫能不能连接两个路由器?

随着居住条件的改善,单台无线路由器或将无法满足所有房间的无线WiFi接入需求。一个很现实的问题便出现了,单个光猫能否接多台无线路由器的问题。虽然光猫仅具有四个网络接口,但是理论上却能够接入无数台无线路由器,端口不足添加交换机即可。实际上并不建议这么去做,毕竟光猫的性能有限,无法承载过多的设备接入,民用级光猫最好接入的无线路由器不要超过三台。那么,光猫与多台无线路由器建立连接都需要注意哪些事情呢? 先来谈谈组网结构,如何实现光猫与无线路由器的物理连接问题。 光猫是运营商入户的终端设备,一般与入户的皮线

地推 9672

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

一个小型路由器的配置总结

 一个小型路由器的配置总结1、硬件安装: 1)建立局域网连接   将路由器LAN口和局域网中的Hub或交换机连接,也可将路由器LAN口直接和一台计算机的网卡相连接。 2)建立广域网连接   将外面接进来的网线,如xDSL或以太网接入五类线与路由器的WAN口相连。 3)连接电源   将电源连接好,路由器将自行启动。2、配置路由器:1)路由器的默认IP地址是:1

【小妮的天空】 1863

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

从另一个路由器上接出一个网线接入到另一个无线路由器上,生成一个无线网,但是连不上网,求高手解救...

摘自:http://zhidao.baidu.com/link?url=NjHK0RFoqivZPfFo5Hv7M-dLjvjvV6GV6AISqyKJ04loq7uqb7Hdy_pKzEkGNEKanYbQvOVFMN5X-Z4kkbsEU_   方法一: 接法:路由A的WAN口接外线上网,路由B(无线)的WAN口接到路由A的LAN口即可。 设置:路由A是已经能上网的这个省略了。 ...

CYZ412的博客 2308

相连路由器端口IP地址为什么必须在同一个网段

图1.1 静态路由协议实验网络拓扑图 我们在两个网段(192.168.1.0/24和192.168.2.0/24)中分别有3个路由器,Router0,Router1和Router2,我们的目标是Router0的数据包能顺利到达Router2,因为这是一个小型的具有简单拓扑结构的网络,因此我们决定采用静态路由协议达到这样的目标。 首先,我们必须给每个路由器的接口分配...

weixin_33811961的博客 5387

一个路由器下面是共用一个IP吗

当局域网内的设备向互联网发送数据包时,路由器会将数据包的源IP地址(私有IP地址)替换为路由器的公网IP地址,并将端口号映射到一个唯一的端口号。然而,这也意味着局域网内的设备在互联网上是不可见的,因为它们使用的是私有IP地址。总之,在一个路由器下面的设备通常共用同一个公网IP地址,这是通过网络地址转换(NAT)技术实现的。路由器接收到数据包后,会根据端口号的映射关系,将数据包转发到对应的局域网内的设备。然而,在你的局域网内,每个设备都有自己的私有IP地址,通常是由路由器动态分配的。

m0_57236802的博客 675

报文传递到第一个路由器的时候,MAC地址填什么

当报文从源设备传递到第一个路由器时,目标MAC地址填的是第一个路由器(默认网关)的MAC地址,而源MAC地址填的是源设备的MAC地址。这种方式确保了数据包在本地网络中能够找到路由器,顺利进行下一步的转发。

weixin_41230430的博客 755

一个简单的路由器试验

一个简单的路由器试验试验所需设备一台有两个Ethernet接口的cisco2610路由器一台小型TP-LINK TL-R402M SOHO宽带路由器两台pc机,分别装有debian linux和windows XP操作系统实验所讨论的命令debian linux命令route add default gw A.B.C.D实验配置实验内容PC上需要配置网关:网

jiankun_wang的专栏 843

路由器后面再接一个路由器怎么设置?

【1】打开浏览器,清空地址栏并输入tplogin.cn(部分较早期的路由器管理地址是192.168.1.1),并在弹出的窗口中设置路由器的登录密码,(密码长度在6-15位区间),该密码用于以后管理路由器(登录界面),请妥善保管。内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

Python_paipai的博客 2240
上一篇: 来自大脑的控诉
下一篇: Spring 的本质系列(1) -- 依赖注入
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值