前言
《计算机网络》自顶向下 学习笔记 0429 完成 0512
机械转码,发现掌握的计网知识点琐碎,故决定系统学习其原理、实现,选择《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》一书。计划之后 MIT 6.824 LAB 进阶。感触最深是从协议原理到实现,发现算法与数据结构的应用,如网络层控制平面 LS 算法用到图论 dijkstra 算法,子网前缀匹配聚集,质数与 RSA 等。收获颇丰,笔记记录,方便回顾。
- 计算机网络与互联网
- 应用层
- 传输层
- 网络层:数据平面
- 网络层:控制平面
- 数据链路层与局域网
- 网络安全
- 无线和移动网络
- 多媒体网络
- 网络管理
第一章 概论
目标:
了解基本术语和概念
掌握网络的基本原理
为后续章节更深入的学习打下基础
方法——以 Internet 为例子
提纲:
1.1 什么是Internet?什么是协议?
1.2 网络边缘
1.3 网络核心
通信网络:
线路交换单连接(FDM TDM)
分组交换存储-转发(虚电路 数据报)
1.4 接入网和物理媒体
1.5 Internet 结构和 ISP
1.6 分组延时、丢失和吞吐量
分组延时:处理延时、队列延时、传输延时、传播延时
1.7 协议层次及服务模型
报文 message
报文段 segment 数据报 datagram——区分进程(TCP/UDP)、加强服务(TCP 可靠)
分组 packet 数据报 datagram(无连接)——路由与转发
帧 frame
位 bit
1.8 历史
第二章 应用层
目标:
网络应用的原理:网络应用协议的概念和实现方面
传输层的服务模型
客户-服务器模式
对等模式(peer-to-peer)
内容分发网络
网络应用的实例:互联网流行的应用层协议
HTTP
FTP
SMTP/POP3/IMAP
DNS
编程:网络应用程序
Socket API
提纲:
2.1应用层协议原理
2.2 Web and HTTP
2.3 FTP*
2.4 Email
SMTP
POP3
IMAP
2.5 DNS
2.6 P2P 应用
2.7 CDN
2.8 TCP 套接字(Socket)编程
2.9 UDP 套接字编程
第三章 传输层
目标:
理解传输层的工作原理
多路复用/复分解
可靠数据传输
流量控制
拥塞控制
学习 Internet 传输层协议
UDP:无连接传输
TCP:面向连接的可靠传输
TCP 的拥塞控制
提纲:
3.1 概述和传输层服务
有些服务是可以加强的:不可靠 --> 可靠;安全
但有些服务是不可以被加强的:带宽、延迟
3.2 多路复用与解复用
3.3 无连接传输:UDP
3.4 可靠数据传输的原理
停止等待协议:RDT 1.0 RDT 2.0 2.1 2.2 RDT 3.0
流水线协议:GBN SR
SW = 1 RW = 1 S-W
SW > 1 RW = 1 GBN 出错率低时适用,所需资源少
SW > 1 RW > 1 SR 链路容量大(延迟大、带宽大)时适用,重传代价小
3.5 面向连接的传输:TCP
段结构
可靠数据传输
可理解为 GBN 和 SR 的结合
TCP 快速重传:发送方收到同一数据的 3 个冗余 ACK,但定时器未到时间
流量控制
本质:反馈
连接管理
本质:知道要通信、准备好资源、控制位置位(序号、初始化 rcvbuff)
2 次握手失败场景:半连接(超时重传,只在服务端维护连接)、老的数据被当作新数据接收
3 次握手:变化的初始序号 + 双方确认对方的序号
4 次挥手:对称释放,并不完美
3.6 拥塞控制原理
拥塞的表现:分组丢失(路由器缓冲区溢出)–> 分组丢失导致“上游传输能力”浪费;分组经历比较长的延迟(在路由器的队列中排队)–> 延迟导致重传导致更加拥塞(非线性破坏)
拥塞控制方法:端到端拥塞控制(TCP 采用的方法)、网络辅助的拥塞控制(路由器标志位显式反馈)
3.7 TCP 拥塞控制
第四章 网络层:数据平面
目标:
理解网络服务的基本原理,聚集于其数据平面
网络服务模型
转发和路由
路由器工作原理
通用转发
互联网中网络层协议的实例与实现
提纲:
4.1 导论
数据平面:转发——将分组从路由器的输入接口转发到合适的输出接口
传统方式 基于目标地址 + 转发表
SDN 方式 基于多个字段 + 流表
控制平面:路由——使用路由算法来决定分组从发送主机到目标接收主机的路径
传统的路由算法:在路由器中被实现
SDN 在远程的服务器中实现
4.2 路由器组成
4.3 IP :Internet Protocol
数据报格式
分片:原因是数据链路层 MTU 限制
IPv4 地址
IP地址分类 单播:A B C 多播:D 备用:E
子网部分:全为 0——本网络
主机部分:全为 0——本主机;全为1——广播地址,即该网络所有主机
NAT:网络地址转换协议(公网 IP 与私网 IP 在 NAT 路由器转换,可与默认网关联系理解)
IPv6
4.4 通用转发与 SDN(SDN 控制器即网络 OS)
匹配
行动
OpenFlow 有关“匹配 + 行动”的运行实例
问题:转发表(基于目标的转发)和流表(通用转发)是如何计算出来的?
答案:通过控制平面。
第五章 网络层:控制平面
目标:
理解网络层控制平面的工作原理
传统路由选择算法
SDN 控制器
ICMP: Internet Control Message Protocol
网络管理(略)
以及它们在互联网上的实例和实现
OSPF,BGP,OpenFlow,ODL 和 ONOS 控制器,ICMP,SNMP
提纲:
5.1 导论
5.2 路由选择算法:网络层软件的一部分,完成路由功能
link state(链路状态算法):所有的路由器拥有完整的拓扑和边的代价的信息
本质:dijkstra 算法
防止广播风暴——TTL + 版本号
可能带来路径振荡
distance vector(距离矢量算法):分布式,迭代地与邻居交换路由信息,计算路由信息
比较:LS 和 DV 算法
消息复杂度(DV 胜出)
收敛时间(LS 胜出)
健壮性(LS 胜出)
5.3 因特网中自治系统内部的路由选择(内部网关协议——性能)
RIP(routing information protocol,基于 DV 算法),规模小时使用,代价低
OSPF(open shortest path first,基于 LS 算法),进阶层次化的 OSPF 路由——区域划分设置 boundary,backbone,internal 路由器
5.4 ISP 之间的路由选择(外部网关协议——策略)
BGP(border gateway protocol,边界网关协议),从政治策略、经济策略类比理解
5.5 SDN 控制平面
大一统实现路由功能、交换机功能、负载均衡、NAT、防火墙等,对网络进行编程
5.6 ICMP:因特网控制报文协议
5.7 网络管理和 SNMP(略)
第六章 链路层和局域网
目标:
理解数据链路层服务的原理:
检错和纠错
共享广播信道:多点接入(多路访问)
链路层寻址
LAN:以太网、VLANs
可靠数据传输,流控制:done!
实例和各种链路层技术实现
提纲:
6.1 引论与服务
底层逻辑:协议在链路层不可靠,则链路层做可靠控制;反之亦然,如以太网不做可靠控制
6.2 差错检测与纠正
6.3 多点访问协议
MAC 协议总结 ,多点接入问题——对于一个共享型介质,各个节点如何协调对它的访问和使用?
信道划分:按时间、频率或者编码(TDMA、FDMA、CDMA),CDMA 可类比为不同语言
随机访问(动态):载波侦听在有些介质上很容易(wire,有线介质,CSMA/CD);但在有些介质上比较困难(wireless,无线,CSMA)
依次轮流协议:集中——由一个中心节点轮询;分布式——通过令牌控制
6.4 LANs
addressing,ARP
Ethernet
switches
VLANS(略)
6.5 链路虚拟化:MPLS(略)
6.6 数据中心网络:高带宽、高可靠性、低延迟
6.7 a day in the life of web request
DHCP,DNS,IP,TCP,ARP
第八章 网络安全
目标:
网络安全原理
加密,不仅仅用于机密性
认证
报文完整性
密钥分发
安全实践
防火墙
各个层次的安全性:应用层,传输层,网络层和链路层
提纲:
8.1 什么是网络安全?
机密性
认证
报文完整性
访问控制和服务的可用性
网络中的坏蛋:窃听、插入、伪装、劫持、拒绝服务
8.2 加密原理
对称密钥密码学:发送方和接收方的密钥相同
公开密钥密码学:发送方使用接收方的公钥加密,接收方使用自己的私钥解密(如 RSA)
8.3 认证
8.4 报文完整性
8.5 密钥分发和证书
8.6 访问控制:防火墙
8.7 攻击和对策
8.8 各个层次的安全
安全电子邮件
安全传输层(SSL)
IP sec
802.11
运行中的安全性:firewalls and IDS
第九章 未来网络前沿技术
目标:
NDN 与 MobilityFirst :Name 以及网内缓存
SDN:现有网络的升级,数据平面不变
提纲:
9.1 软件定义网络
9.2 命名数据网络
9.3 优先移动网络
9.4 网络试验设施
结论
计网两周计划完结。
学习笔记,定期回顾,有问题留言。