【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

时间:2023-12-30 13:30:44

一、前言

一个运维有时也要和网络打交道,所以具备最基本的网络知识,对一个运维人员来说是必要的。但,对于我们的工作来说这些并不是重点,因此,我不可能从最基础的网络知识开始讲起。本节内容更多是从一个梳理和总结的角度进行阐述。如若同学们遇到不懂,或不明白的地方,那么你要留心了,你有很多基础性的网络知识还不具备,我建议从网上有针对性的学习一下。

二、网络基础学习体系

网络的知识体系是一个庞大的体系,涉及到路由交换、安全、无线、语言、数据中心等多个方面,所以有很多的内容需要学习和了解。

思科课程体系的大致浏览(CCNA),虽然知识不多,培训周期一般在1周左右,但涵盖了大部分的知识内容,对于初步理解网络知识,掌握网络的相关配置,基本上已经非常满足了,特别是系统运维人员。

第1单元 第2单元 第3单元 第4单元
网络基础 路由协议 二层交换网络 WAN网络和IPv6
OSI七层模型 IP路由原理 VLAN 串行点到点链路
TCP/IP简介 静态路由 VTP 帧中继网络
子网划分 默认路由 STP IPv6简介
Cisco IOS设备 动态路由 单臂路由
管理网络环境   用户访问列表初步管理IP流量

说明:

对于系统运维人员,以上知识可以都学习一下,CCNA的学习难度不是很大,而且学习周期较短,对于快速成为一个系统运维工程师中,网络搞的最好的,就足够了。

如果时间精力有限,建议学习以下知识,作为步入网络知识的基石

  1. 网络基础知识:涉及到网络的发展历程,网络一些名词概念,路由交换。
  2. OSI七层模型的介绍
  3. TCP/IP协议簇的简介,包含TCP/IP三次握手和四次挥手的过程
  4. VLSM可变长子网的概念

三、网络重点知识总结性梳理

1. 网络拓扑

网络拓扑(Network Topology)结构是指用传输介质互连各种设备的物理布局

指构成网络的成员间特定的物理的,即真实的,或者逻辑的,即虚拟的排列方式。

如果两个网络的连接结构相同,我们就说它们的网络拓扑相同,尽管它们各自内部的物理接线、节点间距离可能会不同。

实质上网络拓扑就是类似于网络设备组成的一个连接图,通过设备的连接图可以判断设备的链接情况,便于出现故障时,根据拓扑图更快的定位故障点。

对于配置网络设备之前,一定要对网络设备进行规划,也就是网络设备如何进行链接,进而形成一个网络设备的连接图,即网络拓扑(类似于网络设备规划的地图)。

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

2. 网络的概念与发展

网络:就是计算机网络,有许许多多电子设备互联构建而成的一个IP的网络

网络的演变发展过程:

  • 简单的网络,是由两根网线将两个网络设备连接起来
    • 在简单的网络环境中,就出现了IP地址的概念,类似于人的名字一样,便于互联访问;IP地址作为网络中的任意一个节点的标识符出现在网络中。
  • 互联的网络,由于网络规模的壮大,就需要一个更科学的网络拓扑,因此出现了HUB(是一个总线)
    • 但是HUB会出现冲突域的概念,某一时段,HUB接口中,只能有一个用户建立数据链路,和目的端进行通信,其他接口出于监听的状态(CSMA/CD技术
    • 介入设备越多,冲突几率越大
  • 由于冲突域的问题,随着网路的发展,引入了交换机设备
    • 交换机(switch,意为“开关”)是一种用于电信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。
    • 最常见的交换机是以太网交换机
    • 其他常见的还有:电话语音交换机、光纤交换机等

3. 交换机switch

厂商:DLINK,H3C,CISCO,所有服务器都是接到交换机上互相通信。

交换机(switch,意为“开关”)是一种用于电信号转发的网络设备。

它可以为接入交换机的任意两个网络节点提供独享的电信号通路

  • 最常见的交换机是以太网交换机
  • 其他常见的还有:电话语音交换机、光纤交换机等

作用和特点

  1. 在一个交换机的端口上所连接的所有终端设备,均在一个网段上(称为一个广播域),并且一个网段会有一个统一的网络标识,会产生广播消耗设备CPU资源
  2. 交换机可以隔离冲突域,每一个端口就是一个冲突域
  3. 终端用户的设备接入:路由器指的不是家用的路由器,而是网络中的终端设备,非网络工程师很少见
  4. 基本的安全功能:如MAC地址的绑定功能
  5. 广播域的隔离(VLAN):VLAN,virtual LAN,在同一个广播域中分隔多个小的广播域,降低广播风暴的影响

广播域的介绍

当一个交换机连接多个终端设备,多个终端设备即处于一个相同的网段中,而一个相同的网段,即表示一个广播域

广播方式不会根据需要传输或接收消息,而是在一个网段中全部机器都要进行无条件接收,因此当广播信息大量产生时,会耗费网段机器的CPU资源,来接收广播信息,即所谓的广播风暴

两个不同的广播是不能进行通信的,因为所属在不同的两个网段中。

提示:相同的网段就是一个统一的网络标识。

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

4. 路由器router

路由器Router,是连接因特网中各 局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。 

常用的路由协议:OSPF路由协议,大企业RIP,静态路由route。

CISCO,广域网、公网互联需要路由器,路由器不转发私网地址。

路由器的实质是 隔离广播域,是两个广播域之间信息互通,也就是使两个不同的网段之间互相连通。

路由器的作用和特点:

  • 路由协议的转发:
    • 路由类似于现实生活中从A地到B地可能需要先不行,再坐车,再坐飞机才能到达B地。这个的整个过程在网络中对应数据的传递过程就称为路由。
    • 因此,一个数据信息跨越不同的网段传递到目的地址,就可以把传递数据的过程称为路由,也可以看做每条传递数据的路径
  • 数据转发,会维护一个路由表(相当于一个地图)
  • 路由器会作为网关
    • 一般会在网络出口的位置摆放一台路由器
  • 广域网链路支持

协议

协议是通信双方为了实现通信而设计的约定或通话规则。

http协议,tcp/ip协议族

 必须会的:
  1. tcp/ip 协议的三次握手和四次断开过程
  2. http协议的工作原理(拔高)

四、网络层次结构的划分

1. 园区网简单介绍

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

2. 网络的层次说明

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

核心层:

核心层的功能主要是 实现骨干网络之间的优化传输,骨干层设计任务的重点通常是冗余能力、可靠性和高速的传输

汇聚层:

汇聚层是楼群或小区的信息汇聚点,是连接接入层和核心层的网络设备,为接入层提供数据的汇聚、传输、管理、分发处理。

汇聚层为接入层提供基于策略的连接,如:地址合并、协议过滤、路由服务、认证管理等。

通过网段划分(如VLAN)与网络隔离可以防止某些网段的问题蔓延和影响到核心层。

汇聚层同时也可以提供接入虚拟网之间的互联,控制和限制接入层对核心层的访问,保证核心层的安全和稳定。

接入层:

接入层通常指网络中直接面向用户连接或访问的部分。

接入层的目的是 允许终端用户连接到网络,因此接入层交互机具有低成本和高端口密度特性。

3. OSI网络模型概念

OSI的概念:

open system interconnect 开放系统互联参考模型,是由ISO(国际标准化组织)定义的。

是个灵活的、稳健的和可互操作的模型,并不是协议,是用来了解和设计网络体系结构的。

OSI模型的目的:

规范不同系统的互联标准,使两个不同的系统能够较容易的通信,而不需要改变底层的硬件或软件的逻辑。

OSI模型分为7层:

OSI把网络按照层次分为7层,由下到上分别为:

  • 物理层
  • 数据链路层
  • 网络层
  • 传输层
  • 会话层
  • 表示层
  • 应用层

为什么分为7层?

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

  • 上层分为(boos 秘书 商务):秘书可以负责将信息进行编码,然后将数据加密和压缩等,将boss的信息传递给商务部
  • 传输层(销售部、采购部),作为一个传输的通道,进行长期的连接,可以将从上层获得的流量进行一个分段
    • 进行连接会话的建立,并且可以是可靠的连接
    • 将上层的数据进行分块/分段
  • 网络层(邮局):将流量送到目的地,是一个寻址的概念,并且把上层分好段的设备进行一个打包
  • 数据链路层:将打包的设备运输到家门口,进行拆包,分给公司内部的每个人,也负责将上层的打包分派给底层的搬运工
  • 物理层:就相当于搬运工。

OSI层模型的结构:

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

可以依靠OSI参考模型,作为一个通信的依据。

  • 应用层:应用程序及接口
  • 表示层:对数据进行转换、加密和压缩
  • 会话层:建立、管理和中止会话
  • 传输层:提供可靠的端到端的报文传输和差别控制
  • 网络层:将分组从源端传送到目的端;提供网络互连
  • 数据链路层:将分组数据分装成帧;提供节点到节点方式的传输
  • 物理层:在媒体上传输比特;提供机械和电气的规约
层次 说明 功能/协议
应用层 应用程序及接口,类似于公司的老板 提供应用程序的接口FTP telnet http pop3等
表示层 对数据进行转换,加密和压缩 将上层的数据进行转换和编译压缩为标准的文件,如jpg,gif,ascii码等
会话层 建立,管理和终止会话  
传输层 提供可靠的端到端的报文传输和差错控制,实质上就是负责建立连接的 TCP UDP 建立可靠和非可靠连接将上层的数据进行分段处理
网络层 将分组从源端传送到目的端,提供网络互联 实质上就是提供路由寻址(IP协议)将上层分段的数据进行打包
数据链路层 将分组数据封装成帧,提供节点到节点的传输 帧就是本地局域网中传输数据的一个单元,负责在局域网内部的点对点的寻址
物理层 在媒体上传输比特 就是底层的链路介质的规范

特点说明:

  1. OSI 模型每层都有自己的功能集
  2. 层与层之间相互独立又互相依靠
  3. 上层依赖于下层,下层为上层提供服务

1. OSI层次--应用层

应用层:
  • 为应用软件提供接口,使应用程序能够使用网络服务

常见的应用层协议:

  • http(80), ftp(20/21), smtp(25), pop3(110), telnet(23), dns(53)等
主要就是提供应用程序可以介入网络的接口,并根据程序的不同对应不同的协议。

2. OSI层次--表示层

表示层的作用:
  • 数据的解码和编码
  • 数据的加密和解密
  • 数据的压缩和解压缩

3. OSI层次--会话层

会话层的作用:
  • 建立、维护和管理应用程序之间的会话

功能:

  • 对话控制
  • 同步

4. OSI层次--传输层

传输层的作用:
  • 负责建立端到端的连接,保证报文在端到端之间的传输

传输层的功能:

  • 服务点编址、分段与重组、连接控制、流量控制、差错控制。
负责网络中端到端的连接:TCP UDP

5. OSI层次--网络层

网络层的作用:
  • 负责将分组数据从源端传输到目的端

网络层作用:

  • 为网络设备提供逻辑地址
  • 进行路由选择、分组转发
网络层的主要作用就是路由和寻址,主要接触到的是IP协议,即IP地址。

网络层:对应设备有路由器。

路由器的作用:

  • 广播、组播控制
  • 对数据做寻址、选择到达目的的网络的最佳路径
  • 流量管理
  • 连接广域网 WAN

IP 地址的概念说明:

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

根据地址的概念,来举例介绍网络号和主机号的概念,以及路由寻址和路由的概念。

6. OSI层次--数据链路层

数据链路层的作用:
  • 在不可靠的物理链路上,提供可靠的数据传输服务,把帧从一跳(结点)移动到另一跳(结点)。

数据链路层的功能:

  • 组帧、物理编址、流量控制、差错控制、接入控制

数据链路层:MAC 层-IEEE 802.3 协议,MAC地址是48bit

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

IP地址是三层地址,那么 mac地址就是 二层地址。

全球网络设备唯一的地址作用的域不同:IP作用在不同的网络之间,MAC地址作用在相同的网络内部MAC地址 48位的地址,采用16进制表示

MAC地址是硬件地址,IP地址会被看做是逻辑地址

数据链路层:对应设备有交换机

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

7. OSI层次--物理层

物理层的作用:
  • 负责把逐个的比特从一跳(结点)移动到另一跳(节点)

物理层的功能:

  • 定义接口和媒体的物理特性
  • 定义比特的表示、数据传输效率、信号的传输模式(单工、半双工、全双工)
  • 定义网络物理拓扑(网状、星型、环型、总线型等拓扑)

就是将逐个的bit进行传输的过程。

网络物理连接介质:网线

要连接局域网,网线是必不可少的。

在局域网中常见的网线主要为双绞线。

双绞线是由许多对线组成的数据传输线。

它的特点就是价格便宜,所以被广泛应用,如我们常用的电话线等。它是用来RJ45水晶头相连的。

制作规范:
568A 不怎么用了
568B 线序:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕

网络物理连接截止:光纤线

8. OSI层次模型总结

OSI 七层模型功能就类似于人传递信息,会用一句话传递,而一句话又是多个词组成的,而每个词又是多个字组成。
【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

9. OSI 网际互联

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

传输过程说明:

假设A用户要传输数据给B用户,并且A用户和B用户是在两个不同的网段中

  1. 数据请求从A的应用层发出,传输到表示层进行数据的编译、加密、压缩
  2. 表示层将数据发送到会话层
  3. 传输层由端口号的概念用于识别上层的服务,并且将上层的服务进行分段,并且用于保持A-B之间的通信连接,以及连接的可靠性【TCP】
  4. 在网络层将数据进行打包,并在打包后的数据前面,定义目标IP地址和源地址IP地址【IP】
  5. 在数据链路层进行再加工,在加工后的数据假面定义目标MAC和源MAC地址【MAC】
  6. 在物理层,最终将数据变化为机器识别的10101的二进制编码,在网线上进行传输
  7. 到了路由器要对数据进行转发,依次会解压数据的信息,获得到目标IP网段,路由器是依据IP地址转发数据的,所以工作在3层,因此收到数据包,要先将二进制码转换为帧,再将帧转换为ip数据包,对ip数据包目标地址进行寻址
  8. 根据路由表确认到相应的传输接口后,会再将数据打包好进行传输
  9. B收到数据后,再依次解包,收到相应的数据,反之亦然。

10. OSI互联数据包封装过程

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

封装的过程,就是从上至下,将数据进行打包的过程,并且在每一层加上相应的字段进行标识。

11. OSI互联数据包解封装过程

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

提问:A--B传输的过程,具体 IPA -- IPB,macA--macB的传输过程进行思考

4. TCP/IP协议簇(DoD参考模型)

用于简化OSI层次,以及相关的标准。
  • 传输控制协议(tcp/ip)簇是相关国防部DoD所创建的,主要用来确保数据的完整性以及在毁灭性战争中维持通信
  • 是由一组不同功能的协议组合在一起构成的协议簇
  • 利用一组协议完成OSI所实现的功能

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

1. TCP/IP 协议簇中的相关协议

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

TCP/IP协议簇--应用层:

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

TCP/IP协议簇--主机到主机层:

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

TCP与UDP对比

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

TCP相关报文结构

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

  • 源端口:即本地发起连接的端口
  • 目标端口:即要访问的服务的端口
  • 序列号:因为传输层会将上层的数据进行分段,因此需要对分段数据进行编号,同时也便于数据的重组
  • 验证号:用于对数据的进行验证

UDP相关报文结构

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

TCP/UDP端口号(1-65535)

【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

  • 在没有特殊指定情况下,源端口随机分配,目标端口使用知名端口
  • 应用客户端使用的源端口号一般为系统中未使用的且大于1023的
  • 目标端口号为服务器端应用服务的进程,如:telnet为23