一、计算机网络、互连网、互联网之间的区别
计算机网络:由若干个结点和连接这些结点的链路组成
- 结点:计算机、集线器、交换机、路由器等
- 链路:有线链路和无线链路
互连网:由两个或多个计算机网络互相连接起来,形成的规模更大的计算机网络
- 路由器:
- 可以将两个或多个计算机网络互相连接起来
- 路由器工作在网络层,后续学习
注意:课程中的“路由器”和“家用路由器”存在区别,家用路由器=路由器+交换机+其他功能
- 交换机:
- 可以把多个结点连接起来,组成一个计算机网络
- 家庭、公司、学校通常使用交换机组建内部网络
互联网(因特网):由各大ISP和国际机构组建的,覆盖全球范围的互连网
互联网必须使用TCP/IP协议通信
互连网可以使用任意协议通信
- ISP:互联网服务提供商,如中国电信、中国移动、中国联通等
二、计算机网络的组成
从组成部分看
- 硬件:
- 主机(端系统)如:电脑、手机等(内部安装--网络适配器(网卡))
- 通信设备:如:集线器、交换机、路由器
- 通信链路:如:网线、光纤、同轴电缆
- 软件:方便用户使用,实现资源共享。如:Email客户端、聊天软件、网盘软件
- 协议:规定计算机网络中的通信规则。由硬件、软件共同实现,如:网络适配器+软件 实现网络通信协议
从工作方式看
- 边缘部分:
- 工作方式:直接为用户服务(通信、资源共享)
- 主要由连接到互联网上的主机及其软件组成
- 核心部分:
- 工作方式:为边缘部分提供服务(连通性、交换服务)
- 由大量网络和连接这些网络的路由器组成
从逻辑功能看
- 资源子网:
- 计算机网络中运行程序,向用户提供可共享的硬件、软件和信息资源的部分。
- 主要由连接到互联网上的主机组成
- 通信子网:
- 计算机网络中负责计算机信息传输的部分。即把计算机和其他用户装置互连在一起的所有通信设备和介质的总称。
- 主要由 通信链路+通信设备+协议 构成
- 注意:主机内部实现信息传输的网络适配器、底层协议 属于通信子网的范畴
三、计算机网络的功能
- 数据通信:实现计算机之间数据传输。是最基本、最重要的功能
- 资源共享:硬件、软件、数据资源(如:分享视频、应用商店、智能音箱)
- 分布式处理:将某个复杂任务分配给网络中多台计算机处理。如:大矩阵运算、MapReduce
- 提高可靠性:网络中各台计算机互为替代机。如:网盘服务器集群网站,数据冗余备份
- 负载均衡:网络中各台计算机共同分担繁重工作。如:游戏用多台服务器均衡处理玩家请求
- 其他:满足社会需求、生活需求。如:远程办公、远程教育等
四、电路交换、报文交换、分组交换
电路交换(适用低频次,大量的传输数据):用于电话网络
电路交换的过程:
- 建立连接(尝试占用通信资源)
- 通信(一直占用通信资源)
- 释放连接(归还通信资源)
优点:
- 通信前从主叫端到被叫端建立一条专用的物理通路
- 在通信的全部时间内,两个用户始终占用端到端的线路资源
- 数据直送,传输率高
缺点:
- 建立/释放连接,需要额外的时间开销
- 线路被双方独占,利用率低
- 线路分配的灵活性差
- 交换节点不支持“差错控制”(无法发现传输过程中发生的数据错误)
注意:计算机之间数据往往是“突发式”传输,即往往会高频次,少量传输数据,所以计算机网络并不适合采用电路交换技术
报文交换:用于电报网络
- 报文=控制信息(发送方+接收方)+用户数据(传输的实际消息)
- 存储转发的思想:把传送的数据单元先存储进中间节点,再根据目的地址转发至下一节点
优点:
- 通信前无需建立连接
- 数据以报文为单位交换节点间进行存储转发,通信线路可以灵活分配
- 在通信时间内,两个用户无需独占一整条物理线路
- 相比于电路交换,线路利用率高
- 交换节点支持“差错控制”(可以检验报文数据是否存在错误)
缺点:
- 报文不定长,不方便存储转发管理
- 长报文的存储转发时间开销大、缓存开销大长
- 报文容易出错,重传代价高
分组交换:用于现代计算机网络
由 不定长报文 拆分成 定长的分组
数据传输后需要对分组进行 排序合并
因此 需要记录源地址(始发位置)、目的地址(接收位置)、分组号(用于排序分组)
分组的数据都包含首部(分组的控制信息+源地址+目的地址+分组号)
优点:
- 有报文交换的所有优点
- 分组定长,方便存储转发管理
- 分组存储转发时间开销小,缓存开销小
- 分组不易出错,重传代价低
缺点:
- 相比于报文交换,控制信息比增加
- 相比于电路交换,依然存在存储转发时延
- 报文被拆分为多个分组,传输过程中可能出现失序、丢失等问题,增加处理复杂度
虚电路交换(基于分组交换):
虚电路交换过程:
- 建立连接(虚拟电路)
- 通信(分组按序、按已建立好的线路发送,通信双方不独占线路)
- 释放连接
相当于把排序的压力给到了分组交换机
本身计算机处理数据的能力就是很强大的 不如把压力给到计算机采用分组交换技术
五、电路性能分析
注意:报文交换和分组交换 中间节点一定要接收完整个报文后,才能解析并转发
六、计算机网络的分类
按分布范围分类:广域网(WAN)> 城域网(MAN)> 局域网(LAN)> 个人区域网(PAN)
按传输技术分类:
- 广播式网络:所有联网计算机都共享一个公共通信信道。所以无线网络都是“广播式”。
- 点对点网络:数据只会从发送方“点对点”发到接收方,精确送达。
按拓扑结构分类:网络拓扑结构是指网络总的结点(路由器、主机等)于通信线路(网线)之间的几何关系(如总线形、环形)表示网路结构,主要指通信子网的拓扑结构。
- 总线形:数据“广播式”传输,存在“总线争用”的问题。(典型代表:集线器连接的设备)
- 环形:数据“广播式”传输,存通过“令牌”解决总线争用的问题,令牌顺环形依次传递,拿到令牌者可以使用总线。(典型代表:令牌环网)
- 星形:由中央设备实现数据的“点对点”传输;不存在“总线争用”问题。(典型代表:以太网交换机连接的设备)
- 网状:数据通过各中间节点逐一存储转发;属于“点到点”传输。(典型代表:由众多路由器构建的广域网)
按使用者分类:
- 公用网:向公众开放的网络。如:宽带、交手机费即可使用的(给钱就行)
- 专用网:仅供某个组织内部使用的网络。如:政府、银行的内部网络(给钱也不行)
按传输介质分类:传输介质可分为有线和无线两大类
- 有线网络:光纤、网线等
- 无线网络:蓝牙、5G、WIFI等
七、计算机网络的性能指标
速率:就是数据传输的速率。速率单位:bit/s b/s bps
注意:有时也会用B/s(1B=8b,B=Byte字节,b=bit比特),K=103 M=106 G=109 T=1012
带宽:网络带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量。
吞吐量:单位时间内通过某个网络(或信道、接口)的数据量。
注意:带宽说的是最大值速率,吞吐量说的是某时刻速率。吞吐量不能超过最大速率。
时延:总时延=发送时延+传播时延+处理时延+排队时延
- 发送时延:又叫传输时延,节点将数据推向信道所花费的时间(发送时延=数据长度(bit)/发送速率(bit/s))
- 传播时延:电磁波在信道中传播一定的距离需要花费的时间(传播时延=信道长度(m)/电磁波在信道中的传播速率(m/s))
- 处理时延:被路由器处理所花的时间(如:分析首部、查找存储转发表)
- 排队时延:数据排队进入、排队发出由路由器所花的时间(受网络负载、路由器性能等诸多因素影响)
- 时延带宽积:一条链路中,已从发送端发出但未到达接收端的最大比特数(时延带宽积=传播时延×信道带宽)
信道:表示向某一方向传输信息的通道(信道!=通信线路)一条通信线路在逻辑往往对应两条信道分别为发送信道和接收信道
往返时延(RTT): 表示从发送方发送完数据,到发送方收到来自接收方的确认总共经历的时间。
往返时延 RTT = t2 +t3 + t4 + t5
- t2:“数据”的单向传播时延
- t3:接收方收到数据后的处理时延
- t4:“确认”的发送时延
- t5:“确认”的传播时延(通常 t5与 t2相等)
- t1:发送方发送数据的发送时延(不计入 RTT)
信道利用率:某个信道百分之多少的时间是有数据通过的。(信道利用率=有数据通过的时间/(有数据通过的时间+没有数据通过的时间))
- 信道利用率低会浪费带宽资源
- 信道利用率太高可能导致网络拥塞
八、计算机网络体系结构和参考模型
分层是一种将复杂系统、结构或设计划分为不同层次或级别的方法。
分层设计的主要优势包括:
- 模块化
- 隔离性
- 标准化
- 可扩展性
- 理解和教育
通过网络进行通信的两个终端我们称为源主机和目的主机,发送方称为源主机,接收方称为目的主机
实体:在计算机网络的分层结构中,第n层中的活动元素(软件+硬件)通常称为第n
层实体。
不同机器上的同一层称为对等层,同一层的实体称为对等实体
协议:即网络协议(Network Protocol),是控制对等实体之间进行通信的规则的集合,是水平的。
在网络中有一个很重要的部分就是协议:
在计算机科学和通信领域,协议是指一组规则、标准或约定,用于在不同实体(如计算机、设备或系统)之间进行通信和交互。协议定义了通信的格式、顺序、数据结构、错误处理以及其他细节,以确保通信的可靠性、一致性和互操作性(指不同系统、设备、程序或组织之间能够有效地协同工作、交换信息和实现互相合作的能力)。
网络中的协议数量是非常多的,每一种协议都描述了自己的规则和标准。存在一部分协议在网络出现频率非常高,几乎只要使用网络,就会涉及到该协议(如:TCP、UDP、IP、HTTP)
接口:即同一节点内相邻两层的实体交换信息的逻辑接口,又称为服务访问点(ServiceAccessPoint,SAP)
服务:服务是指下层为紧邻的上层提供的功能调用,它是垂直的
协议数据单元(PDU):对等层次之间传送的数据单位。第n层的 PDU 记为 n-PDU
服务数据单元(SDU):为完成上一层实体所要求的功能而传送的数据。第 n层的 SDU记为 n-SDU。
协议控制信息(PCI):控制协议操作的信息。第n层的PCI记为 n-PCI
三者的关系为:n-SDU + n-PCl = n-PDU = (n - 1)-SDU
协议由语法、语义和同步三部分组成(协议的三要素)
语法:数据与控制信息的格式。例如,协议控制信息(首部)部分占几个字节、每个字
节是什么含义;协议的数据部分最多有多少字节。
语义:即需要发出何种控制信息、完成何种动作及做出何种应答。例如,协议中需要
明确规定:发送方发完数据后,接收方是否需要“应答”,以及“应答”的种类有哪些(如:传
输成功、传输失败)
同步(或时序):执行各种操作的条件、时序关系等,即事件实现顺序的详细说明。例
如,发送方发完数据后,接收方需要立即应答。如果发送方在 10秒内未收到“传输成
功”应答,则发送方会再次发送数据。
OSI参考模型
OSI模型的低三层可以看成是通信子网,主要负责的功能是数据通信
OSI模型的高三层可以看成是资源子网,主要负责处理传输来的数据
而中间的传输层,起到的是承上启下的作用。
物理层任务:实现相邻节点之间比特(0或 1)的传输
- 需定义电路接口参数(如:形状、尺寸、引脚数等)
- 需定义传输信号的含义、电气特征(如:5v 表示 1,1v 表示 0;每比特电信号持续时间0.1ms)
链路层任务:确保相邻节点之间的链路逻辑上无差错。包含以下功能
- 差错控制: 检错+纠错;或检错+丢弃+重传
- 流量控制: 协调两个结点的速率
数据链路层可以检测错误,但通常情况下不直接进行错误纠正。如果数据帧检测到错误,数据链路层通常会将错误的帧丢弃(因为纠错需要复杂的技术,通常会在更高层次上进行,例如:传输层、应用层)
网络层任务:把“分组”从源结点转发到目的结点。包含以下功能
- 路由选择:构造并维护路由表,决定分组到达目的节点的最佳路径
- 分组转发:将“分组”从合适的端口转发出去
- 拥塞控制:发现网络拥塞,并采取措施缓解拥塞
- 网际互联:实现异构网络互联
- 其他功能:差错控制、流量控制、连接建立与释放、可靠传输管理
传输层任务:实现端到端通信即实现进程到进程的通信,“端”指“端口”
包含以下功能
- 复用和分用:发送端几个高层实体复用一条低层的连接,在接收端再进行分用
- 其他功能:差错控制、流量控制、连接建立与释放、可靠传输管理
网络层典型的协议是IP协议,传输层典型的协议是 TCP协议
网络层和传输层的主要功能:
- 传输层提供端到端的数据传输服务,确保数据的可靠传输和有序交付。
- 网络层的主要功能是通过逻辑寻址(如IP 地址)将数据从源节点传输到目标节点,处理分组传输和路由选择,确保数据在网络中正确到达。
应用层任务:实现特定的网络应用
(功能繁多,根据应用需求设计)
表示层任务:解决不同主机上信息表示不一致的问题
(主要功能:数据格式转换(如编码转换、压缩/解压、加密/解密))
会话层任务:管理进程间会话
(主要功能:会话管理(采用检查点机制,当通信失效时从检查点继续恢复通信))
OSI参考模型 |
任务 |
功能 |
各层传输单位 |
7应用层 |
实现特定网络应用 |
略 |
报文 |
6表示层 |
解决不同主机上信息表示不一致的问题 |
数据格式转换 | |
5会话层 |
管理进程间会话 |
会话管理 | |
4传输层 |
实现端到端(进程到进程)通信 |
复用和分用、差错控制、流量控制、连接管理、可靠性传输 |
报文段 |
3网络层 |
把分组从源结点抓发到目的结点 |
路由选择、分组转发、拥塞控制、网际互联、差错控制、流量控制、连接管理、可靠性传输 |
数据报(分组) |
2数据链路层 |
确保相邻节点之间的链路逻辑上无差错 |
差错控制、流量控制 |
帧 |
1物理层 |
实现相邻节点之间比特的传输 |
需定义电路接口参数、信号的含义/电气特性等 |
比特 |
TCP/IP模型
TCP/IP 的理念:如果某些应用需要数据格式转换、会话管理功能,就交给应用层的特定协议去实现
OSI模型的物理层主要功能:需定义电路接口参数、信号的含义/电气特性等
OSI模型的数据链路层主要功能:差错控制、流量控制
网络接口层的主要任务:实现相邻结点间的数据传输(为网络层传输“分组”)
但具体怎么传输不作规定,这使得 TCP/IP 网络体系结构具有更强的灵活性、适应性。
TCP/IP模型与OSI模型最大的区别
TCP/IP 模型只负责“甩锅”:数据交给我的就是这样的,为什么出现错误跟我也没有关系!
出了问题就直接甩锅,跟我无关,错误一般都由传输层来负责保证数据传输的正确定和可靠性
TCP/IP参考模型 |
任务 |
功能 |
4应用层 |
实现特定网络应用 |
如果某些应用需要数据格式转换、会话管理功能,就交给应用层去实现 |
3传输层 |
实现端到端(进程到进程)通信 |
复用和分用、差错控制、流量控制、连接管理、可靠性传输 |
2网际层 |
把分组从原借点转发到目的节点 |
路由选择、分组转发、拥塞控制、网际互联 |
1网络接口层 |
实现相邻节点之间传输(为网络层传输“分组”) |
无具体以规定 |
TCP协议的特点和可靠性
TCP(Transmission Control Protocol)传输控制协议:是一种面向连接的、可靠的传输协议,它在数据传输过程中提供了多种机制以保证数据的可靠性和有序性。以下是 TCP 协议的特点和可靠性方面的说明:
特点:
- 面向连接:TCP 在数据传输前需要建立连接,通过三次握手确保发送方和接收方都准备好进行通信。连接的建立和关闭通过握手和挥手过程来完成。
- 可靠性:TCP 通过多种机制确保数据的可靠传输,包括确认、重传、流量控制和拥塞控制等。
- 全双工通信:TCP 允许双方同时进行发送和接收,实现全双工通信。
- 头部开销:TCP 的头部较大,包含序列号、确认号、窗口大小等信息,可能增加网络传输开销。
可靠性:
TCP 协议通过以下机制保证数据的可靠性:
- 确认和重传: 接收方收到数据后会发送确认(ACK)给发送方,如果发送方在一定时间内未收到确认,会进行数据重传。
- 流量控制: 接收方使用滑动窗口机制来告诉发送方可接收的数据量,避免过多的数据拥塞接收方的缓冲区。
- 拥塞控制: 发送方根据网络的拥塞情况来动态调整发送速率,避免造成网络拥塞。
- 有序性: 接收方根据序列号重新组装数据,保证数据在接收端按照正确的顺序呈现。
- 超时重传: 如果发送方在一定时间内未收到确认,会认为数据可能丢失,触发数据的重传。
总的来说,TCP协议的可靠性使其适用于需要保证数据完整性和有序性的应用,如文件传输、电子邮件等。然而,由于提供了这些可靠性和控制机制,TCP的开销相对较大,可能在一些实时性要求较高的应用中不太适用。
UDP协议的特点
UDP(User Datagram Protocol)是一种无连接的、不可靠的传输协议,常用于需要快速传输数据但对数据传输的可靠性要求不高的场景。UDP协议具有以下特点和不可靠性:
特点:
- 无连接性: UDP 是无连接的协议,意味着在数据传输之前不需要建立连接。每个UDP 数据包(也称为数据报)都是独立的,没有先后关系。
- 简单和轻量: UDP 相对于 TCP 来说更加简单,没有 TCP 的握手、确认、重传等机制。这使得 UDP 的头部开销较小,适合在网络带宽受限的情况下使用。
- 高性能: 由于缺乏 TCP 的复杂机制,UDP 具有更低的延迟,适用于实时性要求较高的应用,如实时音视频传输、在线游戏等。
- 广播和多播支持: UDP 支持广播和多播,允许向多个主机发送数据
不可靠性:
UDP 协议的不可靠性主要表现在以下几个方面:
- 丢包风险:UDP 在数据传输过程中不会检测丢失的数据包或重新发送丢失的数据包因此数据包可能会丢失。
- 不保证数据顺序:数据包可能以不同的顺序到达目的地,因此需要在应用层处理数据的顺序。
- 无确认和重传:UDP 不会对数据包的接收进行确认,也不会重新发送丢失的数据包,如果数据包丢失,应用程序需要自行处理。
- 不提供流量控制和拥塞控制:UDP 不会自动限制发送速率,这可能导致数据过载和网络拥塞。
虽然 UDP 在某些情况下具有优势,但由于其不可靠性,它不适用于所有类型的应用。在需要数据