计算机网络
定义:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
第一章·计算机网络和因特网
1.计算机网络的分类
按交换技术分类:电路交换网络、报文交换网络、分组交换网络 按覆盖范围分类:广域网WAN、城域网MAN、局域网LAN、个域网PAN 按使用者分类:公用网、专用网 按传输介质分类:有线网络、无线网络
2.计算机网络性能指标
比特:计算机中数据量的单位 ,也是信息论中信息量的单位,一个比特就是二进制数字中的一个1 或0 。
常用数据量单位: 8 bit = 1 Byte
K
B
=
2
10
B
KB = 2^{10}B
KB=210B
M
B
=
K
?
K
B
=
2
10
?
2
10
MB = K·KB = 2^{10} · 2^{10}
MB=K?KB=210?210
1.速率:连接在计算机网络上的主机在数字信道上传送比特的速率,称为比特率或数据率
常用数据率单位: bit/s(b/s,bps)
k
b
/
s
=
1
0
3
b
/
s
kb/s = 10^{3}b/s
kb/s=103b/s
2.带宽: 在计算机网络中的意义:用来表示网络的通信线路 所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率 ”
单位:b/s(kb/s,Mb/s,Gb/s,Tb/s)
3.吞吐量:表示在单位时间内通过某个网络(或信道口、接口)的数据量。 单位为bps(b/s) 吞吐量被将常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。 吞吐量受网络带宽或额定速率的限制。
4.时延:发送时延、节点处理时延、传输时延、传播时延 电磁波在不同介质中的传播时延(m/s):
自
由
空
间
(
3
×
1
0
8
)
,
铜
线
(
2.3
×
1
0
8
)
,
光
纤
(
2
×
1
0
8
)
自由空间(3\times10 ^{8}),铜线(2.3\times10^{8}),光纤(2\times10^{8})
自由空间(3×108),铜线(2.3×108),光纤(2×108)
发送时延 =
分
组
长
度
(
b
)
发
送
速
率
(
b
/
s
)
\frac{分组长度(b)}{发送速率(b/s)}
发送速率(b/s)分组长度(b)?
传播时延 =
信
道
长
度
(
m
)
电
磁
波
传
播
速
率
(
m
/
s
)
\frac{信道长度(m)}{电磁波传播速率(m/s)}
电磁波传播速率(m/s)信道长度(m)?
处理时延 = 一般不便于计算
5.时延带宽积 = 传播时延
×
\times
× 带宽 若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特。 时延带宽积又称以比特为单位的链路长度
6.往返时间RTT(Round-Trip time)
7.利用率 信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)。 网络利用率:全网络的信道利用率的加权平均
根据排队,当某信道的利用率增大时,该信道引起的时延也会迅速增加,所以信道利用率并非越高越好 令
D
0
D_{0}
D0?表示网络空闲时的时延,
D
D
D表示网络当前时延,
U
U
U表示利用率,那么可得以下公式:
D
=
D
0
1
?
U
D = \frac{D_{0}}{1 - U}
D=1?UD0??
8.丢包率 在一定时间范围内,传输过程中丢失的分组数量与总分组数量的比率。
3.计算机网络体系结构
OSI参考模型(从下到上):物理层、数据链路层、网络层、运输层、会话层、表示层、应用层
TCP/IP体系结构(从下到上):网络接口层、网际层、运输层、应用层
原理体系结构(从下到上):物理层、数据链路层、网络层、运输层、应用层
数据链路层、网络层、运输层在网路中的作用范围:
习题1:
习题2:
第二章·物理层
解决使用何种信号来传输比特的问题
物理层考虑的是怎样才能在链接各种计算机的传输媒体上传输数据比特流 物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么。
1.物理层协议的主要任务
机器特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置。 电气特性:指明在接口电缆的各条线上出现的电压的范围。 功能特性:指明某条先上出现的某一电平的电压表示何种意义。 过程特性:指明对于不同功能的各种可能时间的出现顺序。
2.传输媒体
传输媒体分为导引型传输媒体和非导引型传输媒体: 导引型传输媒体:双绞线、同轴电缆、光纤、电力线 非导引型传输媒体:微波通信、无线电波、可见光
光纤的优点:通信容量大、传输损耗小、抗电磁干扰强、保密性好、体积小、重量轻 光纤的缺点:割接需要专用设备、光电接口价格较贵
3.传输方式
串行传输,适用于远距离的数据传输 并行传输,适用于计算机内部的传输
同步传输:收发双方的时钟同步。 外同步(收发双方之间添加一条单独的时钟信号线), 内同步(发送端将时钟同步信号编码到发送数据中一起传输(例如曼彻斯特编码)) 异步传输:字节之间异步(字节之间的时间间隔不固定),字节中的每个比特仍然要同步(各比特持续时间是相同的)
单向通信(单工):例如收音机、广播 双向交替通信(半双工):对讲机 双向同时通信(全双工):电话
4.编码与调制
数字信号是离散信号,一般所指的数字信号是二进制数字信号,分别用两个不同的参量代表0和1,如+5V电压代表1,-5V电压代表0,或者以电流的通代表1,断代表0等,每一个数字信号叫比特。我们平时的任何信号,声音,图像,视频都能通过数字技术进行数字化,通常的步骤就是用高频脉冲信号进行抽样,再量化,编码,调制,然后传输。数字信号是在模拟信号的基础上经过采样、量化和编码而形成的。
模拟信号是指用连续变化的物理量所表达的信息,如温度、湿度、压力、长度、电流、电压等等,我们通常又把模拟信号称为连续信号,它在一定的时间范围内可以有无限多个不同的取值。电学上的模拟信号主要是指幅度和相位都连续的电信号,模拟信号就是用电流或电压的大小直接模拟被测量,如声音信号,用电流的频率直接反映声音的频率,电流的强弱直接反映声音的分贝值,模拟信号是连续的信号。
基带信号就是把数字信号不经过调制,直接进行传输,它区别于频带信号,频带信号是把基带信号加载在载波上传输,基带信号的频带很宽(理论上是无限宽),但由于带通原因,几乎不存在无限带宽的传输媒体,所以基带信号无法在普通介质上进行远距离传输,否则码间干扰和衰减无法使信号得到恢复,所以用载波对基带信号进行调制,减小带宽,可以使信号可靠传输,减小衰减,接受端再进行解调还原原来的数字信号。
码元:在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形 曼彻斯特编码和差分曼彻斯特编码: 基本调制方法:
混合调制:
5.信道的极限容量
奈氏准则:在假定理想情况下,为了避免码间串扰,码元传输速率是有上限的
理想低通信道的最高码元传输速率: 2W Baud = 2 码元/秒 理想带通信道的最高码元传输速率:W baud = W 码元/秒 (W:信道带宽,单位为Hz;Baud:波特,即 码元/秒)
码元传输速率又称为波特率、调制速率、波形速率或符号速率。他与比特率有一定关系: 1.当1个码元只携带1比特信息量时,则波特率(码元/秒)与比特率(比特/秒)在数值上是相等的; 2.当1个码元携带n比特的信息量时,则波特率转换成比特率时,数值要乘以n。
要提高信息传输速率(比特率),就必须设法使每一个码元能携带更多个比特的信息量。这需要采用多元制。
香农公式:带宽受限且有高斯白噪声干扰的信道的信道的极限信息传输速率。
c
=
W
×
l
o
g
2
(
1
+
S
N
)
c = W \times log_{2}(1 + \frac{S}{N})
c=W×log2?(1+NS?)
c : 信道极限信息传输速率(单位:b/s) W:信道带宽 S:信道内所传信号的平均功率 N:信道内的高斯噪声功率 S/N:信噪比,使用分贝(dB)作为度量单位
信
噪
比
(
d
B
)
=
10
×
l
o
g
10
(
S
N
)
(
d
B
)
信噪比(dB) = 10 \times log_{10}(\frac{S}{N})(dB)
信噪比(dB)=10×log10?(NS?)(dB)
信道带宽或信道中信噪比越大,信息极限传输速率越高
第三章·数据链路层
解决分组在一个网络(或一段链路)上的传输问题
1.数据链路层概述
链路(Link) 就是从一个结点到相邻节点的一段物理线路,而中间没有任何其他的交换结点。 数据链路(Data Link) 是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。 数据链路层是以帧为单位传输和处理数据。
2.封装成帧
1.封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之称为帧。 (1)帧头和帧尾中包含重要的控制信息。 (2)帧头和帧尾的作用之一就是帧定界。 2.透明传输是指数据链路层对上层交付的传输数据没有任何限制 ,就好像数据链路层不存在一样。 (1)面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输。 (2)面向比特的物理连使用比特填充的方法实现透明传输。
3.采用零比特填充法 ,也就是在帧的数据部分每五个1 后面插入一个0 ,这样做确保了帧定界在整个帧中的唯一性。
4.为了提高帧的传输效率,应当使帧的数据部分长度尽可能大些 .考虑到差错控制等多种新宿,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU (Maximum Transfer Unit)
3.差错检测
实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1 可能会变成 0 ,而0 也可能变成1 。这称为比特差错 。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate) 。
使用差错检测码 来检测数据在传输过程中是否产生了比特差错,数据链路层所要解决的重要问题之一。
以太网MAC帧和PPP帧中的FCS 字段为帧检验字段 。
1.奇偶校验:在待发送的数据后面添加1位奇偶校验位 ,使整个数据(包括所添加的校验位在内)中1的个数为奇数(奇校验)或偶数(偶校验) 。 (1)如果奇数个位发生误码 ,则奇偶性发生变化,可以检查出误码 ; (2)如果偶数个位发生误码 ,则奇偶性不发生变化,不能检查出误码(漏检) ;
2.循环冗余校验CRC(Cyclic Redundancy Check) (1)收发双方约定好一个生成多项式G(x); (2)发送方基于带发哦是那个的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输; (3)接收方通过生成多项式来计算收到的数据是否产生了误码。 举例:
3.检测码只能检测出帧在传输过程中出现了差错,并不能定位错误,因此无法纠正错误。 要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。 循环冗余校验CRC 有很好的检错能力(漏检率非常低 ),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层 。
4.可靠传输的基本概念----ARQ自动重传请求协议
1.使用差错检测技术 (例如CRC),接收方的数据链路层就可检测出帧在传输过程中是否产生了误码 (比特错误)。
2.数据链路层向上层提供的服务类型: (1)不可靠传输服务 :仅仅丢弃有误码的帧 ,其他什么也不做; (2)可靠传输服务 :想办法实现发送端发送什么,接收端就收到什么 3.一般情况下,有线链路 的误码率比较低,为了减少开销,并不要求数据链路层 向上提供可靠 传输服务。即使出现了误码,可靠传输的问题由其上层处理。 4.无线链路 易受到干扰,误码率较高,因此要求数据链路层 必须向上层提供可靠 传输服务。
5.可靠传输的实现机制
可靠传输 并不局限于数据链路层,其他各层也可选择实现可靠传输
1.停止–等待协议SW(Stop-and-Wait) (1)接收端检测到数据分组有误码时,将其丢弃并等待发送方的超时重传。但对于误码率较高的点对点链路,为使发送方尽早重传 ,也可给发送方发送NAK分组 (2)为了让接收方能够判断所收到的数据分组是否有重复的,需要给数据分组编号 。由于停止-等待协议的停等特性,只需1个比特编号 就够了,即编号0 和1 。 (3)为了让发送方能够判断所收到的ACK分组是否是重复的,需要给ACK分组编号 ,所用比特数量与数据分组编号所用比特数量一样 。数据链路层一般不会出现ACK分组迟到的情况,因此在数据链路层实现停止-等待协议可以不用给ACK分组编号 。 (4)超时计时器设置的重传时间 应仔细选择。一般可将重传时间选为略大于“从发送方到接收方的平均往返时间”
(5)停止----等待协议:
信道利用率 =
数
据
帧
的
发
送
时
延
数
据
帧
的
发
送
时
延
+
端
到
端
的
往
返
时
延
\frac{数据帧的发送时延}{数据帧的发送时延+端到端的往返时延}
数据帧的发送时延+端到端的往返时延数据帧的发送时延?
2.回退N帧协议GBN 视频讲解
3.选择重传协议(Selective Request)
6.点对点协议PPP
点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。
1.PPP协议的帧格式: 2.透明传输 (1)面向字节的异步链路采用插入转义字符的字节填充法:
(2)面向比特的同步链路采用插入比特0的比特填充法: 3.PPP帧的差错检测
7.媒体接入控制-----静态划分信道
1.基本概念: 2.(1)信道复用:
频分复用: 时分复用: 光分复用: 码分复用: 复用是将单一媒体的频带资源划分成很多子信道,这些子信道之间相互独立,互不干扰。从媒体的整体频带资源上看,每个子信道只占用该媒体频带资源的一部分。
多址(更确切地应该称为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所用的移动通信系统基本上都属于这种情况。相反,在信道永久性地分配给用户地应用中,多址是不需要地(对于无线广播或电视广播站就是这样)。
码分复用例题:
8.媒体接入控制-----动态接入控制-----随机接入
1.多址接入、载波监听、碰撞检测的基本概念: 2.碰撞检测举例: 3.CSMA/CD协议 (1)争用期 (2)最短帧长
(3)CSMA/CD—最大帧长
以太网V2的MAC帧最大长度为1518 字节。
802.1Q帧最长字节1522 字节
(4)截断二进制指数退避算法 (5)信道利用率 (6)帧接收流程 (7)CSMA/CD协议曾经用于各种总线结构以太网和双绞线以太网的早期版本中。现在的以太网基于交换机和全双工连接,不会有碰撞,因此没有必要使用CSMA/CD协议。
9.媒体接入控制—动态接入控制—随机接入
载波监听多址接入/碰撞避免 CSMA/CA
2.帧间间隔IFS(Inter Frame Space) 802.11标准规定,所有的站点必须在持续检测到信道空现一段指定时间后才能发送帧 ,这段时间称为帧间间隔IFS。
帧间间隔的长度取决于该站点要发送的帧的类型: (1)高优先级帧需要等待的时间较短,因此可优先获得发送权; (2)低优先级帧需要等待的时间较长。
常用的两种帧间间隔如下: (1)短帧间间隔SIFS (28us),是最短的帧间间隔,用来分隔开属于一次对话的各帧。 (2)DCF帧间间隔DIFS(128us) ,它比短帧间间隔SIFS要长的多,在DCF方式中用来发送数据和管理帧。
3.CSMA/CA协议的工作原理: 4.CSMA/CA协议的退避算法: 5.CSMA/CA协议的信道预约和虚拟载波监听 (1) (2) (3)信道预约:
例题1: 例题2:
10.MAC地址、IP地址以及ARP协议
MAC地址是以太网的MAC子层所使用的地址;------数据链路层 IP地址是TCP/IP体系结构网际层所使用的地址; ARP协议属于TCP/IP体系结构的网际层其作用是一直设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址;
1.MAC地址基本概念 2.MAC帧格式:
单播MAC地址,根据MAC帧中的目的地址字段发送数据。 广播MAC地址,在帧首部中的目的地址字段填入广播地址(FF-FF-FF-FF-FF-FF),源地址字段填入自己的MAC地址。
3.IP地址 IP地址是因特网上的主机和路由器所使用的地址,用于标识两部分信息: (1)网络编号 :标识因特网上数以万计的网络 (2)主机编号 :表示同一网络上不同主机(或路由器各接口)
4.数据包转发过程中IP地址与MAC地址的变化情况 5.地址解析协议ARP 工作原理:每台主机都有一个ARP高速缓存 ,其中存储IP地址以及其所对应的MAC地址 ,分为动态 和静态 两种类型。动态类型是自动获取 的,生命周期一般为2分钟 ;静态类型是手工配置 的,生命周期不确定。
工作流程举例:视频讲解
当一台主机A想要给另一台主机B发送信息,而A只知道B的IP地址,不知道其MAC地址。这时它首先会在它的ARP高速缓存表中查询B的MAC地址,若未找到则发送ARP请求报文(广播),ARP请求报文中MAC帧的目的地址字段是广播地址(FF-FF-FF-FF-FF-FF),报文内容为:A的IP地址和MAC地址,以及B的IP地址。当B收到A所发送的请求报文,B会将A的IP地址和MAC地址存入自己的ARP高速缓存中,然后给B发送ARP响应报文(单播)(ARP响应报文中MAC的目的地址字段是主机A的MAC地址),以告知A自己的MAC地址。而广播域内的其他主机,也会收到A的请求报文和B的响应报文,但是因为报文中MAC帧的目的地址字段与自身不符合,所以丢弃该报文。
11.集线器和交换机
1.交换机 2.集线器和交换机的区别
12.以太网交换机自学习和转发帧的流程
13.以太网交换机生成树协议的基本概念
14.虚拟局域网VLAN的基本概念
虚拟局域网VLAN(Virtual Local Area Network)是一种将局域网内的设备划分成与物理位置无关的逻辑组技术,这些逻辑组具有某些共同的需求 。
15.虚拟局域网VLAN的实现机制
1.IEEE802.1Q帧对以太网的MAC帧进行了扩展,插入了4字节的VLAN标记
VLAN标记的最后12个比特 称为VLAN标识符VID ,他唯一的标志了以太网帧属于哪一个VLAN。
VID的取值范围是0 ~ 4095(0 ~
2
12
?
1
2^{12} - 1
212?1) 0和4095都不用来标识VLAN,因此用于表示VLAN的VID的有效取值范围是1 ~ 4094 .
802.1Q帧是交由交换机处理,而不是用户主机 (1)当交换机收到普通的以太网帧 时,会将其插入4字节的VLAN标记转变为802.1Q帧,简称打标签 (2)当交换机转发802.1Q帧 时,可能 会删掉其4字节VLAN标记转变为普通以太网帧,简称去标签
交换机的端口类型:Access、Trunk、Hybrid(思科交换机无此端口) 交换机个端口的缺省VLAN ID
在思科交换机上称为Native VLAN,即本征VLAN 在华为交换机上称为Port VLAN ID,即端口VLAN ID,简记为PVID
Access端口: Trunk端口:
第四章·网络层
网络层的主要任务是实现网络互连 ,进而实现数据包在各网络之间的传输 。
要实现网络层任务,需要解决以下主要问题: (1)网络层向运输层提供怎样的服务(可靠传输 还是不可靠传输 ) (2)网络层寻址问题 (3)路由选择问题
1.网络层提供的两种服务
(1)面向连接的虚电路服务
(2)无连接的网络服务
2.IPV4地址概述
在TCP/IP体系中,IP地址是一个最基本的概念。 IPV4地址 就是给因特网上的每一台主机(或路由器)的每一个接口 分配一个在全世界范围内是唯一的32比特的标识符 。
分类编址的IPV4地址 例题:
3.IPV4划分子网
从主机号借用一部分作为子网号。 32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号 子网掩码使用连续的比特1来对应网络号和子网号 子网掩码使用连续的比特0来对应主机号 将划分子网的IPV4地址 与其相应的子网掩码 进行逻辑与运算 就可得到IPV4地址所在子网的网络地址
例题: 默认子网掩码是指在未划分子网的情况下使用的子网掩码
A类地址:255.0.0.0 B类地址:255.255.0.0 C类地址:255.255.255.0
4.无分类编制的IPV4地址
划分子网在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网 因为其地址空间太小 并没有得到充分使用 ,而因特网的IP地址仍在加速消耗,整个IPV4地址空间面临全部耗尽的威胁 。
为此,因特网工程任务组IETF又提出了采用无分类编址的方法来解决IP地址紧张的问题,同时还专门成立IPV6工作组负责研究新版本IP以彻底解决IP地址耗尽问题
1993年,IETF发布了无分类域间路由选择CIDR 的RFC文档: CIDR消除了传统的A类、B类和C类地址,以及划分子网的概念 ; CIDR可以更加有效地分配IPV4的地址空间 ,并且可以在新的IPV6使用之前允许因特网的规模继续增长。
CIDR:
例题: 路由聚合 (构造超网)
5.IPV4地址的应用规划
1.定长的子网掩码FLSM(容易造成IP地址的浪费) 2.变长的子网掩码VSLM: 分配原则 :每个子块的起点位置不能随意选取,只能选取块大小整数被的地址作为起点。建议先给大的子块分配。 举例:
4.IP数据报的发送和转发过程
IP数据报的发送和转发包含以下两部分: (1)主机发送IP数据报 (2)路由器转发IP数据报
举例: 用户为了能让本网络中主机的与其他网络中的主机通信,必须给本网络指定一个路由器,由该路由器帮忙转发。所指定的路由器也被称为默认网关。可以将路由器接口的IP地址,指定给该接口所直连网络中各主机作为默认网关。
源主机如何知道目的主机是否与自己在同一个网络?若不在同一网络如何转发?
1.将自身IP地址与地址掩码进行与操作,得到自己的网络地址 2.将目的主机的IP地址与源主机的IP地址进行与操作,若结果和源主机的网路地址不相等,则说明源主机和目的主机不在同一个网络。这时源主机和目的主机间的通信属于间接交付,需要路由器转发IP数据报。反之则为直接交付,由交换机转发IP数据报。
路由器收到IP数据报后如何转发?
1.检查IP数据报首部是否出错。若出错,则直接丢弃该IP数据报并通告源主机;若没有出错,则进行转发。 2.根据IP数据报的目的地址在路由表中查找匹配的条目: 若找到匹配的条目,则转发给条目中指示的的下一跳; 若找不到,则丢弃该IP数据报并通告源主机。
路由器会隔离广播域,不对广播进行转发,这样可以避免广播风暴,防止浪费网络资源
6.静态路由配置
静态路由配置是指用户或网络管理员使用路由器的相关命令给路由器人工配置路由表 。
这种人工配置方式简单、开销小。但`不能及时适应网络状态(流量、拓扑等)的变化。 一般只在小规模网络中采用。
使用静态路由配置可能出现以下导致 产生路由环路 的错误
配置错误 聚合了不存在的网络 网络故障
静态路由配置举例: 路由器可以通过接口的IP地址和地址掩码,可以自动得出各接口所在的网络。若目的网络下一跳不是路由器地址,则通过接口直接转发IP数据报给该网络中的某个主机,这属于直接交付。
默认路由 :是一种特殊的静态路由,当路由表中与数据包目的地址没有匹配的表项时,数据包将根据默认路由条目进行转发。默认路由在某些时候是非常有效的,例如在末梢网络中,默认路由可以大大简化路由器的配置,减轻网络管理员的工作负担。
对于在路由表中有相同下一跳的不同目的网络的路由条目,可以用一条默认路由来代替。默认路由条目中的目的网络地址为0.0.0.0,地址掩码也为0.0.0.0,CIDR形式为0.0.0.0/0.
特定主机路由 :目的网络为特定主机的IP地址,特定路由的网络前缀最长,路由最具体。默认路由的网络前缀最短,路由最模糊。
多条路由可选时,最长前缀匹配 。
静态路由配置错误导致路由环路:
为了防止IP数据报在路由环路中永久兜圈 ,在IP数据报首部设有生存时间TTL 字段。 IP数据报进入路由器后,TTL字段的值减1 。若TTL的值不等于0 ,则被路由器转发,否则被丢弃。
聚合了不存在的网络而导致路由环路: 针对上述问题,我们可以在路由表中添加针对所聚合、不存在的黑洞路由。 根据最长前缀匹配原则,若下一跳为不存在的网路地址,会选择黑洞路由,这样可以避免路由环路。
7.路由选择协议概述
路由选择分为静态路由选择 和动态路由选择
因特网采用分层次 的路由选择协议: 域间路由选择采用外部网关协议EGP 域内路由选择采用内部网关协议IGP
路由选择协议的分类: 路由器的基本结构: 路由表:
8.路由信息协议RIP的基本工作原理
路由信息协议RIP 是内部网关协议IGP中最先得到广泛使用的协议之一,其标准文档为RFC 1058.
RIP要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录。这是一组举例,称为距离向量D-V 。
RIP使用跳数 作为度量来衡量到达目的网络的距离。
路由器到直连网络的距离定义为1; 路由器到非直连网络的距离定义所经过的路由器数加1。 允许一条路径最多只能包含15个路由器。“距离”等于16时相当于不可达。因此,RIP只适用于小型互联网。
RIP基本工作原理:
RIP的基本工作过程举例:
RIP协议的路由条目的更新规则: RIP存在坏消息传得慢 的问题:
9.开放最短路径优先OSPF协议
使用OSPF的每个路由器都会产生链路状态通告LSA 。LSA中包含以下内容:
直连网络的链路状态信息 邻居路由器的链路状态信息 LSA被封装在链路状态更新分组LSU 中,采用洪范法 发送。
使用OSPF的每个路由器都有一个链路状态数据库LSDB ,用于存储LSA 通过各路由器洪范发送封装有自己LSA的LSU分组,各路由器的LSDB最终将达到一致。 OSPF有五种分组类型:
OSPF基本工作过程: OSPF在多点接入网络中路由器邻居关系的建立
选举指定路由器DR 和备用的指定路由器BDR 所有的非DR/BDR只与DR/BDR建立邻居关系 非DR/BDR之间通过DR/BDR交换信息
为了使OSPF能够用于规模很大的网络 ,OSPF把一个自治系统再划分为若干个更小的范围,叫做区域 (Area)
10.边界网关报文协议BGP的基本工作原理
BGP发言人交换网络可达性的信息 (要到达某个网络所要经过的一些列自治系统) 当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据 所采用的策略 从收到的路由信息中找出到达各自自治系统的较好的路由 。也就是构造出树形结构、不存在回路的自治系统连通图 。
BGP-4 的四种报文: 例题:
11.IPV4数据报的首部格式
版本 :占4比特 ,表示IP协议的版本。通信双方使用的IP协议必须一致。 首部长度 :占4比特 ,表示IP数据报首部的长度。该字段的取值以4 字节为单位。
最小十进制取值为5,表示IP数据报首部只有20字节 固定部分; 最大十进制取值为15,表示IP数据报首部包含20字节固定部分和最大40字节可变部分。
可选字段 :长度从1 字节到40 字节不等。用来支持排错、测量及安全等措施。 可选字段增加了IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理IP数据报的开销。实际上可选字段很少被使用。
填充字段 :确保首部长度为4字节 的整数倍。使用全0 进行填充。
区分服务 :占8比特 ,用来获得更好的服务。只有在使用区分服务时,该字段才起作用。一般情况下不使用该字段。
总长度 :占16比特 ,表示IP数据报的总长度(首部+数据载荷)。最大取值为十进制的65535,以字节为单位。 标识 :占16比特 ,属于同一个数据报的各分片数据报应该具有相同的标识。 标志 :占3比特 ,各比特含义如下:
DF位:1 表示不允许分片;0 表示允许分片。 MF位:1 表示“后面还有分片”;0 表示“这是最后一个分片” 保留位:必须为 0 。
片偏移 :占13 比特,指出分片数据报的数据载荷部分偏移其在数据报的位置有多少个单位。片偏移以8 各字节为单位。
举例: 生存时间TTL :占8比特 ,最初以秒为单位,最大生存周期为255秒;路由器转发IP数据报时,将IP数据报首部中的该字段的值减去IP数据报在本路由器上所耗费的时间,若不为0就转发,否则就丢弃。 现在以跳数 为单位,路由器转发IP数据报时,将IP数据报首部中的该字段的值减1 ,若不为0 就转发,否则就丢弃。生存时间TTL字段的作用:防止IP数据报在网络中永久兜圈 。
协议 :占8比特 ,指明IPV4数据报的数据部分是何种协议数据单元。 首部检验和 :占16比特 ,用来检测首部在传输过程中是否出现差错。比CRC检验码简单,称为因特网检验和。 IP数据报每经过一个路由器都需要重新计算首部检验和,因为某些字段的取值会发生变化,由于IP层本身并不提供可靠传输的服务,并且计算首部检验和是一项耗时的操作,因此,在IPV6中,路由器不再计算首部检验和。
源IP地址和目的IP地址 :各占32比特 ,用来填写发送该IP数据报的源主机的IP地址和接收该IP数据报的目的主机的IP地址。
例题:
12.网际控制报文协议ICMP
为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP
主机或路由器使用ICMP来发送差错报告报文 和询问报文
ICMP报文被封装在IP数据报 中发送。
ICMP差错报告报文共有五种形式: 以下情况不应该发送ICMP差错报告报文 :
对ICMP差错报告报文不再发送ICMP差错报告报文 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文 对具有多播地址的数据报都不发送ICMP差错报告报文 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
常用的ICMP询问报文有以下两种: 回送请求和回答 :ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达 及了解其有关状态。
时间戳请求和回答 :ICMP时间戳请求报文是请某个主机或路由器回答当前的日期和时间。这种询问报文用来进行时钟同步和测量时间 。
ICMP应用举例: 分组网间探测PING :用来测试主机或路由器间的连通性;应用层直接使用网际层的ICMP(没有通过运输层的TCP或UDP);使用ICMP回送请求和回答报文。
跟踪路由 :
13.虚拟专用网VPN与网络地址转换NAT
虚拟专用网VPN(Virtual Private Network) :利用公用的因特网 作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网。由于IPV4地址的紧缺,一个计够能够申请到的IPV4地址数量远小于本机构所拥有的主机数量。因此,虚拟专用网中的各主机所分配的地址应该是本机构可自由分配的专用地址 ,而不是需要申请的、在因特网上使用的公有地址。
网络地址转换NAT :NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源 。 该转换方法存在一个问题:如果NAT路由器具有N个全球IP地址,那么至多只能有N个内网主机能够同时和因特网上的主机通信 。
解决办法NAPT方法:
对于一些P2P网络应用,需要外网主机主动与内网主机进行通信,再通过NAT时会遇到问题,需要网络应用自己使用一些特殊的NAT穿越技术来解决问题。
另外,由于NAT对外网屏蔽了内网主机的网络地址,能为内网的主机提供一定的安全防护。
第五章·运输层
运输层直接为应用进程间的逻辑通信提供服务
1.运输层概述
运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就好像是两个运输层实体之间有一条端到端的逻辑通信信道
根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输协议,即面向连接的TCP 和无连接的UDP ,这两种协议就是本章要讨论的主要内容。
2.运输层端口号、复用与分用的概念
运行在计算机上的进程使用进程标识符PID 来标志 不同的操作系统采用不同格式的进程标识符。
为了使运行不同操作系统的计算机的应用进程之间能够进行网络通信,就必须使用统一的方法队TCP/IP体系的应用进程进行标识 。
TCP/IP体系的运输层使用端口号 来区分应用层的不同应用进程。
端口号只具有本地意义 ,即端口号只是为了标识本计算机应用层中的个进程 ,在因特网中,不同计算机中的相同端口号是没有联系的 。
发送方的复用和接收方的分用: TCP/IP体系的应用层常用协议所使用的运输层熟知端口号 :
3.UDP和TCP的对比
UDP向上层提供无连接不可靠传输服务,适用于IP电话、视频会议等实时应用 。
TCP向上层提供面向连接的可靠传输服务,适用于要求可靠传输的应用,例如文件传输。
4.TCP流量控制
所谓流量控制(flow control)就是让发送方的发送速率不要太快,要让接收方来得及接受 利用滑动窗口 机制可以很方便地在在TCP连接上实现对发送方地流量控制
TCP发送方的发送窗口 = min[自身拥塞窗口,TCP接收方的接收窗口]
举例:
零窗口探测报文段也有重传计时器。
5.TCP拥塞控制
在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏。 这种情况就叫做拥塞 。
在计算机网络中的链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。
若出现拥塞而不进行控制 ,整个网络的吞吐量将随输入负荷的增大而下降。
四种拥塞控制算法的基本原理:
1.慢开始: 2.拥塞避免 3.快重传
4.快恢复 举例:
6.TCP超时重传的选择
超时重传时间的选择很复杂: 不能直接使用某次测量得到的RTT样本来计算超时重传时间RTO
利用每次测量得到的RTT样本,计算加权平均往返时间RTTs (又称为平滑的往返时间)
RTTs1 = RTT1 新的RTTs = (1 -
α
\alpha
α)
×
\times
× 旧的RTTs +
α
\alpha
α
×
\times
× 新的RTT样本 在上式中,0
≤
\leq
≤
α
\alpha
α < 1: 若
α
\alpha
α很接近于0,则新RTT样本对RTTs的影响不大; 若
α
\alpha
α很接近于1,则新RTT样本对RTTs的影响不大;
已成为建议标准的RFC6298推荐的
α
\alpha
α值为1/8,即0.125
针对出现超时重传时无法测准往返时间RTT的问题, 使用Karn算法:报文段每重传一次,就把超时重传时间RTO增大一些。 典型做法是新RTO的值取为旧RTO值得2倍。
例题:
7.TCP可靠传输得实现
TCP基于以字节为单位得滑动窗口 来实现可靠传输 虽然发送方得发送窗口是根据接收方的接收窗口设置的,但在同一时刻,发送方的发送窗口并不总是和接收方的接收窗口 一样大。
网络传送窗口需要经历一定的时间滞后,并且这个时间还是不确定的。
发送方还可能根据网络当时的拥塞情况适当减小自己的发送窗口尺寸
对于不按序到达的数据应如何处理 ,TCP并无明确规定
如果接收方把不按序到达的数据一律丢弃,那么接收窗口的管理将会比较简单,但这样做对网络资源的利用不利,因为发送方会重复传送较多的数据
TCP通常对不按序到达的数据是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程
TCP的通信是全双工通信 。通信中的每一方都在发送和接收报文段。因此,每一方都有自己的发送窗口和接收窗口。
8.TCP运输连接管理—TCP连接的建立
TCP连接的建立要解决以下三个问题: 1.使TCP双方能够确知对方的存在; 2.使TCP双方能够协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等) 3.使TCP双方能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。
TCP使用“三报文握手” 建立TCP连接: 1.最初两端的TCP进程都处于关闭状态; 2.TCP服务器首先创建传输控制块 ,用来存储一些信息,比如TCP连接表、指向发送和接收缓存的指针、指向重传队列的指针、当前的发送和接收序号等; 3.TCP服务器进入监听状态 ,TCP服务器进程被动等待TCP客户进程的连接请求,因此称为被动打开连接 。 4.TCP客户进程也是首先创建传输控制块 ,然后在打算建立连接时,向TCP服务器进程 发送TCP连接请求报文段 ,并进入同步状态 。 5.TCP连接请求报文段的SYN = 1 ,表明这是一个TCP连接请求报文段;seq 作为TCP客户进程的所选择的初始序号. 6.由于TCP连接是由TCP客户进程 主动发起的,因此称为主动打开连接 。 7.TCP服务端进程收到TCP连接请求报文段后,若同意连接,则向TCP客户进程发送TCP连接请求确认报文段 ,并进入同步已接收状态 。 8.TCP客户进程收到TCP连接请求确认报文段后 ,还要向TCP服务段发送一个TCP确认报文段 。并进入连接已建立状态 。 9.TCP服务端收到TCP确认报文段 后,进入连接已建立状态 。
三报文握手 可以防止已失效 的连接请求报文段又突然传到TCP服务器
9.TCP运输管理—TCP连接释放
TCP通过四报文挥手 来释放连接
1.客户端发出连接释放报文段 ,终止控制位FIN=1 ,初始序列号seq=u ,它等于前面已传送的数据的最后一个字节的序号加1。客户端进入FIN-WAIT-1状态 。FIN报文段会消耗一个序号 。
2.服务端收到请求,发出确认报文段 ,确认位ACK=1 ,确认号ack=u+1 ,初始序列号seq=v,它等于前面已传送的数据的最后一个字节的序号加1。服务端进入CLOSE-WAIT状态 。客户端收到服务端的确认后,进入FIN-WAIT-2状态 。TCP连接进入半关闭状态 ,客户端不会再发送数据;服务端还有数据没有传输完,得继续发送数据,客户端必须接收数据,所以下面的seq=w 。
3.服务端发出连接释放报文段 ,终止控制位FIN=1 ,初始序列号seq=w ,确认位ACK=1,确认号ack=u+1。服务端进入LAST-ACK状态 。
4.客户端收到服务端的连接释放报文段 后,发出确认报文段 。确认位ACK=1 ,初始序列号seq=u+1 ,确认号ack=w+1 。客户端进入TIME-WAIT状态 。服务端收到客户端的确认后,进入CLOSED状态 ,客户端等待2MSL (最长报文段寿命)后,进入CLOSED状态 。
为什么要等待2MSL?
第一,为了保证客户端发送的最后一个确认报文段到达服务端。 第二,防止下一个新的连接,出现本次旧的连接请求。
保活计时器 :
10.TCP报文段的首部格式
源端口 :占16比特 ,写入源端口号,用来标识发送该TCP报文段的应用进程
目的端口 :占16比特 ,写入目的端口号,用来标识接收该TCP报文段的应用进程
序号 :占32比特 ,取值范围[0,
2
32
?
1
2^{32} - 1
232?1],序号增加到最后一个后,下一个序号就又回到0.作用:指出本TCP报文段数据载荷的第一个字节的序号。 在数据载荷部分,每个字节数据都有序号,如下图所示,序号应为第一个字节数据的序号(即166).
确认号 :占32比特 ,取值范围[0,
2
32
?
1
2^{32} - 1
232?1],确认号增加到最后一个后,下一个确认号就又回到0。指出期望收到对方下一个TCP报文段的数据载荷的第一个字节的序号,同时也是对之前收到的所有数据的确认。
若确认号 = n ,则表明到序号n - 1 为止的所有数据都已正确接收,期望接收序号为n的数据。
确认标志位ACK :取值为1 时确认号字段才有效;取值为0 时确认号字段无效。 TCP规定,在连接建立后所有传送的TCP报文段都必须把ACK置1 。
数据偏移 :占4比特 ,并以4字节为单位。用来指出TCP报文段的数据载荷部分的起始处距离TCP报文段的起始处有多远 。这个字段实际上是指出了TCP报文段的首部长度。
首部固定长度为20字节,因此数据偏移字段的最小值为(0101) 首部最大长度为60字节,因此数据偏移字段的最大值为(1111)
保留 :占6比特 ,保留为今后使用,但目前应置为1
窗口 :占16比特 ,以字节为单位。指出发送本报文段的一方的接收窗口 。 窗口值作为接收方让发送方设置其发送窗口的依据。 这是以接收方的接收能力控制发送方的发送能力,称为流量控制。 窗口值应该从拥塞窗口和接收窗口中取小者。
校验和 : 占16比特 ,检查范围包括TCP报文段的首部和数据载荷两部分。
同步标志位SYN :在TCP连接建立时用来同步序号。
终止标志位FIN :用来释放TCP连接。
复位标志位RST :用来复位TCP连接 。 当RST=1时,表明TCP连接出现了异常,必须释放连接,然后重新建立TCP连接。RST置1还用来拒绝一个非法的报文段或拒绝打开一个TCP连接。
推送标志位PSH :接收方的TCP收到该标志位为 1 的报文段会尽快上交应用进程 ,而不必等到接收缓存都填满后再向上交付。
紧急标志位URG :取值为1时紧急指针字段有效;取值为0时紧急指针字段无效。
紧急指针 :占16比特 ,以字节为单位,用来指明紧急数据的长度。
选项 :增加选项可以增加TCP报文段的功能,功能如下: 填充 :确保报文段可以被4整除
第六章·应用层
解决通过应用进程交互来实现特定网络应用的问题
1.应用层的概述
应用层是计算机网络体系结构的最顶层 ,是设计和建立计算机网络的最终目的 ,也是计算机网络中发展最快的部分。
2.客户/服务器(C/S)方式和对等(P2P)方式
C/S方式:
P2P2方式:
3.动态主机配置协议DHCP
动态主机配置协议DHCP提供了一种机制,称为即插即用连网。这种机制允许一台计算机加入新网络时可自动获取IP地址灯网络配置信息而不用手工参与 。
DHCP主要使用以下报文来实现其功能:
DHCP DISSCOVER:DHCP发现报文 ; DHCP OFFER:DHCP提供报文 ; DHCP REQUEST:DHCP请求报文 ; DHCP ACK:DHCP确认报文 ; DHCP NACK:DHCP否认报文 ; DHCP RELEASE:DHCP释放报文 ;
DHCP报文在运输层使用UDP协议封装
DHCP客户使用的UDP端口号为68 DHCP服务器使用的UDP端口号为67
DHCP客户在未获取到IP地址时使用地址0.0.0.0
在每个网络都设置一个DHCP服务器会使DHCP服务器的数量太多。因此现在是使每一个网络至少有一个DHCP中继代理(通常是一台路由器) ,它配置了DHCP服务器的IP地址信息,作为各网络中计算机与DHCP服务器的桥梁。
DHCP工作过程:
4.域名系统DNS
因特网的域名空间: 域名解析的过程: 1.递归查询 2.迭代查询
例题1: 例题2:
5.文件传送协议FTP
FTP基本工作原理—主动模式 FTP基本工作原理—被动模式
例题:
6.电子邮件
电子邮件系统采用客户/服务器模式 电子邮件系统的三个主要组成构件:用户代理 、邮件服务器 ,以及电子邮件所需的协议 。
用户代理 是用户与电子邮件系统的接口,又称为电子邮件客户端软件 邮件服务器 是电子邮件系统的基础设施。因特网上所有的ISP都有邮件服务器,其功能是发送和接收邮件 ,同时还要负责维护用户的邮箱。 协议包括邮件发送协议(例如SMTP) 和邮件读取协议(POP3、IMAP)
简单邮件传送协议SMTP的基本工作原理:
常用的邮件读取协议: 基于万维网的电子邮件: 例题:
7.万维网WWW
万维网WWW(World Wide Web)并非某种特殊的计算机网络 。它是一个大规模的、联机式的信息储藏所,是运行在因特网上的一个分布式应用 。
万维网利用网页之间的超链接 将不同网站的网页连结成一张逻辑上的信息网。
浏览器最重要的部分是渲染引擎 ,也就是浏览器内核 。负责对网页内容进行解析和显示。
为了方便地访问在世界范围的文档,万维网使用统一资源定位符URL 来指明因特网上任何种类“资源”的位置。
URL一般形式由以下四个部分组成:
<协议>://<主机>:<端口号>/<路径>
万维网的文档: 超文本传输协议HTTP(HyperText Transfer Protocol) : HTTP定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及万维网服务怎样把万维网文档传送给浏览器。
HTTP/1.0 : HTTP/1.1 :
HTTP的请求报文格式 : HTTP请求报文中的方法:
HTTP响应报文格式 :
使用Cookie 在服务器上记录用户信息 Cookie 的工作过程:
万维网缓存与代理服务器:
例题1: 例题2:
视频讲解 文章中的图片均来自此视频讲解,感谢up主湖科大教书匠 图侵删。
|