计算机网络入门

计算机网络

一、计算机网络基础

  • 定义计算机网络
  • 计算机网络的发展历程
  • 计算机网络的分类(局域网、广域网、互联网等)

1. 计算机网络的定义:

计算机网络是指通过通信链路将多台计算机连接在一起,以便它们之间能够相互通信和共享资源的系统。这些资源可以包括文件、打印机、应用程序等。计算机网络的目的是为了使不同地点的计算机之间能够高效地传输数据,共享信息,并协同完成任务。

2. 计算机网络的发展历程:

  • 1950-1960: 早期计算机网络主要是由军方和大学创建的,如美国的ARPANET(Advanced Research Projects Agency Network)。
  • 1970: 发展初期,网络主要用于实验和研究。TCP/IP协议成为标准。
  • 1980: ARPANET拓展为国际网络,并逐渐演化为现代互联网的雏形。商业网络也开始出现。
  • 1990: 互联网的爆发期,万维网(World Wide Web)的诞生推动了信息的广泛传播。
  • 2000-今: 云计算、移动互联网、物联网等技术的发展,使计算机网络变得更加普及和复杂。

3. 计算机网络的分类:

a. 按照地理范围划分:

  • 局域网(LAN,Local Area Network): 小范围内的网络,通常在一个建筑物或者校园内,速度较快。
  • 城域网(MAN,Metropolitan Area Network): 涵盖城市范围的网络,连接多个局域网。
  • 广域网(WAN,Wide Area Network): 跨越地理区域,可以连接不同城市、国家甚至大洲的网络。

b. 按照拓扑结构划分:

  • 星型网络: 所有计算机都连接到一个中央节点。
  • 总线型网络: 所有计算机连接到一条中央线路。
  • 环型网络: 计算机连接成一个环形结构。
  • 网状网络: 所有计算机都直接连接到其他计算机,形成一个复杂的网状结构。

c. 按照用途划分:

  • 互联网: 全球范围的公共网络,连接了数以亿计的设备。
  • 企业网络: 用于组织内部通信和资源共享的网络。
  • 家庭网络: 连接家庭内部设备的网络,例如家庭局域网。

二、网络体系结构

  • OSI模型和TCP/IP模型的介绍
  • 各层的功能和作用

网络体系结构主要有两个重要的模型,即OSI模型(开放系统互联模型)和TCP/IP模型(传输控制协议/因特网互联协议模型)。这两个模型都是为了在不同厂商的网络设备之间实现互操作性而设计的。以下是对它们的简要介绍以及各层的功能和作用:

OSI模型(开放系统互联模型):

  1. 物理层(Physical Layer):
    • 功能: 负责传输比特流,定义了物理媒介的特性和传输速率。
    • 作用: 主要关注硬件层面,如电缆、连接器、传输速率等。
  2. 数据链路层(Data Link Layer):
    • 功能: 将比特流划分为数据帧,提供物理地址(MAC地址)和错误检测。
    • 作用: 负责点对点的数据传输,通过物理地址进行寻址,实现可靠的数据链路。
  3. 网络层(Network Layer):
    • 功能: 提供逻辑地址(IP地址)和路由,实现不同网络之间的数据包转发。
    • 作用: 处理数据的逻辑传输,负责数据在网络中的路径选择。
  4. 传输层(Transport Layer):
    • 功能: 提供端到端的通信和数据流控制,确保可靠的数据传输。
    • 作用: 分段、重组和管理端到端的数据传输,包括TCP和UDP协议。
  5. 会话层(Session Layer):
    • 功能: 管理不同应用之间的对话,确保数据同步和恢复。
    • 作用: 建立、管理和终止应用程序之间的通信会话。
  6. 表示层(Presentation Layer):
    • 功能: 数据格式转换、加解密、压缩和解压缩。
    • 作用: 确保应用程序能够正确解释收到的数据,处理数据的格式问题。
  7. 应用层(Application Layer):
    • 功能: 提供网络服务,包括文件传输、电子邮件、远程登录等。
    • 作用: 提供用户接口和网络服务,是最接近用户的一层。

TCP/IP模型(传输控制协议/因特网互联协议模型):

  1. 链路层(Link Layer):
    • 功能: 类似于OSI模型的物理层和数据链路层,定义物理媒介和寻址。
  2. 网络层(Internet Layer):
    • 功能: 类似于OSI模型的网络层,提供逻辑地址(IP地址)和路由。
  3. 传输层(Transport Layer):
    • 功能: 与OSI模型的传输层类似,提供端到端的通信和数据流控制,包括TCP和UDP协议。
  4. 应用层(Application Layer):
    • 功能: 与OSI模型的应用层类似,提供网络服务,是最接近用户的一层。

TCP/IP模型将会话层、表示层的功能合并到应用层中,将OSI模型的七层整合为四层。在实际应用中,TCP/IP模型更为常用,尤其是在互联网环境中。

三、网络设备与技术

  • 路由和交换机

交换机和路由器在网络中的使用是基于它们各自的功能和优势。以下是一些情境,说明了在何时使用交换机和路由器,并简要概述了它们之间的区别:

1. 使用交换机(Switch):

  • 在局域网络(LAN)内部: 交换机通常用于构建局域网络,以提供高速、低延迟的数据传输。它适用于连接多个设备,如计算机、打印机和其他网络设备。
  • 在大型组织中: 对于大型企业、学校或数据中心等组织,交换机可用于连接大量设备,并通过划分虚拟局域网络(VLAN)来隔离流量。
  • 对于数据中心: 在数据中心环境中,交换机用于连接服务器,提供高吞吐量、低延迟的数据传输。

2. 使用路由器(Router):

  • 在不同网络之间: 路由器用于连接不同的网络,将数据从一个网络传送到另一个网络。例如,连接局域网和互联网,或连接公司的分支办公室。
  • 实现网络分割: 当需要将大型网络划分为多个子网时,路由器用于在这些子网之间转发数据,并提供安全性和管理的好处。
  • 处理网络层的协议: 路由器工作在网络层,处理IP地址,因此它对于实现跨越不同子网的通信是至关重要的。

区别:

  1. 工作层次不同: 交换机工作在数据链路层 (第二层),而路由器工作在网络层(第三层)。
  2. 处理的信息不同: 交换机通过MAC地址 来转发数据帧,而路由器使用IP地址来转发数据包。
  3. 传输范围不同: 交换机主要在局域网络内传输数据,而路由器在不同网络之间传输数据。
  4. 隔离方式不同: 交换机通过端口隔离流量,而路由器通过不同的子网实现流量隔离。
  5. 用途不同: 交换机用于提供快速的内部局域网络通信,而路由器用于连接不同网络,提供不同网络之间的通信。

在实际网络中,通常会同时使用交换机和路由器,以满足不同层次和需求的网络通信。交换机和路由器的联合使用能够构建出高效、灵活和安全的网络架构。

四、IP基础

  • IPv4概述
  • IPv6概述
  • IPv4和IPv6的差异

IPv4(Internet Protocol version 4):

  • 地址长度: IPv4地址是32位二进制数,通常以点分十进制表示,例如:192.168.1.1。
  • 地址空间: 提供大约42亿个地址,这个数量在当前互联网规模下逐渐显得不够用,导致IPv4地址短缺。
  • 掩码: IPv4使用子网掩码来划分网络中的主机和子网。常见的子网掩码包括255.255.255.0,表示网络部分占24位,主机部分占8位。

IPv6(Internet Protocol version 6):

  • 地址长度: IPv6地址是128位二进制数,通常以冒号分隔的16进制表示,例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。
  • 地址空间: 提供了巨大的地址空间,理论上可以支持大约3.4 x 10^38个地址,解决了IPv4地址短缺的问题。
  • 掩码: IPv6采用了地址前缀长度(Prefix Length)来表示网络部分和主机部分的划分。例如,2001:0db8:85a3::/64,表示前64位用于网络部分,后64位用于主机部分。

区别:

  1. 地址长度: IPv4地址长度为32位,IPv6地址长度为128位。
  2. 地址表示法: IPv4地址使用点分十进制表示法,而IPv6地址使用冒号分隔的十六进制表示法。
  3. 地址空间: IPv6提供了巨大的地址空间,消除了IPv4中因地址短缺而产生的问题。
  4. 配置方式: IPv6支持自动配置(如SLAAC)和动态主机配置协议(DHCPv6),简化了网络配置。
  5. NAT(Network Address Translation): IPv4广泛使用NAT来解决地址短缺问题,而IPv6设计时考虑了地址空间的充足性,避免了对NAT的依赖。
  6. 安全性: IPv6在设计时考虑了安全性,集成了IPsec,而IPv4的IPsec是一个可选的扩展。
  7. 支持服务质量(QoS): IPv6对服务质量的支持更为内置,而IPv4需要通过附加协议来实现。
相关推荐
q5673152316 分钟前
在 Bash 中获取 Python 模块变量列
开发语言·python·bash
许野平41 分钟前
Rust: 利用 chrono 库实现日期和字符串互相转换
开发语言·后端·rust·字符串·转换·日期·chrono
也无晴也无风雨44 分钟前
在JS中, 0 == [0] 吗
开发语言·javascript
狂奔solar1 小时前
yelp数据集上识别潜在的热门商家
开发语言·python
blammmp1 小时前
Java:数据结构-枚举
java·开发语言·数据结构
何曾参静谧2 小时前
「C/C++」C/C++ 指针篇 之 指针运算
c语言·开发语言·c++
暗黑起源喵2 小时前
设计模式-工厂设计模式
java·开发语言·设计模式
WaaTong2 小时前
Java反射
java·开发语言·反射
Troc_wangpeng2 小时前
R language 关于二维平面直角坐标系的制作
开发语言·机器学习
努力的家伙是不讨厌的2 小时前
解析json导出csv或者直接入库
开发语言·python·json