《趣谈网络协议》学习笔记

一、网络分层

1.计算机网络有一个显著的特点,就是这是一个不仅需要背诵,而且特别需要将原理烂熟于胸的学科。

考试会考,面试会问。

2.为什么网络要分层呀?

TCP 在进行三次握手的时候,IP 层和 MAC 层对应都有什么操作呢?【参与封装、解封、寻址】

教科书还会列出每个层次所包含的协议,然后开始逐层地去讲这些协议。但是这些协议之间的关系呢?却很少有教科书会讲。

从原始地址 A 到目标地址 D,中间经过两个中转站 A->B->C->D,是通过路由转发的。A 知道自己的下一个中转站是 B,那从 A 发出来的包,应该把 B 的 IP 地址放在哪里呢?B 知道自己的下一个中转站是 C,从 B 发出来的包,应该把 C 的 IP 地址放在哪里呢?如果放在 IP 协议中的目标地址,那包到了中转站,怎么知道最终的目的地址是 D 呢?

教科书不会通过场景化的例子,将网络包的生命周期讲出来,所以你就会很困惑,不知道这些协议实际的应用场景是什么。

二层设备处理的包里,有没有 HTTP 层的内容呢?

从你的电脑,通过 SSH 登录到公有云主机里面,都需要经历哪些过程?或者说你打开一个电商网站,都需要经历哪些过程?说得越详细越好。

3.网络为什么要分层?因为,是个复杂的程序都要分层。

复杂的程序都要分层,这是程序设计的要求。比如,复杂的电商还会分数据库层、缓存层、Compose 层、Controller 层和接入层,每一层专注做本层的事情。

4.【协议栈封装/解封过程:http头+http正文—tcp/udpS头—ip头—mac头;】

交给哪个应用呢?在四层的头里面有端口号,不同的应用监听不同的端口号。

二、网络命令行

1.大多也会知道这个问题的答案:在 Windows 上是 ipconfig,在 Linux 上是 ifconfig。

在 Linux 上还有什么其他命令可以查看 IP 地址吗?答案是 ip addr。如果回答不上来这个问题,那你可能没怎么用过 Linux。

那你知道 ifconfig 和 ip addr 的区别吗?这是一个有关 net-tools 和 iproute2 的“历史”故事。

如果一个裁剪版linux没有这些命令,你可以自行安装 net-tools 和 iproute2 这两个工具。当然,大多数时候这两个命令是系统自带的。

2.公有 IP 地址和私有 IP 地址。【对外的地址,对内的地址。】

3.是不是觉得原来并没有真的理解 ip addr 呢?我们接着来分析。【ip addr命令,更详细。】

在 IP 地址的后面有个 scope,对于 eth0 这张网卡来讲,是 global,说明这张网卡是可以对外的,可以接收来自各个地方的包。对于 lo 来讲,是 host,说明这张网卡仅仅可以供本机相互通信。

lo 全称是loopback,又称环回接口,往往会被分配到 127.0.0.1 这个地址。这个地址用于本机通信,经过内核处理后直接返回,不会在任何网络中出现。

三、DHCP与PXE

1.用命令行自己配置一个地址。可以使用 ifconfig,也可以使用 ip addr。设置好了以后,用这两个命令,将网卡 up 一下,就可以开始工作了。

当然,真正配置的时候,一定不是直接用命令配置的,而是放在一个配置文件里面。不同系统的配置文件格式不同,但是无非就是 CIDR、子网掩码、广播地址和网关地址

2.MAC 地址不是它的,所以它的网卡是不会把包收进去的。如果没有配置网关呢?那包压根就发不出去。如果将网关配置为 192.168.1.6 呢?不可能,Linux 不会让你配置成功的,因为网关要和当前的网络至少一个网卡是同一个网段的

3.dhcp,一个自动配置的协议.初衷是为了管理的省力,但不是必须的。

DHCP Discover。广播包封装了 UDP,UDP 封装了 BOOTP。其实 DHCP 是 BOOTP 的增强版,但是如果你去抓包的话,很可能看到的名称还是 BOOTP 协议。

如果有多个 DHCP Server,它会选择其中一个 DHCP Offer,一般是最先到达的那个,并且会向网络发送一个 DHCP Request 广播数据包,包中包含客户端的 MAC 地址、接受的租约中的 IP 地址、提供此租约的 DHCP 服务器地址等,并告诉所有 DHCP Server 它将接受哪一台服务器提供的 IP 地址,告诉其他 DHCP 服务器,谢谢你们的接纳,并请求撤销它们提供的 IP 地址,以便提供给下一个 IP 租用请求者。

4. dhcp, 自动分布ip,还有很多自动部署的功能—-自动分配服务器ip  分配优先级,自动上线,等等。

网络管理员不仅能自动分配 IP 地址,还能帮你自动安装操作系统!。

在数据中心里就不一样了。数据中心里面的管理员可能一下子就拿到几百台空的机器,一个个安装操作系统,会累死的。

如果你想看更多网络协议的知识技术内容,可以扫码购买课程!

发布了193 篇原创文章 · 获赞 139 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/qappleh/article/details/100089926
今日推荐