计算机网络

第一章 引言

基本概念

  • 计算机网络: 一组通过单一技术相互链接的自主计算机集合

网络分类

  • 依据传输模式
    • 单播: 只有一个发送方与一个接收方, 也叫点到点链路
    • 广播: 任何人发出的数据包能被任何机器收到, 但是根据数据包首部的地址字段判断是否应答
    • 多播/组播: 将数据包发给一组机器
  • 依据尺度
    • 局域网: 局部地区的私有网络
      • 无线: 每台计算机有无线解调器与天线来与ap, 基站, 无线路由器通讯, 这些装置负责无线计算机之间与计算机和互联网的中级
      • 有线: 以太网 IEEE 802.3 最常见, 通过点到点拓扑连接到交换机, 交换机判断数据包地址给相应的计算机

        服务接口协议

  • 服务: 由原语说明, 用户可通过原语访问服务
    • 面向连接
      • 电话系统: 面向连接, 先建立连接再传输信息
      • 邮局系统: 无连接, 报文由中间节点路由, 前后独立
    • 可靠服务
      • 可靠: 从不丢失数据, 一般会向发送方确认接收
      • 不可靠: 不反馈, 不保证不丢失
      • 面向连接的服务不一定可靠, 字节流, 数字化语音
  • 接口: 定义上层访问下层的参数以及结果
  • 协议: 双方之间如何进行通信的约定
  • 服务与协议的关系

参考模型

  • OSI: 多一个物理, 会话, 表示层
  • TCP/IP: 数据链路层, 网络层, 传输层, 应用层
  • 比较
    • 相同: 建立在协议栈, 协议独立, 各层功能类似
    • 区别: osi 区分了协议服务接口, 通用, 在协议之前产生, 网络层支持面向连接与无连接, 传输层只支持面向连接tcp/ip 没有区分, 只适用于 tcp/ip, 现有协议, 网络层只支持无连接, 传输层两种都支持

第二章 物理层

  • 数据通信
    • 概念
      • 带宽: 传输中不会明显减弱频率的宽度, 取决于介质
      • 信噪比: 信号功率 S 与噪声功率 N 比值
      • 分贝: 用对数表示信噪比 $10\lg(\frac{S}{N})$
    • 计算信道最大传输速率 (比特/秒)
      • 香浓定理: 带宽为 B hz, 信噪比为 S/N 的有噪声信道的最大数据传输率 $B\log_2{1+\frac{S}{N}}$
      • 尼奎斯特: 有限带宽的无噪声信道的最大数据传输率, V 是离散级别 $2B\log_2{V}$
  • 传输介质
    • 双绞线: 噪音不干扰电压差
      • 全双工, 半双工, 单工
    • 同轴电缆: 高带宽, 高抗噪
  • 公共电话交换网
    • 数字调制: 模拟信号表示比特, 比特与信号之间转换的过程
    • 基带传输: 传输占用从零到最大频率, 有线
    • 通带传输: 信号占据以载波信号频率为中心的一段频率, 无线和光纤
    • 调制解调器: 数字比特流和模拟信号流之间转换的设备
    • ADSL: 非对称数字用户线, 上下行带宽不同
    • 多路复用
      • 时分, 频分, 波分

第三章 数据链路层

  • 提供给网络层的服务: 提供相邻两个节点间可靠的传输
  • 数据帧: 从网络层获取的数据包封装为帧
    • 格式: 帧头+数据包+帧尾
      • ack, kind, seq, data, checksum
      • 边界问题: 比特填充的标志比特法
      • 透明传输: 使用转义
    • 差错控制: 保证所有帧按顺序传到目标机器的网络层
    • 流量控制: 基于反馈
  • ⚡差错检测
    • 纠错码: 推断出发送的数据, 适用于错误发生频繁的信道
      • 海明码
    • 检错码: 推断是否发生错误
      • CRC
  • 数据链路协议
    • 滑动窗口协议: 双方维持一个
      • 发送窗口: 发送方维持一组序号, 对应允许他发送的帧
      • 接收窗口: 接收方维持一个窗口对应一组允许它接受的帧
      • 确认
        • 捎带确认
        • 期望确认
        • 累计确认
    • 回退N
    • 选择重传, 否定确认

⛩😇🌸💪✨✨✨

第四章 介质访问控制子层 mac 层

  • 有线局域网
    • csma/cd: 载波检测多路访问, 带冲突检测, 限定帧的长度
  • 无限局域网
  • 交换机: 将多个lan口连接, 根据 mac 地址确认转发, 使用泛洪算法填充转发表
    • 中继器, 集线器, 交换机, 路由器, 网关

第五章 网络层

  • 路由算法
    • 最优化原则: 汇集树
    • 泛洪算法
    • 距离矢量路由 DV, RIP
    • 链路状态, OSPF
  • 拥塞控制: 网络中存在过多数据包导致数据包延迟和丢失, 降低了传输性能, 此时让路由器丢弃过多的数据包
  • IPV4
    • IP 头: 至少20字节
      • 版本
      • ip头长
      • 服务类型
      • 总长度
      • ttl
      • 协议
      • 头检验和
      • 源地址和目标地址
      • 可选内容
    • 分类寻址: A,B,C,D,E 类地址, 每类网络数量固定, 主机数量相同
    • 子网与前缀
      • 子网划分: 通过子网掩码将网络划分, 外部看来仍是单个网络
      • 前缀: 网络号
    • 无类域间路由
    • NAT 网络地址转换
    • 隧道技术
  • Internet 控制协议
    • ICMP: ping, 控制消息协议
    • ARP: 地址解析协议

第六章 传输层

  • 建立连接: CR,ACK,DATA
  • 断开连接
  • UDP: 只有把八字节头部
  • TCP
    • TCP数据段的头
      • 源端口, 目标端口
      • 序列号, seq
      • 确认号, ack
      • tcp 头长, 确认字段是否有效, 建立连接 SYN, 终止 FIN, 窗口大小
      • 校验和
    • 连接建立与断开
      • 建立: 三次握手
      • 断开: 四次挥手
    • 拥塞控制与慢启动算法: 成倍增加拥塞窗口, 到达阈值后线性增加, 超时发生后, 将阈值降低一半, 拥塞窗口回归初始值, 拥塞窗口一直增长, 直至发生超时或到达接收窗口

第七章 应用层

  • DNS: 将域名映射为 ip

传输层——数据段(Segment)
网络层——分组(数据包)(Packet)
数据链路层——数据帧(Frame)
物理层——比特 Bit

名词解释

  • 广播: 将数据发送给所有目标机器
  • 协议: 双方如何进行通信的一种约定
  • 汇集树: 从所有源到指定目标的最短路径的集合组成的以目标节点为根的树
  • 带宽: 最大传输时频率不会明显减弱的频带宽度
  • 多路复用: 多个信号可以共享同一传输路线
  • TTL: 限制数据生存周期的计数器, 单位为跳数
  • ADSL: 非对称数字用户线路
  • 隧道技术: 在两个不同网络传递数据
  • ICMP: Internet 控制消息协议

计算题

  • CRC: 循环冗余校验码
    • 生成多项式, 10011, 对帧附上长度减一的0, 帧+0000
    • 加0后的帧对生成多项式模2除, 得商和余数
    • 加0后的帧与余数合并, 在接收方被生成多项式整除, 则传递中无误
    • 模2除法
      • 如果首位为0商0, 否则1
      • 从第二位开始进行异或, 若未到最后一位余数加被除数此位置上的值, 继续直到除完
  • Nquist 定理
    • 带宽是 B Hz, 离散级别为 V, 可求得最大数据发送率为 $2Blog_2{V}$
  • 滑动窗口协议 GBN
    • 从出错处开始发
  • 路由计算
    • 距离矢量路由
  • ip 地址, 140.120.84.24/20
    • 最小最大主机地址: 将原地址的后12个分别换成0和1, 得到主机地址和最大地址, 再将主机地址加一就得到了最小主机地址
    • 地址掩码: 255.255.240.0, 有20个1和12个0
    • 有多少主机地址

简答题

  • 滑动窗口协议
    • 1位: 发送与接收窗口大小都是1, 发送一个数据包后必须要等待其ACK才能继续发, 适用于网络差, 带宽较低的情况
    • 发送窗口: 已经发送, 没有收到确认的帧的集合
    • 接收窗口: 可以接受的帧的集合
    • 滑动窗口如何进行流量控制: 当发送窗口满了就停止发送, 接收方可以通过减少确认来控制发送方的速率
  • 网桥(交换机)工作原理
    • 从某个端口收到报文, 解析源mac和目标mac
    • 根据源mac学习形成mac表
    • 根据目标mac原封不动转发到适当的出端口, 保证目标设备能收到这个报文
  • dns 原理: 将域名或电子邮箱发送给dns服务器, 服务器返回IP地址, 这个过程使用的都是udp
  • red, 慢启动和为什么这两个可以有效解决拥塞问题
    • red, 网络层, 当链路平均队列长度超过阈值, 该链路认为堵塞, 路由器随机丢弃小部分数据包
    • 慢启动, TCP, 一开始成倍增加拥塞窗口的大小, 到达阈值后线性增加, 遇见超时情况后阈值除2, 拥塞窗口重置, 拥塞窗口一直增长直到遇见超时或达到接收方允许的窗口大小
    • 如何合作: 当路由器缓冲区达到阈值, 路由器执行red, 丢弃数据包, 发送方超时然后慢启动, 降低了发送方速率
  • 漏桶令牌桶工作原理
    • 流量整形: 调节进入网络的数据的平均速率和突发性所采取的技术
    • 漏桶: 无论注入桶中的速率如何, 出去的速率不变
    • 令牌桶: 匀速产生令牌, 桶满了将不再增加, 出去数据需要消耗令牌, 令牌不够数据将会缓存或者丢弃, 能处理突发情况
  • 链路状态路由
    • 工作原理: 路由器通过泛洪传自身所连接的设备的地址和延迟最终构成一整张拓扑网, 然后进行最短路径生成找到路由方向
    • 如何保证转发代价低, 可靠性高的信息扩散: 接受方发送反馈信息保证可靠, 引入计时器防止丢失某一帧导致发送方持续等待, 通过序号保证每一帧顺序和防止重复接受

分析题

  • 介质控制访问: 解决介质中同一频率传输会互相影响, 无法获得有效信号
    • 以太网的协议是 CSMA/CD, 工作原理是发送信号前监听信道, 如果有信号则不发送, 发送时也监听, 如果线路上的信号与自己发送的不一致, 说明有冲突, 停止, 为了确保接收信号的机器知道有冲突, 需要保证信号发送的长度足够信号在两边跑一个来回, 也就是64字节的长度
    • 无线网的协议 CSMA/CA
  • 路由
    • ip 包与路由表匹配如果有多个匹配结果怎么办: 使用子网掩码长度最长的那个
  • arp
    • 目的: 根据ip, 解析mac地址
    • 工作原理: 通过arp广播, 获得相应ip地址的机器回应的mac, 然后传给交换机, 交换机根据mac传给相应的机器

综合题

  • TCP/IP
    • 第一行是 IP 报头, 第二行是 TCP 头, 每个 ip 头第四个 4 字节是源ip地址, 第五个是目标
    • 由 SYN 和 ACK 是否为0来判断TCP连接建立的过程, SYN,ACK是TCP头第四个4字节的11bit和14bit
    • 数据链路层以太网帧长度为46到1500, 所以不足需要填充, 超过需要分开, 数据报总长度是ip头第一个4字节的第二三个,最大长度 $2^{16}$ 字节
    • TTL可以判断经过的路由器数量, ip头第三个4字节的第一个字节
  • TCP, 填序列号和确认号, 释放后双方能否相互传输数据
文章作者:
文章链接: https://luckyray-fan.github.io/2020/01/03/computer-network/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 luckyray