# 计算机网络复习

## 第一章

* 互联网特点：联通性和共享，共享指资源共享
* 互联网组成
  * 边缘部分（资源子网）
    * A->B通信：A上的某进程与B上某进程进行通信
    * C/S 客户（请求方） 服务器（服务提供方）
    * p2p 对等链接
  * 核心部分（通信子网）
    * 路由器 -> 分组交换 -> 转发收到的分组
    * **分组交换 报文交换 电路交换**
    * 电路交换 -> 整个报文的比特流连续的从源点直达终点，好像在一个管道中传输
    * 报文交换 -> 整个报文先穿送到相邻节点，存储下来后查找转发表，转发到下个节点
    * 分组交换 -> 单个分组先穿送到相邻节点，存储下来后查找转发表，转发到下个节点
    * 连续大量 -> 电路交换， 提高突发利用率 -> 报文交换和分组交换， 分组交换时延小于报文
* 互联网分类
  * 广域网（WAN）
  * 城域网（MAN）
  * 局域网（LAN）
  * 个人局域网（PAN）
* 时延
  * 发送时延 = 数据帧长度(bit) / 发送速率(bit/s)
  * 传播时延 = 信道长度(m) / 电磁波在信道上的传输速率(m/s)
  * 总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
  * 时延带宽积 = 传播时延 \* 带宽 （以bit为单位的链路长度）
  * 有效数据率 = 数据长度 / (发送时间 + RTT)
  * 利用率 网络当前的时延\[D\] = 网络空闲的时延\[D0\] / (1 - 利用率\[U\])
* 协议三要素：**语法，语义，同步**
* 五层协议： 应用层 运输层 网络层 数据链路层 物理层
  * 运输层：
    * tcp 报文段
    * udp 用户数据报

## 第二章

* 数据系统三部分：源系统（源点 发送器） 传输系统 目的系统（接收器 终点）
* 信道：**单向通信（单工通信） 双向交替通信（半双工通信） 双向同时通信 （全双工通信）**
* 基带信号：来自源的信号
  * **基带FDM**（编码）变换后仍是基带信号）
    * 曼彻斯特编码 位周期中心向上跳变代表0 位周期中心的向下跳变代表1 也可以反过来定义
    * 查分曼彻斯特 每一位的中心处始终都有跳变 位开始边界有跳变代表0 没有跳变代表1
  * **带通调制**（载波）（频率上升并转换为模拟信号）
    * 调幅AM
    * 调频FM
    * 调相PM
* 信噪比 10 log10(S/N)(dB)
* 香农公式 C = W \* log2(1 + S / N)(bit/s)
  * W 为信道的带宽 S 为信道内信号的平均功率 N 信道内高斯噪声功率
* 引导型传输媒体
  * 双绞线
  * 同轴电缆
  * 光缆
    * 传输损耗小，中继距离长，对远距离传输特别经济
    * **抗雷电和电磁干扰性好**
    * 无串音干扰，**保密性好，不易被窃听**
    * 体积小重量轻
* 非引导型传输媒体
  * 卫星通信 时延高
  * 地面微波接力通信
* 频分复用 FDM 时分复用 TDM 统计时分复用 STDM  波分复用 WDM
  * 码分复用 CDM（计算题）
  * 码分多址 CDMA
  * 每个站点被指配唯一的码片序列，各个站点的码片序列正交（各位相乘相加得0）
  * 发1 发码片 发0 发反码
  * 接受站用码片和接受到的数据做内积，其他站的乘完得0 ，目标站得1就是1 ， -1 就是0
* ADSL 非对称数字用户线
* HFC 光纤同轴混合网
* ASDL速度快 ：靠先进的DMT编码，频分多载波并行传输、使得每秒传送一个码元就相当于每秒传送多个比特

## 第三章

* 网卡属于数据链路层
* 数据链路层协议数据单元：帧
* 封装成帧
  * 发送从帧首部开始
  * 帧的数据长度要小于MTU 1500B
  * 未知：`64-1518`
  * 帧首部和尾部用于帧定界和必要的控制信息
  * 传输开始符SOH 01
  * 传输结束符EOT 04
* 不管从键盘上输入什么字符都可以放在帧中传输过去：透明传输
  * 字节填充法
    * 如果数据中出现控制字符就在数据中出现的控制字符前加ESC转义字符 1B
    * 接收端会自动删除转义字符
    * 如果转义字符也出现在数据中就在出现的转义字符前加转义字符
* 差错检测
  * **CRC循环冗余校验码（计算题）**
  * 后边的R(x) 为FCS(帧检验序列)
  * 帧丢失 帧重复 帧失序
* PPP点对点协议
  * 链路控制协议LCP
  * 网络控制协议NCP
  * 字节填充
    * 7E -> 7D,5E
    * 7D -> 7D,5D
    * 03 -> 7D,23
  * 零比特填充
    * 只要遇见5个1 在后边填0
* 使用广播信道的数据链路层
  * 星型网
  * 环形网
  * 总线网
* CSMA/CD协议
  * 电磁波在一公里电缆上的传播时延是5μs
  * 对于10mb/s的以太网，以太网把争用期定为51.2μs
  * 最小帧间隔9.6μs 96比特时间
  * 试说明10BASE-T中的“10”、“BASE”和“T”所代表的意思。
    * 答：10BASE-T中的“10”表示信号在电缆上的传输速率为10MB/s，“BASE”表示电缆上的信号是基带信号，“T”代表双绞线星形网，但10BASE-T的通信距离稍短，每个站到集线器的距离不超过100m
* **路由器和交换机的区别**
  * 路由器可以为局域网自动分配IP和虚拟拨号，交换机只是用来分配网络数据的。
  * 路由器在网络层，根据IP地址寻址，交换机在中继层，根据“MAC”地址寻址。
  * 路由器可以把一个IP分给多个主机使用，对外IP相同。交换机可以把很多主机连接起来，对外的IP不同。
  * 交换机是做扩大局域网接入点的，可以让局域网连进更多的电脑。路由器是用来做网间连接，也就是用来连接不同网络的。
  
## 第四章

* 网络地址

类别 | 网络数 | 第一个网络号 | 最后网络号 | 最大主机数
:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
A | `126(2^7 -2)` | 1 | 126 | 1677214
B | `16383(2^14-1)` | 128.1 | 191.255 | 65534
C | `2097151(2^21-1)` | 192.0.1 | 223.255.255 | 254

* ip 数据报格式
  * 首部20字节
  * 版本*4
  * 首部长度*4 一个是4个字节 1111时是60字节
  * 区分服务*8
  * 总长度*16
  * 标识*16
  * 标志*3 MF=1 后边还有分片 DF=0允许分片
  * 片偏移*13（小题）
    * 以8位为单位
    * 假设最大分片1400字节
    * 第一个就是0/8 = 0
    * 第二个就是1400/8 = 175
    * 第三个就是2800/8 = 350
* ARP 解决同一个局域网上ip到硬件地址的映射，先发送ARP请求分组（本机硬件地址，ip以及待查找的ip），目标返回ARP响应分组（目标硬件地址以及ip），保存在ARP高速缓存中
* 子网掩码（子网划分出大题）
  * 假设是255.255.192.0转换成二进制，是18个1和后边的0
  * 所有ip进来转二进制，然后保留前18位，剩下是0 转化为十进制就是网络地址
* 使用子网时的分组转发
  * 路由表包含：目的网络地址，子网掩码，下一跳地址
  * 主机A发送到 ip 为 ...的主机上
    * 主机A将ip与本子网掩码逐位相与，看网络地址是否相同，相同就直接交付，不相同就转发到当前子网的默认路由器上
    * 路由器拿到ip与路由表中的第一行的子网掩码逐位相与，看看是不是等于目标网络地址，相等就直接交付
* 网际控制报文协议ICMP
  * 差错报告报文
    * 类型的值
      * 3：终点不可达
      * 11 ：时间超过
        * 路由收到ttl为0的报文，丢弃该报文并向源站发；终点在预定时间内没收到完整的报文，丢弃并向源站发
      * 12：参数问题
      * 5：改变路由
  * ICMP询问报文
    * 8或0：回送请求或回答
    * 13或14：时间戳请求或回答 
* 互联网的路由选择协议
  * 自治系统 AS
  * 内部网关协议 IGP
    * **RIP 路由信息协议**
      * 最长距离是16也就是15个路由器
      * 从下一个路由器A获取的报文
      * 先把所有的下一跳地址换成A的地址，
      * 把所有的距离加1（加上本路由器到A路由器的距离
      * 对比所有的目的网络，如果相同，看下一跳路由器是否相同，相同更新距离，不相同就比较距离，距离小就把下一跳地址和距离替换，距离大就啥都不干
      * 报文（最大长度就是4 + 20 * 5）
        * 首部 4个字节 命令和版本
        * 路由（最多25个路由，多了发新报文）
          * 地址簇标识符
          * 路由标记
          * 网络地址
          * 子网掩码
          * 下一跳路由器地址
          * 距离（1-16）
  * 内部网关协议 OSPF 开放最短路径优先
    * 所有的路由器知道全网的拓扑结构
    * 只有链路发生变化的时候用洪泛法
    * 向本自治系统中所有路由器发送链路信息（自己路由器周围有哪个路由器）
    * 更新过程收敛快
    * 将一个自治系统划分为区域
    * 主干区域0.0.0.0
    * 不使用UDP，直接使用ip数据报，协议字段值89
    * **分组**
      * 问候分组 用来发现和维持临站的可达性
      * 数据库描述分组 向临站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
      * 链路状态请求分组 向对方请求发送某些链路状态项目的详细信息
      * 链路状态更新分组 用洪泛法对全网更新呢链路状态
      * 链路状态确认分组 对链路更新分组的确认
  * 外部网关协议 EGP
    * BGP
* **ipv6 128位**
* **ipv6 压缩**
  * 将a:0000:0000:b 压缩为 a::b 即去掉零以及中间的冒号
  * 一个地址只能用一次
  * :0000: 可以压缩为:0:
* ip多播
  * IGMP 网际组管理协议
  * **怎么把ip多播地址变成网卡多播地址**
    * 开头都是01-00-5E 最低23位来自D类ip地址，倒数第24位为0
  
## 第五章
* 复用：发送方不同的应用进程都可以使用同一个运输层传输协议
* 分用：接收方的运输层在除去报文的首部后能够把这些数据正确交付目的应用进程
* TCP 用户数据报协议
  * 报文段
  * 面向连接的服务
  * 连接点对点
  * 全双工通信
  * 面向字节流
  * 套接字： ip:端口 192.168.1.132:8080
  * 停止等待协议
    * 超时重传
    * B收到了A之前发的M1，丢弃重复分组，向A发送确认
  * 连续ARQ协议
    * 窗口
    * 一起发五个
    * 收到第一个确认
    * 发第六个
  * 首部最小20字节
* UDP 传输控制协议
  * 用户数据报
  * 不需要建立连接
  * 尽最大努力交付
  * 面向报文
  * 首部
    * 源ip 两行
    * 目的ip 两行
    * 0 半行
    * 17 半行
    * udp 长度 （字节） 一行
    * 源端口 一行
    * 目的端口 一行
    * 长度 一行
    * 检验和 一行 全为0
    * 数据 补齐4行
    * 计算求和
    * 求反码
* TCP+UDP
  * 端口
    * 16位端口号 65535个端口
    * FTP 21
    * TELNET 23
    * SMTP 25
    * DNS 53
    * TFTP 69
    * HTTP 80
    * SNMP 161
    * HTTPS 443
    * **熟知端口号 0 - 1023**
    * 登记端口号 1024 - 49151
    * 客户端口号 19152 - 65525
* TCP拥塞控制
  * 慢开始
  * 拥塞避免
  * 快重传
  * 快恢复

## 第六章
* 域名系统 DNS



* UDP端口520
* 209页计算题
* 232 4种方法