计算机网络知识点(知识点在rdt之前)
目录
文章目录
第一章 计算机网络的概述
1.什么是计算机网络?
通信技术+计算机技术
2. 什么是网络协议?
网络中为数据交换而建立的规则
语法(格式,信号电平)
语义(控制信息,响应,差错控制)
时序(时间顺序,速度匹配)
3.计算机网络结构
网络边缘:主机,网络应用
接入网络,物理介质:有无线链路
网络核心:路由器,网络之网络
4.网络核心的关键功能
路由:确定分组从源到目的传输路径
转发:将分组从路由器的输入端口交换至正确的输出端口
5.网络核心解决的基本问题
Q:如何实现数据从源主机通过网络核心送达目的主机?
A:数据交换
6.Internet结构
网络之网络
7.多路复用
网络资源划分为“资源片”,分配给各路“呼叫”(calls),每路呼叫独占分配到的资源片进行通信资源片可能闲置”(idle)
(1)码分多路复用(CDM)
● 广泛应用于无线链路共享
● 每个用户分配一个唯一的mbit码片序列 :“0”用“-1”表示,“1”用“+1”表示例如:S 站的码片序列:(–1 –1 –1 +1 +1 –1 +1 +1)
● 编码
各用户使用相同频率载波,利用各自码片序列编码数据
编码信号 = (原始数据) × (码片序列)
如发送比特 1(+1),则发送自己的 m bit 码片序列:
+1✖S=(–1 –1 –1 +1 +1 –1 +1 +1)
如发送比特 0(-1),则发送该码片序列的m bit 码片序列的反码:
-1✖S=(+1 +1 +1 –1 –1 +1 –1 –1)
● 各用户码片序列相互正交
i = j 表示是同一个用户的码片序列
i ≠ j 表示是不同一个用户的码片序列
● 解码:解码: 码片序列与编码信号的内积
(2)频分多路复用(FDM)
各用户占用不同的带宽资源频率带宽(Hz)
(3)时分多路复用TDM
将时间划分为一段段等长的TDM 帧,每个用户在每个 TDM 帧中占用固定序号的时隙,每用户所占用的时隙是周期性出现(周期是TDM 帧的长度)
(4)波分多路复用WDM
波分复用就是光的频分复用
8.数据交换
(1) 为什么需要数据交换?
- N^2链路问题
- 连通性
- 网络规模
(2)交换的实质
动态分配传输资源
(3)交换的类型
① 电路交换
- 电话网络
- 建立连接——>通信——>释放链接
- 独占资源
② 报文交换
- 报文:源(应用)发送信息整体
比如:一个文件 - 以完整报文进行“存储-转发”
③ 分组交换
-
分组:报文分拆出来的一系列相对较小的数据包
拆分与重组,产生额外开销 -
统计多路复用
-
以较小的分组进行“存储-转发”
-
分组交换的报文交付时间
● nL/R=(h-1)L/R:源主机传输的第一个分组到达倒数第二个主机用时
●M/R:从第一个分组到达倒数第二个主机开始,之后每个时刻都有一个分组按照R的速率从倒数第二个主机到达目的主机,一共有M/L个分组,而每个分组大小为L,故一共用时M/R
● 例题:file:///E:/Learning/考研/计算机网络MOOC课件/(1.3.5)–报文交换与分组交换(3).pdf P4
④ 分组交换VS电路交换
● 分组交换绝对优于电路交换?
● 分组交换:适用于突发数据传输网络,资源充分共享,简单、无需呼叫建立。但是可能产生拥塞,分组延迟和丢失
需要协议处理可靠数据传输和拥塞控制
Q: 如何提供电路级性能保障?
例如,音/视频应用所需的带宽保障
第二章 计算机网络性能
1.速率、带宽、时延
(1)基本概念
速率:额定速率,单位:b/s(或bps)
带宽:最高数据率,单位:b/s(或bps)
Q:分组交换为什么会发生丢包和时延?
A:分组在路由器缓存中排队
——分组到达速率超出输出链路容量时
——分组排队,等待输出链路可用
——如果缓存满,到达分组被丢弃(丢包)
(2)四种分组延迟
① dproc: 结点处理延迟
差错检测,确定输出链路
② dqueue: 排队延迟
等待输出链路可用,取决于路由器拥塞程度
a: 平均分组到达速率
流量强度 = La/R
接近0: 平均排队延迟很小
接近1: 平均排队延迟很大
大于1: 超出服务能力,平均排队延迟无限大!
③ dtrans: 传输延迟
dtrans = L/R:将分组从路由器或者主机中推入信道所需的时间
④ dprop: 传播延迟
d: 物理链路长度
s: 信号传播速度 (~2×108m/sec)
dprop = d/s:分组在结点间的传输介质中传播所需要的时间
2. 时延带宽积、丢包率、吞吐量
基本概念
延带宽积 = 传播时延 ✖ 带宽
= dprop ✖ R (bits)
链路的时延带宽积又称为以比特为单位的链路长度
时延带宽积
吞吐量 = 一个周期内传输的数据➗周期时间(在发送端与接收端之间传送数据速率 (b/s))
一个周期内传输的数据=窗口大小
周期时间=传输时延(来回)+传播时延
3. 计算机网络体系结构
(1)网络体系结构是从功能上描述计算机网络结构,是一个分层结构。每层遵循某个/些网络协议完成本层功能。
(2)计算机网络体系结构是计算机网络的各层及其协议的集合,是一个计算机网络的功能层次及其关系的定义,是抽象的
(3)实体:表示任何可发送或接收信息的硬件或软件进程。
(4)协议是水平的,服务是垂直的,下层协议的实现对上层的服务用户是透明的,同系统的相邻层实体间通过接口进行交互。
3. OSI参考模型
(1)应用层
支持用户通过用户代理(如浏览器)或网络接口使用网络服务
如:FTP、SMTP、HTTP
(2)表示层
处理两个系统间交换信息的语法与语义
加密/解密
压缩/解压缩
数据表示转化:转换为主机独立的编码
(3)会话层
对话控制:建立、维护
(4)传输层
TCP/UDP数据段
负责源-目的(端-端) (进程间) 完整报文传输
分段与重组
确保将完整报文提交给正确进程,如端口号
连接控制
流量控制
差错控制
(5)网络层
IP数据报
负责源主机到目的主机数据分组交付
路由
分组转发
逻辑寻址
(6)数据链路层
负责结点-结点数据传输
组帧
物理寻址:在帧头中增加物理地址标识数据帧的发送端或接收端
流量控制:避免淹没接收端
差错控制:检测并重传损坏或丢失帧,并避免重复帧
访问(接入)控制:决定哪个设备拥有链路(物理介质)控制使用权
(7)物理层
接口特性:机械特性、电气特性、功能特性、规程特性
比特同步:时钟同步
传输模式:单工、半双工、全双工
比特编码
数据率
(8)数据封装
Q:为什么需要数据封装?
A:增加控制信息,包括:地址、差错检测编码、协议控制(如: 优先级(priority))
4. 五层参考模型
综合 OSI 和 TCP/IP 的优点
- 应用层: 支持各种网络应用,如:FTP, SMTP, HTTP
- 传输层: (TCP/UDP数据段)进程-进程的数据传输,如:TCP, UDP
- 网络层(IP数据报): 源主机到目的主机的数据分组路由与转发,如: IP协议、路由协议等
- 数据链路层: 相邻网络元素(主机、交换机、路由器等)的数据传输,如:以太网(Ethernet)、802.11 (WiFi)
PPP - 物理层:比特传输
交换机是链路层+物理层;
路由器是网络层+链路层+物理层
第三章 应用层
1. 网络应用的体系结构
- C/S结构
优点:客户端和服务器直接相连、客户端可以处理一些逻辑事务
缺点:用户数增多会出现通信拥堵,甚至服务器难以承担重负,对服务器的要求很高 - P2P结构
优点:高度可伸缩
缺点:难于管理 - 混合结构
文件传输:P2P
文件的搜索:C/S——集中式:每个节点向中央服务器登记自己的内容;每个节点向中央服务器提交查询请求,查找感兴趣的内容。
补充:B/S架构:它是C/S架构的一种改进,可以说属于三层C/S架构
客户机(浏览器)——>应用服务器(WEB服务器)——>数据库服务器
2. 网络应用进程
(1)进程基本概念
进程的标识符:IP地址+端口号
进程间通信利用socket发送/接收消息实现
Q:同一主机上运行的进程之间如何通信?
A:进程间通信机制,操作系统提供
Q:不同主机上运行的进程间如何通信?
A:消息交换
(2)对传输服务的需求
- 数据丢失/可靠性
- 时迟
- 带宽(最高传输速率)
3. HTTP协议
(1)基本概念
使用C/S结构、TCP传输服务、无状态链接(服务器不维护任何有关客户端过去所发请求的信息)
(2)HTTP的连接类型
① 非持久性连接
每个TCP连接最多允许传输一个对象
响应时间:=2RTT +文件发送时间
问题:
- 每个对象需要2个RTT
- 操作系统需要为每个TCP连接开销资源
- 浏览器会打开多个并行的TCP连接以获取网页所需对象
② 持久性连接:每个TCP连接允许传输多个对象
- 无流水的持久性连接:客户端只有收到前一个响应后才发送新的请求,每个被引用的对象耗时1个RTT
- 带有流水机制的持久性连接:客户端只要遇到一个引用对象就尽快发出请求,理想情况下,收到所有的引用对象只需耗时约1个RTT。如上情况:客户直接一次性发送一个文本和十个图片的HTTP请求消息
(3)HTTP消息格式
① 请求消息
ASCII:人直接可读
上传输入的方法
POST:填写表格,在请求消息的消息体(entity body)中上传客户端的输入
GET:输入信息通过request行的URL字段上传
② 响应消息
(4)Cookie
HTTP协议无状态,很多应用需要服务器掌握客户端的状态,如网上购物。
(4)Web缓存/代理服务器
在不访问服务器的前提下满足客户端的HTTP请求
优点:1. 缩短客户请求的响应时间
2. 减少机构/组织的流量
3. 在大范围内(Internet)实现有效的内容分发
缺点:成本太高
缓存既充当客户端,也充当服务器
条件性GET:根据缓存中的版本是否为最新版本而发送不同的HTTP请求
4. Email
(1)SMTP协议(简单邮件传输协议)
① 基本概念
Email应用的构成:
邮件客户端、邮件服务器、SMTP协议
使用TCP 端口25 使用持久性连接
传输过程的三个阶段:握手——>消息传输——>关闭
命令/响应交互模式
命令:ASCII文本
响应: 状态代码和语句
② 与HTTP对比
- HTTP: 拉式
SMTP: 推式 - 都使用命令/响应交互模式
- 命令和状态代码都是ASCII码
- HTTP: 每个对象封装在独立的响应消息中
SMTP: 多个对象在由多个部分构成消息中发送
(2)POP3协议(邮件访问协议)
是无状态的协议
从服务器获取邮件:
认证/授权(客户端<——>服务器)和下载
认证过程
1.客户端命令:User、Pass
2.服务器响应:+OK、 -ERR
两个模式:
“下载并删除”模式
“下载并保持”模式
(3)IMAP协议(交互邮件访问协议)
所有消息统一保存在:服务器
允许用户利用文件夹组织消息
(4)IMAP与POP3区别
① POP3:许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上
② IMAP:提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作
5. DNS
(1)基本概念
解决域名和IP地址之间映射问题
多层服务器构成的分布式数据库
是一个应用层协议:完成名字的解析
• Internet核心功能,用应用层协议实现
• 网络边界复杂
(2)映射流程
① 本地域名解析服务器:不严格属于层级体系,每个ISP有一个本地域名服务器
② 根域名服务器:
③ 权威域名服务器:组织内部,提供商维护
④ 顶级域名服务器:com、edu
(3)查询流程
① 递归查询
② 迭代查询
5. P2P应用
(1)原理
没有服务器
任意端系统之间直接通信
节点阶段性接入Internet
节点可能更换IP地址
(2)文件分发(BT)
① 特点
② 获取与发送chunk
总结:上传速率高,能够找到更好的伙伴,从而更快地获取文件。
(3)索引技术
P2P系统的索引:信息到节点位置(IP地址+端口号=应用进程)的映射
① 集中式索引
内容和文件传输是分布式的,内容定位是高度集中式的
问题:单点失效问题、性能瓶颈、版权
② 洪泛式查询
完全分布式架构
查询消息通过已有的TCP连接发送
节点转发查询消息
如果查询命中,则利用反回查询节点
③ 层次式覆盖网络
介于集中式索引和洪泛查询之间的方法
每个节点或者是一个超级节点,或者被分配一个超级节点:
节点和超级节点间维持TCP连接
某些超级节点对之间维持TCP连接
超级节点负责跟踪子节点的内容
第四章 传输层
1. 传输层服务的基本理论和机制
复用/分用
可靠数据传输机制
流量控制机制
拥塞控制机制
传输层协议为运行在不同主机上的进程提供了一种逻辑通信机制
TCP和UDP都不保证:延迟和带宽
TCP保证:可靠和按序,即拥塞控制、流量控制、连接建立
传输层 vs.网络层
网络层:提供主机之间的逻辑通信机制
传输层:提供应用进程之间的逻辑通信机制
2. 多路复用和多路分用
如果某层的一个协议对应直接上层的多个协议/实体,则需要复用/分用
(1)接收端进行多路分用
- 主机接收到IP数据报:
每个数据报携带源IP地址、目的IP地址。
每个数据报携带一个传输层的段
每个数据段携带源端口号、目的端口号 - 传输层协议提取IP地址和端口号信息,将数据段导向相应的Socket(TCP做更多处理)
① 无连接分用(UDP)
UDP的Socket标识(目的IP地址,目的端口号)
主机收到UDP段后:
- 检查段中的目的端口号
- 将UDP段导向绑定在该端口号的Socket
- 来自不同源IP地址和/或源端口号的IP数据包被导向同一个Socket
② 面向连接的分用(TCP)
多线程Web服务器
TCP的Socket用四元组标识
(源IP地址,源端口号,目的IP,目的端口号)
主机收到TCP段后:
- 接收端利用所有的四个值将Segment导向合适的Socket
- 服务器可能同时支持多个TCP Socket:每个Socket用自己的四元组标识
- Web服务器为每个客户端开不同的Socket
(2)发送端进行多路复用
从多个Socket接收数据,为每个数据报封装上头部信息,生成数据段,交给网络层
3.UDP
(1)特点
简单的错误校验
“Best effort”服务,UDP段可能:1.丢失 2.非按序到达
无连接:1. UDP发送方和接收方之间不需要握手
2.每个UDP段的处理独立于其他段
UDP也可以实现可靠数据传输:依靠应用层
在应用层增加可靠性机制
应用特定的错误恢复机制
优点:
- 无需建立连接 (减少延迟)
- 实现简单:无需维护连接状态
- 头部开销少
- 没有拥塞控制: 应用可更好地控制发送时间和速率
(2)UDP校验和(checksum)
发送方将段的内容视为16-bit整数,计算所有整数的和,进位加在和的后面,将得到的值按位求反,得到校验和发送方将校验和放入校验和字段
4. 可靠数据传输协议rdt
(1)什么是可靠
不错、不丢、不乱
(2)rdt 1.0(不丢失+不错误)
(2)rdt 2.0/ARQ(错误+不丢失)!
(3)rdt 2.1
- 针对发送方,ACK/NAK被破坏:为ACK/NAK增加checksum
2.ACK/NAK依旧被破坏:不能简单重传,会产生重复分组。引入序列号机制。为每个分组增加序列号,接收方丢弃重复分组
接受方只有收到当前状态的分组才会提交(如:当前wait0,但是来了pack1。会返回ACK,但丢弃pack1,继续等到pack0)
(4)rdt 2.2(无NAK消息协议)
如何替代NAK?
在ACK消息中显式地加入被确认分组的序列号,通过ACK告知最后一个被正确接收的分组
发送方:收到重复ACK之后,采取与收到NAK消息相同的动作,重传当前分组
接收方:如果收到的分组有问题,则发送非当前状态的ACK(如:当前在wait0,收到pack的checksum不正确,则发送ACK1。此时发送方在等待ACK0,会重发pack1)
(4)rdt 3.0(错误+丢失)
发送方等待“合理”时间:
- 如果没收到ACK,即ACK丢了,重传
- 如果分组或ACK只是延迟而不是丢了
① 重传会产生重复,序列号机制能够处理
② 接收方需在ACK中显式告知所确认的分组
5. 流水线机制
允许发送方在收到ACK之前连续发送多个分组,要求:
更大的序列号范围
发送方和/或接收方需要更大的存储空间以缓存分组