跳至主要内容

对网关的理解

网络模型被OSI分成七层,TCP/IP协议大致对应了2、3、4、7层,分别是数据链路层、网络层、传输层、应用层,IP协议处于网络层上,它的工作原理说白了并不复杂:
  1. 整个互联网上所有的机器都有唯一一个IP地址对应。这并没有什么稀奇的,MAC地址也是唯一的,稀奇的在后面
  2. 机器的IP地址按照连接顺序进行了一定程度的分组,这样一个连续的IP段大致都在相同的路线上,这样路由器寻找特定IP地址的时候就方便多了,把整个地址空间分成若干个可能重叠的大段,每个大段一般这样表示:A.B.C.D/n,表示32位IP地址的前n位与A.B.C.D的前n位相同。比如192.168.1.0/24,所有前24位与192.168.1.0相同的都是这个网段的IP,由于IP地址8位一分组,24位就是前三段,也就是192.168.1.x。符合规范的这段连续的IP段就叫做一个子网。这种子网的表示方法叫做CIDR。
  3. 这种表示方法对人来说比较直观,但是计算机有另一种更快速的计算方法,对于A.B.C.D/n,我们构造一个前n位都是1、后面其他位都是0的IP地址,这个32位IP地址和A.B.C.D按位与的结果,就是前n位与A.B.C.D相同而后面其他位都是0的IP地址;如果这个32位IP地址和另一个IP地址与的结果,刚好与A.B.C.D与的结果相等,就说明这个IP地址和A.B.C.D的前n位相等,就说明新IP地址在CIDR范围内。我们把前n位都是1、后面其他位是0的地址也用IP地址的形式表示出来,那么192.168.1.0/24对应的就是255.255.255.0,这个就叫做子网掩码,掩码也就是mask,mask在计算机用语当中表示按位与的操作数,用来从目标数中取出特定的二进制位。也就是说IP+子网掩码是CIDR的另一种表示形式。

对于任意一台计算机或者路由器来说,它首先会有一些本地的链路,这些链路的IP地址都在各自特定的CIDR当中,这个子网叫做链路子网,链路子网中的IP地址都可以通过链路层协议直接访问,具体的访问方法与IP协议无关,在以太网当中是靠ARP,但是如果是WLAN,或者令牌环网,或者PPPoE,又会有所不同。比如子网是192.168.1.0/24,那么范围内所有IP地址都会直接调用链路层协议访问。表现在路由表中,就是这样一项:
192.168.1.0/24 -> link local, ifindex = XXX
即“192.168.1.0/24范围的IP通过XXX网卡的链路层协议直接访问”
如果还有其他链路,也会有相应的表项,比如说还有一个网卡上面的链路子网是111.222.1.0/24,那么就有另一项:
111.222.1.0/24 -> link local, ifindex = YYY
特别的,每个网卡上都会有一个IP地址,是本机的IP地址。当数据包发到这个IP地址的时候,设备就会正确理解“这个数据包是发给我自己的”,否则会理解为“这个数据包需要我代为转发”。这些本机的IP地址一定在链路层子网当中,比如说192.168.1.0/24中本机的IP地址是192.168.1.1,111.222.1.0/24中的IP地址是111.222.1.15,那么就有两个表项:
192.168.1.1/32 -> local
111.222.1.15/32 -> local
到local表示交给本机的更高层的协议栈,比如TCP/UDP去处理。否则会转发到其他机器。
我们注意到这些表项和刚才的表项有重叠的部分,比如说192.168.1.1/32其实包含在192.168.1.0/24里面。路由表的不同表项有不同的优先级,子网越小的越优先,也就是后面n越大的越优先,这样192.168.1.1/32就比192.168.1.0/24优先。

除了这些IP地址以外,其他的IP地址显然是无法直接访问的,需要由其他设备进行转发。不同网段的IP地址可能需要不同的设备进行转发。我们必须在路由表当中记住某段IP具体由哪个设备转发,记录的方法是记住需要转发的IP段CIDR,和需要发往的设备的IP地址,像这样:
100.101.1.0/24 -> via 192.168.1.17
这个via后面的地址,192.168.1.17,这个设备有进一步将数据包转发到目的网段的能力,比如说上面有一个链路层子网就是100.101.1.0/24,或者有另一条路由信息表明这个网段应该进一步发给其他的某个设备。这个设备在IP协议当中就叫做Gateway(网关),因为所有发到目的网段的流量都会从这个设备上经过,这个设备像个门一样,把两个网段连接了起来。
大多数情况下,这个IP地址位于某个链路层子网中,这样本机可以直接通过链路层协议将IP报文发送到网关。一部分设备(主要是硬件路由器)支持递归的路由表配置,这个时候网关地址可以不是本地链路层子网中的地址,当需要将IP报文发送到这个网关时,设备会递归查找网关的路由信息,直到查找到可以直接发送的地址为止。

互联网上的网段太多了,而且天天都在变,我们不可能给每个设备都配上互联网上所有的网段。幸好,对于大部分设备来说,除了特定的少数几个网段以外,大部分IP地址都有相同的网关,于是我们可以通过配置一个包含整个IP空间的CIDR来指定大部分IP地址的共同的网关:
0.0.0.0/0 -> via 111.222.1.254
由于前面说的原则,子网越小越优先,这条规则的优先度最低,而且能匹配所有的IP地址,因此可以理解为无法匹配到其他子网网段时使用的默认规则,因此这个网关一般叫做默认网关。
一个设备可能有多个网关,但是一般最多只有一个默认网关(不考虑等价路由、策略路由等复杂的情况)。也有可能没有默认网关,比如说骨干网上的路由器通过BGP协议交换路由信息,一般路由表就由非常多的CIDR组成,这些CIDR合起来能覆盖互联网上所有的公网IP。

最后说下链路层地址与IP地址。许多链路层协议也有自己的地址,一般是MAC地址,比如最常用的以太网。链路层地址在链路层协议中使用,表明这个链路层报文会被发给谁;而IP地址在IP层协议中使用,表明这个报文最终要发给谁。可以分为两种情况:
1. 直接通过链路层发送:
链路层地址: (源MAC地址) (目的MAC地址)
IP地址: (源IP地址) (目的IP地址)
2. 经过网关转发
从本机出发发往网关时,链路层的目的是网关而IP层的目的不是网关:
链路层地址: (本机源MAC地址) (网关MAC地址)
IP地址: (本机IP地址) (目的IP地址)
网关转发到其他网关:
链路层地址: (网关MAC地址) (下一跳网关MAC地址)
IP地址: (本机IP地址) (目的IP地址)
最后一个网关转发到目标:
链路层地址: (最后一个网关MAC地址) (目的MAC地址)
IP地址: (本机IP地址) (目的IP地址)
在转发过程中,IP报文的源和目的保持不变,链路层地址则只和这一跳的双方有关,甚至如果中间经过了不一样的链路层,还会更换二层数据包的格式。

Popular posts from 产品随想的博客

产品随想 | 周刊 第88期:抢救中文社科历史讲座

  抢救中文人文社科历史讲座   https://github.com/jeffyus/renwenjiangzuo 苹果公司的招聘理念就是两点。 (1)优秀人才是自我管理的,但需要领导者为大家提供一个共同目标。 (2) 只有某个人看到 Macintosh 电脑感到无比兴奋,我们才会雇佣他。 ————喬布斯 衡量一个人的领导能力的最好方法,就是看如果这个人休假了,他的下属在做什么。 优秀的产品经理和工程师可以休假一周,他管理的工作不发生任何问题。优秀的主管和技术负责人可以休假一个月。领导能力越优秀,休假的时间就越长。 -- Andrew Bosworth,Facebook 的 CEO ——可惡,想了想,好像還真是這樣 阅读不会过时,除非写作过时了。写作不会过时,除非思考过时了。(Reading won't be obsolete till writing is, and writing won't be obsolete till thinking is.) -- Paul Graham ——深刻 Cheetah   https://github.com/leetcode-mafia/cheetah Cheetah is an AI-powered macOS app designed to assist users during remote software engineering interviews by providing real-time, discreet coaching and live coding platform integration. 對面試官的要求,變更高了,哈哈哈 AI's Hardware Problem   https://asianometry.substack.com/p/ais-hardware-problem 有趣,瓶頸在內存 Clash 入土为安   https://gyrojeff.top/index.php/archives/Clash-入土为安/ 有趣的介紹 OP Vault ChatGPT   https://github.com/pashpashpash/vault-ai Give ChatGPT long-term memory using the ...

产品随想 | 周刊 第69期:Do not go gentle into that good night

Products Windows Apps That Amaze Us   https://amazing-apps.gitbook.io/windows-apps-that-amaze-us/ 令人精细的Windows App 文物出版社   https://book.douban.com/press/2456/ 这是一个宝藏出版社,出品书籍质量非常高,大开眼界 blind   https://www.teamblind.com/ 老外的匿名职场社交工具,挺有意思,看看硅谷的meme 中国科学技术大学测速网站   https://test.ustc.edu.cn/ 看着还不错,挺靠谱的 底层代码是LibreSpeed   https://github.com/librespeed/speedtest 能不能好好说话?   https://github.com/itorr/nbnhhsh 也是我的一个痛点 Tree Style Tab (aka TST)   https://github.com/piroor/treestyletab 一个超强的浏览器扩展插件,树状呈现浏览器标签 Failory Pitch Decks   https://www.failory.com/pitch-deck 超级多的融资计划投资板,Pitch Book AutoCut   https://github.com/mli/autocut 用文本编辑器剪视频 全网漫游指南   https://tagly.notion.site/tagly/a333efd8c3e54e12b123acd541e8d3e6 数字时代的指引,希望他们成功 IT eBooks   https://it-ebooks.info/ IT书籍下载 ToastFish   https://github.com/Uahh/ToastFish 一个利用摸鱼时间背单词的软件。 利用Win10通知栏,出现、背单词 Ideas 沈向洋:IDEA 如何找到创新的「甜区」   https://mp.weixin.qq.com/s/OlI5VUxQKU_ijWZClQCG0Q AIGC How Did Nor...

Steve Jobs introduced the iPhone on January 9, 2007.

This is a day I’ve been looking forward to for two and a half years. Link Every once in a while, a revolutionary product comes along that changes everything. And Apple has been— well, first of all, one’s very fortunate if you get to work on just one of these in your career. Apple’s been very fortunate. It’s been able to introduce a few of these into the world. In 1984, we introduced the Macintosh. It didn’t just change Apple, it changed the whole computer industry. In 2001, we introduced the first iPod, and it didn’t just change the way we all listen to music, it changed the entire music industry. Well, today, we’re introducing three revolutionary products of this class. The first one is a widescreen iPod with touch controls. The second is a revolutionary mobile phone. And the third is a breakthrough internet communications device. So, three things: a widescreen iPod with touch controls; a revolutionary mobile phone; and a breakthrough internet communicat...

可能比较危险的

全网监控公司: 1)中国厦门的美亚柏科 2)KIS(Knowlesys Intelligence System) 3)除中美之外的第三大AI监控技术供应商是:日本的NEC Corporation 中国的VPN公司: 1)VyprVPN、玲珑加速器 Point: 1)被GFW屏蔽的IP,反向也会无法访问大陆网络

《沸腾新十年》2007-2012

2007-2009 大幕拉启 早期玩iPhone的人觉得:它不支持复制粘贴、拍摄视频,也不能更改铃声、壁纸,还不能换电池、插存储卡,手机里的照片和备忘录等也没法复制到电脑中。(但它有Killing Feature是沉浸式的屏幕、上网功能) 在网龙的路演过程中,网龙创始人刘德建发现,在当时极为“高大上”的投资人群中,用iPhone已经蔚然成风 ──论有钱人带领的风潮 苹果早期是不支持第三方输入法的,这一问题要等到2014年iOS 8的推出才正式解决。 ──居然也封闭了整整七年 对于航班管家来说,好用户就是高频乘坐飞机出行的群体。以前,这个群体在哪里、如何捕捉,都是问题。但是iPhone的出现,天然筛选出了那些消费能力强劲的群体。 苹果公司和联通也在为没有好应用来推广iPhone而发愁,所以它们精选了6款应用。王江的航班管家和搜吃搜玩都得以入选,吃到了iPhone大推广时代的官方预装红利。 王江认为:“其实有了智能手机,才能说有了场景。你不拿着手机亲临其境,怎么叫场景呢? 触宝输入法,深合安卓早期创业的三大奥义:“高频、刚需、工具化”。 参赛是一个名利双收的大好机会,能帮助免费推广产品 魅族黄章对之前毫无保留地和雷军交流有些后悔:“我连M9的UI交互文档都发给过他,请他一起探讨。” 安卓早期的最大刚需之一是系统优化。 CyanogenMod因此成为当时全球最大的ROM开发和优化团队。 中国早期安卓生态的很大一部分是建立在CM的基础上的。最着名的有小米的MIUI团队、创新工场的点心团队、占据国内千元机市场的乐蛙OS团队等。 当时的盛大创新院群星璀璨,除了潘爱民和许式伟,还有樊一鹏“樊大师”,也有郝培强和霍炬,有极客余晟,有陆坚博士,有黄伟和吴义坚,有庄表伟,还有白宁等诸多牛人。 2012年夏天,华为的任正非在一个讲话中提到两个“备胎”计划,一个是关于芯片的,另一个就是关于操作系统的。 ──布局早在10年前 2009年,张一鸣决意离开饭否,转而去房产网站九九房,这是26岁的张一鸣从南开大学毕业后的4年里准备开启的第4段工作经历,每份工作平均也就一年多一点的时间。此时的张一鸣与大部分同龄人相比略显著急,稍显无措,全然没有日后那种长期思考的定力和耐性。 2009年12月底,王兴确定做美团。 ──原来也已经10年+ 2009年的“双11”购物节只是给淘宝商城团队找点事情的自我安慰...

Interview at the All Things Digital D5 Conference, Steve and Bill Gates spoke with journalists Kara Swisher and Walt Mossberg onstage in May 2007.

Kara Swisher: The first question I was interested in asking is what you think each has contributed to the computer and technology industry— starting with you, Steve, for Bill, and vice versa. Steve Jobs: Well, Bill built the first software company in the industry. And I think he built the first software company before anybody really in our industry knew what a software company was, except for these guys. And that was huge. That was really huge. And the business model that they ended up pursuing turned out to be the one that worked really well for the industry. I think the biggest thing was, Bill was really focused on software before almost anybody else had a clue that it was really the software that— KS: Was important? SJ: That’s what I see. I mean, a lot of other things you could say, but that’s the high-order bit. And I think building a company’s really hard, and it requires your greatest persuasive abilities to hire the best ...

ISSUU使用指南--木喵

作者: 木喵   出处: Wonderworks 问:issuu是什么? 答:Issuu是国外的一个在线文档共享网站,它是你的PDF文档发布专家。它类似于我们熟悉的youtube,但它共享的是文档、杂志之类的文本。 简而言之、同志们想看国外的各种杂志? 想找国外的汇报文本么? 想借鉴国外学生的作品集么? 那么你就要用到它啦~ 今天主要和大家讲两个方面 一、如何在pc端使用和下载issuu上的pdf文档 首先我们打开issuu的网址 https://issuu.com/ 我们可以很清楚的看到网页上呢都是国外的杂志以及一些作者自己制作的pdf文档 首先我们点击右上角的 sign up  然后填写相关信息注册一个账户: 注册完成之后我们就可以搜索我们想要找的资料: 比如说,我想找一些分析图的资料,我们就搜索: architecture diagram 然后我们就可以看到相关的文档了: 点击你所选择的文档, 好了问题来了: sorry,this publication is not available 这个时候!就需要在用pc端的我们做一件必不可少的事: 翻墙 然后我们就能将页面刷新粗来了 好、接下来是非常有建设性意义的一步 怎样把我们网页上的文件 下载下来 呢? 截图? no~no~no~ 接下来,让木喵告诉你怎么下载: 首先你需要复制上面的网址 然后将 https://wenfan.hk/issuu/index_link.php 在另一个网址中打开 将你之前复制的pdf的网址粘贴在下面的对话框中 点击 I‘m not a robot 再点击 get it 然后会出现一堆网址代码 我们 全选 打开你的迅雷点击 新建 将你之前的复制粘贴到下载链接里 然后呢~我们就全都下载成功啦~ 然后我们回到之前的网页向下看 我们可以看到有上传文档的作者(记得要关注哟) 然后还有 info   share   stack   ❤ 如果...

产品随想 | 周刊 第43期:历史上的今天

Products Huberman Lab   https://hubermanlab.com/ 一款聚焦于健康的播客 今日热榜   https://tophub.today/ 聚合展示,国内各热门榜单,对跟进热点非常有帮助,热点运营的好帮手 SketchyBar   https://github.com/FelixKratz/SketchyBar A highly customizable macOS status bar replacement Mac菜单栏定制 自定义程度很高,看作者展示的案例,暂时没想出这样的好处(不过应用本身的编辑,确实也没啥意义)生命在于折腾吧! Thanks-Mirror   https://github.com/eryajf/Thanks-Mirror 整理记录各个包管理器,系统镜像,以及常用软件的好用镜像,Thanks Mirror。 Musicn   https://github.com/zonemeen/musicn 一个下载高品质音乐的命令行工具,音乐来源: 咪咕 Planet Minecraft A creative Minecraft community fansite sharing maps, minecraft skins, resource packs, servers, mods, and more. 里面有很多动人的故事 可能是世界上最大的Minecraft社区,从2010年至今 The Uncensored Library   https://www.uncensoredlibrary.com/en blockworks   https://www.blockworks.uk/ "Distinctive maps for Minecraft that have educated players and risen to the level of art" 游戏也可以让人有更高的实现,而不仅仅是沉迷其中,国外游戏厂商比我们做的好太多 Minecraft_Memory_Bypass_GUI   https://github.com/xingchuanzhen/Minecraft_Memory_Bypass_GUI 绕过Minecraft...

Albert Einstein Said Death Is Not An End Can Prompt You To Find The Meaning and Purpose Of Your Life

原文Link: https://quotationize.com/albert-einstein-said-death-not-end/ 产品随想注: 爱因斯坦对于死亡的观点,深深影响了乔布斯  ---------------- Albert Einstein said death is not an end if we can live on in our children and the younger generation is a line taken from the letter which he wrote to the widow of physicist Heike Kamerlingh Onnes in 1926. Besides death, he also talked about afterlife, immortality and soul. If you have read through my authentic collection of Albert Einstein thoughts on God and religion , you would know that he rejected the formal, dogmatic religion. Einstein did not believe in immortality of the individual. According to him, there is no such thing as, punishment for misdeeds or rewards for good behavior in any afterlife. For him, the so-called Theosophy and Spiritualism, was no more than a symptom of weakness and confusion. As Einstein explained that since our inner experiences consist of reproductions, and combinations of sensory impressions, the concept of a soul with...

产品随想 | 读《中国是部金融史》:第二章 秦始皇统一了货币吗(秦朝)

战国时代什么最重要? 答:人才! 十地有的是,有人就能在土地上耕种,就能产出粮食。 积攒人品、招揽居民的方法,就是变法。魏国的李悝、赵国的公仲连、楚国的吴起、 韩国的申不害、齐国的邹忌⋯⋯七家诸侯都使出浑身解数鼓励别国的国民迁徙到自己的土地上—因为只有这样才能产出更多粮食,才能在战争的时候保证有兵源。 ──思路和现在的放开户口、人才引进,拉动GDP,是一样的 所谓抑商也就三条。 第一,秦国不能出现粮食贸易。(如果秦人买不到粮食就只能自己去种地,种地的人最实在) 第二,加重商税,重到任何贸易品种都无利可图。 第三,降低商人地位。战国七雄,只有在秦困,商人才与赘婿并列为最低等的网人。 货币是一枚一枚的铜钱,分散在国人手中,泰孝公如何能贪天下之利?只有禁绝货币,才能把所有利益都归于国君,国君才能更有势力(利出于一孔者,其国无敌) 商鞅从来没有“重农”。他真实的想法是:民弱国强、 国强民弱,所以,要想做最有权势的国君,就必须让天下人穷困(民弱国强、国强民弱, 故有道之国务在弱民)! 农、工、士、商四类人中,“农人〞必须依附于田宅,最缺乏流动性,手里也最没钱,是最容易管理的对象,也是最好的“弱民”。 据说,商鞅“重农"的功绩在于给全国农人分配士地;据说,商鞅治下,每个男丁可以分配到一百亩土地。“百亩之田、五商之宅”是战国时代孟子的理想,最早出子《周礼》,到了《汉书》中居然成为商鞅的土地分配标准。 就为这,商鞅被歌幼了几干年 ──蜜糖? 砒霜? 商鞅之所以敢如此放心大胆地盘剥,是因为控制单一的农户比控制强大的宗族容易许多。毕竞宗族力量在一定程度上可以对抗王室,而被拆分为一个个家庭,就没有任何能力对抗封建集权。 ──破宗族,分田地 至于农人,毫无血缘关系的五家被编成一“伍”。谁敢反抗,五个农户全体受罚, 一般情况下会全被诛杀。即使有人跑出了家乡,只要在秦国境内,没有良民证的人也难免被抓获。没有良民证的结果就是被杀掉。 ──看到“良民证”,我想到了“核酸码” 商鞅认为,笨的人好管理(民&则易治也)。《诗经》《尚书》是周朝文化的代表, 如果网人以《诗》《书》中的道理去蛊惑人心,有一个人,就能让上千人不再以耕战求富货;如果信奉《诗》《书》的人当了县官,就会有一个县的人不再尊敬国君;如果天下人都信奉《诗》《书》的道理,势必有人结党于下、议论政令,秦孝公的将不再是秦孝公的...