【计算机网络】学习笔记

1. 概论

  • 协议:数据在线路上传输的规则
  • 边缘部分:主机(资源子网)
  • 核心部分:连通/通信(通信子网)

核心部分中最重要的是路由器:实现分组交换路由选择

因特网中的服务

  • 面向连接服务

通信效率不高,协议复杂(TCP/PPP)

  • 无连接服务

数据分组中,目的结点接收的数据可能出现重复与丢失的现象,协议简单,效率高。

  • 可靠服务

检错,纠错(TCP)

  • 不可靠服务

  • 有应答服务

  • 无应答服务

只要可靠一定面向连接,一定有应答

PPP不可靠,重发次数够了,将丢弃

计算机网络特点

  • 连通性

有虚拟的特点

  • 共享性

资源共享

VPN

  1. charge:VPS

用虚拟机请求境外主机

  1. free

软件,插件(电脑卡顿:用你的电脑去挖矿~算力)

计算机网络功能

  • 数据通信:连接控制、传输控制、差错控制、流量控制,路由选择、多路复用
  • 资源共享:数据资源、软件资源

基本功能

  • 分布式处理
  • 信息综合处理

计算机网络的分类

拓扑结构:

  • 星型网络
  • 总线型网络
  • 环形网络
  • 网状网络

分布范围

  • 广域网 WAN
  • 局域网 LAN
  • 域域网 MAN
  • 个人局域网 PAN

网络使用者

  • 共用网
  • 专用网

资源:

  • 软件资源
  • 硬件资源
  • 数据资源

通信子网:

  • 路由器
  • 交换器
  • 网桥
  • 中继器
  • 集线器
  • 网线

2. 性能指标

  • 速率:数据率/比特率,b/s,每秒传输速度
  • 带宽:信号的频带宽度(赫)
  • 数字通信
  • 模拟通信

Now`带宽:数字信道所能传送的“最高数据率”,单位是b/s

收音机:106.2MP~~:波段;带宽:指波段的上界下界。

  • 延迟时延:数据从网络或链路的一端到另一端的所需时延。
  • 发送时延:传输时延:数据帧长度(b)/ 发送速率(b/s)
  • 传播时延:信道长度/传输速率
  • 时延带宽积:传播时延*带宽
  • 吞吐量:单位时间通过某网络的信道或接口的数据量

体系结构

分层设计

  • 对等实体:同一层的实体
  • 对等层:不同计算机的同一层

只定义,不讨论实现

接口:服务访问点

ISO/OSI参考模型

OSI:七层:应、表、会、传、网、数、物

  • 表示层:数据格式转换与压缩
  • 会话层:Session,访问次序的安排(插入同步结点)
  • 传输层:段:TCP:数据段/UDP:用户数据报(进程到进程)
  • 网络层:数据包/报/分组(路由器,基于IP的寻址)IP、ICMP、ARP、IGMP
  • 数据链路层-帧:两层交换机、网桥
  • 物理层:比特率

下为上服务

TCP/ICP模型:(应、表、会)、传、网际层、接口层

五层

  • 物理层(处理信号)
  • 数据链路层(提供用户和网络的接口,物理寻址、流量控制、差错校验)
  • 网络层(控制报文通过网络的路由选择)
  • 运输层(保证数据的正确顺序和完整性、拥塞控制)
  • 应用层

上~下:封装(物理层不需要封装)

3. 物理层

传输媒体

传输媒介

  • 光纤:光信号
  • 双绞线:电信号
  • 同轴电缆:电信号
  • 微波:电磁波
  • 红外线:光信号

物理层的功能

传输比特流

  • 机械特性
  • 电气特性
  • 功能特性
  • 过程特性

  • 信号:数据的电气或电磁的表现
  • 模拟信号:联系
  • 数字信号:离散

调制

  • 基带信号:能量与频率(低频/直流)
  • 基带调制:数字
  • 带通调制:模拟

编码:其他信号转化为数字信号

  • 差分曼彻斯特:前一个后半部分与后一个的前半部分(相异为0)
  • 不归零制:正电平:1
  • 归零:突出来的是1
  • 曼彻斯特:高-低:1、低高:0

调制:物理层要在信号(载体)中识别数据的比特流

码元和比特率

  • 码元:波形/信号的不同形状(携带nbit数据)对应一种二进制编码格式

  • 比特率:单位时间数字通信系统传输的比特数(M*n bit/s)

  • 每个码元携带数据量: n = l o g 2 码 元 数 n=log_2^{码元数} n=log2

  • 码元=波形

  • 奈氏准则:极限码元传输速率 B = 2 W B=2W B=2W、极限数据传输速率 B = 2 W ∗ l o g 2 V B=2W*log_2^{V} B=2Wlog2V

  • 信噪比:信号平均功率/噪声的平均功率

  • B = 2 W ∗ l o g 2 1 + S / N B=2W*log_2^{1+S/N} B=2Wlog21+S/N

  • 影响信道最大传输速率的因素:信道带宽和信噪比

物理层设备

中继器:将已经衰减得不完整信号,重新整理,产生完整的信号再继续发送(再生、仅作用于信号的电气部分

仅仅简单的转发bit
总带宽/主机数

使用中继器的局域网是一个星形网,竞争对传输媒体的控制,同时刻只允许一个传输数据。

放大器,也放大了噪声。

集线器:多端口的中继器,增大碰撞的可能性。

传输媒体

两根双绞线在一起:减少串扰

4. 数据链路层

  • 垂直:服务
  • 水平:协议

数据链路层传输的是

不必考虑传输bit细节。

  • 广播通信方式

数据链路层的功能

  • 封装成帧

数据前后加上帧首部,尾部。

  1. 字符计数法
  2. 首尾定界符
  3. 比特填充
  4. 违规编码
  • 差错控制

误码率:传输错误的比特所占的比特总数

原始数据+CRC冗余位

原 始 数 据 / P = n 位 C R C 原始数据/P=n位CRC /P=nCRC

n+1位除数:P(异或模)

  • 只能做到无差错传输

  • 要做到“无差错传输”,加上确认重传机制

  • 数据链路层都是不可靠传输

  • 流量控制

接收方控制发送方的数据,点对点

发送窗口:没收到确认,可以将连续窗口的数据全部发送出去

接收窗口:只允许接收窗口内数据

停止-等待机制:发送一帧,等待确认

第一次发送标号为0,出错重传标号1

网络利用率:最大利用率(发送时间/总时间)

  1. 发送时延
  2. 传播时延
  3. 发送时延
  4. 传播时延

后退N帧滑动窗口协议:发送N,接收1,确认7次(累计确认)

哪里出错回哪里(忽略发送时延t1)

窗口编号:0-N-1,接收是0,1,2…N-1

2 n > = 发 送 窗 口 大 小 + 接 收 窗 口 大 小 2^n >= 发送窗口大小+接收窗口大小 2n>=+

  • 选择重传滑动窗口协议:不支持累计确认

哪里出错传哪里

带 宽 = 数 据 量 / 时 间 带宽=数据量/时间 =/

实 际 带 宽 = n ∗ 帧 长 / t 1 + t 2 + t 3 + t 4 实际带宽=n*帧长/t1+t2+t3+t4 =n/t1+t2+t3+t4

链 路 利 用 率 = n ∗ 发 送 时 延 / ( 发 送 时 延 + 传 播 时 延 ∗ 2 ) 链路利用率=n*发送时延/(发送时延+传播时延*2) =n/+2

n发送窗口大小

介质访问控制

总线型介质访问

  • 静态划分
  1. 频分复用
  2. 时分复用TDM
  3. 波分复用WDM
  4. 码分复用CDM
  • 随机访问介质访问控制
  1. ALOHA协议:有数据即发送
  2. CSMA协议:帧听空闲

碰撞检测:冲突检测

  1. CSMA/CA
  • 随机重发:二进制退避算法

空闲检测方法:

  • 能量载波混合检测
  • 带确认的发送机制
  • 轮训访问

介质访问控制方法,发生冲突:

  1. CDMA
  2. TDMA
  3. WDMA
  4. FWDM
  5. 轮询

以太网二进制回退算法,11次碰撞,随机数 0 − 2 10 − 1 0-2^{10}-1 02101

K = { k , k ≤ 10 10 , 10 < k < 16 报 错 , k ≥ 16 K= \begin{cases} k, k\leq10\\ 10, 10<k<16\\ 报错,k\geq16 \end{cases} K=k,k1010,10<k<16k16

  • 碰撞次数越多,等待时间越多
  • 首次重传的帧发生冲突概率最低
  • 数据帧传输时延至少要等于信号传播时延的2倍

局域网的数据链路层

局域网中的主机和路由器/交换机构成数据链路层,局域网只有两层结构

局域网:主机与主机通过交换机连接

局域网局域网通过路由器连接

局域网广播的通信方式

局域网技术要素:

  1. 网络拓扑结构:星形网、环形网
  2. 传输介质:双绞线、铜线、光纤
  3. 介质访问控制方法:CSMA/CD、令牌总线和令牌环

局域网标准≈以太网

曼彻斯特:码元率=2*数据率

10Mbit/s以太网:51.2us为争用期长度(发送64字节,时延带宽积)

最 短 有 效 帧 长 = 争 用 期 ∗ 发 送 速 度 = 2 ∗ ( 介 质 长 度 / 传 播 速 度 ) ∗ 发 送 速 度 最短有效帧长=争用期*发送速度=2*(介质长度/传播速度)*发送速度 ==2/

有效地检测冲突:

  1. 减少电缆介质的长度或增加最短帧长

以太网规定最短有效帧长:64字节

以太网的MAC层

为了实现一对一通信,将接收站的硬件地址写入帧首部目的地址字段中

MAC:物理地址,名字/标志符

  • 48位
  • 6字节,后三字节,由厂家指派,称为扩展唯一标志符

广播:目的地址为广播地址则,所有计算机接收

多播:帧(一对多)

  • 网络接口板:通信适配器网络接口网卡
  • 适配器的重要功能:绿色操作系统,不能无线上网(安装网卡驱动,安装以太网协议)
  • 适配器,会将本机MAC与帧中MAC检查,对号入座

以太网的帧格式

  1. DIX Ethernet V2 标准
  2. IEEE的802.3 标准

  1. 目的地址 6B
  2. 源地址-6B
  3. 类型-2B
  4. 数据-46B~1500B
  5. FCS检错-4B

64~1518B

  • 以太网MAC协议:无连接的不可靠的协议

广域网的数据链路层

点对点通信

国与国之间,不能用广播

连接结点交换机组成

PPP协议

不需要的功能:

  • 纠错
  • 流量控制
  • 不可靠
  • 面向连接

三部分组成

  • IP数据报串行链路的方法
  • 链路控制协议LCP:管理数据链路层

匹配不同链路层

  • 网络控制协议NCP:对上承接网络层协议

匹配不同网络层

透明传输协议:

  • 异步传输:字符填充法
  • 异步传输:位填充
  1. 建立链路
  2. 验证阶段
  3. 网络控制协商阶段
  4. 终止PPP链路

PPP

  1. 一种成帧的方法
  2. 链路控制协议
  3. 网络控制协议
  4. 具有差错控制
  5. 支持动态IP分配
  6. 支持身份验证

PPP中的LCP帧作用:在建立状态阶段协商链路协议的选项

HDLC的帧类型

同时在线

  • 信息帧

  • 监督帧

  • 无编号帧

  • 广播域:只有能处理IP地址的才能称为

  • 扩展局域网:网桥

  • 网桥具有过滤功能

建立转发表,将源地址写在地址一栏,记录时间和接口

转发用目的MAC地址

透明网桥

透明网桥 运行自主学习算法维护转发表

交换机使用了生成树协议,无环路的树状结构

源路由网桥

源路由:在发送帧将详细的路由信息放在帧首部

指定发送路径

源站以广播方式欲向通信广播

  • 过滤通信量
  • MAC没有流量控制
  • 用户少和通信量不大的局域网

多接口网桥(以太网交换机)

无碰撞的传输数据

  1. 直通式交换,检测前6个字节,检测目的MAC
  2. 存储转发式交换:将帧存储在高速缓存中(延迟大)
  • 16个端口的集线器/中继器,冲突域1个,广播域1个

  • 16个端口的以太网交换机/网桥,冲突域16个,广播域1个

以太网交换机的本质是多端口网桥

5. 网络层

  • 网络层只提供简单灵活的、无连接、尽最大努力的数据报服务

  • 网络协议:IP/ARP/ICMP/IGMP

IP不可靠数据报传输,无连接

IP地址

32位的IP地址标识连接在互联网上的主机

  • 基本分类IP:两个字段{net-id:host-id}
  • 唯一性

IP地址8位一组,使用点分十进制提高可读性

特殊的IP:

  1. 0.0.0.0:本网络、DHCP请求的源地址、DSPF的根区域
  2. 255.255.255.255:全网广播、DHCP的目的地址
  3. 127.0.0.0:环回地址
  4. 网络地址:主机位全为0
  5. 广播地址:主机位全为1

C类:host-id:8位,有效/主机IP地址: 2 8 − 2 2^8-2 282

  • 路由器只有有两个IP地址
  • 转发器或网桥连接的依然有相同的host-id

划分子网

从主机号借用若干位作为子网号 subnet-id

  • 字段{net-id:subnet-id: host-id}

子网掩码:判断有无子网划分

  • 32位
  • 左边一连串1,对应网络号和子网号
  • 右边全为0,对应主机号

子网号不能全为1/0
主机号不能全为1/0

IP地址与子网掩码诸位相~网路地址,点分十进制表示

划分子网的方式:

  1. 主机优先:优先考虑分配主机位(每个子网中,主机数不等)
  2. 子网优先:优先考虑分配子网位(每个子网中,主机数相等)
  3. 尽可能提高IP地址利用率

无分类编址 CIDR

  • 无类别
  • 网络前缀,代替网络号和子网号
  • 字段{网络前缀: host-id}
  • 路由聚合构成超网

路由聚合:把前缀相同的聚合在一起(把公共前缀留下)

私有IP

  • 本地地址(专用地址、私有地址)
  • 全球地址:唯一IP
  1. A:10.0.0.0~10.255.255.255

10.0.0.0/8,24位块

  1. B:172.16.0.0~172.31.255.255

172.16.0.0/12,20位块

  1. C:192.168.0.0~192.168.255.255

192.168.0.0,16,16位块

  • 私有IP需要网络地址转换NAT
  • NAT路由器,至少有一个全球IP地址(把私有IP通过NAT翻译为全球IP)

IPv6

地址增大128位

  • 每16位用16进制表示,冒号分割
  • 允许把前面的数字0省略
  • 单播
  • 多播
  • 任播,距离最近的一个

过渡算法

  • 双协议栈:自动切换
  • 隧道技术

全为0网络地址,全为1广播地址

Example

  1. C类网络,24位网络位,8位主机位,可以有 2 8 − 2 = 254 2^8-2=254 282=254台主机

  2. 主机位为0是网络地址,为1是广播地址,不全为1IP地址

  • A 0-126 8位
  • B 128-191 16位
  • C 192-223 24位
  • D 224-239:主播地址
  • 子网位: 2 N 2^N 2N个子网
  • 主机位: 2 M − 2 2^M-2 2M2个主机

A:255.0.0.0
B:255.255.0.0
C:255.255.255.0

  1. 255.255.240.0与255.255.0.0 相:4个1,255.255:8位,.240.0:4位,主机位12位, 2 1 2 − 2 = 4094 2^12-2=4094 2122=4094

240:1111,子网掩码与IP地址,最后4个1,4位子网

  1. 192.168.10.0:C类网络,24位网络位,最后4位全为0:网络地址
  2. 1个B类地址,新增51个子网,每个子网800台

子网数>= l o g 2 51 = 6 log_2^{51}=6 log251=6位,掩码需要6个,252
主机数位=16-6=10位= l o g 2 10 = 1024 > 800 log_2^{10}=1024>800 log210=1024>800

  1. 某网络号:198.90.10.0/27

C类地址,24位网络位,借了3位主机位,来充当子网位 2 3 2^3 23,5位主机位,有效IP数: 2 5 − 2 = 30 2^5-2=30 252=30

  1. 若将101.200.16.0/20划分为5个子网,最小子网的IP地址数位
  • 网络优先: l o g 2 5 log_2^5 log25=3,20+3=23,则9位主机位, 2 9 − 2 = 510 2^9-2=510 292=510
  • 主机优先:101.200.0001 0000.0/20:每次只分1位

地址解析协议 ARP

应用层:TCP报文
网络层:IP数据报
链路层:MAC帧

ARP:实现IP地址到MAC地址的映射协议

数据链路层最终都是硬件地址

  • ARP请求分组:获取MAC地址(广播)
  • ARP响应分组:(单播)

广播和单播硬件地址:

  • 广播请求
  1. 目的IP
  2. 源IP
  3. 目的MAC(12个F)
  4. 源MAC
  • 单播响应
  1. 目的IP
  2. 源IP
  3. 目的MAC(12个F)
  4. 源MAC

注意问题:

  • ARP用于解决同一个局域网的主机或路由器的IP地址和硬件地址的映射问题。
  • 不在不同一个局域网,则发送某个路由器(有路由表)的硬件地址

为什么不用MAC地址进行通信?

  1. MAC是局域网地址,无法屏蔽差异
  2. 封装,本层解析本层格式,路由器是网络层设备

ICMP

  • 更好地转发IP数据报,提高交付机会
  • 允许主机、路由器报告差错情况
  • 网络层协议
  • 为网络层提供服务
  • 又让网络层给他提供服务
  • 封装在IP报文中,为IP服务

差错报文

  • 终点不可达
  • 时间超时TTL=0

询问报文

  • 回送请求和回答报文

Ping:

  • 测试主机直接连通性
  • 使用ICMP回送请求报文
  • 直接应用网络层ICMP的例子

Traceroute:

  • 跟踪分组从源点到终点的路径

IP数据报文的格式

  • 固定首部(20B)和数据

IP数据报分片:

其实位置的编号/8,字节划分

TTL:生存时间,8位,没经过一个路由器TTL-1

首部校验和:16位

IP数据报首部可能变化的字段:

  • 生存时间
  • 总长度
  • 源地址
  • 标志
  • 首部校验和

分片只发生在路由器,重组必须在目的机

IPv4设定生命器

  • 网络管理员配置的是静态路由
  • 路由回路是因为,路由器不知道整个网络的拓扑结构
  • 链路中,路由器使用dijkstra最短路算法找到其他路由器的长度
  • prim-krustral最小生成树,拓扑排序:有向无环图
  • BGP:用于自治系统之间的路由器交换路由
  • 每个路由器的位置不一样,路由表不一样

6. 传输层

传输层上连接资源子网(为应用层提高服务),向下是核心子网(通信子网)的最高处。

只有边缘部分的主机的协议栈才有运输层

  • 传输层:进程间通信(端到端)
  • IP:主机到主机

传输层的功能:基于端口的分用和复用

  • 流量控制
  • 可靠传输
  • 拥塞控制

用户数据报协议:DUP(面向连接)
传输控制协议:TCP(可靠)

  • TCP数据单位:TCP报文段
  • UDP:UDP报文段

电话交换

交换:专用的物理资源

  • 建立连接
  • 通信
  • 关闭连接

优点

  • 不存在失序问题
  • 传输模拟或数字信号

缺点

  • 利用率低
  • 建立连接时间长

虚电路面向连接

报文交换

  • 数据交换单位:报文
  • 不存在建立时延
  • 存储转发

缺点:

  • 要经历存储,时延高
  • 只适用数字信号

分组交换

IP分组交换:解决大报文传输问题

首部含有地址等控制信息

  1. IP数据报:走不同路径
  2. 虚路径:建立虚连接号

优点

  • 高效灵活
  • 信息量增大

分组交换

  • 使用流水线

虚电路分组交换:由网络层决定的,负责差错控制和流量控制

传输层端口

  • 进程标识符标志进程

  • 端口号表示不同的网络进程

  • 16位二进制:65535

  • 只用来标识本计算机的各个进程

  • 不同计算机可以重复

UDP

  • UDP尽最大努力交付

违心而为,尽力而为

应用层报文+UDP首部+IP首部+帧首部

UDP提供:无连接+复用分用服务

端口复用

  • 复用:不同源端口的进程,可以使用相同的IP
  • 分用:使用不同的目的端口,交给不同应用

UDP:将数据首部都检验

  • 不可靠

TCP

  • 面向连接(唯一的可靠协议)
  • 面向字节流
  • 虚连接
  • 连接端点:套接字或插口(IP:端口号)

连接建立,3次握手
连接释放,4次挥手

报文段的首部格式

  • IP20B,TCP20B
  • 端口:标识本地网络进程(我给别人发的)
  • 确认号:下一次报文段的起始字节编号(别人给我发的)

数据偏移:首部长度,长1、首4、偏8

  • ACK为1有效

  • RST:重新建立连接

  • SYN:同步(面向连接)

  • MSS是TCP报文段的数据字段的最大长度。数据字段+TCP首部才等于整个TCP报文段。MSS=TCP报文段长度-TCP首部长度

  • 填充:首部是4B的整数倍

TCP可靠传输

  • 编号确认机制(停止等待机制)
  • 超时机制
  • 自动重传机制

拥塞控制

  • 点缓存容量太小
  • 链路容量不足
  • 处理机的效率太低

控制策略:

  1. 开环控制
  2. 闭环控制
  • MSS:发送数据的基本单位

  • 接收窗口:接收端的能力

  • 拥塞窗口:根据网络情况确定的

判断拥塞:

  • 重传定时器
  • 重复ACK(丢包)

TCP拥塞控制算法

  • 慢开始(初始拥塞创建cwnd=1,慢开始门限SSTH=n)
  • 拥塞窗口加倍:发送方每收到一个对新报文段的确认,就是cwnd+1。
  • 在慢开始阶段,每经过一个轮次,拥塞窗口加倍
  • 在慢开始阶段,没收到一个确认段,拥塞窗口+1
  • 网络出现拥塞,门限值减半
  • 不能完全避免拥塞
  • 门限值之前指数加倍
  • 门限值之后:线性

快重传算法

  • 3个冗余m2ACK,快速重传m3

快恢复算法:ssthread=cwnd/2、cwnd=ssthreh

AMID,加法增大

7. 应用层

许多协议都是基于客户服务器方式。C/S

  • DNS域名服务器
  • FTP文件传输系统
  • Email
  • www万维网
  • DHCP(动态主机配置)

应用层协议:FTP、SMTP、TELNET

DNS

  • 域名:名字

  • 域名到IP的解析是由域名服务器完成的。

  • 域名服务器管辖一个范围:区

  • 根域名服务器(顶级域名和IP地址)

  • 权限域名服务器:负责一个区的域名服务器

  • 本地域名服务器(默认域名服务器)

解析过程

  1. 递归+迭代解析(广度优先)

1、本地主机查询(1,1)
2、本地DNS(0,n+1)

  1. 递归解析(深度优先)

1、本地主机查询(1,1)
2、本地DNS(0,2)

FTP概述

  • 交互访问,允许指明格式
  • 不关心文件命名,目录结构

winsxp、xshell

  • 控制连接:会话一直打开、管理控制
  • 数据连接

端口

  • 被访问的接受(服务器21)
  • 自己传送数据(客户端/数据端口20)

FTP数据封装过程:

  1. 应用层-数据
  2. 传输层-TCP数据段
  3. 网络层-数据包
  4. 数据链路层-数据帧
  5. 物理层-bit流

服务器从上往下,客户端从下往上

  • 服务器与客户端的TCP20端口建立数据连接(主动模式20,server被动打开是协商)

www

  • 统一资源定位符URL
  • 超文本传输协议HTPP(应用层协议)

使用TCP(本身无连接),http是面向连接的

持续连接:相同的TCP连接

HTTP连接

非持续连接:2nRTT

非流水线持续连接

  1. 建立TCP连接,1RTT
  2. 传n个对象,nRTT

流水线持续连接

  1. 建立TCP连接,1RTT
  2. 传n个对象,nRTT

访问web:PPP/ARP/UDP

协议:SMTP(发)/POP3(收):发邮件

DHCP

主机IP的自动配置:即插即用的联网机制

主机广播发送:DHCP才单播响应一个IP地址

源地址:0.0.0.0
目的地址:255.255.255.255
DHCPServer:要分配给A的IP地址,封装在MAC帧中



加油!

感谢!

努力!

猜你喜欢

转载自blog.csdn.net/qq_46092061/article/details/124894780