路由 TCP/IP 卷一 第三章:Static Routing 总结
一个来自第一章的观察是,不论是物理层/数据链路层,还是网络层/传输层,都是在某种链路上完成报文的传递任务。差别在于,前者是在物理链路上,后者是在逻辑链路上,层次不同。
此外,第一章还展示了,为了在物理路径通信,有一些信息必须要获得,比如链路的标识符或者是封装所需的信息。这些信息存放在 ARP 缓存中。在网络层,这样的准备也是需要的,信息存储在路由表,或者在路由信息数据库(RIB)中。
这章展示了路由表所需的信息、如何记录这些信息、这些信息如何存储的,以及最终它们如何发挥作用的。
理解多种路由协议,最简单的出发点就是静态路由。通过静态路由掌握路由的大致机制,之后便不难理解现代互联网实际采用的多种动态路由协议。
Route Table为了理解路由表中包含的信息,考察一下一个报文到达路由器会经历什么是很有帮助的。
当一个报文来到路由器,链路层首先会检查 MAC 地址。如果这个地址指向了路由器的接口,或者是广播地址,那么链路层会把报文传递给网络层。网络层再考察 IP 是不是给自己的,要么是广播,要么 IP 指向自己,之后传递给上层适当的应用。
要是网络层发现 IP 不属于上 ...
路由 TCP/IP 卷一 第二章:IPv6 Overview 总结
当互联网在婴儿阶段时,它还是一个私有的小圈子网络,作为教学与研究使用。然而,随着在大学接触了这种网络的学生走入社会,他们利用网络开发了许多不错的应用,推动了商业互联网的发展。
随着 World Wide Web 到来,家用电脑成为一般消费者访问世界的一个方便媒介。但是,人们发现,之前认为的消耗不完的 IP 地址有耗尽的风险。
因此,人们提出了 IPv6 技术,主要用来解决 IPv4 地址不足的问题。但人们也意识到,不可能让全世界的网络统一号令,在某个时刻同步更新为 IPv6 技术。为了实现过渡,人们还提出了网络地址转换(NAT) 技术作为短期的解决方案。
事实上,NAT 是一个太好的解决方案,以至于它极大地延缓了 IPv6 的推广进度。使得一个 1990 年代提出的技术在如今还没能取代 IPv4 技术。
但是,了解 IPv6 是有必要的,因为一些(作者写书时)比较新兴的应用,如网格计算、移动 IP 等,需要摆脱 NAT 才能创新;且像中国、印度这样的国家肯定会将 IPv4 池耗尽。这两个是推动 IPv6 实施的两个推手。
吸取了 IPv4 的教训,IPv6 的地址长度是 128 位,足 ...
路由 TCP/IP 卷一 第一章:TCP/IP Review 总结
这章的主要内容是大致复习一下 TCP/IP 协议的内容,而不是对 TCP/IP 协议栈进行深入的研究。章末的一些推荐阅读书目会覆盖 TCP/IP 协议栈的深入部分。
TCP/IP Protocal LayersVint Cerf 和 Bob Kahn 提出的 TCP/IP 以及层式的架构早于 ISO 的七层 OSI 模型。
TCP/IP 的模型分成四层,自下而上是 Network Interface, Internet, Host-to-host 和 Application 层。它们对应了 OSI 的 7 层模型,至于这 7 层模型的内容是什么,会在下层展开,
Physical Layer我之前一直不理解物理层和数据链路层怎么区分,以及物理层到底有什么东西,现在这本书告诉我了,物理层包含了 TCP/IP 协议栈中和物理媒介有关的部分,包含以下 4 类:
电信号或者光信号协议,比如电压、光强、时钟、编码和信号形状等信息;
机械协议,如连接器的尺寸和线缆的金属组成;
功能协议描述了一件事物做了什么,比如,「请求发送」是 ...
主机与 GNS3 中的虚拟网络设备通信
前言最近为了入门 NetDevOps,买了知乎上弈心大佬写的一本书,叫《网络工程师的 Python 之路》。写的还可以,从网络工程师的视角讲解了 Python 的基本用法。也让我补足了之前碎片化的 Python 语法。
不过,进入到第 4 章后,就需要完成一些虚拟或是真机实验,然而我从来没有成功地在 GNS3 上运行过一次虚拟实验,更别提真机实验了。因此,搭建实验环境成了一个挑战。毕竟,实验的内容是通过 Python 程序来自动化运维路由器和交换机,如果 Python 程序访问不到这些网络设备,何谈运维?
因此,这篇文章的写作目的在于整理一下环境配置的心得。
环境
主机:Windows11
虚拟机:VMWare Workstation
GNS3: v3.0.4
配置虚拟机的方法我就不赘述了,印象中我大概是根据浙大网站上的实验流程配置下来的,只不过 GNS3 的版本和它要求的似乎有些出入。总之,最后配置完成的效果是,虚拟机中运行 GNS3 的后端软件,Windows11 上的 GNS3 前端能够连接到后端服务。
需要导入 Cisco 的路由器和交换机镜像,下载地址在这个 Githu ...
未来的工作是-2?
需求在今年寒假的文章中提到了我未来感兴趣的 3 个方向:前端、后端和运维。现在看看,自己的想法变的很快。我们来看看现在夏凌有哪些想法。
拒绝运维第一个排除的是运维的岗位。说句实在话,当我在 JD 上看到运维岗招的是大专生起步的人才时,我是震惊的。诚然,我对连连网线、打打命令的事情比较感兴趣,但是确实不太愿意拉低自己的档次。好不容易考上一所不错的学校,去到这样的岗位上有点屈才了。而且,确实干的工作都是些脏活累活,甚至是夜班。我受不了这个。
FinTech很早就留意了知乎上的一个博主,叫弈心,是个挺厉害的网络工程师,说自己是布道者。他有的观点确实很正确,比如学习英语、以及提升认知等等。不过我对他一味劝润的思想并不是很苟同。他提到了一个职位,我很感兴趣,叫 FinTech。
国内有许多这样的投资企业,它们获利的方式就是信息差,低买高卖。就像微信或者 B 站上常见的那些 Python 广告一样,总是喜欢放一张股市曲线的大图,显示用 Python 可以实现自动化投资一样。不过和这种路边广告相比,量化公司考虑的更多,远不止于此。
既然想赚钱,首先要组建一支专业团队。当然要有许多经济学的人才,了解股 ...
重叠
高中的时候,第一名是永远固定的。总是我和你争第二名。那时候,眼睛里似乎只有排名的数字,完全没有关注别的东西。唉,想想自己真是太浅薄了。到了大学,一开始还是维持这个状态。大一就选了博弈论这种特别有挑战性的课程,同时提前选了未来要上的水课,形策呀、思政啊等等。
不过,学的那么快,有什么用呢?引用一句你很喜欢的话,哦不,或许你不太喜欢,可能是很害怕的一句话吧:高中是一群人的高中,大学是一个人的大学。好像,我确实过成了这个样子,不过我倒还挺享受的。难得有几分清闲呀。你呢,高考考出了学校历史上的最高分吧,到了厉害的学校参加辩论赛、参加各种社团,好不热闹。
为什么前几天突然给我发消息呢?转发了我们高三的时候发疯时哼唱的 rap?是大半夜 emo 了吗,回忆起了那段光辉闪耀的日子(我喜欢这个形容词,出自樱花庄)。但是回忆就是回忆,再也回不去了。学校还是那个样子,只不过校长和书记的职位正好翻转,但,我们毕竟已经是毕业生了呀。
你就算怀念我,可能也怀念的不是我这个人,而是你记忆中的那个人?变了,毕竟都变了。一年前的我和现在的我差别也很大,三观呀,各种事情的看法呀。一年前可能是受到了什么影响,有些偏激。也 ...
「数据库系统原理」读书笔记-第七章
第七章:§7 Relational Database Design
§7.1 Features of Good Relational Designs关系模式的设计如果直接根据 E-R 图来导出,那么,E-R 图的好坏就决定了关系模式的好坏。
假如一开始,我们设计了一个这样的关系模式:
$in_dep(ID, name, salary, dept_name, building, budget)$
这看上去很不错,因为它是 instructor 和 department 的自然连接,有许多查询可以用更少的 JOIN 来实现。但是仔细想想,这造成了冗余的问题。
一方面,部门的 building 和 budget 这些本来在 department 表中存在的内容需要被重复存储,可能会存在冗余的问题;另一方面,假如创建了一个新的部门,没有老师入职,那么在 in_dep 中表示不了这个部门。
§7.1.1 Decomposition对于有冗余的关系模式,就需要分解它们。当然,如果过于极端,每个关系模式都只有一个属性,那就表示不了任何关系。不过考虑下面这个没那么极端的例子:
$employee(ID ...
「计算机网络:自顶向下方法」读书笔记-第一章
第一章:§1 Computer Networks and the Internet
§1.1 What is the Internet可以从两个角度来认识:硬件软件和网络能提供的服务。
§1.1.1 A Nuts-and-Bolts Description在硬件软件上,终端系统通过交流链路和分组交换联系在一起。
不同链路的速率可能不一样,取决于介质。
分组交换需要用到路由器和交换机来转发包。一个合理的类比就像是一群大巴车运仓库的一个特大件货物一样。
终端系统通过 ISP 接入互联网,有提供各种各样服务的 ISP。
互联网中协议很重要,TCP 和 IP 是两个很重要的协议,这就是为什么互联网的系列协议栈的名称是 TCP/IP。
为了让大家对协议达成一致,有两个机构来制定互联网中用到的协议。偏硬件(物理层、数据链路层)的协议由 IEEE802 LAN/MAN 标准委员会来制定。一些涉及到以太网、无线网等的协议由他们制定。
而偏上层的协议,如 TCP、IP、HTTP、SMTP 等协议由 IETF(Internet Engineer Task Force) 来制定,它们制定 ...
数据库 | ER 图设计
设计流程总览设计步骤对于小的应用,数据库的设计者可以直接指明有哪些关系、哪些约束。但对于那些很复杂的现实应用,没人能一下找到实体和关系。因此,需要有清晰的设计步骤来设计一个数据库。
和数据库的使用者交流,明确所有的数据需求。
概念设计。E-R 图是表示概念设计的一个工具。这一步要求展示数据库的实体、属性、约束等。
一个概念模式同样应该满足函数需求。用户指定对数据的各种操作,数据库的设计者确保数据模式能够实现这些操作。
逻辑设计阶段。设计者把高阶的概念模式转换为数据库系统的数据模型实现。这一步涉及把概念模式转换为关系模式。
物理设计阶段。物理设计阶段涉及数据库的物理特征,如文件组织和索引结构。
这一设计流程也是数据库大作业要求的流程。只可惜我在完成了大作业后才阅读到这部分,不过幸好,我潜意识中的数据库设计流程和课本上的大差不差。
替代方案在设计数据库时,需要避免两个陷阱:
冗余。
不完全。
冗余的意思是指,一个信息在多个位置储存。
以学校的课程数据库为例,这里假设在实际问题中,同一课程的所有班级的课程名称应该一样。也就是说,100396 这个课号对应的课程名称是 ...
NotionNext 博客上锁文章的强制访问
太长不看
所有的前端加密都是不安全、可破解的;
NotionNext 这个框架采用的是基础的 md5 加密,送入加密器的内容是文章地址 + 密码,如 article/example-2 + 123456,这里的 + 表示字符串连接;
md5 加密不可能(高效)从密文获取到原文;
修改 js 需要指定一个保存修改后文件的本地文件夹。
序最近看到了一位学长的博客,许多花里胡哨的特效,连鼠标右键的菜单都不满意,要自己用一些 Live2D 之类的库生成一个。
我对这些特效不太感冒,我也尊重其他人的选择,毕竟是自己的博客,想怎样设计都好。不过,我的底线就是,不要影响鼠标右键的基本菜单。因为作为一个对前端比较熟悉的人,我喜欢对着页面上的一些元素点来点去,看看是怎样实现的。
我记得一个让我很郁闷的博客是,直接劫持了鼠标右键,不让复制。这种问题很好解决,改一下 event 就好了,没什么难度。有时候我就喜欢对着干,要是本来没什么限制,我也想不起来要用一些技术手段来突破。
话说回来,为什么要写这篇文章呢?是因为我这位学长有一篇保研记录的文章,居然加密了,无法直接观看。这我就有些赞叹,哇,居然在前端加密 ...
