跳至主要内容

对网关的理解

网络模型被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 产品随想的博客

Apple's One-Dollar-a-Year Man, By Steve Jobs, 2000

(FORTUNE Magazine) – Now that Steve Jobs has showed his hand on Apple's Internet and system software strategies and dropped the "interim" from his title, other questions loom. He's always denied it, but isn't it true that his old company, Next, did wind up taking over Apple? Will there ever be an encore to the 15-year-old Macintosh? Short of that, does Apple have any plans to jump into the "Internet appliance" fray? Will Apple ever build computers for business people again? And what, pray tell, does Steve think of all these young Internet zillionaires? Let's ask. Practically every technology that your old company, Next, possessed when Apple acquired it in 1997 is now being used by Apple in some strategic way. This must seem like sweet vindication.  The thing about Next was that we produced something that was truly brilliant for an audience that our heart really wasn't into selling to--namely, the enterprise. I suppose if you were wr...

Steve Jobs: `There's Sanity Returning', 1998

Nobody can doubt the charisma of Steven P. Jobs. The interim CEO of Apple Computer Inc., who returned to the company last July after his ignominious 1985 ouster, has brought back his legendary vision, impatience, and infectious passion for the Macintosh. Jobs spoke to Business Week Correspondent Andy Reinhardt in Apple's stark, fourth-floor boardroom, just after the company rolled out its new software strategy on May 11. Note: This is an extended, online-only version of the Q&A that appears in the May 25, 1998, issue of Business Week. Q: Now that you've introduced the new, bold-looking iMac, are you going to do some radically different products? A: There's a lot of talk about such things -- about handhelds, set-top boxes. A lot of computer companies have been searching for a consumer product. My view is that the personal computer has been the most successful consumer product of the last 10 years. What we have to do, what the industry stopp...

Steve Jobs at 44, By Michael Krantz, 1999

Differences and Similarities Between Apple and Pixar Apple turns out many products--a dozen a year; if you count all the minor ones, probably a hundred. Pixar is striving to turn out one a year. But the converse of that is that Pixar's products will still be used fifty years from now, whereas I don't think you'll be using any product Apple brings to market this year fifty years from now. Pixar is making art for the ages. Kids will be watching Toy Story in the future. And Apple is much more of a constant race to continually improve things and stay ahead of the competition.  His Role At Pixar At Pixar my job is to help build the studio and recruit people and help create a situation where they can do the best work of their lives. And to some degree it's the same at Apple. But at Pixar, I don't direct the movies, whereas at Apple probably, if I had to pick a role out of a film production, I'd be the director. So it...

Rhino_GH从入门到精通听课笔记_二

一. 基础操作   1. Rhino F6精确更改相机视野   2. 中键和左菜单栏弹出时间都是可以自己设置缩短的 二. 软件技巧   1. GH搭配生成楼梯,柱子,栏杆   2. SU\3DS\OBJ 均可被Rhino识别   3. 已命名工作位置很有用,和和已命名是图标是不一样的   4. Rhino等轴测做法          显示——投影——改为平行          旋转改为0/360          视图——等角视图 三. 奇技淫巧   1. 善用微信搜索,比如“地形制作”,第三讲前半部分讲解利用高程点制作地形   2. Rhino转折剖制作方法,用面split模型,即模型被切成两个,类似于佐罗刀   3. 转折剖模型制作时间很久,工作量比较大 四. Rhino命令   1. worksession  链接文件进来,以一个图层显示,类似于SU里面的另存再载入的操作,可       以节省运算量,比ctrl+c ctrl+v快   2. ctrl+w  局部放大   3. hatch  嵌面

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   ❤ 如果...

91%犀牛人都不知道的高效率建模方法

原文地址 91%犀牛人不知道的建模技巧 习惯了su的建模思路,用rhino做方方正正的建筑如何提高效率? (原问题链接https://www.zhihu.com/question/35303800#draft) 91%犀牛人都不知道的高效率建模方法(三) KD、Holt 首先呢,继续安利一下咱们的群 前两期我们说完了 rhino的选项设置,图层操作习惯,rhino的材质设置,rhino和cad的协同,rhino自身的协同,以及rhino的剖面绘制 ,基本上是把除建模以外的前期准备工作都过了一遍,那么这期我们将正式进入实打实的建模相关的部分,不过需要注明的是,有些地方rhino确实没有su快,我们能做的就是尽可能的提高大家的效率,相信我,su能带给你的只有快速推拉方盒子,而rhino可以让你无所不能~~可能中国人懒惯了,用惯了su的那么几个命令看到rhino成百上千的命令会不由得倒吸一口冷气然后默默的转身离开,其实你学习rhino为你省下的时间比你在su中浪费的时间要多得多得多。 —————————— 实体工具 —————————— 关于rhino建方盒子,先放结论, 核心命令都在实体工具栏, 核心思想就是组合,布尔 。 你别指望rhino像su一样啪画一笔面就自动分割了,也别指望随便选中物体的哪个面就可以挤出了,也别指望成个组件之后就可以直接墙体开洞了,rhino是rhino,既然你选择了它,就得按照它的规矩来,也得容忍他在这方面的不足,况且要是这方面都秒了su,那咱们使用su的理由就真的只有显示模式好看了。 言归正传,首先我们都知道建筑模型当中,尤其是规则建筑,重复构建是非常多的,比如梁,柱墙,门窗等等,在这方面,其实rhino是有优势的,毕竟有gh在,大批量的操作做起来就异常简单了,先来看命令吧,rhino在方盒子的建模上常用的命令基本就是下面这些了。 其实这些命令的介绍我们在rhino小教室里提过,这里我们就单独结合实例再来摆活一遍吧。先说 墙体 吧. 一般我们墙体建模也就三种情况, 一种是我们有画好的天正双线墙体。 这种情况是最好办的了,直接挤出就哦了。 难就难在这双线很多时候得我们自己去描一遍,因为很多时候我们的c...

产品随想 | 陪读《乔布斯传》:1-17章

乔布斯经典照片集 坐在麗莎電腦旁。他說:「毕加索曾說:「好的藝術家懂得模仿,佛大的藝術家善於偷取。」因此,窃取偉大的點子沒有什麼好羞耻的。 與蓋茲在電話中達成協議:「比爾,謝謝你支持蘋果。因為你的支持,世界將變得更美好。」 1997年蘋果在波士頓舉行的麥金塔世界大會,蓋茲透過衛星連線在巨大的螢幕上出現。質伯斯說:「我真是笨死了,竟然讓蓋兹以這種方式現身。他讓我看起來好沙小。」 ──时刻自省 前言 The people who are crazy enough to think they can change the world are the ones who do. 只有那些瘋狂到以為自己可以改變世界的人, 才能改變這個世界。 這麼些年來,賈伯斯說起話來的認真與專注態度,著實打動不少人。我們一直保持連絡,即使在他被逐出蘋果之後,我們還有來往。每次他有新產品要推出時,像 NeXT 電腦或皮克斯 (Pixar)的電影,他就會來找我。他常帶我去曼哈頓下城一家壽司店用餐,講起他的產品,渾身散發出光和熱,眉飛色舞的說這是他登峰造極之作。我喜歡這個人。 ──对自己产品深深的爱 他的堅持教我疑惑。人人都知道賈伯斯不道餘力捍衛隱私, 而且我不知道他是否看過我寫的任何一本傳記。我還是不敢立刻答應,只說或許再等等。然而到了 2009年,我接到他太太蘿琳. 鮑威爾打來的電話。她直截了當說:「如果你還想為史帝夫寫傳,最好趕快動筆。」這是他第二次因病向公司請長假。我坦言他早在2004 年得知自己罹患胰臟癌的時候就曾主動邀我寫傳,但我當時對他罹癌的事一無所知。蘿琳解釋說,他們盡量保密,因此當時根本沒幾個人知道。他是在動手術的前夕打電話給我的。 ──和Make Something Wonderful对照起来看 他還說,自從他回到蘋果重新掌權,這十二年來是他創造新產品的高峰期,但他還有更重要的目標,也就是效法惠普的惠立和普克(David Packard),締造一家創新動力無限的公司,進而超越惠普。 ──苹果公司才是乔布斯最得意的产品 他說:「我一直認為,自己是個偏向人文的孩子,但我也喜歡電子的東西。後來,我讀到寶麗來(Polaroid)創辦人蘭德 (Edwin Land)曾說過,一個人能站在人文和科學的交會口,兼容贯通,才是真正的人才。在那當下,我决定要當這樣的人。」他似乎在暗示我,這可以做為傳...

《爱因斯坦:我的世界观》

   我们这些总有一死的人,命运是多么的奇特! 我们每个人在这个世界上都只作一个短暂的逗留;目的何在,却无从知道,尽管有时自以为对此若有所感。 但是,不必深思,只要从日常生活中就可以明白:人是为别人而生存的──首先是为那样一些人,我们的幸福全部依赖于他们的喜悦和健康;其次是为许多我们所不认识的人,他们的命运通过同情的纽带同我们密切结合在一起。我每天上百次的提醒自己:我的精神生活和物质生活都是以别人(包括生者和死者)的劳动为基础的,我必须尽力以同样的分量来报偿我所领受了的和至今还在领受着的东西。我强烈地向往着俭朴的生活。并且时常发觉自己占用了同胞的过多劳动而难以忍受。我认为阶级的区分是不合理的,它最后所凭借的是以暴力为根据。我也相信,简单淳朴的生活,无论在身体上还是在精神上,对每个人都是有益的。    我完全不相信人类会有那种在哲学意义上的自由。每个人的行为不仅受着外界的强制,而且要适应内在的必然。 叔本华说:“ 人虽然能够做他所想做的,但不能要他所想要的。 ”这句格言从我青年时代起就给了我真正的启示;在我自己和别人的生活面临困难的时候,它总是使我们得到安慰,并且是宽容的持续不断的源泉。这种体会可以宽大为怀地减轻那种容易使人气馁的责任感,也可以防止我们过于严肃地对待自己和别人;它导致一种特别给幽默以应有地位的人生观。   要追究一个人自己或一切生物生存的意义或目的,从客观的角度来看,我总觉得是愚蠢可笑的。 可是每个人都有一些理想,这些理想决定着他的努力和判断的方向。就在这个意义上,我从来不把安逸和享乐看作生活目的本身──我把这种伦理基础叫做“猪栏的理想”。 照亮我的道路,是善、美和真。要是没有志同道合者之间的亲切感情,要不是全神贯注于客观世界──那个在艺术和科学工作领域里永远达不到的对象,那么在我看来,生活就会是空虚的。我总觉得,人们所努力追求的庸俗目标──财产、虚荣、奢侈的生活──都是可鄙的。   我有强烈的社会正义感和社会责任感,但我又明显地缺乏与别人和社会直接接触的要求,这两者总是形成古怪的对照。我实在是一个“孤独的旅客”,我未曾全心全意地属于我的国家、我的家庭、我的朋友,甚至我最为接近的亲人;在所有这些关系面前,我总是感觉到有一定距离而且需要保持孤独──而这种感受正与年俱增。人们会清楚地发觉,同别人的相互了解和协调一致是有限度的,但这不值得...

产品随想 | 周刊 第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...

产品随想 | 周刊 第50期:2010年kkndme:写在房价暴涨前

Products Digital Clock 4   https://sourceforge.net/projects/digitalclock4/ 开源的桌面时钟工具,开源,Linux, Mac, Windows FlipIt   https://github.com/phaselden/FlipIt Flip Clock screensaver 开源的翻页时钟 Windows 11 Fixer   https://github.com/99natmar99/Windows-11-Fixer Windows 11 Fixer is a program designed to make customizing your Windows 11 as easy as possible. 在一个集中的位置,能直接Win11相关的设置 即食历史   https://cuphistory.net/ 非常简短的历史科普,Base香港,很多内容有广东话 kkndme聊房   https://github.com/momo0853/kkndme kkndme聊房,数据整理自天涯。提供HTML、PDF和Markdown三种形式。 v86   https://github.com/copy/v86 x86 virtualization in your browser, recompiling x86 to wasm on the fly 浏览器中模拟x86 GitHub City   https://github.com/honzaap/GithubCity Create a 3D city from your GitHub contributions 让过往成城 Layoffs.fyi   Tracker   https://layoffs.fyi/ Tracking all tech startup layoffs since COVID-19. 用技术,监测疫情依赖的美国科技公司裁员 Trianglify   https://github.com/qrohlf/trianglify Algorithmically generated triangle art Low Poly生成工具...