教材《计算机网络(第六版)》 特南鲍姆版
介绍
互联的可以交换信息的计算机称之为计算机网络,如:英特网
用途
1.访问信息
客户-服务器模型
peer-to-peer system(点对点技术,P2P)
P2P(Peer to Peer)网络的原理
2.人际通信
3.娱乐
4.物联网 the internet of things(iot)
网络类型
介质访问控制子层
the medium access control sublayer
是数据链路层的子层
信道分配问题
静态分配:缺陷-流量突发,峰值可达平均值的1000倍,大部分信道都会空闲
动态分配:解决静态分配的问题
动态分配
独立流量
单信道
可观测的碰撞
持续的或有槽的时间
载波感知或无载波感知
多路访问协议multiple access protocols
有冲突的协议:效率低,时延低
无冲突的协议:效率高,时延高
ALOHA
纯粹ALOHA(pure):想发就发,冲突特别多,有损坏就要重发
分槽ALOHA(slotted)
CSMA 载波监听多路访问协议
(carrier sense multiple access protocols)
先监听有没有人说话,没有再发
坚持和不坚持的CSMA
1-坚持CSMA 有人说话,就一直等着,直到不说话自己发
不坚持CSMA 等过一段时间随机再来
p坚持CSMA 看到有空闲就以p的概率发出帧
CSMA/CD 带冲突检测的CSMA
collision detection
是经典以太网的基础
发送帧之后继续监听发送过程中有无冲撞
吞吐量/包时与帧数/包时的关系,可见p越小,吞吐量越大
而且只有不坚持的CSMA的吞吐量是随帧数而上升的
无冲突协议
位图协议bit-map protocol
利用率=
d
d
+
N
\frac{d}{d+N}
d+Nd,其中d是data长度,N是?
若负载很重,利用率=
N
d
N
d
+
N
=
d
d
+
1
\frac{Nd}{Nd+N}=\frac{d}{d+1}
Nd+NNd=d+1d
令牌传递 token passing
令牌在谁那里,谁就可以发帧
二进制倒计数 binary countdown
全部按或算=最大的竞争成功
利用率=
d
d
+
N
\frac{d}{d+N}
d+Nd,其中N是比特位数,那么
2
N
2^N
2N就是地址个数
有限竞争协议
结合了竞争和不竞争的优点:
- 在低负载时使用竞争,以减少时延
- 在高负载时不竞争,以特供良好的信道效率
- 非对称协议(p不一致) asymmetric protocols
复习对称协议
准备好的站越多,成功概率越低
自适应型的树遍历协议 adaptive tree-walk protocol
无线局域网WLAN
存在两个问题
图(a) AC互为隐藏终端,不知道彼此存在,但都向B发时会冲突
图(b) BC互为暴露终端,分别向AD发时并不影响,但是由于互相暴露,因此其中一个会等待另一个发完
解决方法:
RTS是 Require ToSend 控制帧,A发送数据前,先发RTS广播自己的data大小、时长,此时范围内所有站都禁言
CTS是Clear ToSend 响应帧,表示B已知A要给它发消息,清除B覆盖范围内的所有帧
以太网
经典以太网
经典以太网MAC子协议
组成分别是:前导码、目标地址、源地址、类型、数据、填充字节、校验和
不算前导码,最小字节数是6+6+2+46+4=64
最长字节数是6+6+2+1500+4=1518
帧越长,效率越高,考虑46/64和1500/1518
Switch交换以太网
a为集线器,b为交换机
快速以太网
SR表示光纤(短)short
LR表示光纤(长)
ER表示光纤(增强型)
CX4表示coxial同轴电缆或铜线copper
10GBase-T很重要,10表示10Gbps带宽,Base表示基带(0~xxHz)而不是宽带,T表示twist双绞线
802.11结构和协议栈
a为有基础设施的模式,中间的是交换机AP,
b为几台笔记本联通的模式
分别为wifi1-6,速率不同
网桥
两口称为桥,多口称为交换机
生成树的交换机
交换机存在的问题:
交换机会自学习(逆向学习),当A发来信息时,记录其端口和MAC地址、时间,存储在内部的哈希表中,学习之后,当别人给A发消息时,可以直接找到A所在的端口;如果哈希表中没有目标的记录,则向所有端口(除了发送端口外)转发信息,即泛洪算法,这样会导致反弹、震荡,故要研究生成树的交换机来解决这一问题。
交换机刚插电时,其哈希表为空,需要不断学习。
生成树的交换机:
id最小数为根
网络层
网络层的pdu(protocol data unit,协议数据单元)是包package
网络层设计问题
- 存储和转发包交换
- 为上层(运输层)提供服务
- 实现无连接的服务
- 实现面向连接的服务
- 比较虚电路virtual-circuit和数据报datagram
- 存储和转发包交换
主机通过网络向另一主机发送数据,在网络层层次,数据以包发送,经过路由器,而网络是由ISP(Internet service provider,网络服务提供商,如中国移动、中国电信、学校的信息中心)的设备提供的。 - 向运输层提供服务
- 独立的路由技术
- 运输层屏蔽路由器的数、类型、拓扑结构
- 可用于传输层的网络地址使用统一编号计划,甚至跨越局域网和广域网
- 无连接服务的实现
数据报网络中的路由情况,任意结点断开时不影响网络
4. 面向连接的服务的实现
虚电路网络
5.虚电路和数据报的对比
issue | 数据报 | 虚电路 |
---|---|---|
环路建立 | 不需要 | 需要 |
地址 | 每个包包括全部的源和目标地址 | 每个包包括一个短的VC号码 |
状态信息 | 路由器不保存关于连接的状态信息 | 每个VC对每个连接需要路由表空间 |
路由 | 每个包独立路由 | 当VC建立时路由被选择,所有包跟在后面 |
路由失败的效果 | 没有,除非有包在碰撞中丢失了 | 所有通过失败路由的VC都被终止 |
服务质量 | 困难 | 如果足够的源被提前分配给每个VC那么简单 |
拥塞控制 | 困难 | 如果足够的源被提前分配给每个VC那么简单 |
单个网络的路由算法
问题在于公平性和效率的冲突
最优原则 optimality principle
a是网络,b是B结点的汇集树,表明了每个结点到B的最短路径,不同的结点有不同的汇集树,找树的过程就是收敛的过程
最短路径算法 shortest path algorithm
泛洪算法 flooding
距离向量路由 distance vector routing 代表作RIP 考
存在”无穷计数“的问题,即”好消息传得快,坏消息传得慢“,反复更新
左边是正常状态,右边是A结点断网/断电后下线的状态,B无法连接A,但C尚不知道,B就走C路径去连接A,C本来就是走B路径去连接的,因此发现B更新后也更新自己的跳数,二者不断更新,导致无穷计数。
解决方法:①规定上限为16跳②“水平分隔”:不能我走你的通道,你又反过来走我的通道
详解
链路状态路由 link state routing 代表作 OSPF
-
发现邻居,学习网络地址
-
对每个邻居设置距离/代价度量
-
建造它所有所学的包并告诉别人
记录自己-其他路由器的信息,并告诉其他所有路由器,彼此互相交换这些信息来计算最短路径 -
把包发出去,从其他路由器接收包
-
计算到每个路由器的最短路径
一个网络的层次路由 hierarchical routing within a network 考
a具有2个层次(大圈、小圈),5个区域
pros:记录少,路由器能记20万条
cons:有时不是最短路径
广播路由 broadcast routing
c逆向路径转发,画圈的是最短路径
多播路由 multicast routing
多播组1,多播组2
任波路由 anycast routing 常用
所有1号组都能收到,最近的1个响应即可
网络层的流量管理
需要解决:拥塞问题
方法: 考
流量感知控制 traffic-aware control
哪边不堵走哪边
准入控制 admission control
(a) A congested network. (b) The portion of the network that is not congested. A virtual circuit from A to B is also shown.
负载脱落 load shedding
流量整形 traffic shaping 有公式
积极队列管理 active queue management
随机早期检测 random early detection
扼流包 choke package
显式拥塞通知 explicit congestion notification
标记通知下一路由器
逐跳背压hop-by-hop backpressure
并非只反馈到数据源才能抑制,而是逐条抑制
服务质量和用户体验
互联网的网络层 考
IPv4协议
这是IPv4的头部,每行32比特,固定的有五行,因此最短5*4=20字节
下面解释每个字段的含义:
Version是0100 代表4(0110代表IPv6)
IHL是首部长度,1bit代表4字节
Differentiated services略
Total length:代表数据包的总长度(头部+数据),16位,可描述2^16=65536字节=64k,这也是一个包的最大长度
identification管分片的标识,方便后续组装起来
df表示don’t fragment 1表示不能再分片 0表示可分片
MF表示 more fragment 1表示还有更多后续的分片 0表示没有,这是最后一片
fragment offset表示此包是分片后的第几部分
options表示可选部分,0~40字节,也就是最多十行
IP地址
前缀
前面是网络号(子网掩码),后面是主机号,共32位
子网
CIDR 无类域间路由 classless interdomain routing
类型和特殊地址
共32位,每八位一组转换为十进制方便人记忆
特殊:0.0.0.0被保留
A类网络,0开头,从1.0.0.0~127.255.255.255,也就是00000001.xxxxxxxxxxxxxxxxxxxxxxx开始,网络号8位
B类网络,10开头,从128.0.0.0~191.255.255.255,网络号16位
C类网络,110开头,网络号24位,从192.0.0.0~223.255.255.255
D类网络,1110开头,是多播地址,224.0.0.0~239.255.255.255
E类网络,是保留地址,暂不分配
全0为本主机地址,只作为源地址,不能作为目的地址
网络号为全0,表示网络中的一个主机
全1,即255.255.255.255是广播地址,只作为目的地址
网络号+主机号全1表示某个网络中的广播地址
127.xxx是回环测试地址
NAT 网络地址翻译network address translation
e.g.
10.0.0.0~10.255.255.255 表示A类地址,1个A类网络,包含
2
24
2^{24}
224个地址,有
2
24
−
2
2^{24}-2
224−2个可以分配给主机使用,因为全0是网络地址,全1是广播地址
172.16.0.0~172.31.255.255 表示B类地址,16个B类网络,每个包含
2
16
2^{16}
216个地址,可分配
2
16
−
2
2^{16}-2
216−2个给主机使用
192.168.0.0~192.168.255.255 表示C类地址,256个C类网络,每个包含
2
8
2^8
28个地址,可分配
2
8
−
2
2^{8}-2
28−2个给主机使用
NAT(网络地址转换) 是一种用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术。解决了 IP 地址不足的问题,还提高了网络的安全性,同时允许内部主机访问互联网。