- 本文为 计算机网络 第五版 的知识点总结
- 较为零散,可差缺补漏式的看看
引言
- 广域网使用router将多个局域网连接起来
- 广域网中通信是点对点
- 报文流有边界,字节流无边界
- 低三层(物理、数据链路、网络)被称为 通信子网
- data link是点到点(host主机到host主机),transfer是端到端(进程到进程)
- OSI模型的网络层可以是面向连接或无连接的,TCP/IP的网络层只能是无连接的(因为使用的IP协议无连接)
- 各个硬件设备:
- Hub物理层。不能隔离冲突域和广播域
- Switch、Bridge数据链路层。可以隔离冲突域,不可隔离广播域
- Router网络层。可以隔离冲突域和广播域
物理层
基带传输,直接传输0,1电压
物理层需要做宽带调制和频分复用
-
Nyquist(奈式)定理,决定了传播信号速率上限
其中W为采样率,单位是Hz;V是进制数
-
Shannon(香农)定理,决定了有噪声情况下的最大传播速率
其中W单位Hz,S/N为信噪比。(db转换为10lg(S/N))
各个信号编码模式
-
分组交换有两种:
- 数据报
- 虚电路:先在逻辑上建立一条虚电路,之后类似电路交换
数据链路层
-
data link要做:
- 流量控制:控制发送速度
- 停等协议(即Wt=Wr=1的滑动窗口)
- 滑动窗口协议:Wt发送窗口,表示还可以发送多少,收到ACK向前滑;Wr接受窗口,收到就前滑并返回ACK
- 后退N协议:按序发送N个帧后,发现N前的那个未收到ACK,就将其和其之后的全部重传。此外,连续正确才发送ACK,即第N帧的ACK表示N和N以前的都正确。发送窗口需要小于2^n-1,否则无法分辨新旧帧
- SR选择重传协议:和GBN类似,但在发现差错后会缓存收到的正确帧,不必全部重传。此外,发现怀疑有错,需要发送NAK来表示怀疑。其Wt=Wr
- 差错控制:
- CRC冗余校验,一
- 海明码可以纠错
- ARQ重传,FEC前向纠错
- 成帧:即定界并打包。
- 比特填充:例如HDLC,F(011111110)作为界。中间5个1填1个0
- 字节填充:例如PPP
- 流量控制:控制发送速度
以太网是无确认无连接,无线是有确认无连接
-
信道利用率的计算:
其中L为发送的比特数,C为传输率,T为发送周期,R为单播时间。此外,如果是滑动窗口协议,则为:
吞吐量=利用率*发送速率
注意ACK帧是额外发送的
介质访问控制子层(MAC)
- 是data link的底部。使得两结点之间相互通信,不会互相干扰
- 多路复用:1条链路,多个信道
- FDM频分复用:可以保护频带
- TDM时分:时间片,轮流来
- WDM波分
- CDM码分:用不同的编码方式来区分。一种方法,设置码片使得任意两个码片正交。如果要发送1,则发送该码片;如果发送0则发送反码片(全部取反)。之后将存在的各个结果累加。将信号分到各个编码,只需要将总信号和码片点积即可
- 随机访问介质:解决不同用户访问同一个信道的问题
-
纯ALOHA,自由,用户占全部速率,碰撞则重传。其吞吐量为:
其中G为负载。在G为0.5时,S为0.184,为最大吞吐量
-
时隙ALOHA,将时间分为多个时隙,而非连续的时间。其吞吐量为:
在G为1时,S为0.368,为最大吞吐量
-
CSMA (Carrier Sense Multiple Access),载波侦听。其思想为不断检测信道是否被占用,直到发现信道空闲之后再发送。其可分为以下几种:
- 1-persistent CSMA。1坚持的含义是,监听如果发现信道空闲,发送的概率是1。如果监听忙,等待;如果发现冲突,随机等待
- non-persistent CSMA。如果忙,随机等待一段时间,然后再继续监听
- p-persistent CSMA。如果空闲,以p的概率发送
- CSMA/CD (Collision Detection)。802.3(以太网)就采用此,是一种半双工。其思维是监听碰撞,且边听边发。
- 注意,假设总线传播时延为τ,则需要2τ时间知道是否冲突。所以,最小帧长=2τ*传输速率。
- 以太网2τ=51.2μs,其传输速率为10Mb/s。故其最小帧长为512b = 64B
- 一旦发生了冲突,则使用二进制指数退避来避免,其退避时间为2rτ
- CSMA/CA (Collision Avoidance)。802.11a(wifi)使用此。其思维为,尽力避免冲突,不等待检测冲突。具体为先等待,再进入冲突窗口,计算退避时长。
- 轮询/令牌
-
- NIC网卡是计算机与传输介质之间的接口
网络层
- 路由器作用:路由选择、分组转发
- 动态路由:
- 距离向量,RIP
- 链路状态,OSPF
- 层次路由:IGP(域内),EGP(域间,BGP)
- 路由表的构成:目标IP,子网掩码,下一跳IP,接口号
- IPv4,注意首部长度、总长度、片偏移分别为4B、1B、8B。注意DF、MF值和分片的关系等。
- 通常下,IPv4地址可以分为网络号和主机号,网络只分配网络号。
- 网络号根据其数值,可以分为ABC类网络
- 主机号全零表示本机,全1表示广播
- 注意:计算IP地址分配问题,可以支持多少主机
- 而如果有子网掩码的话,则变为了三级IP,{网络号, 子网, 主机号}。子网掩码和IP逐位与得到结果
- ARP是地址解析协议,从IP到MAC
- DHCP是动态分配IP的协议(是个应用层协议,使用UDP)
- ICMP用于报告差错和异常(网络层协议)
- IPv6的首部是8B的整倍数,其地址是128位
- 注意,IPv6中,连续的0可以省略,直接写作::。但是一个地址中只能有一个双冒号。(因为多个双冒号则无法推断0的个数)
传输层
- UDP:
- 8B首部
- 计算校验和时,以2B为一组,求和后其反码为校验和(要加上伪首部)
- TCP:
- 20B首部
- 计算校验和时,以4B为一组算
- 面向字节流
- 其头部有几个特殊的字段:
- 确认号:希望得到下一个TCP包的序号
- ACK(acknowledge):其值为1时,确认号才有用
- SYN(synchronize):在建立连接时有用
- FIN:终止符
- 建立连接的过程,三次握手:
- 请求,去
- 同意,回
- 确认,去
- 断开连接的过程,四次挥手:
- 发起断开,去
- 同意并开始最后一次传输,回
- 传输完成,回
- 确认断开,去。需要等待2MSL之后才能确认关闭了
- 过程中如果收到了超时或者冗余的ACK,都会重传
- 流量控制:利用滑动窗口来控制发送速率
- 拥塞控制:其思想是有接受窗口rwnd和拥塞窗口cwnd,可发送的数目为他们的最小值。rwnd固定,而cwnd不断增长,其增长方式有以下两种:
- Tahoe慢开始+拥塞避免。cwnd从1开始,每过一个时间单位翻倍;如果到达了thresh,则变为每次加1。如果过程中发生了拥塞,则thresh减半,cwnd重新置为1
- Reno快重传+快恢复。与Tahoe类似,但发生拥塞之后thresh减半,cwnd从减半后的thresh开始加1