第一周
- 计算机网络就是互连的、自治的计算机集合
- 自治:无主从关系
- 互连:互联互通
全球最大的互联网络:ISP,Internet Service Provider
网络协议,简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定;协议规定了通信实体之间所交换的消息的格式、意义、顺序以及针对所收到信息或发生的事件所采取的“动作”
- 协议的三要素:
- 语法
- 语义
- 时序
- 网络边缘
- 主机
- 网络应用
- 接入网络,物理介质
- 有线或无线通信链路
- 网络核心
- 互联的路由器
- 网络之网络
- 电路交换的三个阶段:
- 建立连接(呼叫/电路建立)
- 通信
- 释放连接(拆除电路)
- 特点:独占资源
- 多路复用,简称复用,是通信技术中的基本概念
数据交换两种类型:
报文交换
和分组交换
分组:报文分析拆出来的一系列相对较小的数据包,分组交换需要报文的拆分和重组,带有头部信息
- 报文交换与分组交换均采用存储-转发交换方式
- 报文交换以完整报文进行“存储-转发”
- 分组交换以较小的分组进行“存储-转发”
- 分组交换的报文传输延迟:
T = M/R + nL/R
- 报文总长:M bits
- 链路带宽:R bps
- 分组长度:L bits
- 路由器数:n (跳步数为h = n + 1)
- 分组交换vs电路交换
- 分组交换允许更多用户同时使用网络
- 适用于突发数据传输网络:资源充分共享,简单、无需呼叫建立
- 但是分组交换可能产生拥塞
第二周
- 速率:即数据率或称数据传输速率或比特率
- 单位时间传输信息的量
- 计算机网络中最重要的一个性能指标
- 常用单位:b/s(bps)
带宽:数字信道所能传达的“最高数据率”
- 四种分组延迟:
- 结点处理延迟dproc
- 差错检测
- 确定输出链路
- 通常小于msec
- 排队延迟dqueue
- 等待输出链路可用
- 取决于路由器拥塞程度
- 传输延迟dtrans
- 传播延迟dprop
- 结点处理延迟dproc
- 流量强度:La/R,其中R是链路带宽,L是分组长度,a是平均分组到达速率
- 若趋近于0:平均排队延迟很小
- 若趋近于1:平均排队延迟很大
- 若大于1:超出服务能力,平均排队延迟无限大
时延带宽积 = 传播延迟 X 带宽
- 吞吐量:表示在发送端与接收端之间传送数据速率
- 即时吞吐量:给定时刻的速率
- 平均吞吐量:一段时间的平均速率
瓶颈链路:端到端路径上,限制端到端吞吐量的链路
计算机网络体系结构是计算机网络的各层及其协议的集合
OS1参考模型
- 物理层:
- 接口特性:机械特性、电气特性、功能特性、规程特性
- 传输模式:单工、半双工、全双工
- 数据链路层:
- 负责结点-结点的数据传输,流量控制、差错控制、访问(接入)控制
- 组帧
- 物理寻址:在帧头部中增加发送端和接收端的物理地址标识数据帧的发送端和接收端
- 网络层:
- 负责源主机到目的主机数据分组交付
- 逻辑寻址:全局唯一逻辑地址,确保数据分组被送达目的主机,如IP地址
- 路由和分组转发
- 传输层:
- 负责进程间完整报文传输
- SAP寻址,如端口号
- 流量控制、连接控制、差错控制
- 会话层:
- 对话控制
- 同步
最薄
的一层
- 表示层:
- 处理两个系统间交换信息的语法和语义问题
- 数据表示转化,加密/解密,压缩/解压缩
- 应用层:
- 支持用户使用网络服务
TCP/IP模型
第三周
- 网络应用体系结构
- 客户机/服务器
- P2P
- 混合结构
- 网络应用的服务需求
- 可靠性
- 带宽
- 时延
- Internet传输层服务模型
- TCP
- UDP
- 特定网络应用及协议
- HTTP
- SMTP,POP,IMAP
- DNS
- P2P应用
- Socket编程
- TCP
- UDP
- TCP
- 面向连接
- 可靠的传输
- 流量控制:关注的是接收端的数据接收和缓存能力
- 拥塞控制:关注的是网络传输能力
- 不提供时间/延迟保障
- 不提供最小带宽保障
- UDP服务
- 无连接
- 不可靠
- Web
- URL格式 -> Scheme://host:port/path
- C/S结构
- HTTP协议,端口80
- HTTP 1.0:非持久性连接,每个TCP对象最多允许传输一个对象,方法有GET,POST,HEAD
- HTTP 1.1:持久性连接,每个TCP连接允许传输多个对象,方法有GET,POST,HEAD,PUT,DELETE
- TCP传输服务
- 无状态:服务器不维护任何有关客户端过去所发请求的信息
- RTT:从客户端发送一个很小的数据包到服务器并返回所经历的时间
- 非持久性连接:每个对象都需要2个RTT
- 持久性连接:对于无流水,每个被引用的对象耗时1个RTT;对于流水机制,所有对象只需耗时1个RTT。需要注意连接需要一个RTT
- HTTP协议两类信息:请求消息(ASCII),响应消息。这两种类型的消息 请求方法URI协议/版本(协议状态版本代码描述)、请求(响应)头和请求(响应)正文
Cookies技术可以提供:身份鉴别,购物车,推荐服务和用户会话状态信息维护
- Email应用的构成组件
- 邮件客户端
- 读、写Email消息
- 与服务器交互,收、发Email消息
- 邮件服务器
- 邮箱:存储发给该用户的Email
- 消息队列:存储等待发送的Email
- SMTP协议,端口25
- 邮件客户端
- 传输过程的三个阶段:
- 握手
- 消息的传输
- 关闭
- 命令/响应交互模式
- 命令:ASCII文本
- 响应:状态代码和语句
Email消息只能包含7位ASCII码
- Email消息
- 头部行:To,From,Subject
- 消息体
- 若MIME协议进行多媒体拓展,则头部行加入MIME-Version,Content-Transfer-Encoding,Content-Type
- SMTP仅仅是邮件服务器之间的协议,还需要邮件访问协议:从服务器获取邮件
- 域名解析系统DNS
- 域名向IP地址的解释
- 主机别名
- 邮件服务器别名
- 负载均衡:Web服务器
- 步骤
- 本地域名服务器
- 根域名服务器(全球13个)
- 顶级域名服务器
- 权威域名服务器
- DNS记录(RR, resource records),格式为(name, value, type, ttl)
- Type = A
- Name:主机域名
- Value:IP地址
- Type = NS
- Name:域
- Value:该域权威域名解析服务器的主机域名
- Type = CNAME
- Name:某一真实域名的别名
- 真实域名
- Type = MX
- Value是与name相对应的邮件服务器
- Type = A
第四周
- 从一个服务器向N个结点分发一个文件需要多长时间,us是服务器上传带宽,ui是节点i的上传带宽,di节点i的下载带宽
- C/S所花时间:max{ NF/us, F/min(di) }
- P2P所花时间:max { F/us, F/min(di), NF/(us + ∑ui) }
- BitTorrent协议
- tracker:跟踪参与torrent的节点
- torrent:交换同一个文件的文件块的节点组
- 文件划分为256KB的chunk
- 当节点加入torrent时
- 刚开始没有chunk,但是会逐渐累积
- 向tracker注册以获取节点清单,与某些节点建立连接
- 获取chunk采取策略:稀缺优先
- 发送chunk:tit-for-tat
- Alice向4个邻居发送chunk:正在向Alice发送数据并且速率最快的4个邻居
- 每10秒重新评估top4
- 每30秒随机选择一个其他节点,向其发送chunk
上传速率高,就能够找到更好的交易伙伴,从而获得更快的下载速度
- P2P索引
- 集中式索引
- 洪泛式查询
- 层次式覆盖网络
- 服务器端套接字绑定的IP地址是:
INADDR_ANY
第五、六周
- TCP概述
- 全双工:同一连接中能够传输双向数据流
- 面向连接
- TCP拥塞控制和流量控制机制设置窗口尺寸
- TCP传输中
- 序列号:指的是segment中第一个字节的编号,而不是segment的编号。建立TCP连接,双方随机选择序列号
- ACKs:希望收到的下一个字节的序列号,并采取累积确认机制
- 拥塞控制的方法
- 端到端拥塞控制
- 网络层不需要显示的提供支持
- 端系统通过观察loss,delay等网络行为判断是否发生拥塞
- TCP采取这种方法
- 网络辅助的拥塞控制
- 路由器向发送方显式地反馈网络拥塞信息
- 简单的拥塞指示
- 指示发送方应该采取何种速率
- 端到端拥塞控制
Sender限制发送速率:LastByteSent-LastByteAcked <= CongWin
rate = CongWin/RTT bps
- 如何合理地调整发送速率
- 加性增-乘性减:AIMD
- 慢启动:SS
第七周
虚电路网络提供网络层连接服务,而数据报网络提供网络层无连接服务
- 虚电路:一条从源主机到目的主机,类似于电路的路径(逻辑连接)
- 分组交换
- 每个分组的传输利用链路的全部带宽
- 源到目的路径经过的网络层设备共同完成虚电路功能
- 通信过程:呼叫建立 -> 数据传输 -> 拆除呼叫
- 每个分组携带虚电路标识(VCID),而不是目的主机地址
- 每条虚电路包括
- 从源主机到目的主机的一条路径
- 虚电路号(VCID),沿路每段链路一个编号
- 沿路每个网络层设备(如路由器),利用转发表记录经过的每条虚电路
- 虚电路信令协议
- 用于VC的建立、维护与拆除
- 路径选择
- 应用于虚电路网络
- 如ATM、帧中继网络等
- 目前的Internet不采用
- 用于VC的建立、维护与拆除
- 数据报网络
- 网络层无连接
- 每个分组携带目的地址
- 路由器根据分组的目的地址转发分组
- 基于路由协议/算法构建转发表
- 检索转发表
- 每个分组独立选路
- 最大传输单元:MTU,链路层数据帧可封装数据的上限
- 标识字段占16位:标识一个IP分组
- IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组的标识
标志位占3位,保留位+DF(Don't Fragment)+MF(More Fragment),所以DF=1表示禁止分片,MF=1表示非最后一片
- 片偏移字段占13位:一个IP分组分片封装原IP分组数据的相对偏移量
- 以8字节为单位
- IP分片过程
- 假设原IP总长度为L,待转发链路的MTU为M
- 若L>M,且DF=0,则可以分片
- 分片时每个分片的标识复制原IP分组的标识
- 通常分片时,除最后一个分片,其他分片均分为MTU允许的最大分片
- 一个最大分片可封装的数据是8的倍数,因此,一个最大分片可封装的数据为:d = ⌊(M-20)/8⌋x8
- 需要的总片数为:n = ⌈(L-20)/d⌉
- 每片的片偏移字段取值为:Fi = d/8x(i-1)
- 每片的总长度字段为:当i在[i,n)间,Li = d+20,当i为n时,Li = L-(n-1)d
- 有类编址:
- A类地址:占50%,NetID(8位,最高位为0),HostID(24位),0.0.0.0-127.255.255.255
- B类地址:占25%,NetID(16位,最高位为10),HostID(16位),128.0.0.0-191.255.255.255
- C类地址:占12.5%,NetID(24位,最高位为110),HostID(8位),192.0.0.0-223.255.255.255
- D类地址:占6.25%,全为HostID,最高位1110,224.0.0.0-239.255.255.255
- E类地址:占6.25%,全为HostID,最高位1111,240.0.0.0-255.255.255.255
无类域间路由(CIDR):a.b.c.d/x,其中x为NetID+SubID的长度
- 动态主机配置协议(DHCP)
- 主机广播"DHCP discover"(发现报文)
- DHCP服务器利用"DHCP offer"(提供报文)进行响应
- 主机请求IP地址:"DHCP request"(请求报文)
- DHCP服务器分配IP地址:"DHCP ack"(确认报文)
除了获取了IP地址外,主机还得到了子网掩码、默认网关、DNS服务器地址等
- 网络地址转换(NAT)实现:
- 替换:利用(NAT IP地址,新端口号)替换每个外出IP数据报的(源IP地址,源端口号)
- 记录:将每队(NAT IP新地址,新端口号)与(源IP地址,源端口号)的替换信息存储到NAT转换表中
- 替换:根据NAT转换表,利用(源IP地址,源端口号)替换每一个进入内网IP数据报的(目的IP地址,目的端口号)
第八周
- 互联网控制报文协议:ICMP
- 差错报告
- 目的不可达
- 源抑制
- 超时/超期
- 参数问题
- 重定向
- 网络探询
- 回声(Echp)请求与应答报文(Reply)
- 时间戳请求和应答报文
- 差错报告
- ICMP的停止准则:
- UDP数据报最终到达目的主机
- 目的主机返回“目的端口不可达”(type=3, code=3)
- 源主机停止
- IPv6数据报格式
- 固定长度的40字节基本首部
- 不允许分片
- IPv6地址表示形式
- 一般形式:1080:0:FF:0:8:800:200C:417A
- 压缩形式:FF01:0:0:0:0:0:0:43,压缩为FF01::43
- IPv4-嵌入形式:0:0:0:0:0:FFFF:13:1:68:3或者::FFFF:13:1:68:3
- IPv6基本地址类型
- 单播:一对一通信
- 多播:一对多通信
- 任意播:一对一组之一
隧道:IPv6数据报作为IPv4数据报的载荷进行封装,穿越IPv4网络
- 路由算法分类
- 静态路由 vs 动态路由
- 静态路由:手工配置,路由更新慢,优先级高
- 动态路由:更新快,及时响应链路费用或网络拓扑变化
- 全局信息 vs 分散信息
- 全局信息:所有路由器掌握完整的网络拓扑和链路费用信息,如链路状态(LS)路由算法
- 分散信息:路由器只掌握物理相连的邻居以及链路费用,如距离向量(DV)路由算法
- 静态路由 vs 动态路由
LS路由算法的Dijkstra算法的算法时间复杂度为O(n2),存在震荡的可能
- DV路由算法的无穷计数问题
- 毒性逆转:如果一个结点到达某目的的最小费用路径是通过某个邻居,则通告给该邻居结点到达该目的的距离为无穷大,不能彻底消除
- 定义最大度量:定义一个最大的有效费用值,如15跳步,则16跳步表示无穷大
- 层次路由
- 聚合路由器为一个区域:自治系统AS
- 同一AS内的路由器运行相同的路由协议
- 自治系统内部路由协议
- 不同自治系统内的路由器可以运行不同的AS内部路由协议
- 网关路由器
- 位于AS“边缘”
- 通过链路连接其他AS的网关路由器
热土豆路由:选择最小费用路径的费用最小的网关
- 最常见的AS内部路由协议:
- 路由信息协议:RIP
- 采用距离向量路由算法
- 距离度量:max = 15 hops
- 每隔30秒,邻居之间交换一次DV,成为通告
- 每次通告:最多25个目的子网(IP地址形式)
- 如果180秒没有收到通告->邻居/链路失效
- 采用距离向量路由算法
- 开放最短路径优先:OSPF
- 采用链路状态路由算法
- LS分组扩散
- 每个路由器构造完整的网络拓扑图
- 利用Dijkstra算法计算路由
- 在整个AS范围内泛洪
- OSPF报文直接封装到IP数据报中
- 分层的OSPF
- 主干路由器BR:在主干内运行OSPF路由算法
- AS边界路由器:连接其他AS
- 路由信息协议:RIP
- AS间路由协议:BGP
- eBGP从邻居获取子网可达性信息
- iBGP:向所有AS内部路由器传播子网可达性信息
- 基于可达性信息与策略,确定到达其他网络的好路径
- BGP报文
- OPEN:与peer建立TCP连接,并认证发送方
- UPDATE:通告新路径
- KEEPALIVE:保活连接
- NOTIFICATION:报告错误或者关闭连接
第九周
组帧:封装数据报构成数据帧,加首部和尾部
- 全双工和半双工通信控制
- 全双工:链路两端结点同时双向传输
- 半双工:链路两端结点交替双向传输
- 差错检测:差错编码,D->DR,其中R为差错检测和纠正比特(冗余比特)
- 差错编码的检错能力
- 差错编码可分为检错码和纠错码
- L - 1 = r + s
- 差错编码的检错能力
- 循环冗余校验码
- 数据比特为D,选择r+1位的比特模式G,选择r位的CRC比特,R,满足
被G整除 - 可以检测长度小于r+1位的差错
- 应用于以太网,802.11 Wifi
- MAC协议分类
- 信道划分MAC协议
- 多路复用技术
- TDMA、FDMA、CDMA、WDWA
- 随机访问MAC协议
- 信道不划分,允许冲突
- 采用冲突“恢复”机制
- 轮转MAC协议
- 结点轮流使用信道
- 轮询(polling):主结点轮流邀请从属结点发送数据
- 令牌传递(token passing):控制令牌依次从一个结点传递到下一个结点
- 信道划分MAC协议
- 典型的随机访问MAC协议
- 时隙ALOHA
- 如果冲突:该结点在下一个时隙以概率p重传该帧,直至成功,最大效率为1/e=0.37
- ALOHA
- 1/(2e)=0.18
- CSMA
- 发送帧之前进行信道监听
- CSMA/CD
- 短时间内检测到冲突,边发边听,不发不听
- Lmin/R = RTTmax
- 时隙ALOHA
第十周
- ARP协议:48位MAC地址,固化在网卡的ROM中,如1A-2B-3D-56-A3-4D
- ARP表:
- 同一个局域网内:先广播查询分组,目的MAC地址为FF-FF-FF-FF-FF-FF
- ARP表:
- 以太网:无连接、不可靠服务,采用二进制指数退避算法的CSMA/CD
- 发生冲突后,若为第m次连续冲突,n = Min(m,10),从0到2n-1随机中选择一个k,等待k512比特的传输延迟时间
- 交换机:存储-转发以太网帧
- 若目的MAC位置未知,则泛洪
- 点对点数据链路控制:一个发送端,一个接收端,一条链路
- PPP