计算机网络 PART2
第四章 网络层
(一)网络层的功能
- 异构网络互联
所谓网络互联,是指将两个以上的计算机网络,通过一定方法,用一种或多种通信处理设备(即中间设备)相互连接起来,以构成更大的网络系统。中间设备又叫中间系统或中继系统。
物理层中继系统 | 中继器、集线器 |
---|---|
数据链路层中继系统 | 网桥或交换机 |
网络层中继系统 | 路由器 |
网络层以上的中继系统 | 网关 |
- 路由与转发
路由器的两大功能:
路由选择
分组转发
拥塞控制
- 判断网络是否进入拥塞状态的方法:观察网络的吞吐量与网络负载的关系
- 若网络负载增加,网络吞吐量明显小于正常吞吐量,则可能已经进入“轻度拥塞”
- 若网络吞吐量随着网络负载的增大而下降,则可能已经进入拥塞状态
- 若网络的负载持续增大,而网络吞吐量下降为 0,则可能已经进入死锁状态
- 拥塞控制的作用:确保子网能够承载所达到的流量,单一地增加资源不能解决拥塞
- 流量控制与拥塞控制的区别
| 流量控制 |
- 判断网络是否进入拥塞状态的方法:观察网络的吞吐量与网络负载的关系
流量控制往往是指在发送端和接收端之间的点对点通信量的控制
它所要做的是抑制发送端发送数据的速率,以便接收端来得及接收
| |
| :———-: | |
| 拥塞控制 |确保通信子网能够传送待传送的数据
是一个全局性的问题
涉及网络中所有主机、路由器及导致网络传输能力下降的所有因素
|- 拥塞控制的方法
开环控制 描述 一种静态的预防方法。设计网络时先将有关发生拥塞的因素考虑周到,力求在工作时不产生拥塞,中途不再修改 方法 包括确定何时可接收新流量、何时可丢弃分组及丢弃哪些分组,确定何种调度决策等。这些共性是,在做决定时不考虑当前网络状态 闭环控制 描述 基于反馈环路的概念,是一种动态的方法。 方法 事先不考虑有关网络拥塞的因素,采用系统监视,及时检测那里发生了拥塞,然后将拥塞信息传达到合适地方,以便调整网络的运行,并解决出现的问题
- 拥塞控制的方法
(二)路由算法
静态路由与动态路由
- 静态路由
- 动态路由
- 常见的动态路由算法:① 距离-向量路由算法;② 链路状态路由算法
距离向量路由算法:① 向所有相邻结点发送;
链路状态路由算法:① 向网上所有其他结点发送;② 拥有完全拓扑信息
距离-向量路由算法与链路状态路由算法的比较
距离-向量路由算法 仅与邻居交谈,为邻居提供自己从自己到其他结点的最低费用估计 链路状态路由算法 通过广播的方式与所有其他结点交谈,但仅告诉它们与它直接相连的费用 层次路由
因特网将整个互联网划分为许多较小的自治系统(注意一个自治系统包含很多局域网),每个自治系统有权自主决定本系统内应采用何种路由协议。如果两个自治系统需要通信,就需要有一种在两个自治系统之间的协议来“屏蔽”这种差异。据此,因特网把路由选择协议划分为两大类:
使用范围 | 具体协议 | |
---|---|---|
内部网关协议 IGP | 自治系统内部使用,也称域内路由选择 | RIP(UDP)、OSPF(IP 数据报) |
外部网关协议 EGP | 自治系统间使用,也称域间路由选择 | BGP(通过 TCP) |
在使用层次路由时,OSPF 将一个自治系统再划分为若干区域(Area),每个路由器都知道在本区域内如何把分组路由到目的地的细节,但不用知道其他区域的内部结构。
- 两个概念
- 慢收敛:在距离-向量路由选择协议中,“好消息传得快,坏消息传得慢”,这就导致了当路由信息发生变化时,该变化未能及时地被所有路由器知道,而仍然可能在路由器之间进行传递,这就是“慢收敛”现象。慢收敛是导致发生路由回路的根本原因
- 直接交付与间接交付:路由选择分为直接和间接交付,当发送站与目的站在同一网段时,就使用直接交付,反之使用间接交付。(间接交付地最后一个路由器还是直接交付)
(三)IPv4
- IPv4 分组格式:P148
- IPv4 地址
A(1-126),B(128-191),C(192-223),D(224-239),E(240-255),注意:
- A 类地址可用网络数为,因为:① 全 0 保留不用;②127 为回环
- B 类地址可用网络数为,因为:128.0 这个网络不可指派
- C 类地址可用网络数为,因为,:192.0.0 这个网络不可指派
- IP 地址的重要特点
- 管理机构只分配网络号
- IP 网络上的路由器至少有两个 IP 地址
- 用转发器或桥接器(网桥等)连接的若干 LAN 仍然是同一个网络(同一个广播域),因此该 LAN 中的所有主机的 IP 地址的网络号必须相同
- 路由器总是有两个或两个以上的 IP 地址,路由器的每个端口都有一个不同网络号的 IP 地址
- 私有地址
- A 类:10.0.0.0 - 10.255.255.255
- B 类:172.16.0.0 - 172.31.255.255
- C 类:192.168.0.0 - 192.168.255.255
- 普通路由器与 NAT 路由器的区别
普通路由器仅工作在网络层,而 NAT 路由器转发数据报时需要查看和转换传输层端口号,所以工作在传输层
- 子网划分与 CIDR
- IP 与硬件地址
由于路由器的隔离且 IP 数据报被路由转发时,此 IP 分组在每个网络中都被路由器解封再封装,所使用的 MAC 地址一直在变。所以 IP 网络中无法通过广播的方式依靠 MAC 地址来完成跨网络的寻址,因此在 IP 网络的网络层只是用 IP 地址来完成寻址。IP 分组到达目标网络后,改为在目标 LAN 中通过数据链路层的 MAC 地址以广播方式寻址。
路由器由于互联多个网络,因此它不仅有多个 IP 地址,也有多个硬件地址。
- ARP
工作在网络层。每台主机都有 ARP 高速缓存表,使用 ARP 来动态更新。ARP 请求分组是广播,但 ARP 相应分组是单播。
- DHCP
DHCP 是应用层协议,基于 UDP,使用客户/服务器模式,全程使用多播
- ICMP
工作在网络层。PING 工作在应用层,直接使用 ICMP,而未使用 TCP 或 UDP。Traceroute/Tracert 工作在网络层
(四)IPv6
- 长度:128 位
- 目的地址类型:
- 单播
- 多播
- 任播:目的站是一组计算机,但数据报在交付时只交付其中一台主机(实为一对一)
- IPv4 向 IPv6 的过渡方法
- 双协议栈技术
- 隧道技术
(五)路由协议
- RIP
- 基于:距离向量
- 规定:
- 维护自身到其他每个目的网络的距离记录
- 每经过一个路由器,距离(跳数)+1
- RIP 最多只能包含 15 个路由器。因此,距离为 16 时,表示网络不可达(只适用于小型互联网)
- 每 30s 广播一次 RIP 路由更新信息,以便自动建立并维护路由表(动态维护)
- RIP 中不支持子网掩码的 RIP 广播,所以子网掩码必须相同。RIP2 中可以使用变长子网掩码和 CIDR
- 特点:
- 仅和相邻路由器交换信息
- 交换的信息是当前路由器知道的所有路由表
- 每隔 30s 交换一次信息
- OSPF
- OSPF 与 RIP 的区别:
- 向自治系统全部主机发信息,泛洪法
- 交换的信息是与本路由器相邻的所有路由器的链路状态
- 只有链路变化是才会使用泛洪法发送此信息
- OSPF 是网络层协议,直接使用 IP 数据报传送;而RIP 是应用层协议,它在传输层使用 UDP
- 特点:
- 可根据不同类型的业务可计算出不同的路由
- 多路径之间的负载平衡
- 在 OSPF 路由器之间交换的分组具有鉴别功能,保证了仅在可信赖的路由器之间交换链路状态信息
- 支持可变子网划分和 CIDR
- 每个链路状态都带上了一个 32 位的序号,序号越大,状态越新
- OSPF 分组类型:TODO
- OSPF 与 RIP 的区别:
- 边界网关协议(BGP)
只能力求寻找到一条能够到达目的网络且比较好的路由(不能兜圈子),而并非一条最佳路由。
- 基于:路径向量路由选择协议
- 每个自治系统的管理员选择至少一个路由器,作为该自治系统的“BGP 发言人”
- 每个“BGP 发言人”除了运行 BGP 之外,还需运用该 AS 所用的内部网关协议
- 特点:
- BGP 路由交换信息的节点数量级是自治系统的数量级
- 每个自治系统发言人数目较少
- 支持 CIDR
- 在 BGP 刚运行时,BGP 的临站交换整个 BGP 路由表,以后只需更新变化的部分
- 分组类型:TODO
- 三种协议的比较
协议 RIP OSPF BGP 类型 内部 内部 外部 路由算法 距离-向量 链路状态 路径-向量 传递协议 UDP IP TCP 路径选择 跳数最少 代价最低 较好,非最佳 交换节点 和本结点相邻的路由器 网络中所有路由器 和本结点相邻的路由器 交换内容 当前本路由器知道的全部信息,即自己的路由表 与本路由器相邻的所有路由器的链路状态 首次:整个路由表 非首次:有变化的部分
(六)IP 组播
为了能够支持像视频点播和视频会议这样的多媒体应用,是让源主机一次发送的单个分组可以抵达用一个组播地址标识的若干目标主机,并被它们正确接收。组播一定仅用于 UDP。
主机可以选择加入或离开一个组,因此同一台主机可能属于多个组。
- IP 组播地址
使用 D 类地址,范围是 224.0.0.0 ~ 239.255.255.255,每个 D 类 IP 地址标志一个组播组。
注意:
- 组播数据报也是“尽最大努力交付”,不提供可靠服务
- 组播地址只可用于目的地址
- 对组播数据报不产生 ICMP 差错报文
- 并非所有 D 类地址都可用于组播
- IP 组播的分类
- 只在本局域网上进行硬件组播
- 在因特网的范围内进行组播:在最后阶段,还是要把组播数据报在局域网上用硬件组播交付给组播组的所有成员
- 硬件组播
IANA 拥有的以太网组播地址的范围是从:01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF,只有 23 位用于组播。
D 类 IP 地址可供分配的有 28 位,前 5 位不能用来构成以太网地址,因此只有后 23 位可用作组播;
IP 地址的后 23 位映射到 MAC 地址;
因为映射不是唯一的,还需要在 IP 层利用软件进行过滤,把不是本主机要接受的数据报丢弃。
- IGMP 与组播路由算法
- IGMP 让连接到本地局域网上的组播路由器知道本局域网上是否有主机参加或退出了某个组播组
- ICMP 的工作阶段
- 某台主加入新的组播组时,该主机应向组播路由器发送一个 IGMP 报文,声明自己要成为该组成员;本地组播路由器收到 IGMP 报文后,将组成员关系发给因特网上的其他组播路由器
- 组成员关系是动态的,本地组播路由器要周期性地探寻本地局域网上的主机;但一个组在经过几次的探寻后仍然没有一台主机响应时,则不再将该组的成员关系转发给其他组播路由器
- 组播路由选择实际上就是要找出以源主机根节点的组播转发树(避免环路路由);不同多播组对应于不同的多播转发树;同一多播组,对不同的源点也会有不同的多播转发树
- 在许多由路由器互联的支持硬件多点传送的网络上实现因特网组播时,主要有三种路由算法:
- 基于链路状态
- 基于距离向量的路由选择
- 可以建立在任何路由器协议之上,称为协议无关的组播(PIM)
(七)移动 IP
移动 IP 技术是指移动节点以固定的网络 IP 地址,实现跨越不同网段的漫游功能,并保证基于网络 IP 的网络权限在漫游过程中不发生任何改变。使用移动 IP 可以在不改变其 IP 地址的情况下改变其驻留位置。
即为移动结点设置了两个 IP 地址:一个主地址、一个辅地址(转交地址)
- 移动 IP 定义的功能实体:
- 移动结点:具有永久 IP 地址的移动结点
- 本地代理:在归属网络中代表移动节点执行移动管理功能的实体成为归属代理(本地代理)。它根据移动用户的转交地址,采用隧道技术转交移动结点的数据包
- 外部代理:在外部网络中帮助移动结点完成移动管理功能的实体成为外部代理
- 移动 IP 通信过程:P197
(八)网络层设备
- 路由器的选择和功能:P199
- 任务:连接异构网络并完成路由转发
- 结构:
- 路由选择
- 分组转发
- 路由器与网桥的区别:网桥和高层协议无关,路由器是面向协议的。它根据网络地址进行操作,并进行路径选择、分段、帧格式转换、对数据报的生存时间和流量进行控制等。
- 路由器支持的协议:OSI、TCP/IP、IPX 等
- 路由表与路由转发
- 路由表的项目:
- 目的网络 IP 地址
- 子网掩码
- 下一跳 IP 地址
- 接口
- 转发表
- 路由表的项目:
转发表由路由表得出;转发表中含有一个分组将要发往的目的地址,以及分组的下一跳(即下一步接收者的目的地址,实际为 MAC 地址),为减少转发表的重复项目,可使用默认路由代替所有具有相同下一跳的项目,并将默认路由设置得比其他项目的优先级低。
- 转发和路由的区别
- “转发”是路由器根据转发表把收到的 IP 数据报从合适的端口转发出去,它仅涉及路由器
- “路由选择”则涉及很多路由器,路由表是许多路由器协同工作的结果
- 分组的转发实际上是靠直接查找转发表,而不是直接查找路由表
第五章 传输层
(一)传输层提供的服务
- 传输层的功能
- 提供应用进程之间的逻辑通信(即端到端的通信)
- 复用和分用:
- 复用:发送方不同的应用进程可以使用同一个传输层协议传送数据(网络层复用是指发送方不同协议的数据可以封装成 IP 数据报发送出去)
- 分用:接收方的传输层在剥去首部之后能够把数据正确交付到目的的应用进程(网络层分用是指接收方在剥去首部之后把数据交付给相应的协议)
- 传输层对收到的报文进行差错检测(首部和数据部分)。而网络层只检查首部
- 提供两种不同的传输协议,即面向连接的 TCP 和无连接的 UDP。而网络层无法同时实现两种协议(即在网络层要么只提供面向连接的服务,如:虚电路;要么只提供无连接服务,如数据报,而不能共存)
- 传输层寻址与端口
- TSAP: 端口,通过端口来标识主机中的应用进程
- 端口号:只标识本计算机应用层中的各进程
- 套接字:唯一标识网络上一台主机和其上的一个应用(进程)
- 套接字 = (主机地址,端口号)
- 无连接和面向连接服务
- 采用 TCP 时,传输层向上提供的是一条全双工的可靠逻辑信道
- 采用 UDP 时,传输层向上提供的是一条不可靠的逻辑信道,它在 IP 之上提供两个附加服务:多路复用和对数据的错误检查
- IP 数据报和 UDP 数据报的区别:P212
- TCP 和网路层虚电路的区别:P212
(二)UDP
- UDP 数据报
- 概述:UDP 只是做了传输协议能够做的最少工作,仅在 IP 的数据包服务上增加了两个最基本的服务:复用和分用以及差错检测
- UDP 的优点
- 无需建立连接
- 无连接状态
- 分组首部开销小。TCP 有20B的首部,UDP 仅有8B
- 应用层可以更好地控制要发送的数据和发送时间。UDP 无拥塞控制
- UDP 是面向报文的。发送方 UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界;因此报文不可分割,是 UDP 数据报处理的最小单位。
- UDP 的首部格式
- 源端口号:在需要对方回信时选用
- 目的端口:在终点交付时必须使用到
- 长度:UDP 数据报的长度,最小值是 8(UDP 首部长度)
- 校验和:检测 UDP 中数据是否有错。有错就丢弃。
当分用时的端口不正确,UDP 会丢弃报文,并用 ICMP 发送“端口不可达”报文给发送方。
- UDP 校验
在计算校验和时,要在 UDP 数据包之前增加 12B 的伪首部,伪首部并不是 UDP 真正的首部。只是在计算校验和时临时添加到前面的,得到一个临时的 UDP 数据报。伪首部包括:源 IP 地址、目的 IP 地址、0、17、UDP 长度。
校验过程:
注意:若校验结果为全 0,则校验位全写 1。
(三)TCP
- TCP 段
主要解决传输的可靠、有序、无丢失和不重复问题。
- TCP 协议的特点
- TCP 是面向连接的传输层协议
- 每条 TCP 连接只能有两个端点,每条 TCP 连接只能是点对点的
- TCP 提供可靠的交付服务,可靠有序、不丢不重。
- TCP 提供全双工通信,允许通信双方的应用进程在任何时候发送数据
- TCP 连接的两端都设有发送缓存和接收缓存
- 发送缓存存放:① 准备发送的数据;② 已发送但未确认的数据
- 接收缓存存放:① 按需到达,但是未被接收应用程序读取的数据;② 不按序到达的数据
- TCP 是面向字节流的,虽然应用程序和 TCP 的交互是一次一个数据块(大小不等),但 TCP 把应用程序交下来的数据仅视为一连串的无结构字节流
- TCP 的报文段:P221 - P223
- TCP 连接管理
- TCP 可靠传输
- TCP 流量控制与拥塞控制
第六章 应用层
(一)网络应用模型
- 客户/服务器模型
- P2P 模型
- 区别
C/S P2P 特点 - 客户是服务请求方,服务器是服务提供方
- 客户机是面向用户的,服务机是面向任务的
- 网络中计算机的地位不平等,服务器可以对用户权限的限制来达到管理客户机的目的
- 客户机互相之间不直接通信
- 可扩展性不佳
| - 任意一堆计算机称为——对等方
- 每个结点即作为客户,也作为服务器
- P2P 是逻辑网络,而非物理网络
|
| | |
| 对比 | C/S 对比 P2P 来说的优点: - 减轻了服务器压力,消除了对服务器的完全依赖,可以将任务分配到各个结点,大大提高了系统效率和资源利用率
- 多个客户机之间可以直接共享文档
- 可扩展性好
- 网络健壮性强
| |
| 缺点 | | - 在获取服务的同时,还要提供服务,因此占用了较高的内存,从而影响整机速度
- 占用较高的带宽
|