概述
计算机网络的定义
计算机网络是指 : 将地理位置不同的具有独立功能的多个计算机及其外部设备,通过通信线路和通信设备连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统
计算机网络的组成要素
设施组成:
- 终端设备:负责数据收发
- 传输介质:连接设备实现数据传输
- 通信协议组成:确保数据格式和传输规则统一
核心目标:
通过资源共享与信息交换实现高效通信,使分散的计算机系统能够协同工作,提升信息处理能力和数据利用率。
计算机网络的发展历程
- 第一阶段
- 计算机网络的第一阶段始于20世纪50年代
- 主要特点是面向终端的远程联机系统
- 如美国SAGE系统,实现了终端与主机的远程通信,奠定了网络技术基础
- 第二阶段
- 第二阶段是分组交换网络发展阶段:20世纪60年代末至70年代
- ARPANET采用分组交换技术奠定现代互联网基础TCPIP协议雏形出现实现不同网络互联
- 第三阶段
- 第三阶段是计算机网络互联阶段:20世纪80年代至90年代:
- 以TCP/IP协议为核心实现全球互联,形成互联网雏形,推动了万维网诞生
- 第四阶段
- 第四阶段是互联网普及与高速发展期:1990年代至今
- 以万维网、光纤通信和移动互联网为标志,实现了全球互联、高速传输和智能化应用
分类
按覆盖范围
- 局域网 (LAN):覆盖范围较小(通常1公里以内),适用于家庭、办公室或校园等场景,传输速度快且延迟低。
- 城域网 (MAN):覆盖一个城市(约5-50公里),用于连接多个局域网,传输速度介于LAN与WAN之间。
- 广域网 (WAN):跨越国家或全球(如互联网),传输速度相对较慢,但支持远程通信
- 个人区域网 (PAN):范围极小(约10米),用于个人设备无线连接(如蓝牙)
按传输技术
- 广播式网络:数据分组向所有设备广播,接收方根据地址决定是否处理,适合小型网络。
- 点对点网络:数据精准传输到指定接收方,安全性高,常用于关键通信。
按拓扑结构
- 总线型拓扑
- 特点:所有节点通过单一主干电缆(总线)连接,数据以广播方式传输,需冲突解决协议(如CSMA/CD)。
- 优点:结构简单、成本低、易于扩充。
- 缺点:故障诊断困难,总线故障会导致全网瘫痪。
- 星型拓扑
- 特点:所有节点连接至中央设备(如交换机或集线器),呈放射状分布。
- 优点:故障隔离性强、易于管理。
- 缺点:依赖中心节点可靠性,电缆消耗量大。
- 环型拓扑
- 特点:节点形成闭合环路,数据单向传输,延迟可控。
- 优点:结构简单、适合实时控制。
- 缺点:单点故障可能中断全网,节点增减复杂。
- 树型拓扑
- 特点:层次化结构,结合总线型和星型特点,数据交换主要发生在上下层节点。
- 优点:扩展灵活、路径查找方便。
- 缺点:依赖根节点,局部故障影响全局。
- 网状型拓扑
- 特点:节点间多重连接,分为全网状(任意两节点直连)和半网状(部分连接)。
- 优点:可靠性高、容错性强。
- 缺点:成本高、结构复杂。
按传输介质
- 有线网络:包括双绞线、同轴电缆或光纤,稳定性高但需物理布线。
- 无线网络:通过电磁波传输(如Wi-Fi、蓝牙),灵活但易受干扰。
分层模型
- 由于单一的巨大的协议会加大网络设计难度,同时也不利于分析查找问题
- 分层模型是一种用于开发网络的设计方法,描述了通信问题划分为几个小的问题,每个问题对应一个层次
分层设计
- 按信息的流动过程将网络的整体功能分解为一个个的功能层
- 不同的机器上同等层之间采用相同的协议
- 同一机器上的相邻功能层之间通过接口进行信息传递
简单的说就是将复杂的流程分解为几个功能相对单一的子过程,使整个流程更加清晰,复杂问题简单化且更容易发现问题并针对性的解决问题
网络节点间通信也体现了这种思想
- 赋予每一层一定的功能,相邻层之间通过接口来通信,下层为上层提供服务
- 一旦网络发生故障,很容易确定问题是由哪一层的功能没有实现而导致的,将故障产生的原因聚焦于一点,有助于更加清晰明了地分析问题、解决问题
将网络最终的通信目标分解成各个子层的目标,然后逐一研究每一层的功能是如何实现的,这种思想有助于将复杂问题简单化、清晰化
OSI 参考模型
ISO 于 1984 年颁布了 OSI 参考模型。
OSI 参考模型是一个开放式体系结构,它规定将网络分为七层,从下往上依次是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
OSI七层参考模型
- 应用层:提供应用程序访问OSI环境的手段
- 表示层:为应用层进程提供格式化的表示和转换数据服务
- 会话层:进程间的对话也称为会话,会话层管理不同主机上各进程间的对话
- 传输层:提供不具体网络的高效、经济、透明的端到端数据传输服务
- 网络层:将数据分成一定长度的分组,将分组穿过通信子网,从信源选择路径后传到信宿
- 数据链路层:将数据分成一个个数据帧,以数据帧为单位传输。有应有答,遇错重发
- 物理层:在物理媒体上传输原始的数据比特流
层级 | 名称 | 核心功能 | 典型设备/协议 |
---|---|---|---|
1 | 物理层 | 传输原始比特流,定义原始接口,如电缆、光纤 | 集线器、网线 |
2 | 数据链路层 | 节点间可靠传输数据帧,MAC地址寻址 | 交换机、网卡 |
3 | 网络层 | 数据包路由与转发,IP地址寻址 | 路由器、IP协议 |
4 | 传输层 | 端到端通信(可靠性、流量控制) | TCP、UDP |
5 | 会话层 | 管理应用会话(建立、维护、终止) | |
6 | 表示层 | 数据格式化、加密解密 | SSL |
7 | 应用层 | 用户接口 | 浏览器电子邮件,FTP、HTTP |
1~3 层的协议称为点到点的协议, 4~7 层的协议称为端到端的协议
物理层(Physical Layer)
- 主要功能:完成相邻节点之间原始比特流的传输
- 物理层协议关心的典型问题:
- 使用什么样的物理信号来表示数据 1 和 0
- 一位持续的时间有多长
- 数据传输是否可同时在两个方向上进行
- 最初的连接如何建立及完成通信后连接如何终止
- 物理接口(插头和插座)有多少针及各针的用处
数据链路层(Data Link Layer)
- 主要功能:将上层数据封装成固定格式的帧,在数据帧内封装发送和接收端的数据链路层地址
- 在以太网中为 MAC 地址,MAC 地址是用来标识网卡的物理地址
- 在广域网中点到多点的连接情况下,可以是一个链路的标识
为了防止在数据传输过程中产生误码,要在帧尾部加上校验信息。当发现数据错误时,可以重传数据帧。
网络层(Network Layer)
- 主要功能:实现数据从源端到目的端的传输
在网络层,使用逻辑地址来标识一个点,将上层数据封装成数据包,在包的头部封装了源和目的端的逻辑地址。网络层根据数据包头部的逻辑地址选择最佳的路径,将数据送达目的端。
传输层(Transport Layer)
- 主要功能:实现网络中不同主机上用户进程之间的数据通信
会话层
- 主要功能:负责维护两个节点之间的传输联接,确保点到点传输不中断,以及管理数据交换等功能
- 在应用进程中建立、管理和终止会话
- 通过对话控制来决定使用何种通信方式,全双工通信或半双工通信
- 通过自身协议对请求与应答进行协调
会话层主要是管理不同主机上不同进程的通信内容,打造更加完整的协调机制,从而确保用户之间无论是建立对话还是释放会话连接,都能最大程度保证数据交换的及时性和规范性。
表示层
- 主要功能:处理在两个通信系统中交换信息的表示方式,主要包括:
- 数据格式变化
- 数据加密与解密
- 数据压缩与解压
- 表示层为在应用过程之间传送的信息提供表示方法的服务
- 表示层以下各层主要完成的是从源端到目的端可靠地的数据传送
- 表示层更关心的是所传送数据的语法和语义。
在网络带宽一定的前提下数据压缩的越小其传输速率就越快,所以表示层的数据压缩与解压被视为掌握网络传输速率的关键因素。
表示层提供的数据加密服务是重要的网络安全要素,其确保了数据的安全传输,也是各种安全服务最为重视的关键。
- 表示层为应用层所提供的服务包括:
- 语法转换
- 语法选择
- 联接管理
应用层
应用层是OSI模型中的最高层,是直接面向用户的一层,用户的通信内容要由应用进程解决,这就要求应用层采用不同的应用协议来解决不同类型的应用要求,并且保证这些不同类型的应用所采用的低层通信协议是一致的。
应用层中包含了若干独立的用户通用服务协议模块,为网络用户之间的通信提供专用的程序服务。
模型的意义与局限性
- 意义:
- 为网络通信提供通用框架,促进不同厂商设备的兼容性
- 通过分层隔离,简化设计复杂度,便于技术迭代(如新增协议不影响其他层)
- 局限性:
- 实际应用中(如互联网)多采用简化的TCP/IP模型,OSI模型更多作为理论参考
TCP/IP 参考模型
TCP/IP 是传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol)的简称
- 早期的 TCP/IP 模型是一个四层结构,从下往上依次是网络接口层、互联网层、传输层和应用层。
- 在后来的使用过程中,借鉴 OSI 的七层参考模型,将网络接口层划分为物理层和数据链路层,形成了一个新的五层结构。
- TCP/IP是一系列协议的集合,所以严格的称呼应该是 TCP/IP 协议簇。
TCP/IP常见协议
协议 | |
---|---|
应用层 | HTTP、FTP、TFTP、SMTP、SNMP、DNS |
传输层 | TCP、UDP |
网络层 | IP(ARP、RARP、ICMP、IGMP) |
数据链路层 物理层 | 由底层网络定义的协议 |
物理层和数据链路层
在物理层和数据链路层,TCP/IP 并没有定义任何特定的协议。
它支持所有标准的、专用的协议,网络可以是局域网(如广泛使用的以太网)、城域网或广域网。
所以,TCP/IP实际上只有三个层次(应用层、传输层、网络层)。
物理层
- 主要任务:在物理媒体上实现比特流的透明传输
- 传输单位:比特。
- 主要功能:
- 定义接口特性
- 定义传输模式:单工、半双工、全双工
- 定义传输速率
- 比特同步
- 比特编码
数据链路层
- 主要任务:把网络层传下来的数据报组装成帧
- 传输单位:帧。
- 主要功能:
- 封装接封装帧
- 差错控制: 帧错、位错
- 流量控制
- 访问(接入)控制: 控制对信道的访问
- 包括控制操作系统、硬件的设备驱动、网络适配器、及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围内
网络层
- 主要任务:用来处理网络上流动的数据报,源主机到目的主机的数据分组和路由与转发,为分组交换网上的不同主机提供通信服务
- 传输单位:数据报
- 主要功能:
- 路由选择
- 流量控制
- 差错控制
- 拥塞控制
- 在网络层,TCP/IP 定义了 IP(Internet Protocol,网际协议)
- IP 由四个支撑协议组成:
- ARP(地址解析协议)、
- RARP(逆地址解析协议)、
- ICMP(网际控制报文协议)、
- IGMP(网际组管理协议)。
传输层
- 主要任务:提供处于网络连接中的两个进程的通信,即端到端通信
- 传输单位:报文段或用户数据报。
- 主要功能:
- 可靠传输、不可靠传输
- 差错控制
- 流量控制
- 复用分用
- 复用:多个应用层进程可同时使用下面传输层的服务
- 分用:传输层把收到的信息分别交付给上面应用层中相应的进程
- TCP/IP 有两个传输层协议:
- TCP(传输控制协议):传输更加稳定可靠
- UDP(用户数据报协议):传输效率更高
TCP
- TCP是面向连接的、可靠的进程到进程通信的协议
- 面向连接网络协议,是指通信双方之间在进行通信之前要先建立连接。
- TCP提供全双工服务,即数据可在同一时间双向传输,每一个TCP都有发送缓存和接收缓存,用来临时存储数据
UDP
- UDP协议是无连接、不保证可靠性的传输层协议。
- 无连接网络协议,是指通信双方不需要事先建立一条通信线路,而是把每个带有目的地址的包送到网络线路上,由系统自主选定路线进行传输
- 发送端不关心发送的数据是否到达目标主机、数据是否出错等,收到数据的主机也不会告诉发送方是否收到了数据
- UDP的可靠性由上层协议来保障
- 传输数据速度更快,效率更高
应用层
- 主要任务:决定了向用户提供应用服务时通信的活动
- 主要功能:
- 为用户提供接口、处理特定的应用
- 数据加密、解密、压缩、解压缩
- 定义数据表示的标准
- TCP/IP的应用层常见协议:
- FTP(File Transfer Protocol)文件传输协议:允许用户通过客户端软件与服务器进行交互,实现文件的上传、下载和其他文件操作
- DNS(Domain NameServer)域名服务的协议:提供域名到IP地址的转换,允许对域名资源进行分散管理。
- HTTP(Hypertext Transfer Protocol)超文本传输协议:指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应
- SMTP(Simple MessageTransfer Protocol)简单邮件传输协议
- POP3(Post OfficeProtocol)邮局协议用于发送和接收邮件
- RIP(RoutingInformation Protocol)路由器用来在 IP 网络上交换路由信息的协议
- Radius(RemoteAuthentication Dial In User Service)拨号接入远端认证协议完成接入用户的认证、授权、计费功能的协议
数据传输过程
以 TCP/IP 五层结构为基础来学习数据在网络中传输
数据封装过程
应用层传输过程
在应用层,数据被“翻译”为网络世界使用的语言——二进制编码数据
传输层传输过程
在传输层,上层数据被分割成小的数据段,并为每个分段后的数据封装 TCP 报文头部。
- 将数据先分割成小段再逐段传输,一旦出现数据传输错误只需重传这一小段数据即可
- 在 TCP 头部有一个关键的字段信息——端口号,它用于标识上层的协议或应用程序,确保上层应用数据的正常通信
- 端口号:用来确定接收到的数据对应的应用程序
网络层传输过程
在网络层,上层数据被封装上新的报文头部——IP 头部(包含目标 IP 地址和源 IP 地址)
- 这里所说的上层数据包括 TCP 头部,也就是说,这里的上层是指传输层
(在网络传输过程中的一些中间设备,如路由器,会根据目标 IP 地址来逻辑寻址,找到正确的路径将数据转发到目的端) - 在 IP 头部中有一个关键的字段信息——IP地址,它是由一组 32 位的二进制数组成的,用于标识网络的逻辑地址
数据链路层传输过程
在数据链路层,上层数据被封装一个 MAC 头部(包含目标 MAC 地址和源 MAC 地址)
- MAC头部有一个关键的字段信息——MAC 地址,它由一组 48 位的二进制数组成
- MAC地址是固化在硬件设备中的物理地址,具有全球唯一性
物理层传输过程
- 无论在之前哪一层封装的报文头部还是上层数据信息都是由二进制数组成的
- 在物理层,将这些二进制数字组成的比特流转换成电信号在网络中传输
数据解封装过程
数据被封装完毕通过网络传输到接收方后,将进入数据的解封装过程,这将是封装过程的一个逆过程
物理层
将电信号转换成二进制数据,并将数据送至数据链路层
数据链路层
将查看目标 MAC 地址,判断其是否与自己的 MAC 地址吻合
- 如果数据报文的目标 MAC 地址就是自己的 MAC 地址,数据的 MAC 头部将被“拆掉”,并将剩余的数据送至网络层
- 如果目标 MAC 地址不是自己的 MAC 地址,对于终端设备来说,它将会丢弃数据
网络层
目标 IP 地址将被核实是否与自己的 IP 地址相同,从而确定是否送至传输层
传输层
根据 TCP 头部判断数据段送往哪个应用层协议或应用程序,然后将之前被分组的数据段重组,再送往应用层
应用层
二进制数据经历复杂的解码过程,以还原发送者所传输的原始信息
PUD
PDU (Protocol Data Unit,协议数据单元)是指同层之间传递的数据单位
- 对于 OSI 参考模型而言,每一层都是通过 PDU来进行通信的
- 而对于 TCP/IP 五层结构,也可以沿用这个概念
- 上层数据下传到传输层,被封装 TCP 头部后,这个单元称为段(Segment)
- 数据段向下传到网络层,被封装 IP 头部后,这个单元称为包(Packet)
- 数据包继续向下传送到数据链路层,被封装 MAC 头部后,这个单元称为帧(Frame)
- 最后帧传送到物理层,帧数据变成比特(Bits)流;比特流通过物理介质传送出去
硬件设备与五层模型的对应关系
常见的设备属于哪一层并没有严格的定义或是官方的 RFC 文档说明
设备属于哪一层要看这个设备主要工作在哪一层
- 常用的个人计算机和服务器都属于应用层设备,因为计算机包含所有各层的功能
- 硬件防火墙理论上讲属于传输层设备,因为它主要基于传输层端口号来过滤上层应用数据的传输
- 路由器属于网络层设备,因为路由器的主要功能是网络层的逻辑寻址
- 传统的交换机属于数据链路层设备(之所以说传统,是因为如今三层、四层的交换机已经非常普遍了),因为交换机的主要功能是基于 MAC 地址的二层数据帧交换
- 网卡一般意义上定义在物理层设备,虽然目前有些高端的网卡甚至涵盖防火墙的功能,但其最主要、最基本的功能仍是物理层通信
通信要求
发送方与接收方各层之间必须采用相同的协议才能建立连接,实现正常的通信
- 应用层之间必须采用相同的编码、解码规则,才能保证用户信息传输的正确性
- 传输层之间必须采用相同的端口号与协议对应关系,才能保证上层应用进程间的通信
- 网络层之间必须采用相同的逻辑寻址过程才能保证数据不会传输到错误的目的地
- 如果数据链路层采用的协议不同,接收方甚至不能“理解”数据的内容
- 如果物理层的硬件接口规格不同,接收方甚至连信号都无法接收到
实际场景
最终的发送方和接收方往往相隔千山万水,中间会有很多的硬件设备起到中转的作用