网络知识 (抄书)
Table of Contents
数据交换的方式
- 电路交换: 整个报文的比特连续地从源点直达重点, 好像在一个管道中传送
- 报文交换: 整个报文先传到相邻结点, 全部存储下来后查找转发表, 转发到下一个结点
- 分组交换: 单个分组 (报文的一部分) 传送到相邻结点, 存储下来后查找转发表, 发送到下一个结点
采用分组交换的优点:
宏观可靠: 传输过程出现问题, 可以走别的路径 (路由器)
如果是电路交换, 中间其中一个 单点 出现故障, 就会造成整体故障
还可以实现差错处理
采用分组交换的缺点:
微观不可靠: 其中一个分组传送失败, 那么就会出现问题. 另外还有可能发生 报文丢失, 乱序, 重复等情况
速率: 单位 b/s, 1M b/s = 10^3K b/s, 不是以 2 进制的方式存储
吞吐量 throughput: 单位时间内通过某个网络的数据量
时延 delay, latency: 发送到接收处理完后所需要的时间
发送时延 发送数据的第一个比特算起, 到接收最后一个比特发送完毕所需要的时间 传播时延 propagation latency 数据以电磁波在信道中传播一定的距离所需要的时间 处理时延 接收方收到分组并处理完的时间 排队时延 在进入路由器后要先在输入队列中等待处理, 所需要的时间
TTL time to live: 存活时间
RTT round-trip time: 往返时间
以太网
以太网对发送的数据帧不进行编号, 也不要求对方发回确认
当目的站收到有差错的数据帧时就丢弃此帧, 其他什么也不做. 差错的纠正由高层来决定
例如, 如果是 TCP 协议, 就会发现丢失了一些数据并重传, 以太网并不知道这是重传帧, 而是当做新的数据帧来发送
载波监听多点接入/碰撞检测
Carrier Sense Multiple Access with Collision Detection CSMA/CD
总线上只要有一台计算机在发送数据, 总线的传输资源就会被占用, 因此在同一时间只能允许一台计算机发送数据, 否则
各计算机之间就会互相干扰, 使得所发送的数据被破坏.
要传输数据的站点首先对媒体上有无载波进行监听, 以确定是否有别的站点在传输数据. 假如媒体空闲, 该站点便可传输数据
否则, 该站点将避让一段时间后再做尝试. 这就需要有一种退避算法来决定避让的时间
常用的退避算法有非坚持, 1 坚持, P 坚持三种
非坚持算法
- 如媒本是空闲的, 则可以立即发送
- 假如媒体是忙的, 则等待一个由概率分布决定的随机重发延迟后, 再重复前一步骤
采用随机的重发延迟时间可以减少冲突发生的可能性
非坚持算法的缺点是:
即使有几个着眼点为都有数据要发送, 但由于大家都在延迟等待过程中, 致使媒体仍可能处于空闲状态, 使用率降低
1-坚持算法
- 如媒体空闲的, 则可以立即发送
- 假如媒体是忙的, 则继续监听, 直至检测到媒体是空闲, 立即发送
- 假如有冲突 (在一段时间内未收到肯定的回复), 则等待一随机量的时间, 重复步骤 1, 2
这种算法的优点是: 只要媒体空闲, 站点就立即可发送, 避免了媒体利用率的损失
缺点是: 假若有两个或两个以上的站点有数据要发送, 冲突就不可避免
P-坚持算法
- 监听总线, 假如媒体是空闲的, 则以 P 的概率发送, 而以 (1-P) 的概率延迟一个时间单位
一个时间单位通常等于最大传播时延的 2 倍
- 延迟一个时间单位后, 再重复步骤 1
- 假如媒体是忙的, 继续监听直至媒体空闲并重复步骤 1
P-坚持算法是一种既能像非坚持算法那样减少冲突, 又能像 1-坚持算法那样减少媒体空闲时间的折中方案
问题在于如何选择 P 的有效值, 这要考虑到避免重负载下系统处于的不稳定状态. 假如媒体是忙时, 有 N 个站有数据等待发送,
一旦当前的发送完成时, 将要试图传输的站的总期望数为 NP. 假如选择 P 过大, 使 NP>1, 表明有多个站点试图发送, 冲突就
不可避免. 最坏的情况是, 随着冲突概率的不断增大, 而使吞吐量降低到零
所以必须选择适当 P 值使 NP<1. 当然 P 值选得过小, 则媒体利用率又会大大降低
令牌环
令牌环上传输的小的数据 (帧) 叫为令牌, 谁有令牌谁就有传输权限. 如果环上的某个工作站收到令牌并且有信息发送,
它就改变令牌中的一位(该操作将令牌变成一个帧开始序列), 添加想传输的信息, 然后将整个信息发往环中的下一工作站
当这个信息帧在环上传输时, 网络中没有令牌, 这就意味着其它工作站想传输数据就必须等待. 因此令牌环网络中不会发生
传输冲突