系列目录
计算机网络总纲领
计算机网络特殊考点
计算机网络原理参考模型I
计算机网络原理参考模型II
目录
- 系列目录
- 更新日志
- 前言
- 应用层(Application Layer)
- 一、应用层概述
- 二、客户/服务器方式和对等方式
- 三、动态主机配置协议(DHCP, Dynamic Host Configuration Protocol)
- 四、域名系统(DNS, Domain Name System)
- 五、文件传送协议(FTP, File Transfer Protocol 采用C/S方式)
- 六、电子邮件(E-mail)
- 七、万维网(WWW, World Wide Web)
- 运输层(Transport Layer)
- 一、运输层概述
- 二、UDP和TCP的对比
- 三、🌟🌟🌟传输控制协议(TCP, Transport Control Protocol)
- 网络层(Network Layer)
- 一、网络层概述
- 二、网际协议(IP)
- 三、静态路由配置
- 四、因特网的路由选择协议
- 五、网际控制报文协议(ICMP)
- 六、虚拟专用网和网络地址转换
- 七、IP多播
- 八、移动IP技术
- 九、软件定义网络(SDN)
更新日志
6.26 后面还会考虑继续补充重要的内容、配图和习题
前言
⚠️上篇文章在这里~原理参考模型I
⚠️不是十分重要的内容就不展开了,为了文章格式的一致性,还是选择将部分知识点列出来,有需要可以自行翻阅书籍~
应用层(Application Layer)
主要任务:通过应用进程的交互实现特定网络应用
一、应用层概述
- 应用层是建立和设计计算机网络的最终目的
- 网络应用程序只运行在端系统中,而运输层已经提供了端到端的进程间的逻辑通讯服务
二、客户/服务器方式和对等方式
开发一种新的网络应用首要考虑——网络应用程序在各种端系统上的组织方式和他们之间的关系
- 客户/服务器方式(C/S, Client/Server方式)
- (基于的应用)服务集中型
- 对等方式(P2P, Peer-to-Peer方式)
- 服务分散型
- 优势
- 可扩展性——系统性能不会因为规模的增大而降低——具有成本上的优势
三、动态主机配置协议(DHCP, Dynamic Host Configuration Protocol)
“即插即联网”(Plug-and-Play Networking)
作用
- IP地址
- 子网掩码
- 默认网关(的IP地址)
- 域名服务器(DNS)(的IP地址)
工作过程
- DHCP报文的封装
使用运输层的UDP所提供的服务- 服务器UDP端口号——67
- 客户UDP端口号——68
- DHCP的基本工作过程(P336-339)
- 七种报文类型
- DHCP发现报文(DHCP DISCOVER)
- DHCP提供报文(DHCP OFFER)
- DHCP请求报文(DHCP REQUEST)
- DHCP确认报文(DHCP ACK(Acknowlegment))
- DHCP谢绝报文(DHCP DECLINE)
- DHCP否认报文(DHCP NACK(NegativeAcknowlegment))
- DHCP释放报文(DHCP RELEASE)
- 基本工作工程(P336, 图6-6)
- 七种报文类型
DHCP中继代理
四、域名系统(DNS, Domain Name System)
作用
因特网的域名结构(层次树状结构)
- 顶级域名(TLD, Top Level Domain)
- 国家顶级域名(nTLD)
- 通用顶级域名(gTLD)
- 反向域(arpa)
- 二级域名(我国)
- 类别域名
- 行政区域名
- 三级域名
- 四级域名
因特网上的域名服务器
- 根域名服务器
- 顶级域名服务器
- 权限域名服务器
- 本地域名服务器(默认域名服务器)
因特网的域名解析过程
- 域名查询方式
- 递归查询——从请求主机到本地域名服务器的查询(采用)
- 迭代查询——其余的查询
五、文件传送协议(FTP, File Transfer Protocol 采用C/S方式)
六、电子邮件(E-mail)
七、万维网(WWW, World Wide Web)
运输层(Transport Layer)
主要任务:为相互通信的应用进程提供逻辑通信服务
一、运输层概述
进程间基于网络的通信
TCP/IP体系结构运输层中的两个重要协议(TPDU, Transport Protocol Data Unit 运输协议数据单元)*
- 无连接不可靠的UDP协议
- UDP用户数据报(User Datagram)
- 面向连接的可靠的TCP协议
- TCP报文段(Segment)
运输层端口号、复用与分用
- 运输层端口号
进程端口号(PID, Process Identification)
端口号只具有本地意义- 服务器端
- 熟知端口号(全球通用端口号)
- 登记端口号
- 客户端
- 短暂端口号(又称临时端口号)
- 服务器端
发送方的复用与接收方的分用
- 发送方的复用
- UDP复用——运输层使用UDP协议进行封装
- TCP复用
- IP复用——IP协议封装成IP数据报
- 接收方的分用
- UDP分用
- TCP分用
- IP分用
- 🌟运输层端口号应用举例(自己费曼一下, P285,后面会补充)
二、UDP和TCP的对比
无连接的UDP和面向连接的TCP
- 无连接的UDP
- 🌟面向连接的TCP(TCP的连接管理)
- “三报文握手”建立连接
- “四报文挥手”释放连接
UDP和TCP对单播、多播和广播的支持情况
- UDP支持单播、多播和广播
- TCP仅支持单播
UDP和TCP对应用层报文的处理
- UDP是面向应用层报文的
- TCP是面向字节流的(全双工通信)——实现可靠传输、流量控制及拥塞控制的基础
UDP和TCP对数据传输可靠性的支持
- UDP提供无连接不可靠的数据传输服务
- TCP提供面向连接可靠的数据传输服务
三、🌟🌟🌟传输控制协议(TCP, Transport Control Protocol)
- TCP报文段的首部格式
补充: UDP用户数据报的首部格式
- 源端口字段和目的端口字段
- 源端口字段
- 目的端口字段
- 序号字段、确认号字段以及确认标志位(ACK)
- 序号字段
- 确认号字段和确认标志位(ACK)
- 数据偏移字段
- 保留字段
- 窗口字段
- 检验和字段
- 同步标志位——TCP双方通过“三报文握手”建立连接
- 终止标志位——TCP双方通过“四报文挥手”释放连接
- 复位标志位:复位TCP连接
- 推送标志位
- 紧急标志位(URG)和紧急指针字段
- 选项字段
- 最大报文段长度
- 窗口扩大选项
- 时间戳选项(功能)
- 计算往返时间(RTT)
- 防止序号绕回(PAWS, Protect Against Wrapped Sequence Numbers)——处理序号超范围的情况
- 选择确认选项
- 填充字段——与IPv4数据报首部中的作用相同
- 🌟TCP的运输连接管理
- TCP运输连接的三个阶段
- 建立TCP连接
- 数据传送
- 释放连接
- 🌟“三报文握手”建立TCP连接
- 🌟“四报文挥手”释放TCP连接
- TCP保活计时器
- TCP的流量控制(Flow Control)
- 基本概念
- 方法
- 🌟TCP的拥塞控制(Congestion Control)
- 基本概念
- 基本方法
- 流量控制与拥塞控制的(任务)区别
- (流控)确保发送方不会持续地以超过接收方接受能力的速率发送数据
- (拥控)防止过多地数据注入到网络中,是网络能够承受现有的网络负荷
- 拥塞控制的基本方法(控制论)
- 开环控制方法
- 闭环控制方法
- 显示反馈算法
- 隐式反馈算法
- 流量控制与拥塞控制的(任务)区别
- 🌟四种拥塞控制方法
- 慢开始(Slow-Start)
- 拥塞避免(Congestion Avoidance)
- 快重传(Fast Retransmit)
- 快恢复(Fast Recovery)
- TCP拥塞控制与网际层拥塞控制的关系(P318)
- TCP可靠运输的实现
TCP超时重传时间(RTO)的选择
TCP的选择确认(SACK)
TCP窗口和缓存的关系
网络层(Network Layer)
主要任务:将分组从源主机经过多个网络和多段链路传输到的目的主机
一、网络层概述
分组转发和路由选择
- 分组转发
⚠️转发表是从路由表得出,其结构应使查找过程最优化- 路由选择处理机->路由选择协议->路由表->转发表
- 路由选择(Routing)
⚠️路由选择生成的其实是路由表(Routing Table),路由表一般仅包含从目的主机到下一跳的映射,需对网络拓扑变化计算的最优化- 集中式路由选择
- 分布式路由选择
- 人工路由选择
网络层向上层提供两种服务
- 面向连接的虚电路服务
- 两台计算机通信,首先建立网络层的连接(也就是建立一条虚电路VC, Virtual Circuit)
- (核心思想)可靠通信可由网络自身来保证
- 虚电路只是一条逻辑上的连接
- 无连接的数据报服务
- 两台计算机通信时,不需要建立网络层连接
二、网际协议(IP)
- 配套协议
IP协议要使用
- 地址解析协议(ARP, Address Resolution Protocol)
- 逆地址解析协议(RARP, Reverse Address Resolution Protocol)——淘汰不使用了
要使用IP协议
- 网际控制报文协议(ICMP, Internet Control Message Protocol)
- 网际组管理协议(IGMP, Internet Group Management Protocol)
- 异构网络互联
- 原理:多个异构网络由路由器互联,网络层都使用网际协议IP,像是统一的网络,即IP网
- 好处:IP网的主机进行通信,看不见互连的各网络的具体异构细节
- IPv4地址及其编制方法
编制方法
- 分类编制
- 两部分
- 网络号
- 主机号
- 五类
- A类地址
- B类地址
- C类地址
- D类地址(多播地址)
- E类地址(保留地址)
- 两部分
- 划分子网(分类编制的改进)
- 子网掩码
- 默认子网掩码——未划分子网的情况下使用的子网掩码
- 无分类编制
- 无分类域间选择(CIDR, Classless Inter-Domain Routing)
- 路由聚合(构造超网)
应用规划
- 定长的子网掩码(FLSM, Fixed Length Subnet Mask)
- 变长的子网掩码(VLSM, Variable Length Subnet Mask)
- IPv4地址与MAC地址
- 地址解析协议(ARP):通过已知IP地址找到其相应的MAC地址
- IP数据报的发送和转发过程
- 主机发送IP数据报
- 直接交付
- 间接交付
- 路由器转发IP数据报
- 主机发送IP数据报
- IPv4数据报的首部格式(首部各字段含义)
- 第一层
- 版本字段
- 首部长度、可选字段和填充(第六-N层)
- 首部长度字段
- 可选字段
- 填充字段
- 区分服务字段
- 总长度字段
- 第二层
- 标识、标志和片偏移
共同用于IPv4数据报分片- 标识字段
- 标志字段
- 最低位(MF, More Fragment)
- 中间位(DF, Don’t Fragment)
- 最高位(保留位)
- 片偏移字段(取值以8字节为单位)
- 标识、标志和片偏移
- 第三层
- 生存时间(TTL, Time To Live)
- 协议
- 首部检验和(因特网检验和 Internet Checksum)
- 第四、五层
- 源IP地址和目的IP地址
- 第一层
三、静态路由配置
- 直连路由和非直连路由
- 直连路由——路由器自行得出
- 非直连路由——网络运维人员配置
- 默认路由和特定主机路由
- 默认路由——条目的匹配优先级最低
- 特定主机路由——条目的匹配优先级最高
四、因特网的路由选择协议
- 路由选择分类
- 静态路由选择——人工配置
- 动态路由选择——路由器通过路由选择协议自动获取路由信息
- 因特网采用分层次的路由选择协议(三个特点)
自适应
分布式
分层次
- 自治系统(AS, Autonomous System)
- AS之间的路由选择
- 域间路由选择——外部网关协议这个类别(EGP, External Gateway Protocol)
- AS内部的路由选择
- 域内路由选择——内部网关协议这个类别(IGP, Interior Gateway Protocol)
- AS之间的路由选择
- 路由信息协议(RIP, Routing Information Protocol)
内部网关协议中最先得到使用的协议之一;基于距离向量
相关基本概念(只适用于小型互联网)
RIP使用跳数作为度量来衡量到达目的网络的距离
- (基于)距离向量(D-V)
- 跳数(Hop Count)
- 度量(Metric)
- “好的路由”:所通过路由器数量最少的路由
三个重要特点
- 和谁交换信息——仅和相邻路由器交换信息
- 交换什么信息——交换的信息是路由器自己的路由表
- 何时交换信息——周期性交换——触发更新(网络拓扑发生变化)
距离向量算法
存在的问题(“坏消息传播的慢”)
- 又称路由环路或RIP距离无穷计数问题
版本和相关报文
优缺点
- 优点
- 实现简单、路由器开销小
- “好消息传播得快”
- 缺点
- “坏消息传播得慢”
- 限制AS规模
- 开放最短路径优先协议(OSPF, Open Shortest Path First)
相关基本概念
- (基于)链路状态(LS)
- OSPF路由器邻居关系的建立和维护
- 交互问候(Hello)分组
- 建立和维护邻居关系
- 链路状态通告(LSA, Link State Advertisement)
- 直连网络的链路状态信息
- 邻居路由器的链路状态信息
- 链路状态更新分组(LSU, Line State Update)
- 洪泛法
- 链路状态数据库(LSDB, Link State Database)
- 基于LSDB进行最短路径优先(SPF) 计算
五种分组类型
- 问候(Hello)
- 数据库描述(Database Description)
- 链路状态请求(Link State Request)
- 链路状态更新(Link State Update)
- 链路状态确认(Link State Acknowledgement)
- 🌟OSPF的基本工作过程(P215)
- 多点接入网络中的OSPF路由器
- 选举指定路由器(DR) 和备用路由器(BDR) 的方法(P217 图4-80)
- 所有非DR/BDR(普通路由器)只与DR/BDR建立邻居关系
- 非DR/BDR(普通路由器)之间必须通过DR/BDR进行交换
- 选举指定路由器(DR) 和备用路由器(BDR) 的方法(P217 图4-80)
- OSPF划分区域
- 边界网关协议(BGP, Border Gateway Protocol)
基本概念
BGP边界路由器
适用于多级结构的因特网
BGP-4的四种报文
版本4是目前使用最多的版本
- OPEN(打开)报文
- UPDATE(更新)报文
- KEEPALIVE(保活)报文
- NOTIFICATION(通知)报文
五、网际控制报文协议(ICMP)
- ICMP报文的种类
ICMP差错报告报文(P224, 五种差错情况)
用来向主机或路由报告差错情况
- 终点不可达
- 源点抑制
- 时间超过(超时)
- 参数问题
- 改变路由(重定向)
- ICMP询问报文(常用)
用来想主机或路由器询问情况- 回送请求和回答(报文)
- 时间戳请求和回答(报文)
- ICMP的典型应用
分组网间探测(PING)
- 跟踪路由
- 🌟traceroute和tracet
- UNIX版本(具体命令)——traceroute
- 应用层使用UDP协议
- 网际层使用ICMP报文类型只有差错报告报文
- Windows版本——tracet
- 应用层直接使用网际层的ICMP协议(回送请求和回答报文以及差错报告报文)
- UNIX版本(具体命令)——traceroute
- tracet的基本实现原理
- 🌟traceroute和tracet
六、虚拟专用网和网络地址转换
虚拟专用网(VPN, Virual Private Network)
- 内联网(内联网VPN, Intanet VPN)
- 外联网(外联网VPN, Extranet VPN)
- 远程接入VPN(Remote Access VPN)
网络地址转换(NAT, Network Address Translation)
- 最基本的NAT方法
- 网络地址与端口号转换(NAPT, Network Address and Port Translation)——使用端口号NAT——将NAT和运输端口号结合使用
七、IP多播
- 基本概念
- 局域网上进行的硬件多播
- 在因特网上进行IP多播需要的两种协议(多播转发树)
网际组管理协议(IGMP)
- 基本概念(报文类型)
- 成员报告报文
- 成员查询报文
- 离开组报文
基本工作原理
- 加入多播组——主机
- 监视多播组的成员变化——多播路由器
- 退出多播组——成员
多播路由选择协议
- 基于源树(Source-Base Tree)多播路由选择
- 反向路径(RPM, Revese Path Multicasting)算法
- 反向路径广播(RPB, Reverse Path Broadcasting)——建立广播转发树——不会产生环路
- 剪枝(Pruning)算法
- 组共享树(Group-Shared Tree)多播路由选择
- 因特网的多播路由选择协议(其他的)
八、移动IP技术
- 基本概念
- 归属网络
- 归属地址(永久地址)
- 归属代理
- 外地网络(被访网络)
- 外地代理
- 转交地址
- 🌟基本工作原理
- 代理发现与注册
- 固定主机向移动主机发送IP数据报
- 移动主机向固定主机发送IP数据报
- 同址转交地址(Co-Located Care-of Address)
- 三角形路由问题(Triangle Routing Problem)9.下一代网际协议IPv6
- 引进的主要变化
- IPv6数据报的基本首部
- 组成
- 基本首部
- 有效载荷(净载荷)
- 各字段的含义
- 版本
- 通信量类
- 流标号
- 有效载荷长度
- 下一个首部
- 跳数限制
- 源地址
- 目的地址
- IPv6数据报的扩展首部(非重点)
- IPv6地址
- 空间大小
- 表示方法
- 冒号十六进制记法
- 再使用“左侧零 ”省略和“连续零”压缩(限一次)
- 冒号法还可以结合点分十进制的后缀
- CIDR(无分类域间路由选择)的斜线表示法依然适用 - 分类
- IPv6数据报的目的地址分类
- 单播
- 多播
- 任播
- IPv6地址分类
- 未指明地址
- 环回地址
- 多播地址
- 本地链路单播地址
- 全球单播地址(三级结构)
- 全球路由选择前缀(Global Routing Prefix)
- 子网标识符(Subnet ID)
- 接口标识符(Interface ID)
- IPv6数据报的目的地址分类
- 从IPv4向IPv6过渡
使用双协议栈(Dual Stack)
使用隧道技术(Tunneling)
- 网际控制报文协议ICMPv6
合并了ARP(地址解析协议)和IGMP(网际组管理协议)的功能
九、软件定义网络(SDN)
- 网络层的数据层面和控制层面
路由器的功能
- 分组转发——为主机间的通信提供转发服务
- 路由选择
路由器之间传送的信息
- 源主机和目的主机之间所传送的信息
- 路由信息
路由的网络层(抽象划分)
- 数据层面(转发层面)
- 控制层面
- OpenFlow协议
传统意义上的数据层面的任务
SDN中的广义转发
- “匹配”
- “动作”
- 转发分组
- 负载均衡
- 重写IP首部
- 防火墙(阻挡或丢弃分组)
OpenFlow交换机和流表
- OpenFlow交换机、流表、SDN远程控制器三者之间的关系
- 流表中的各字段
- OpenFlow“匹配+动作”网络举例
- 简单转发
- 负载均衡
- 防火墙
- SDN体系结构
四个关键特征
- 基于流的转发
- 数据层面与控制层面分离
- 位于数据层面分组交换机之外的网络控制功能
- 可编程的网络
SDN控制器(三个层次)
- 通信层
- 网络范围的状态管理层
- 到网络控制应用程序层的接口