导图社区 计算机网络思维导图
计算机网络思维导图,讲述了因特网概述、计算机网络体系结构、数据通信基础知识、带对点协议ppp、虚拟局域网、网络协议ip。
编辑于2021-12-05 11:39:35计网
第一章
计算机网络在信息时代中的作用
数字化、网络化和信息化
电信网络、有线电视网络和计算机网络
连通性、共享
因特网概述
网络(network)由若干结点(node)和连接这些结点的链路(link)组成
结点——用于计算机网络中,表示计算机或路由器
链路——连接的线路
互联网是“网络的网络”(network of networks)
连接在因特网上的计算机都称为主机(host) internet——互连网(互联网) Internet——当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,使用TCP/IP协议族作为通信规则。前身是美国的阿帕网APPRANET
因特网发展三个阶段
从单个网络ARPANET向互联网发展
逐步建成了三级结构的因特网
逐渐形成了多层次ISP结构的因特网
计算机网络、互联网、互连网
计算机网络:一些相互连接的计算机的集合
互连网、互联网:一些相互连接的计算机网络的集合(网络的网络,互连网(互联网)由许多网络通过路由器互连而成)
因特网的组成
边缘部分——由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享 核心部分——由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)
两种通信方式
客户服务器方式(C/S 方式——Client/Server)
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户是服务的请求方,服务器是服务的提供方
对等方式
P2P 方式
因特网核心部分
在网络核心部分起特殊作用的是路由器(router)
路由器是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能
电路交换
从通信资源的分配角度来看,“交换”就是按照某种方式动态地分配传输线路的资源
电路交换必定是面向连接的, 且利用率很低
三个阶段
1.建立连接 2.通信 3.释放连接
分组交换(存储转发)
报文
要发送的整块数据
分组
先将报文划分成较短的、固定长度的数据段,每一个数据段前面添加上首部构成分组或包
因特网的核心部分是由许多网络和把它们互连起来的路由器组成,而主机处在因特网的边缘部分。在因特网核心部分的路由器之间一般都用高速链路相连接,而在网络边缘的主机接入到核心部分则通常以相对较低速率的链路相连接。主机的用途是为用户进行信息处理的,并且可以和其他主机通过网络交换信息。 路由器的用途则是用来转发分组的,即进行分组交换的。
分组交换优点
1.高效 2.灵活 3.迅速 4.可靠
分组在各结点存储转发时需要排队,这就会造成一定的时延。 分组必须携带的首部(里面有必不可少的控制信息)也造成了一定的开销。无法确保通信时端到端所需的带宽,在通信量较大时可能造成网络拥塞
子主题
时延
总时延 = 传输时延 + 传播时延 + 处理时延 + 排队时延
传输时延
主机或路由器传输数据帧所需要的时间 其中 l 表示数据帧的长度,v 表示传输速率
传播时延
电磁波在信道中传播所需要花费的时间,电磁波传播的速度接近光速 其中 l 表示信道长度,v 表示电磁波在信道上的传播速度
处理时延
主机或路由器收到分组时进行处理所需要的时间,例如分析首部、从分组中提取数据、进行差错检验或查找适当的路由等
排队时延
分组在路由器的输入队列和输出队列中排队等待的时间,取决于网络当前的通信量
计算机网络的的定义与分类
计算机网络是一些互相连接、自治的计算机的集合
分类
从网络的作用范围进行分类
广域网 WAN (Wide Area Network) 局域网 LAN (Local Area Network) 城域网 MAN (Metropolitan Area Network) 个人区域网 PAN (Personal Area Network)
从网络的使用者分类
公用网(public network) 专用网(private network)
计算机网络的主要性能指标
速率
速率即数据率(data rate)或比特率(bit rate)是计算机网络中最重要的一个性能指标。速率的单位是b/s,或kb/s,Mb/s, Gb/s 等
带宽
“带宽”(bandwidth)本来是指信号具有的频带宽度,单位是赫(或千赫、兆赫、吉赫等) 现在“带宽”是数字信道所能传送的“最高数据率”的同义语,单位是“比特每秒”,或 b/s (bit/s)
吞吐量
吞吐量/吞吐率(throughput)表示在单位时间内通过某个网络(或信道、接口)的数据量 吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络
受网络的带宽或网络的额定速率的限制
时延

对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。提高链路带宽减小了数据的发送时延
丢包率
丢包率即分组丢失率,是指在一定的时间范围内,分组在传输过程中丢失的分组数量与总的分组数量的比率
接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等
在现代计算机网络中网络拥塞是丢包的主要原因。因此,丢包率往往反映了网络的拥塞情况
利用率
信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零
网络利用率则是全网络的信道利用率的加权平均值
信道利用率并非越高越好
若令 D0 表示网络空闲时的时延,D表示网络当前的时延,则在适当的假定条件下,可以用下面的简单公式表示D和 D0之间的关系


计算机网络体系结构
网络协议(network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定
三要素
语法,即数据与控制信息的结构或格式
语义
各个控制信息的具体含义,包括需要发出何种控制信息,完成何种动作以及做出何种响应 同步(或时序),即事件实现顺序和时间的详细说明,包括数据应该在何时发送出去以及数据应该以什么速率发送
计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合。l体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件
物理层: 如何在物理媒体上传送比特流 数据链路层: 相邻节点间分组(帧)的传输 PPP, 以太网 网络层: 如何将分组从源主机通过中间路由器传送到目的主机 IP, 选路协议 运输层: 提供不同主机上应用程序间的数据传输服务 TCP, UDP 应用层:如何通过应用进程间的交互来完成特定网络应用。 FTP, SMTP, STTP

五层协议 应用层 :为特定应用程序提供数据传输服务,例如 HTTP、DNS 等。数据单位为报文。 传输层 :为进程提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。 网络层 :为主机提供数据传输服务。而传输层协议是为主机中的进程提供数据传输服务。网络层把传输层传递下来的报文段或者用户数据报封装成分组。 数据链路层 :网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。 物理层 :考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异
1994年4月20日我国用64kbit/s专线正式连入因特网
第二章
物理层的基本概念
物理层协议的主要任务就是确定与传输媒体的接口的一些特性
机械特性 电器特性 功能特性 规程特性
数据通信基础知识
数据通信系统
源系统
源点、发送器
传输系统
目的系统
接收器、终点
通信的目的是传送消息。数据是信息的实体。信号是数据的电气或电磁表现
编码:将数字数据转换成数字信号的过程
调制:将数字数据转换成模拟信号的过程
提高数据传输速率的途径
要使用更好的传输媒体,使用先进的编码和调制技术,但不管采用好的传输媒体和怎样先进的调制技术,数据传输速率总是受限的,不可能任意地提高,否则就会出现较多的差错
传输方式
物理层下面的传输媒体
导引型传输媒体
双绞线
屏蔽双绞线 STP(Shielded Twisted Pair)
无屏蔽双绞线 UTP (Unshielded Twisted Pair)
同轴电缆
50 W 同轴电缆
75 W 同轴电缆
光纤
非导引型传输媒体
无线传输所使用的频段很广
短波通信主要是靠电离层的反射,但短波信道的通信质量较差
微波在空间主要是直线传播
地面微波接力通信
卫星通信
信道复用技术
复用
通过一条物理线路同时传输多路用户的信号
频分复用:所有用户在同样的时间占用不同的带宽资源
时分复用:所有用户在不同的时间占用同样的频带宽度
统计时分复用
数字传输系统
将模拟电话信号转换为数字信号目前采用的都是脉冲编码调制PCM (Pulse Code Modulation)技术,将一路模拟电话信号转换为64 kbit/s的PCM数字脉冲信号
为了充分利用高速传输线路的带宽,通常将多路PCM信号用TDM方法汇集成时分复用帧,按某种固定的复用结构进行长途传输
两个互不兼容的PCM复用速率标准:即北美体制和欧洲体制
早期的数字传输系统存在许多缺点。主要由速率标准不统一和不是同步传输
传统SDH/SONET传输网络由光传输系统和交换结点的电子设备组成
光网AON (All Optical Network) 用光网络结点代替原来交换结点的电子设备,组成以端到端光通道为基础的全光传输网,避免因光/电转换所带来的带宽瓶颈,而路由器等电信号处理设备在边缘网络连接用户终端设备
互连网接入技术
接入
将端系统连接到边缘路由器。接入技术解决的就是最终用户接入本地ISP“最后一公里”的问题。通常,人们将端系统连接到ISP边缘路由器的物理链路及相关设备的集合称为接入网AN(access network)
通过拨号调制解调器接入(非带宽接入)
允许最高56Kbps接入速率(通常会更低) 不能同时上网和打电话 不提供持续连接
ADSL接入
上行和下行带宽做成不对称的。 上行指从用户到 ISP,而下行指从 ISP 到用户。 ADSL 在用户线(铜线)的两端各安装一个 ADSL 调制解调器。 我国目前采用的方案是离散多音调 DMT (Discrete Multi-Tone)调制技术。这里的“多音调”就是“多载波”或“多子信道”的意思
光纤接入
以太网接入
无线接入
第三章
使用点对点信道的数据链路层
信道类型
点对点信道:这种信道使用一对一点对点通信方式
广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送
链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点
数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路
封装成帧
封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。首部和尾部的一个重要作用就是进行帧定界
透明传输
字节填充(byte stuffing)或字符填充(character stuffing)——接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个
帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,那么就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施
在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)
循环冗余检验 CRC 和帧检验序列 FCS并不等同。CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。FCS 可以用CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。 仅用循环冗余检验CRC差错检出技术只能做到无差错接受
可靠传输
要做到“可靠传输”就必须用到确认和重传机制

停止等待协议
使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信。这种可靠传输协议常称为自动重传请求ARQ(Automatic Repeat reQuest).ARQ 表明重传的请求是自动进行的。接收方不需要请求发送方重传某个出错的分组
在发送完一个帧后,必须暂时保留已发送的帧的副本。数据帧和确认帧都必须进行编号。只要超过了一段时间还没有收到确认,就认为已发送的帧出错或丢失了,因而重传已发送过的帧。这就叫做超时重传。超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些
停止等待协议不适合发送时延小于往返时延的情况。优点是简单,缺点是信道利用率低
流水线传输
发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。由于信道上一直有数据不间断地传送,这种传输方式可获得很高的信道利用率
点对点协议PPP
特点
简单 封装成帧 透明性 多种网络层协议 多种类型链路 差错检测 检测连接状态
PPP协议组成
一个将IP数据包封装到串行链路的方法
链路控制协议LCP
网络控制协议NCP
PPP协议的帧格式
F 字段为帧的定界符 A 和 C 字段暂时没有意义 FCS 字段是使用 CRC 的检验序列 信息部分的长度不超过 1500
透明传输问题
当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)。 当 PPP 用在异步传输时,就使用一种特殊的字符填充法
零比特填充
在发送端,只要发现有 5 个连续 1,则立即填入一个 0。接收端对帧中的比特流进行扫描。每当发现5 个连续1时,就把这 5 个连续 1 后的一个 0 删除
使用广播信道的数据链路层
由于用广播信道连接的计算机共享同一传输媒体,因此使用广播信道的局域网被称为共享式局域网。虽然交换式局域网在有线领域已完全取代了共享式局域网,但无线局域网仍然使用的是共享媒体技术
媒体接入控制(MAC)
MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)
一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址
静态划分信道:频分多址、时分多址、码分多址
动态接入控制
随机接入
受控接入
局域网
网络为一个单位所拥有,且地理范围和站点数目均有限
局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。 主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术,目前以太网占领着有线局域网市场。
局域网的数据链路层的两个子层
逻辑链路控制 LLC (Logical Link Control)子层。(与传输媒体无关)
媒体接入控制 MAC (Medium Access Control)子层
以太网
为了通信的简便以太网采取了两种重要的措施
采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据
以太网对发送的数据帧不进行编号,也不要求对方发回确认
这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的
以太网提供的服务
以太网的服务是不可靠的交付,即尽最大努力的交付
当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送
载波监听多点接入/碰撞检测 CSMA/CD
最先发送数据帧的站,在发送数据帧后至多经过时间 2t (两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞
以太网的端到端往返时延 2t 称为争用期,或碰撞窗口
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞
使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信) 每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性 当连接很多站点时,以太网的平均吞吐量要比以太网的最高数据率小很多
特点
多点接入 :说明这是总线型网络,许多主机以多点的方式连接到总线上 载波监听 :每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待 碰撞检测 :在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞
当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用 截断二进制指数退避算法 来确定。从离散的整数集合 {0, 1, .., (2k-1)} 中随机取出一个数,记作 r,然后取 r 倍的争用期作为重传等待时间
以太网的MAC帧格式
类型 :标记上层使用的协议 数据 :长度在 46-1500 之间,如果太小则需要填充 FCS :帧检验序列,使用的是 CRC 检验方法 前同步码 :只是为了计算 FCS 临时加入的,计算结束之后会丢弃
以太网是一种星型拓扑结构局域网 早期使用集线器进行连接,集线器是一种物理层设备, 作用于比特而不是帧,当一个比特到达接口时,集线器重新生成这个比特,并将其能量强度放大,从而扩大网络的传输距离,之后再将这个比特发送到其它所有接口。如果集线器同时收到两个不同接口的帧,那么就发生了碰撞。 目前以太网使用交换机替代了集线器,交换机是一种链路层设备,它不会发生碰撞,能根据 MAC 地址进行存储转发
网络和以太网交换机
用集线器扩展以太网
优点:使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信
扩大了局域网覆盖的地理范围
缺点:碰撞域增大了,但总的吞吐量并未提高
如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来
由于争用期的限制,并不能无限扩大地理覆盖范围
在数据链路层扩展以太网
使用网桥。网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC 地址,然后再确定将该帧转发到哪一个接口
使用网桥优点
过滤通信量
扩大了物理范围
提高了可靠性
可互连不同物理层、不同MAC子层和不同速率的局域网
使用网桥缺点
存储转发增加了时延 在MAC 子层并没有流量控制功能 具有不同 MAC 子层的网段桥接在一起时时延更大 网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴 集线器在转发帧时,不对传输媒体进行检测 网桥在转发帧之前必须执行 CSMA/CD 算法 若在发送过程中出现碰撞,就必须停止发送和进行退避 透明网桥是一种即插即用设备
网桥在转发表中登记以下三个信息
在网桥的转发表中写入的信息除了地址和接口外,还有帧进入该网桥的时间
虚拟局域网
虚拟局域网其实只是局域网给用户提供的一种服务,而不是一种新型局域网 简化网络管理 控制广播风暴 增强网络的安全性
以太网的演进
速率达到或超过 100 Mb/s 的以太网称为高速以太网
虚拟局域网
有固定基础设施的无线局域网
一个移动站若要加入到一个基本服务集 BSS,就必须先选择一个接入点 AP,并与此接入点建立关联
移动站与AP建立关联的方法
被动扫描,即移动站等待接收接入站周期性发出的信标帧(beacon frame)
主动扫描,即移动站主动发出探测请求帧(probe request frame),然后等待从 AP 发回的探测响应帧(probe response frame)
使用CSMA/CA协议
无线局域网不能使用CSMA/CD,而只能使用改进的CSMA协议。改进办法就是把CSMA增加一个碰撞避免功能
无线局域网不能简单地搬用 CSMA/CD 协议。这里主要有两个原因
对于无线信道,接收信号强度往往会远远小于发送信号强度。如要在无线局域网的适配器上实现碰撞检测,对硬件的要求非常高
即使我们能够实现碰撞检测的功能,并且当我们在发送数据时检测到信道是空闲的,在接收端仍然有可能发生碰撞(隐蔽站问题)
虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息
使用 VLAN 干线连接来建立虚拟局域网,每台交换机上的一个特殊接口被设置为干线接口,以互连 VLAN 交换机。IEEE 定义了一种扩展的以太网帧格式 802.1Q,它在标准以太网帧上加进了 4 字节首部 VLAN 标签,用于表示该帧属于哪一个虚拟局域网
第四章
网络层概述
分组转发和路由选择(转发表)
电信网的成功经验让网络负责可靠交付
虚电路服务
面向连接,建立虚电路,使用可靠传输协议(虚电路是逻辑上的连接)
因特网采用设计思路
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务 网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号) 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限
数据报服务
虚电路转发表
每台中间路由器在转发分组时必须用一个新的VC号替代原来的VC号
网际协议IP
网际层协议IP
地址解析协议ARP 逆地址解析协议RARP 网际控制报文协议ICMP 网际组管理协议IGMP
中间设备
物理层:转发器 数据链路层:网桥或桥接器 网络层:路由器 网络层以上:网关
虚拟互连网
所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节
IP地址及编址方式
点分十进制记法:32位二进制代码,每8位插入一个空格,转换成十进制,提高可读性
分类编址
IP地址 ::= {<网络号>,<主机号>} ::=代表“定义为”
IP地址的使用范围 | 网络类别 | 最大网络数 | 第一个可用的网络号 | 最后一个可用的网络号 | 每个网络中最大的主机数 | | ——– | ——————- | —————— | ——————– | ———————- | | A | 126(2^7-2) | 1 | 126 | 16777214 | | B | 16383(2^14-1) | 128.1 | 191.255 | 65534 | | C | 2,097,151 (221 - 1) | 192.0.1 | 223.255.255 | 254 |
划分子网
通过在主机号字段中拿一部分作为子网号,把两级 IP 地址划分为三级 IP 地址 IP 地址 ::= {< 网络号 >, < 子网号 >, < 主机号 >} 要使用子网,必须配置子网掩码。一个 B 类地址的默认子网掩码为 255.255.0.0,如果 B 类地址的子网占两个比特,那么子网掩码为 11111111 11111111 11000000 00000000,也就是 255.255.192.0 注意,外部网络看不到子网的存在
无分类编址CIDR
IP地址 ::= {<网络前缀>, <主机号>}
CIDR 的记法上采用在 IP 地址后面加上网络前缀长度的方法,例如 128.14.35.7/20 表示前 20 位为网络前缀 CIDR 的地址掩码可以继续称为子网掩码,子网掩码首 1 长度为网络前缀的长度 一个 CIDR 地址块中有很多地址,一个 CIDR 表示的网络就可以表示原来的很多个网络,并且在路由表中只需要一个路由就可以代替原来的多个路由,减少了路由表项的数量。把这种通过使用网络前缀来减少路由表项的方式称为路由聚合,也称为 构成超网 在路由表中的项目由“网络前缀”和“下一跳地址”组成,在查找时可能会得到不止一个匹配结果,应当采用最长前缀匹配来确定应该匹配哪一个
无分类编址 CIDR 消除了传统 A 类、B 类和 C 类地址以及划分子网的概念,使用网络前缀和主机号来对 IP 地址进行编码,网络前缀的长度可以根据需要变化
地址解析协议ARP
网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。因此在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变
IP地址——>ARP——>物理地址
物理地址——>RARP——>IP地址
IP数据报由首部和数据两部分组成,首部前一部分是固定长度,共20字节,是所有IP数据报必须具有的
ARP 实现由 IP 地址得到 MAC 地址
网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。因此在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变
IP数据报分片
版本 : 有 4(IPv4)和 6(IPv6)两个值; 首部长度 : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为首部固定长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充 区分服务 : 用来获得更好的服务,一般情况下不使用 总长度 : 包括首部长度和数据部分长度 生存时间 :TTL,它的存在是为了防止无法交付的数据报在互联网中不断兜圈子。以路由器跳数为单位,当 TTL 为 0 时就丢弃数据报 协议 :指出携带的数据应该上交给哪个协议进行处理,例如 ICMP、TCP、UDP 等 首部检验和 :因为数据报每经过一个路由器,都要重新计算检验和,因此检验和不包含数据部分可以减少计算的工作量 标识 : 在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识符 片偏移 : 和标识符一起,用于发生分片的情况。片偏移的单位为 8 字节
与 IP 协议配套使用的三个协议
地址解析协议 ARP(Address Resolution Protocol) 网际控制报文协议 ICMP(Internet Control Message Protocol) 网际组管理协议 IGMP(Internet Group Management Protocol)
网际控制报文协议ICMP
ICMP 不是高层协议,而是 IP 层的协议 ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去 前四个字节是统一的三个字段:类型、代码、检验和
ICMP报文的种类
差错报告报文 ICMP询问报文
PING
PING用来测试两个主机之间的连通性 PING 使用了 ICMP 回送请求与回送回答报文 PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP
Traceroute
Traceroute 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点的路径
Traceroute 发送的 IP 数据报封装的是无法交付的 UDP 用户数据报,并由目的主机发送终点不可达差错报告报文
ICMP 是为了更有效地转发 IP 数据报和提高交付成功的机会。它封装在 IP 数据报中,但是不属于高层协议
因特网的路由选择协议
子主题
静态路由选择策略
即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化
动态路由选择策略
即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大
分层次的路由选择协议
自治系统AS
自治系统 AS 的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种AS 内部的路由选择协议和共同的度量以确定分组在该AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在AS之间的路由
因特网两大路由选择协议
内部网关协议IGP
RIP
RIP 是一种基于距离向量的路由选择协议。距离是指跳数,直接相连的路由器跳数为 1。跳数最多为 15,超过 15 表示不可达
仅和相邻路由器交换信息
交换的信息是当前本路由器所知道的全部信息,即自己的路由表
按固定的时间间隔交换路由信息,例如,每隔 30 秒
距离向量算法
对地址为 X 的相邻路由器发来的 RIP 报文,先修改报文中的所有项目,把下一跳字段中的地址改为 X,并把所有的距离字段加 1 对修改后的 RIP 报文中的每一个项目,进行以下步骤 若原来的路由表中没有目的网络 N,则把该项目添加到路由表中 否则:若下一跳路由器地址是 X,则把收到的项目替换原来路由表中的项目;否则:若收到的项目中的距离 d 小于路由表中的距离,则进行更新(例如原始路由表项为 Net2, 5, P,新表项为 Net2, 4, X,则更新);否则什么也不做 若 3 分钟还没有收到相邻路由器的更新路由表,则把该相邻路由器标为不可达,即把距离置为 16 RIP 协议实现简单,开销小。但是 RIP 能使用的最大距离为 15,限制了网络的规模。并且当网络出现故障时,要经过比较长的时间才能将此消息传送到所有路由器
OSPF
开放最短路径优先 OSPF,是为了克服 RIP 的缺点而开发出来的
特点
向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法
发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)
只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息
子主题
外部网关协议EGP
BGP(Border Gateway Protocol,边界网关协议)
AS 之间的路由选择很困难,主要是由于
互联网规模很大
各个 AS 内部使用不同的路由选择协议,无法准确定义路径的度量
AS 之间的路由选择必须考虑有关的策略,比如有些 AS 不愿意让其它 AS 经过
划分区域
划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量
路由器的工作原理
转发和路由选择的区别
“转发”(forwarding)就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去
“路由选择”(routing)则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由
路由表是根据路由选择算法得出的。而转发表是从路由表得出的
在讨论路由选择的原理时,往往不去区分转发表和路由表的区别
分组转发结构由三个部分组成:有输入端口、变换结构、输出端口
交换机与路由器的比较
交换机的优点是即插即用,并具有相对高的分组过滤和转发速度。缺点是:大型交换机网络要求交换机维护大的转发表,主机中维护大的ARP表,并可能产生广播风暴,逻辑拓扑被限制为树
路由器的优点是能提供更加智能的路由选择,并能隔离广播域。缺点是:路由器不是即插即用的,对每个分组处理时间通常比交换机更长
路由器分组转发流程
从数据报的首部提取目的主机的 IP 地址 D,得到目的网络地址 N 若 N 就是与此路由器直接相连的某个网络地址,则进行直接交付 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给表中所指明的下一跳路由器 若路由表中有到达网络 N 的路由,则把数据报传送给路由表中所指明的下一跳路由器 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器 报告转发分组出错
VPN与NAT
用隧道技术实现虚拟专用网
由于 IP 地址的紧缺,一个机构能申请到的 IP 地址数往往远小于本机构所拥有的主机数。并且一个机构并不需要把所有的主机接入到外部的互联网中,机构内的计算机可以使用仅在本机构有效的 IP 地址(专用地址)
有三个专用地址块: 10.0.0.0 ~ 10.255.255.255 172.16.0.0 ~ 172.31.255.255 192.168.0.0 ~ 192.168.255.255
VPN 使用公用的互联网作为本机构各专用网之间的通信载体。专用指机构内的主机只与本机构内的其它主机通信;虚拟指好像是,而实际上并不是,它有经过公用的互联网
专用网内部的主机使用本地 IP 地址又想和互联网上的主机通信时,可以使用 NAT 来将本地 IP 转换为全球 IP
在以前,NAT 将本地 IP 和全球 IP 一一对应,这种方式下拥有 n 个全球 IP 地址的专用网内最多只可以同时有 n 台主机接入互联网。为了更有效地利用全球 IP 地址,现在常用的 NAT 转换表把传输层的端口号也用上了,使得多个专用网内部的主机共用一个全球 IP 地址。使用端口号的 NAT 也叫做网络地址与端口转换 NAPT
子主题
子主题
IP多播
特点
多播使用组地址—— IP 使用 D 类地址支持多播。多播地址只能用于目的地址,而不能用于源地址
永久组地址——由因特网号码指派管理局 IANA 负责指派
动态的组成员
IP多播需要两种协议
网际组管理协议IGMP
IGMP 并非在因特网范围内对所有多播组成员进行管理的协议
IGMP 不知道 IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上
IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组
多播路由器选择协议
多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化)。请注意,单播路由选择通常是在网络拓扑发生变化时才需要更新路由
多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去
多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络
IPV6
IPV6引进的主要变化
IPv6 仍支持无连接的传送所引进的主要变化如下 更大的地址空间。IPv6 将地址从 IPv4 的 32 位 增大到了 128 位 扩展的地址层次结构 灵活的首部格式 改进的选项 允许协议继续扩充 支持即插即用(即自动配置) 支持资源的预分配
IPv6 数据报的目的地址可以是以下三种基本类型地址之一
单播(unicast) 单播就是传统的点对点通信
多播(multicast) 多播是一点对多点的通信
任播(anycast) 这是 IPv6 增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付其中的一个,通常是距离最近的一个
从IPV4到IPV6的过渡
双协议栈
隧道技术
第五章
运输层协议概述
进程间的通信
运输层向它上面的应用层提供通信服务运输层属于面向通信部分的最高层,同时也是用户功能中的最底层;只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发时只用到下三层的功能
真正进行通信的实体是在主机中的进程,是一台主机中的进程和另一台主机中的进程在交换数据,严格来讲,两台主机进行通信就是两台主机中的应用进程互相通信
运输层的作用
网络层与运输层的区别:网络层为主机之间提供逻辑通信,运输层为应用进程之间提供端到端的逻辑通信
基于端口的复用和分用功能:
复用:在发送方不同的应用进程都可以使用同一个运输层协议传送数据
分用:接收方的运输层在剥去报文的首部后能把这些数据正确交付目的应用进程
屏蔽作用
运输层向高层屏蔽了网络核心的细节,使应用进程看见的就好像在两个运输层实体之间有一条端到端的逻辑通信信道
两种不同的运输协议
用户数据报协议(UDP)
在传送数据之前不需要先建立连接,远地主机收到UDP报文后,不需要给出确认,UDP不提供可靠交付,但某些情况却是最有效的工作方式
传输控制协议(TCP)
提供面向连接的服务,在传送数据前先建立连接,数据传送结束后要释放连接;TCP不提供广播或多播服务;TCP提供可靠的、面向连接的运输服务,因此增加了很多开销
用户数据报协议UDP
特点:无连接、首部开销小、最大努力交付,应用层要保证可靠性
首部: 8B,分别为源端口号、目的端口号、长度、校验和
校验:采用首部、伪首部、数据进行二进制反码运算求和再取反
特点
UDP是无连接的:发生数据之前无需建立连接,减少了开销和发送数据之前的时延
UDP使用尽最大可能交付:不保证可靠交付,因此主机不需要维持复杂的连接状态表
UDP是面向报文的:UDP对应用层交下来的报文不做处理,直接加上首部后就转发,若报文过长,IP层会进行分片,可能使IP层效率降低
UDP没有拥塞控制:因此网络出现拥塞不会使源主机发送速率降低,对实时应用很重要
UDP支持一对一、一对多、多对一和多对多的交互通信
UDP的首部开销小:只有8字节,比TCP的20字节首部短
首部格式
伪首部:只在计算校验和时使用,不参与数据传输 源端口:源端口号;在需要对方回信时选用;不需要时用全0 目的端口:目的端口号;在终点交付报文时必须使用 长度:UDP用户数据报的长度,最小值是8(仅有首部) 校验和:检测UDP用户数据报在传输过程中是否有错。有就丢弃
传输控制协议TCP
特点:有连接、一对一、提供可靠交付、全双工通信、面向字节流
首部:20B,源端口、目的端口、序号、确认号等控制信息
连接管理:三次握手建立,四次握手释放
可靠传输机制
序号:用来保证数据能有序提交给应用层
确认:确认号为期特收到的下一个报文段第一个字节的序号
超时
超时:计时器到期还没收到确认则重传对应报文重传
冗余确认:当收到失序报文时向发送端发送冗余ACK
流量控制:在确认报文中设置接收窗口rwnd的值来限制发送速率
拥塞控制
原理:根据自己估算的网络拥塞程度设置cwnd的值来限制发送速率
方法
(慢开始:当cwnd<ssthresh时,每收到一个报文段的确认cwnd加1拥塞避免:当cwnd>ssthresh时,每经过一个往返延时cwnd加1
快重传。当收到连续的三个重复的ACK,直接重传对方期待的报文(快恢复:当收到连续的三个冗余ACK,令ssthresh=cwnd= cwnd
拥塞处理: ssthresh置为原cwnd的一半,cwnd置1
TCP的主要特点
(1)TCP是面向链接的运输层协议:在使用TCP协议之前,必须先建立连接
(2)每一条TCP链接只能有两个端点,每一条TCP连接只能是点对点的
(3)TCP提供可靠交付的服务:保证数据无差错、不丢失、不重复、按序到达
(4)TCP提供全双工通信:允许通信双方任何时候都能发送数据
(5)面向字节流:流指的是流入到进程或从进程流出的字节序列;TCP把应用程序交下来的数据仅看作一串无结构的字节流
TCP的连接
套接字:套接字=(IP地址:端口号) IP地址拼接上端口号,例如(192.168.1.1:80)
每一条TCP连接唯一被通信两个端点(两个套接字)所确定:
TCP连接::={socket1,socket2} = {(IP1:port1),(IP2:port2)}
TCP连接的端点不是进程,而是套接字
同一个IP地址可以由多个不同的TCP连接,而同一个端口也能出现在多个不同TCP连接中
三报文握手
最初两端TCP进程都处于关闭状态,开始时B的TCP服务器进程先创建传输控制块TCB,准备接受客户进程的连接请求,然后进入收听状态;
A的TCP客户进程也先创建TCB,然后打算建立TCP连接时,向B发送连接请求报文,这是首部中同步位SYN=1,同时选择一个初始序号seq=x,TCP规定,SYN报文段不能携带数据,但要消耗一个序号,这时TCP客户进程进入同步已发送状态;
B收到连接请求报文后,若同意建立连接,则向A发送确认。在确认报文中将SYN位和ACK位都置1,确认号时ACK=x+1,同时也为自己选择一个初始序号seq=y。这个报文段也不能携带数据,但同样消耗一个序号,这时TCP服务器进程进入同步收到状态
TCP客户进程收到B的确认后,还要向B给出确认。确认报文的ACK置1,确认号ack=y+1,而自己的序号seq=x+1。TCP规定,ACK报文段可以携带数据,但如果不携带数据则不消耗序号,这种情况,下一个数据报文段序号仍是seq=x+1。这时TCP连接已经建立,A进入已建立连接状态
B收到A的确认后,也进入已建立连接状态
四报文握手
起始时A和B都处于已建立连接状态
A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接,A把连接释放报文段首部的终止控制位FIN置1,序号seq=u,它等于前面已传送过的数据的最后一个字节的序号+1。这时A进入终止等待状态。FIN报文段即使不携带数据,也消耗一个序号
B收到连接释放报文后发出确认,确认号是ack=u+1,而这个报文自己的序号是v,等于B前面已传送过的数据的最后一个字节的序号+1。然后B进入关闭等待状态,TCP服务器进程通知高层应用进程,因而从A到B这个方向的连接就释放了,这时的TCP连接处于半关闭状态,即A已经没有数据要发送了,但B若发送数据,A仍要接受
A收到来自B的确认后,进入终止等待2状态,等待B发送的连接释放报文段
若B已经没有要向A发送的数据,应用进程就通知TCP释放连接,此时B发出的连接释放报文段FIN=1,假定现在B的序号为w,B还必须重复上次已发送过的确认号ack=u+1,此时B进入最后确认状态,等待A的确认
A在收到B的链接释放报文后,必须对此发出确认,在确认报文段中把ACK置1,确认号ack=w+1,而自己的序号时seq=u+1,然后进入时间等待状态。此时TCP连接还没有释放,必须经过时间等待计时器设置的时间2MSL后,A才进入关闭状态。
A等待2MSL时间的原因:
保证A发送的最后一个ACK报文段能够到达B
防止已失效的连接请求报文段出现在本连接中