11.1 计算机网络基础知识
程序包编译安装
本章我们开始学习 Linux 网络配置相关知识。计算机网络包含了众多协议和基础设施,大学里一般都有专门的课程来讲解。本章主要还是对网络配置相关命令讲解,对于计算机网络的基础知识,在一章里肯定没法说清道明。不过有几本书推荐给大家,可以作为深入学习的参考资料。计算机网络-自顶向下方法 五星推荐,对计算机网络的整体架构,基础设施,大多数协议都作了详细概述,通俗易懂。TCP/IP详解 这一系列分成了三卷,对 TCP/IP 协议栈原理作了深入讲解。自己还没读过,大神都是力荐。本章将包含以下内容:
- 网络基础知识
- Linux 网络配置的相关命令
- ifcfg 系列命令
- ip 系列命令
- Centos7 特有的 nmcli 命令
- 网络配置的配置文件
- 网络客户端工具
本节先来简单说一说网络相关的基础知识。由于网络知识庞大繁杂,此篇文章将会持续更新,希望能以通俗易懂的方式让大家对网络有个基础的认识。
计算机网络协议是一个网络协议栈,目的是将计算机主机之间通信这一复杂问题划分为多个层次,每个层次通过协议进行规范,向上层输出标准 api。一来通过分层降低解决问题的难度,二来特定层次可以有不同的实现,可以变动改进,只要遵守即定的协议,就不会影响到起他层次的使用,提供了最大程度的灵活性。我们学习网络知识,就是要学习计算机网络的层次,每个层次面对的问题,怎么解决问题,涉及到的协议和基础设施;最后对整个网络有个整体性的认识。本节将按照这样的顺序,对计算机网络做一个简述,包括:
- 计算机网络的分层
- 计算机网络协议栈
1. 计算机网络的分层
我们的数据都是以二进制的格式存放在磁盘上的,至于它是文本,还是视频取决于二进制数据的组织形式。因此我们在通过网络传输数据时,数据仍是以二进制的形式进行传输,只是不同的传输介质表示二进制的方式不同。比如以太网使用高电压表示 1,低电压表示 0。最终数据传输完成后仍然需要按照特定的组织方式还原数据。
因此从宏观上来看,计算机网络被分成两个层次,通信子网和资源子网。通信子网关注的是如何传输数据,资源子网则只关心数据是如何组织起来的。资源子网不必关心通信子网是如何实现的,只调用其提供的标准接口。因此整个过程有点类似于现实世界中寄快递,快递公司帮我们运输物品,我们不必关心快递公司是如何运输,但是我们必需确保我们物品没有损坏,也可以按需选择不同的快递公司。通过这样的分层我们将一个复杂问题分隔成一个个独立的子问题。
资源子网通常由各个应用程序提供,比如我们常用的 httpd,位于操作系统的用户空间中,通信子网由操作系统内核实现,通过套接子 socket,向用户空间的应用程序提供标准接口。
|
|
2. 计算机网络协议栈
计算机网络协议栈目前有两个标准:
- TCP/IP 协议栈,这是当前事实上的使用标准,在实际生产环境中逐步演化而来,缺点是每个网络层次之间的接口定义并不是非常明确
- OSI 协议栈,这是 ISO 组织对 TCP/IP 作出改进之后的版本,各个网络层次之间界限明确,但是各个层次之间功能有所重复,并没有TCP/IP效率高。正因为其定义规范且明确,这是一个我们更容易学习的版本
上图就是两个协议栈的对比示意图,每个层次的作用概述如下:
- 通信子网:
- 物理层: 定义传输介质及介质之间的传输协议,比如电压等(网卡标准定义)
- 数据链路层: 定义局域网内主机之间的通信,比如传输速度等
- 网络层: 定义网络与网络之间的通信
- 传输层: 定义进程与进程之间的通信
- 资源子网: 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 数据的传输过程
- MAC:本地通信;范围:本地局域网;
- IP:界定通信主机,源和目标;范围:互联网;
- Port:界定进程;范围:主机 ;
3. IP地址分类
IP 地址用于标识网络及网络中的主机,按照用于表示网络的字节数将 IP 地址分为 ABCDE 五大类:
- A类:
- 第一段为网络号,后三段为主机号
- 网络号:0 000 0000 - 0 111 1111:1-127
- 网络数量:126,127
- 每个网络中的主机数量:2^24-2
- 默认子网掩码:255.0.0.0,/8
- 私网地址:10.0.0.0/8
- 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
- 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
- D类:组播
- 网络号: 1110 0000 - 1110 1111:224-239
- E类:科研
- 网络号: 1111 0000 - 1111 1111: 240-255