文章

【GESP】C++二级考试大纲知识点梳理, (2)计算机网络的基本概念及分类

GESP C++二级官方考试大纲中,共有9条考点,本文针对C++(2)号知识点进行总结梳理。

(2)了解计算机网络的概念,了解计算机网络的分类(广域网(WAN)、城域网(MAN)、局域网(LAN)),了解计算机网络的层级结构及作用(TCP/IP 四层模型与 OSI七层模型),了解不同层级的重要协议,了解 IP 地址及子网划分。

计算机网络是由计算机及其他设备(如服务器、路由器、交换机等)通过通信链路连接在一起的系统,目的是为了进行数据交换、资源共享和信息传播。下面详细解释你提到的几个方面:

一、了解计算机网络的概念,了解计算机网络的分类(广域网(WAN)、城域网(MAN)、局域网(LAN))

计算机网络根据覆盖范围和使用目的的不同,可以分为以下几种类型:

  • 广域网(WAN, Wide Area Network):广域网是覆盖范围最广的网络类型,通常跨越城市、国家甚至全球。最常见的广域网是互联网。它通常由多个较小的网络(如局域网或城域网)通过路由器、光纤或卫星等通信链路连接起来。

  • 城域网(MAN, Metropolitan Area Network):城域网比局域网覆盖的范围要大,通常是一个城市或区域的范围。它用于连接多个局域网,常见于学校、企业或政府机构等,提供较大区域内的高速数据传输。

  • 局域网(LAN, Local Area Network):局域网通常是覆盖较小范围(如一栋楼、一家公司或一个家庭)的网络。它用于设备之间的资源共享,如文件共享、打印机共享等。局域网通常通过以太网或Wi-Fi连接设备。

1
2
3
4
5
                     广域网 (WAN)
                 /            |            \
           城域网 (MAN)      城域网 (MAN)      城域网 (MAN)
               /    \            |             /
        局域网 (LAN)  局域网 (LAN)  局域网 (LAN)   局域网 (LAN)

二、了解计算机网络的层级结构及作用(TCP/IP 四层模型与 OSI七层模型),了解不同层级的重要协议

计算机网络的通信通常通过层次化模型来理解。最常用的两种模型是 TCP/IP 四层模型OSI 七层模型。这两种模型都是为了标准化计算机网络通信过程中的各个层次功能而提出的。下面是对这两种模型的历史背景、发展过程以及它们之间的关系的详细介绍。

(一)OSI 七层模型

1. 七层模型历史背景

OSI(Open Systems Interconnection)模型是由 国际标准化组织(ISO) 于1984年发布的。其目的是为了规范网络协议的标准,使得不同制造商的设备和不同的网络能够互联互通。

OSI模型的设计目的是为了解决网络技术的复杂性,帮助不同的网络和操作系统能够实现互操作性。ISO和其成员组织在制定这套模型时,将网络通信过程分为七个不同的层级,每一层有其特定的功能和协议。

2. 七层模型的层次

OSI模型的七个层次从下到上分别是:

  1. 物理层(Physical Layer):负责数据的传输介质和信号传输,如电缆、光纤、无线信号等。
    • 主要协议:IEEE 802.3 (Ethernet), IEEE 802.11 (Wi-Fi)。
  2. 数据链路层(Data Link Layer):确保在物理网络上传输的数据无错误,处理帧的传输,错误检测和流量控制。
    • 主要协议:Ethernet, PPP, ARP。
  3. 网络层(Network Layer):负责数据包的路由和传输,确保数据从源到目的地,处理IP地址、子网、路由等。
    • 主要协议:IP, ICMP, ARP, Routing Protocols(如RIP, OSPF)。
  4. 传输层(Transport Layer):提供端到端的通信服务,确保数据的可靠性和顺序。
    • 主要协议:TCP, UDP, SCTP。
  5. 会话层(Session Layer):负责建立、管理和终止会话,维护会话状态。
    • 主要协议:NetBIOS, RPC。
  6. 表示层(Presentation Layer):负责数据的表示、编码和解码,数据压缩和加密解密。
    • 主要协议:SSL/TLS, JPEG, GIF, ASCII, EBCDIC。
  7. 应用层(Application Layer):为用户提供网络服务,负责应用程序间的通信。
    • 主要协议:HTTP, FTP, SMTP, POP3, DNS。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
+----------------------------+
|      应用层 (Application)   |  <-- HTTP, FTP, SMTP, DNS
+----------------------------+
|      表示层 (Presentation)  |  <-- 加密/解密,数据格式
+----------------------------+
|      会话层 (Session)       |  <-- 连接管理
+----------------------------+
|      传输层 (Transport)     |  <-- TCP, UDP
+----------------------------+
|      网络层 (Network)       |  <-- IP, ICMP
+----------------------------+
|      数据链路层 (Data Link) |  <-- Ethernet, Wi-Fi
+----------------------------+
|      物理层 (Physical)      |  <-- 电缆、光纤、无线电波
+----------------------------+

3. OSI模型的意义

  • 提供了网络通信的标准化框架,使得不同厂商的设备、协议能够协同工作。
  • 每一层独立工作,简化了网络协议的设计与实现。
  • 各层的功能清晰,可以帮助网络问题的定位和排查。


(二) TCP/IP 四层模型

1. 四层模型历史背景

TCP/IP协议最初由美国国防部的 DARPA(Defense Advanced Research Projects Agency) 在1960-70年代发展起来。其目的是为了创建一个跨越多种计算机和网络技术的统一协议,使得不同设备之间可以互通。

在1970年代末期和1980年代初期,TCP和IP协议(Transmission Control Protocol 和 Internet Protocol)逐步成为网络通信的标准,并于1983年成为互联网的核心协议。随着互联网的扩展,TCP/IP协议被广泛采用,并逐渐成为全球计算机网络通信的标准。

为了简化通信模型,TCP/IP协议模型采用了一个简化的四层模型,相比OSI的七层模型,它去掉了一些层次,并把一些功能合并到了更少的层级中。

2. 四层模型的层次

OSI七层模型相比,TCP/IP四层模型更加简洁,只包含四个层次。下面我们将详细介绍TCP/IP四层模型的每一层,包括它们的功能、常见协议以及在网络通信中的角色。

1. 网络接口层 (Network Interface Layer):负责将数据封装为适合在物理媒介上传输的格式。这一层主要处理设备之间的数据传输,涉及到硬件的实际操作,如电缆、无线电波等物理介质。这一层的职责包括:

  • 物理地址映射:定义数据在物理链路上的传输方式(例如MAC地址)。
  • 错误检测与修正:确保数据从发送端到接收端没有在传输过程中发生错误。
  • 数据封装:将数据封装为适合网络传输的帧,保证其在物理媒介上的传输。

网络接口层常见协议包括:

  • Ethernet(以太网):用于局域网中的通信,定义了如何通过电缆或无线连接设备。
  • ARP(Address Resolution Protocol):用于将网络层的IP地址映射到数据链路层的MAC地址。
  • PPP(Point-to-Point Protocol):用于串行连接,如拨号上网。

网络接口层在数据链路上工作,确保数据从源主机通过传输介质(如电缆、Wi-Fi等)发送到目标设备。

2. 互联网层 (Internet Layer):负责数据包的路由和转发,它决定如何将数据从源设备发送到目标设备,跨越不同的网络。这一层的核心任务是:

  • 路由选择:决定数据包的最佳路径。
  • 数据包转发:将数据包从源计算机通过多个中间路由器传递到目标计算机。
  • 分段与重组:如果数据包过大,互联网层会进行分段,并在接收方重组数据包。

网络接口层常见协议包括:

  • IP(Internet Protocol):最重要的协议,负责将数据包从源地址发送到目的地址。IP协议分为IPv4和IPv6两种版本,IPv4是最常用的,IPv6用于解决IPv4地址耗尽的问题。
    • IPv4:32位地址,格式如 192.168.1.1
    • IPv6:128位地址,格式如 2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • ICMP(Internet Control Message Protocol):用于网络设备之间的诊断和错误报告,常见的应用如ping命令。
  • ARP(Address Resolution Protocol):用于在局域网中将IP地址解析为MAC地址。

互联网层根据IP地址选择数据包的路由,并通过路由器将数据包转发到下一个目的地,直到到达目标设备。

3. 传输层 (Transport Layer):主要作用是为两个主机之间的端到端通信提供可靠的服务。它确保数据的完整性、顺序和流量控制。这一层的关键功能包括:

  • 数据传输控制:保证数据可靠传输、无错、无丢失,并按照正确的顺序到达。
  • 流量控制:调节数据传输的速率,避免发送方发送数据过快导致接收方溢出。
  • 端口管理:为不同的应用程序提供不同的通信通道,通过端口号区分不同的服务。

传输层常见协议包括:

  • TCP(Transmission Control Protocol)
    • 面向连接,可靠的传输协议,保证数据按顺序、无误地到达目的地。
    • 实现了三次握手建立连接和四次挥手关闭连接的过程。
    • 适用于需要可靠传输的应用,如HTTP(Web浏览)、FTP(文件传输)等。
  • UDP(User Datagram Protocol)
    • 无连接,不保证可靠传输,也不保证顺序。适用于对实时性要求较高的应用(如视频流、在线游戏)。
    • 不进行握手,因此开销较小,但可能会丢失数据。

传输层将数据包进行封装和解封装,确保从源端到目的端的数据完整、可靠传输。它会依据源端口和目标端口号识别目标应用,并使用协议(TCP或UDP)来管理连接、传输数据和处理流量。

4. 应用层 (Application Layer):是最接近用户的一层,负责提供网络服务和应用功能。所有的用户应用程序,如网页浏览、文件传输、邮件等,都在这一层进行。应用层的主要任务是:

  • 提供应用程序间的通信接口:定义应用程序如何使用网络进行通信。
  • 数据表示:处理数据的格式、编码、解码、加密等。
  • 会话管理:维持应用程序之间的通信会话。

应用层常见协议包括:

  • HTTP(HyperText Transfer Protocol):用于Web浏览器与服务器之间的通信。
  • FTP(File Transfer Protocol):用于文件的传输和管理。
  • SMTP(Simple Mail Transfer Protocol):用于电子邮件的发送。
  • DNS(Domain Name System):将域名转换为IP地址。
  • POP3/IMAP(Post Office Protocol / Internet Message Access Protocol):用于接收电子邮件。

应用层直接与用户交互,提供具体的应用服务。它处理用户请求并通过下层协议将请求转发到目标服务器或其他网络设备,最终返回结果。

TCP/IP四层模型总结如下:

层次功能常见协议
网络接口层实现物理媒介上的数据传输,处理设备间的物理地址映射。Ethernet, ARP, PPP
互联网层路由数据包,处理IP地址和数据包转发。IP, ICMP, ARP
传输层端到端的可靠通信,保证数据顺序、完整性、流量控制。TCP, UDP
应用层为用户提供网络服务和应用接口,处理数据格式、加密等。HTTP, FTP, SMTP, DNS, POP3, IMAP

3. TCP/IP模型的意义

  • 简化:相比OSI模型,TCP/IP模型更加简化,去掉了OSI模型中的会话层和表示层。
  • 实际应用:TCP/IP模型直接基于实际的互联网协议和实践,是现实中网络设计和通信的基础。
  • 可扩展性:TCP/IP协议族的开放性使得其能够适应多种网络技术和设备。


(三)TCP/IP 四层模型与 OSI 七层模型的对应关系

虽然OSI七层模型和TCP/IP四层模型在层次划分上有所不同,但它们的功能是相似的。下面是它们之间的对应关系:

OSI模型TCP/IP模型主要功能
物理层 (Physical)网络接口层负责物理设备的数据传输,例如电缆、无线信号等。
数据链路层 (Data Link)网络接口层确保数据帧在物理媒介上的可靠传输,包括错误检测和修正。
网络层 (Network)互联网层负责数据包的路由和转发,处理IP地址、路由、子网等。
传输层 (Transport)传输层提供端到端的通信,确保数据的可靠性和顺序。
会话层 (Session)应用层管理和控制通信的会话,尽管TCP/IP模型没有独立的会话层。
表示层 (Presentation)应用层处理数据的表示、编码、加密等功能,在TCP/IP中也统一由应用层完成。
应用层 (Application)应用层提供高层协议和服务,如HTTP、FTP、SMTP等,供用户直接使用。
  • OSI七层模型是一个理论模型,旨在标准化网络通信的各个层次,促进不同厂商和设备之间的互通。
  • TCP/IP四层模型是根据实际网络需求设计的简化模型,直接基于实际协议,成为了互联网和许多局域网的标准通信模型。
  • 虽然两者在层次和细节上有所不同,但它们的基本功能和作用是类似的,主要目的是为了分层管理复杂的网络通信任务。

两种模型的关系反映了从理论到实践的转变,OSI模型更注重理论和教学,TCP/IP模型则是网络实践中的核心协议。

三、了解IP地址及子网划分

(一)IP地址的基本概念

IP地址(Internet Protocol Address)是网络中每台计算机或设备的唯一标识符。通过IP地址,设备能够在网络中相互识别并进行数据交换。

1. IP地址的分类

IP地址分为两大类型:IPv4IPv6

  1. IPv4(Internet Protocol version 4)
    • IPv4地址是32位的二进制数字,通常用四个十进制数表示,每个数的范围是0到255(即8位的二进制数表示)。
    • 例如:192.168.1.1
    • IPv4地址的格式通常是 A.B.C.D,其中A、B、C、D为十进制数(0到255)。
  2. IPv6(Internet Protocol version 6)
    • IPv6地址是128位的二进制数字,通常用八组十六进制数字表示,每组四个字符,每组之间用冒号分隔。
    • 例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334
    • IPv6相较于IPv4,提供了更大的地址空间,解决了IPv4地址耗尽的问题。

2. IPv4地址的结构

IPv4(Internet Protocol version 4)地址是用于标识网络中每台设备的唯一标识符。它由32位二进制数构成,通常以“点分十进制”形式表示,即将32位二进制数分为四个8位段,每段转换为十进制数,中间以点号分隔,例如:192.168.0.1

IPv4地址由两部分组成:网络部分主机部分

  • 网络部分:用于标识设备所属的网络。
  • 主机部分:用于标识该网络中的具体设备。

这种结构使得路由器能够根据网络部分将数据包转发到目标网络,然后由该网络内的设备根据主机部分确定具体的接收者。

为了适应不同规模的网络需求,IPv4地址被划分为五类:A类、B类、C类、D类和E类。其中,A、B、C类地址用于单播通信,D类用于组播,E类保留用于实验。

地址类别起始位模式网络位长度主机位长度地址范围默认子网掩码
A类0xxxxxxx8位24位0.0.0.0 - 127.255.255.255255.0.0.0
B类10xxxxxx16位16位128.0.0.0 - 191.255.255.255255.255.0.0
C类110xxxxx24位8位192.0.0.0 - 223.255.255.255255.255.255.0
D类1110xxxx--224.0.0.0 - 239.255.255.255-
E类1111xxxx--240.0.0.0 - 255.255.255.255-

注意

  • A类地址的范围是0.0.0.0到127.255.255.255,但0.0.0.0和127.0.0.0/8(如127.0.0.1)有特殊用途,分别表示本网络和环回地址。
  • D类地址用于组播,不区分网络和主机部分。
  • E类地址保留用于实验目的。

3.特殊用途的IPv4地址

某些IPv4地址具有特殊用途,不用于普通的主机通信:

  • 私有地址:用于局域网内部通信,不在公共互联网中路由。
    • A类:10.0.0.0 - 10.255.255.255
    • B类:172.16.0.0 - 172.31.255.255
    • C类:192.168.0.0 - 192.168.255.255
  • 环回地址:127.0.0.0 - 127.255.255.255,用于主机自我通信测试,通常使用127.0.0.1。
  • 广播地址:主机部分全为1的地址,用于向网络中所有主机发送数据,例如192.168.1.255。
  • 网络地址:主机部分全为0的地址,表示整个网络,例如192.168.1.0。

(二)子网划分

为了更有效地利用IP地址空间和提高网络管理的灵活性,可以将一个网络划分为多个子网。

1. 子网划分的概念

子网划分(Subnetting) 是指在一个大型网络中,通过改变子网掩码的长度,将网络划分为多个更小的子网的过程。子网划分的核心目标是提高网络的资源利用率、性能和安全性。通过子网划分,每个子网可以作为一个独立的网络存在。

2. 子网划分的作用

子网划分在实际网络中有许多重要的作用和影响:

1. 提高IP地址的利用率

在传统的大型网络(如Class A、Class B、Class C网络)中,所有主机共享一个单一的网络。这种方式可能导致IP地址资源浪费。例如:

  • 一个C类网络(192.168.1.0/24)有254个可用主机地址,但如果只需要连接50台设备,那么其余的204个地址将被浪费。 通过子网划分,可以将一个C类网络拆分成多个小子网,每个子网只分配所需的IP地址数量,从而避免浪费。

2. 降低广播流量,提升网络性能

在一个网络中,广播报文会被所有主机接收。当主机数量增加时,广播流量会显著增加,导致网络拥塞。子网划分通过将一个网络拆分为多个小子网,每个子网形成独立的广播域,限制了广播流量的范围,提高了网络性能。

3. 提高网络安全性

子网划分可以将不同的设备、部门或区域隔离在不同的子网中。例如:

  • 办公网络、生产网络和访客网络可以划分为不同的子网,从而限制不同子网之间的访问,防止未经授权的访问。 通过设置路由策略或防火墙规则,可以控制子网之间的数据流动,增强安全性。

4. 提供网络管理的灵活性

子网划分使网络管理员可以根据需求动态调整子网的大小或数量。例如:

  • 当一个部门扩展时,可以为其分配一个新的子网,而无需影响现有的其他子网。
  • 子网划分便于IP地址的分配、跟踪和管理,尤其是在企业网络中。

5. 支持多播和路由优化

子网划分有助于路由器理解网络的结构。路由器根据子网掩码来识别子网的边界和范围,从而优化路由选择。此外,D类地址的多播通信也能受益于合理的子网划分。

6. 降低网络故障的影响范围

在没有子网划分的大型网络中,网络故障(如设备连接问题、配置错误)可能会影响整个网络。通过子网划分,故障的影响可以被限制在特定的子网范围内,从而提高网络的稳定性和可靠性。

3. 子网划分关键点和示例

子网划分的基础是子网掩码,它决定了IP地址中哪一部分是网络地址,哪一部分是主机地址。通过调整子网掩码的长度,可以改变子网的数量和每个子网的主机数量。

子网掩码:由32位二进制数构成,网络位用1表示,主机位用0表示。例如

  • 子网掩码255.255.255.0对应的二进制形式是11111111.11111111.11111111.00000000,表示前24位是网络位,后8位是主机位;
  • 子网掩码 255.255.255.128:表示前25位是网络部分,后7位是主机部分。

网络地址与主机地址

  • 网络地址:标识子网的地址,所有属于该子网的主机共享相同的网络地址部分。
  • 主机地址:标识子网内的具体设备。

子网的数量与主机数量

  • 子网数量:通过增加网络位数(将主机位转换为网络位),可以增加子网数量。
  • 每个子网中的主机数量:主机位决定了每个子网中可用的主机数量。

子网划分示例

假设有一个B类网络192.168.0.0/16,需要将其划分为多个子网,每个子网最多容纳254台主机。

注:/16 表示子网掩码为 16 位,等效于 255.255.0.0,

  1. 确定子网数量和子网掩码
    • 每个子网需要254个主机地址,即主机位需要8位(2^8 - 2 = 254,减去全0和全1的地址)。
    • 因此,子网掩码应为255.255.255.0,对应的前缀长度为/24。
  2. 计算子网地址范围
    • 第一个子网:192.168.0.0/24,主机地址范围192.168.0.1 - 192.168.0.254,广播地址192.168.0.255。
    • 第二个子网:192.168.1.0/24,主机地址范围192.168.1.1 - 192.168.1.254,广播地址192.168.1.255。
    • 以此类推,直到192.168.255.0/24。

通过这种方式,原来的B类网络被划分为256个子网,每个子网有254个可用主机地址。

注意:子网划分时,子网掩码的选择应根据实际需求,平衡子网数量和每个子网的主机数量。


(三)小结

  • IP地址 是计算机网络中用于唯一标识每个设备的地址,IPv4是最常用的形式。
  • 子网掩码 确定了一个IP地址的网络部分和主机部分,通过调整子网掩码可以将一个大的网络划分成多个小子网。
  • 子网划分 是根据网络需求来管理IP地址分配、提高网络效率并提高安全性。子网划分时需要根据可用的IP地址数量、子网数量、主机数量等需求来选择合适的子网掩码。

四、总结

计算机网络的基本概念包括了网络类型的分类、网络层级结构、网络协议的分布等方面。了解这些内容对于深入理解计算机网络的工作原理至关重要,并有助于设计、实现和优化不同规模和类型的网络系统。


所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

GESP各级别考纲要点、知识拓展和练习题目清单详见C++学习项目主页

luogu-”系列题目已加入洛谷Java、C++初学团队作业清单,可在线评测,团队名额有限,欢迎加入。

bcqm-”系列题目可在编程启蒙题库进行在线评测。

本文由作者按照 CC BY 4.0 进行授权