• 趣谈网络协议_1


    第1讲 | 为什么要学习网络协议?

    网络分层

    第3讲 | ifconfig:最熟悉又陌生的命令行

    无类型域间选路(CIDR

    10.100.122.2/24,这个 IP 地址中有一个斜杠,斜杠后面有个数字 24。这种地址表示形式,就是 CIDR。后面 24 的意思是,32 位中,前 24 位是网络号,后 8 位是主机号
    基于以上栗子,又衍生两个概念:

    • 广播地址,10.100.122.255。如果发送这个地址,所有 10.100.122 网络里面的机器都可以收到。
    • 另一个是子网掩码,255.255.255.0。
      将子网掩码和 IP 地址按位计算 AND,就可得到网络号

    在 IP 地址的后面有个 scope,对于 eth0 这张网卡来讲,是 global,说明这张网卡是可以对外的,可以接收来自各个地方的包。对于 lo 来讲,是 host,说明这张网卡仅仅可以供本机相互通信。
    lo 全称是loopback,又称环回接口,往往会被分配到 127.0.0.1 这个地址。这个地址用于本机通信,经过内核处理后直接返回,不会在任何网络中出现。

    MAC 地址

    MAC 地址的通信范围比较小,局限在一个子网里面。例如,从 192.168.0.2/24 访问 192.168.0.3/24 是可以用 MAC 地址的。一旦跨子网,即从 192.168.0.2/24 到 192.168.1.2/24,MAC 地址就不行了,需要 IP 地址起作用了。

    第4讲 | DHCP与PXE:IP是怎么来的,又是怎么没的?

    Linux 首先会判断,要去的这个地址和我是一个网段的吗,或者和我的一个网卡是同一网段的吗?只有是一个网段的,它才会发送 ARP 请求,获取 MAC 地址。如果发现不是呢?

    Linux 默认的逻辑是,如果这是一个跨网段的调用,它便不会直接将包发送到网络上,而是企图将包发送到网关

    动态主机配置协议(DHCP)

    动态主机配置协议(Dynamic Host Configuration Protocol),简称DHCP。

    第5讲 | 从物理层到MAC层:如何在宿舍里自己组网玩联机游戏?

    第一层(物理层)

    我们要的是电脑连电脑。这种方式就是一根网线,有两个头。一头插在一台电脑的网卡上,另一头插在另一台电脑的网卡上。但是在当时,普通的网线这样是通不了的,所以水晶头要做交叉线,用的就是所谓的1-3、2-6 交叉接法
    水晶头的第 1、2 和第 3、6 脚,它们分别起着收、发信号的作用。将一端的 1 号和 3 号线、2 号和 6 号线互换一下位置,就能够在物理层实现一端发送的信号,另一端能收到。

    集线器:这种设备有多个口,可以将宿舍里的多台电脑连接起来。但是,和交换机不同,集线器没有大脑,它完全在物理层工作。它会将自己收到的每一个字节,都复制到其他端口上去(广播模式)。

    第二层(数据链路层)

    数据链路层,也即 MAC 层要解决的问题。MAC的全称是Medium Access Control,即媒体访问控制。

    在这里插入图片描述
    ARP 协议,也就是已知 IP 地址,求 MAC 地址的协议
    ARP 发送一个广播包,谁是这个 IP 谁来回答。具体询问和回答的报文就像下面这样:
    ARP广播查找IP对应的MAC

    局域网

    谁能知道目标 MAC 地址是否就是连接某个口的电脑的 MAC 地址呢?这就需要一个能把 MAC 头拿下来,检查一下目标 MAC 地址,然后根据策略转发的设备,按第二节课中讲过的,这个设备显然是个二层设备,我们称为交换机
    交换机也存在自学习能力(学习MAC地址),形成转发表,根据此表可以快速知道交换机各个接口对应的机器IP&MAC地址(注意可能会过期的)

    小结

    第一,MAC 层是用来解决多路访问的堵车问题的;
    第二,ARP 是通过吼的方式来寻找目标 MAC 地址的,吼完之后记住一段时间,这个叫作缓存;
    第三,交换机是有 MAC 地址学习能力的,学完了它就知道谁在哪儿了,不用广播了。

    第6讲 | 交换机与VLAN:办公室太复杂,我要回学校

    如何解决常见的环路问题?

    环路

    如何解决广播问题和安全问题?

    物理隔离:配置单独的子网
    虚拟隔离:就是用我们常说的VLAN,或者叫虚拟局域网
    在原来的二层的头上加一个 TAG,里面有一个 VLAN ID,一共 12 位
    在这里插入图片描述

    小结

    • 当交换机的数目越来越多的时候,会遭遇环路问题,让网络包迷路,这就需要使用 STP 协议,通过华山论剑比武的方式,将有环路的图变成没有环路的树,从而解决环路问题。
    • 交换机数目多会面临隔离问题,可以通过 VLAN 形成虚拟局域网,从而解决广播问题和安全问题。

    第7讲 | ICMP与ping:投石问路的侦察兵

    ICMP 协议的格式

    ping 是基于 ICMP 协议工作的。ICMP全称Internet Control Message Protocol,就是互联网控制报文协议

    第8讲 | 世界这么大,我想出网关:欧洲十国游与玄奘西行

    你了解 MAC 头和 IP 头的细节吗?

    在这里插入图片描述
    如果是同一个网段,例如,你访问你旁边的兄弟的电脑,那就没网关什么事情,直接将源地址和目标地址放入 IP 头中,然后通过 ARP 获得 MAC 地址,将源 MAC 和目的 MAC 放入 MAC 头中,发出去就可以了。

    如果不是同一网段,例如,你要访问你们校园网里面的 BBS,该怎么办?这就需要发往默认网关 Gateway。Gateway 的地址一定是和源 IP 地址是一个网段的。往往不是第一个,就是第二个。例如 192.168.1.0/24 这个网段,Gateway 往往会是 192.168.1.1/24 或者 192.168.1.2/24。

    网关往往是一个路由器,是一个三层转发的设备。啥叫三层设备?前面也说过了,就是把 MAC 头和 IP 头都取下来,然后根据里面的内容,看看接下来把包往哪里转发的设备。
    很多情况下,人们把网关就叫作路由器。其实不完全准确,而另一种比喻更加恰当:路由器是一台设备,它有五个网口或者网卡,相当于有五只手,分别连着五个局域网。每只手的 IP 地址都和局域网的 IP 地址相同的网段,每只手都是它握住的那个局域网的网关。

    静态路由是什么?

    静态路由,其实就是在路由器上,配置一条一条规则。

    IP 头和 MAC 头哪些变、哪些不变?

    • “欧洲十国游”型:IP 不变,MAC 变
    • “玄奘西行”型

    MAC 地址是一个局域网内才有效的地址。因而,MAC 地址只要过网关,就必定会改变,因为已经换了局域网。两者主要的区别在于 IP 地址是否改变。不改变 IP 地址的网关,我们称为转发网关;改变 IP 地址的网关,我们称为NAT 网关

    “欧洲十国游”型

    在这里插入图片描述

    ① IP & MAC 信息

    • 源 MAC:服务器 A 的 MAC
    • 目标 MAC:192.168.1.1 这个网口的 MAC
    • 源 IP:192.168.1.101
    • 目标 IP:192.168.4.101

    ② IP & MAC 信息

    • 源 MAC:192.168.56.1
    • 目标 MAC:192.168.56.2 这个网口的 MAC
    • 源 IP:192.168.1.101
    • 目标 IP:192.168.4.101

    ③ IP & MAC 信息

    • 源 MAC:192.168.4.1
    • 目标 MAC:192.168.4.101 这个网口的 MAC
    • 源 IP:192.168.1.101
    • 目标 IP:192.168.4.101

    “玄奘西行”型

    在这里插入图片描述
    ① IP & MAC 信息

    • 源 MAC:服务器 A 的 MAC
    • 目标 MAC:192.168.1.1 这个网口的 MAC
    • 源 IP:192.168.1.101
    • 目标 IP:192.168.56.2

    ② IP & MAC 信息

    • 源 MAC:192.168.56.1 的 MAC 地址
    • 目标 MAC:192.168.56.2 的 MAC 地址
    • 源 IP:192.168.56.1
    • 目标 IP:192.168.56.2

    ③ IP & MAC 信息

    • 源 MAC:192.168.1.1 的 MAC 地址
    • 目标 MAC:192.168.1.101 的 MAC 地址
    • 源 IP:192.168.56.1
    • 目标 IP:192.168.1.101

    第9讲 | 路由协议:西出网关无故人,敢问路在何方

    如何配置路由?

    路由器就是一台网络设备,它有多张网卡。当一个入口的网络包送到路由器时,它会根据一个本地的转发信息库,来决定如何正确地转发流量。这个转发信息库通常被称为路由表
    每一条规则至少包含这三项信息:

    • 目的网络:这个包想去哪儿?
    • 出口设备:将包从哪个口扔出去?
    • 下一跳网关:下一个路由器的地址。

    ip route add 10.176.48.0/20 via 10.173.32.1 dev eth0,就说明要去 10.176.48.0/20 这个目标网络,要从 eth0 端口出去,经过 10.173.32.1。

    如何配置策略路由?

  • 相关阅读:
    运行阶段类型识别RTTI
    替换Series中的值replace()函数
    C语言连接MySQL并执行SQL语句(hello world)
    Apache ECharts数据可视化技术
    【EMC专题】电磁骚扰的分类
    【API篇】六、Flink输出算子Sink
    重启后,桌面图标消失
    【开发】视频集中存储/直播点播平台EasyDSS点播文件分类功能优化
    并发编程JMM&Volatile底层原理剖析
    软件工程学习笔记14——案例解析篇
  • 原文地址:https://blog.csdn.net/shiyideliutang/article/details/132922254