目录

11.1 计算机网络基础知识

程序包编译安装

/images/linux_mt/linux_mt.jpg

本章我们开始学习 Linux 网络配置相关知识。计算机网络包含了众多协议和基础设施,大学里一般都有专门的课程来讲解。本章主要还是对网络配置相关命令讲解,对于计算机网络的基础知识,在一章里肯定没法说清道明。不过有几本书推荐给大家,可以作为深入学习的参考资料。计算机网络-自顶向下方法 五星推荐,对计算机网络的整体架构,基础设施,大多数协议都作了详细概述,通俗易懂。TCP/IP详解 这一系列分成了三卷,对 TCP/IP 协议栈原理作了深入讲解。自己还没读过,大神都是力荐。本章将包含以下内容:

  1. 网络基础知识
  2. Linux 网络配置的相关命令
  • ifcfg 系列命令
  • ip 系列命令
  • Centos7 特有的 nmcli 命令
  1. 网络配置的配置文件
  2. 网络客户端工具

本节先来简单说一说网络相关的基础知识。由于网络知识庞大繁杂,此篇文章将会持续更新,希望能以通俗易懂的方式让大家对网络有个基础的认识。

计算机网络协议是一个网络协议栈,目的是将计算机主机之间通信这一复杂问题划分为多个层次,每个层次通过协议进行规范,向上层输出标准 api。一来通过分层降低解决问题的难度,二来特定层次可以有不同的实现,可以变动改进,只要遵守即定的协议,就不会影响到起他层次的使用,提供了最大程度的灵活性。我们学习网络知识,就是要学习计算机网络的层次,每个层次面对的问题,怎么解决问题,涉及到的协议和基础设施;最后对整个网络有个整体性的认识。本节将按照这样的顺序,对计算机网络做一个简述,包括:

  1. 计算机网络的分层
  2. 计算机网络协议栈

1. 计算机网络的分层

我们的数据都是以二进制的格式存放在磁盘上的,至于它是文本,还是视频取决于二进制数据的组织形式。因此我们在通过网络传输数据时,数据仍是以二进制的形式进行传输,只是不同的传输介质表示二进制的方式不同。比如以太网使用高电压表示 1,低电压表示 0。最终数据传输完成后仍然需要按照特定的组织方式还原数据。

因此从宏观上来看,计算机网络被分成两个层次,通信子网和资源子网。通信子网关注的是如何传输数据,资源子网则只关心数据是如何组织起来的。资源子网不必关心通信子网是如何实现的,只调用其提供的标准接口。因此整个过程有点类似于现实世界中寄快递,快递公司帮我们运输物品,我们不必关心快递公司是如何运输,但是我们必需确保我们物品没有损坏,也可以按需选择不同的快递公司。通过这样的分层我们将一个复杂问题分隔成一个个独立的子问题。

资源子网通常由各个应用程序提供,比如我们常用的 httpd,位于操作系统的用户空间中,通信子网由操作系统内核实现,通过套接子 socket,向用户空间的应用程序提供标准接口。

1
2
3
4
5
                --------------------
  用户空间  <--- |                   |  ---> 资源子网
                |-------------------|
  内核空间  <--- |                   |   ---> 通信子网
                |-------------------|

2. 计算机网络协议栈

/images/linux_mt/tcp_ip_iso.jpg

计算机网络协议栈目前有两个标准:

  1. TCP/IP 协议栈,这是当前事实上的使用标准,在实际生产环境中逐步演化而来,缺点是每个网络层次之间的接口定义并不是非常明确
  2. OSI 协议栈,这是 ISO 组织对 TCP/IP 作出改进之后的版本,各个网络层次之间界限明确,但是各个层次之间功能有所重复,并没有TCP/IP效率高。正因为其定义规范且明确,这是一个我们更容易学习的版本

上图就是两个协议栈的对比示意图,每个层次的作用概述如下:

  • 通信子网:
    1. 物理层: 定义传输介质及介质之间的传输协议,比如电压等(网卡标准定义)
    2. 数据链路层: 定义局域网内主机之间的通信,比如传输速度等
    3. 网络层: 定义网络与网络之间的通信
    4. 传输层: 定义进程与进程之间的通信
  • 资源子网: 5. 应用层: - 会话层 - 表示层 - 应用层

2.1 物理层

设备:网桥或交换机
寻址:MAC 地址

  • Media Access Control
  • 48bits,前 24bits 由 ICANN 分配

2.2 网络层

设备:路由器
寻址:IP 地址

  • Internet protocol, 由网络号+主机号组成
  • IPv4:32bits 8bits.8bits.8bits.8bit

2.3 传输层

寻址:IP 地址 + 端口
端口号:16bits

  • 1-1023:固定分配,而且只有管理员有权限启用;
  • 1024-4W:半固定,
  • 4W+:临时

2.4 数据的传输过程

  1. MAC:本地通信;范围:本地局域网;
  2. IP:界定通信主机,源和目标;范围:互联网;
  3. Port:界定进程;范围:主机 ;

3. IP地址分类

IP 地址用于标识网络及网络中的主机,按照用于表示网络的字节数将 IP 地址分为 ABCDE 五大类:

  1. A类:
    • 第一段为网络号,后三段为主机号
    • 网络号:0 000 0000 - 0 111 1111:1-127
    • 网络数量:126,127
    • 每个网络中的主机数量:2^24-2
    • 默认子网掩码:255.0.0.0,/8
    • 私网地址:10.0.0.0/8
  2. B类:
    • 前两段为网络号,后两段为主机号
    • 网络号:10 00 0000 - 10 11 1111:128-191
    • 网络数:2^14
    • 每个网络中的主机数量:2^16-2
    • 默认子网掩码:255.255.0.0,/16
    • 私网地址:172.16.0.0/16-172.31.0.0/16
  3. C类:
    • 前三段为网络号,最后一段为主机号
    • 网络号:110 0 0000 - 110 1 1111:192-223
    • 网络数:2^21
    • 每个网络中的主机数量:2^8-2
    • 默认子网掩码:255.255.255.0, /24
    • 私网地址: 192.168.0.0/24-192.168.255.0/24
  4. D类:组播
    • 网络号: 1110 0000 - 1110 1111:224-239
  5. E类:科研
    • 网络号: 1111 0000 - 1111 1111: 240-255