谢书作为考纲,也是需要好好看看的,接下来时间把谢书再过一遍把。

首先列一下考纲吧,然后把重点知识列出来。

计算机网络体系结构

计算机网络概述

  • 计算机网络的概念、组成与功能

什么是计算机网络?

计算机网络是由若干节点和链路组成的互连的网络。

计算机网络的组成?

硬件软件的视角:是由软件硬件及其对应的协议所组成。

从工作方式来看:可以由核心部分边缘部分组成(核心部分负责路由互联,边缘部分负责提供服务)。

从组成上看:由通信子网资源子网组成(通信子网由传输介质和路由器组成,资源子网由端系统的服务软件集合组成)。

  • 计算机网络的分类

计算机网络可以分为哪几类?

从拓扑上来看,有星型,总线型,环形等等。

从范围来看,有个域网,局域网,广域网,城域网(一般不用)。

从使用者来看,有公用网和专用网的区别。

  • 计算机网络的标准化工作及相关组织

一个标准成为互联网标准需要经过哪些步骤?

起草->建议标准->标准

计算机网络体系结构与参考模型

  • 计算机网络分层结构

解释一下计算机网络为什么要设计层次结构:
其实就是讲分层结构的优点,直接套话上去——层次之间独立性较好,可维护性较强。

  • 计算机网络协议、接口、服务等概念

解释一下这些概念:

协议就是实行相关功能的一种标准,控制对等的实体双方。

在层次结构模型中,向上提供服务,向下使用接口。

  • ISO/OSI参考模型和TCP/IP模型

网络层次模型:

OSI标准:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。

TCP/IP标准:网络接口层,网络层,传输层,应用层。

讲述原理的标准:物理层,数据链路层,网络层,传输层,应用层。

概论习题

  • 局域网和广域网的差异主要在于他们所使用的的协议不同
  • 局域网和广域网互联是通过路由器实现的
  • 计算机网络的拓扑结构主要取决于它的通信子网
  • 广播式网络可以不需要网络层
  • 世界上第一个计算机网络ARPAnet
  • 数据单元在不同层次的称呼:①传输层:TCP报文段,UDP数据报 ②网络层:分组、IP数据报 ③数据链路层:帧 ④物理层:比特
  • 因特网采用的核心技术:TCP/IP技术
  • 数据链路层功能:保证数据正确的顺序和完整性
  • ISO/OSI参考模型网络层支持无连接和面向连接的通信;TCP/IP模型在网络层仅有无连接通信,而在传输层支持无连接和面向连接通信。这是两类协议栈的区别。
  • TCP/IP体系结构中的网络接口层与OSI体系结构中的物理层与数据链路层对应。

物理层

通信基础

  • 信道、信号、宽带、码元、波特、速率、信源与信宿等基本概念

解释一下基本概念:

信源和信宿是通信双方的实体,中间以信道分隔。带宽指信道上的最大数据传输速率(波特率),码元指的是一个符号,一个符号根据它出现的情况,可能携带的信息量是不一样的,波特是指单位时间内传码的数量,速率一般指信息率,即 $波特率 乘 每个符号的信息量。

  • 奈奎斯特定理与香农定理

解释一下两个定理:

奈奎斯特定理指的是在理想低通无噪干扰的情况下,极限码元传输速率等于两倍的带宽,此时得到的是波特率,要得到信息率还得乘每个符号的信息量才得到信息率,即 $V=2W\log_2{X}$,其中X表示码元的不同种类。

香农定理指的是在高斯白噪干扰的情况下,极限信息传输速率为 $V=W\log_2(1+\frac{S}{N})$ 在这里 $\frac{S}{N}$ 为信噪比,即信息功率与噪音功率的比值。信噪比如果使用 db (分贝)作为单位,那么需要进行一定换算。 $xxxdb=10\log_{10}(\frac{S}{N})$,假如我们知道信噪比是 30db 的话,对应了真实 $\frac{S}{N}=1000$

如果两个公式都能算出一个值,那么取最小作为极限传输速率。

  • 编码与调制

编码:把具象的信息(比如电灯开关,有磁无磁)转换为抽象的信息(0/1)。

调制:在模拟信道中传输数字信号。

  • 电路交换、报文交换与分组交换

电路交换:最早的应用就是以前的固定电话。想一想它的优缺点,首先它非常稳定,并且延迟很低。但是缺点是,你不能多线程,你同时只能和一个人打电话,并且会有占线的问题。延时低(比特流直接传输),传输速率高,但是信道利用率低(因为你不说话的时候仍然占用了信道资源)。

报文交换:分组交换的前身,特点是存储转发,会先保存收到的整个报文,提取信息,查表转发。由于存储转发,所以时延高,传输效率会比较低(因为数据封装添加了首部),但是整个信道利用率变高了。

分组交换:允许报文被分割,报文交换中延时高的缺点得到了解决,但是传输效率变得更低(因为每个分组都要添加首部),但是信道利用率变得更高,但是报文碎片会失序,需要一定手段排序。

以上需要注意区分信道利用率和传输效率的区别。

  • 数据报与虚电路

数据报和虚电路的概念:

其实就是有连接和无连接的区别。

数据报就是我们平时所说的分组,它的特点是无序到达,相同源相同目的的分组不一定走相同的路由,是无连接的,流量控制只能依赖两端抑制,适应故障能力强。

虚电路相当于可靠的连接,会在两端分配一定的物理链路,所有分组都会走这条链路,对于长时间大量交换数据的端系统来说,效率有所提升,但是适应故障能力很差,一旦中间节点损坏会使得所有经过这个节点的虚电路链路全部失效。

传输介质

  • 双绞线、同轴电缆、光纤与无线传输介质

了解这些传输介质以及特性:

双绞线:最常用的古老传输介质,由两根采用一定规则并排绞合的、互相绝缘的铜导线组成。绞合可以减少对相邻导线的电磁干扰。通信距离一般为几千米到数十千米。距离太远时,对于模拟传输,需要使用放大器放大衰减的信号;对于数字传输,要用中继器将失真的信号整形。

同轴电缆:50Ω同轴电缆主要用于传输基带数字信号,又称基带同轴电缆,在局域网中应用广泛;75Ω同轴电缆主要用于传送带宽信号,又称宽带同轴电缆,主要用于有线电视系统

光纤:利用光导纤维传递光脉冲来进行通信。光线信号通信的带宽范围极大,利用的是光的全反射特性多模光纤只适合于近距离传输;单模光纤适合远距离传输。

下面的属于非导引型介质

无线电波:具有较强的穿透能力,可以传输很长距离。用于,无线手机通信、计算机网络中的无线局域网(WLAN)等。向所有方向传播信号,极大简化了通信连接

微波红外线和激光:具有很强的方向性。卫星通信利用微波。因为微波具有很强的方向性,在地面传输距离有限,超过一定距离后要使用中继站

  • 物理层接口的特性

请说出物理层接口的几种特性以及具体含义:

机械特性:跟外貌有关的。

电气特性:跟电压幅值有关的。

功能特性:指明某种状态的意义。

过程特性:所谓过程,分先后,如果描述了一个过程那么就是过程特性。

物理层设备

  • 中继器

中继器的作用和性质:

玩红石的都知道,中继器就是延长信号用的,遵循5-4-3规则。

  • 集线器

集线器的作用和性质:

简单地将收到的信号广播给除了发送接口以外的所有接口。

物理层习题

  • 分组交换包含虚电路和数据报

  • 虚电路有永久型虚电路和交换型虚电路,前者不会取消连接

  • 卫星通信的优点通信容量大,距离远、覆盖广,缺点是保密性差、端到端的传播时延长。

  • 一根同轴电缆构成的以太网,则主机间的通信方式为半双工。(传统以太网采用广播的方式发送信息,避免冲突)

  • 二进制是电气特性

  • 中继器不具备存储转发功能,它不能连接两个具有不同速率的局域网并且两端一定要使用同一协议

  • 如果网络设备具有存储转发的功能,那么就可以认为它能连接两个不同的协议

  • 集线器带宽平分,例:5台计算机连接到一台10Mb/s的集线器上,则每台计算机分得的平均带宽为2Mb/s

  • 集线器连接的网络在拓扑结构上属于星形

  • 以太网主机间通信有全双工与半双工两种模式

数据链路层

数据链路层的功能

  • 数据链路层实现的功能

请讲述数据链路层的功能:

提供点到点的通信,提供封装成帧的功能。它还可以具有差错检测和可靠交付等功能(实际上无)。

  • 组帧

介绍一下组帧:

即封装成帧的功能,讲上层的IP数据报封装成帧。

  • 差错控制

请讲解一下检错码和纠错码。

字面意思,检错码就是能够识别到某个帧是错误的,而纠错码具有可以纠错的能力。

常见的检错码有CRC循环冗余校验(也能纠错),因特网检验和。

常见的纠错码即汉明码。

流量控制与可靠传输机制

  • 流量控制、可靠传输与滑动窗口机制

分别介绍这几个概念:

流量控制即可以在网络拥挤的时候抑制发送速率。可靠传输机制通过超时重传,出错重传等机制实现,保证接收方正确接收无误的数据。滑动窗口机制即通过一个窗口限制发送方,以至于发送方不会传输过多的帧,传输过多的帧对于接收方来说,如果缓存会导致内存紧缺,如果丢弃会降低有效信息的传输速率。

  • 停止-等待协议

请讲讲停等协议:

停等协议即一次发送一个包,发送完成之后等待,确认完成之后发送下一个包。实现简单,没有乱序的问题,但是信道利用率非常低。

  • 后退N帧协议(GBN)

请讲讲GBN协议:

后退N帧协议,采用累积确认,按序确认。可以不必停留字面意思,只需记住这两点即可。

按序确认:某一时间段只接受指定序号的数据报。

累积确认:因为是按序的,所以即便之前的ACK出现了丢失,后面ACK的到来也可以弥补这个缺陷。(假如4的ACK丢失,但是收到了5的ACK,那么视为4也被接收,不需要重传)

后退N帧是因为真的出现了丢失报文的情况,可能后面的n-1个包都准确被接收到了(由于按序,会被丢弃),但是就是因为当前包丢失而使得后面的所有包都白传了,信道条件恶劣的情况,GBN协议甚至比停等协议还要差。

  • 选择重传(SR)

请讲讲SR协议:

接收方仅重传那些它怀疑在接收方出错(即丢失或受损)的分组而避免了不必要的重传,不采用按序接收,可以失序接收,因此不能使用累积确认,接收方会有一定的开销(缓存分组)。

和GBN协议的优点比一下,会发现GBN的优点会成为这里的劣势。因为之前说过了,累计确认的优势是当ACK出现丢失时不必要重传,但是不采用累计确认的话,ACK的丢失会导致接收方收到冗余分组。

接收方对于收到的冗余分组,需要再次发送ACK确认,因为冗余分组可能是发生了 ACK 丢失或者是高延迟引发的重传,对于后者的情况,我们不必重新发送 ACK,但是前者的情况我们必须重新确认,否则会导致发送方一直处于超时而无限重传这个分组(前者情况当没有重新确认的时候),权衡之下,本着宁可错杀千人,不能放过一个的原则(因为放过那一个人的后果很严重),收到冗余分组必须重传ACK再次确认。

接收窗口和发送窗口必须小于等于序号大小的一半,证明过程如下(应该也不是很重要):

如果窗口大小和序号大小一致,很容易出现接收方不知道这个序号是一个新分组还是重传,因为都有可能。

这里其实只要窗口大小<=序号大小的一半即可。因为考虑最极端情况,滑动窗口一次滑动最多不超过自身的长度,因此我接收的分组一定是最新分组。这里举一个极端的例子:

1
0 1 2 3 4 5 6 7 8 0 1 2 3 4

假设窗口大小为 5,那么此时 0 1 2 3 4 是待发送的。我假设 1 2 3 4 都已经被确认完毕,此时 0 到达,但是在 ACK 抵达发送端之前产生了超时,而接收端因为接受了 0 1 2 3 4 滑动窗口已经移动到 5 6 7 8 0,那么此时我再接收到一个 0 我就不知道是重传还是新分组了。

所以我需要保证我一次滑动的距离不能有和我之前在窗口中相同序号的分组。

证明一下:假设序号大小为 n,窗口大小为 p。

假设当前所在分组为 i,此时的最后一个分组是 i+p-1,那么我一次最多滑动 p 的距离,此时第一个分组是 i+p,最后一个分组是 i+2p-1。那么观察上面的序列号,如果两个序号逻辑位置相差为 n+1,那么这两个序号是相同的

不难发现,我需要让我的最右端点,落不到这个 n+1 那个点的距离。

也就是 i+n+1>i+2p-1 稍微移一下得到了 $p<\frac{n+2}{2}$,等价于 $p\le\frac{n}{2}$,也就是 p 要小于等于 n 的一半。

证毕!

介质访问控制

  • 信道划分

频分多路复用、时分多路复用、波分多路复用、码分多路复用的概念和基本原理?

FDM,TDM,WDM,CDM分别对应单词 frequent,time,weave,code。

频分复用:不同频率上的信号同时进行传输不会相互干扰。

时分复用:每个时间间隔仅允许某个系统发送帧。(特殊地,统计时分复用 STDM 可以根据发送频率分配时隙)

波分复用:特指光的频分复用。

码分复用:n个相互正交的编码,判断有无该信号需要对接收到的信息和自己做内积,得出结果为 0 表示什么也没发送,结果为1表示发送了1,结果为-1表示发送了0。具体例子可以看这篇文章

  • 随机访问

ALOHA协议,CSMA协议,CSMA/CD协议,CSMA/CA协议的概念和基本原理?

ALOHA:发生碰撞时以 p 的概率重传,1-p 的概率在下一个时隙继续做本操作。也就是说,重传间隔服从几何分布。

CSMA:用人话来讲——说话之前先看看别人有没有讲话。

CD:碰撞检测——如果与其他人一起开始说话那么自己马上停止。

CA:碰撞避免(一般在无线网络中出现)——察颜悦色,确定其他人没有想说话的欲望。

  • 轮询访问

令牌传递协议的概念:

令牌在环形拓扑结构中轮流传递,拥有令牌的才能发言。

局域网

  • 局域网的基本概念与体系结构

什么是局域网?

由一系列简单拓扑构成的计算机网络,网络为一个单位组织所拥有。同时局域网可能会有一个网关路由器具有公网IP,负责连接互联网。

局域网的体系结构:

从拓扑来看,可以使用星型,总线型,环形。

  • 以太网与IEEE802.3

简述IEEE802.3以太网:

在这个标准中,以太网的数据链路层被分为媒体接入控制层(MAC)和逻辑链路控制层(LLC),使用CSMA/CD协议,链路编码为曼彻斯特编码

  • IEEE802.11

简述IEEE802.11标准:

IEEE802.11是无线以太网(WIFI)的标准,拓扑是星型结构,使用CSMA/CA协议。

  • 令牌环网的基本原理

令牌环网是指环形拓扑网络,标准:IEEE802.5,持有令牌的计算机发送帧的一个协议。

广域网

  • 广域网的基本概念

简单介绍广域网:

广域网是指地理范围在10到几千公里范围的网络,广域网是互联网的核心部分。

  • PPP协议

请详细介绍PPP协议:

PPP协议是一种数据链路层的点对点协议,使用较为广泛。一般用户通过ISP接入互联网就是使用PPP协议完成的。

这个协议除了需要解决封装成帧和差错检测等问题,还要兼顾透明传输的问题。

PPP帧:

协议字段中,0x0021表示IP数据报,0xC021表示链路控制协议(LCP)数据,0x8021表示网络控制协议(NCP)数据。

末尾还有一段CRC校验序列。

  • HDLC协议

谢书根本没有讲,记住它的中文名称:高级数据链路控制(High-level Data Link Control)。

数据链路层设备

  • 网桥的概念及其基本原理

概念:网桥是一个连接局域网的设备,根据MAC帧查表,然后转发或者过滤。

基本原理:如果检测到目的MAC端口为发送端口,那么丢弃(过滤),否则向另一个端口转发。

  • 局域网交换机及其工作原理

数据链路层设备,本质相当于一个多端口网桥,具有很多优点,即插即用,具有自学习功能,且能很好地连接异构的局域网,能够隔离冲突域。

数据链路层习题

  • CSMA/CD适用于有线局域网,CSMA/CA适用于无线局域网
  • CSMA和CSMA/CD没有确认机制只有CSMA/CA具有确认机制
  • 提高信噪比可以减弱随机差错(由热噪声引起的信道固有的)
  • PPP是在SLIP基础上发展的都是链路层协议
  • 纠错的海明码距为2d+1,检错的海明码距为d+1
  • 局域网(以太网)工作在OSI参考模型的物理层和数据链路层,而广域网则工作在下三层。
  • UTP无屏蔽双绞线,所支持最大长度是100米。可以使用网桥进行长度延伸。
  • 网卡是用来实现以太网协议的,主要工作在物理层和数据链路层。
  • 以太网采用
  • 物理层主要功能:信号编译和译码;比特的接收和传输
  • 数据链路层:
    • MAC子层(介质访问控制子层):组帧和拆帧、比特差错检测、寻址、竞争处理
    • LLC子层(逻辑链路控制子层):建立和释放数据链路层的逻辑连接、提供与高层的接口、差错控制、给帧加序号。
  • 以太网发送数据”广播“给总线上的所有结点(包括发送结点
  • 吉比特以太网物理层有两个标准一个采用光纤一个采用4对UTP5类线
  • VLAN的划分:(基于交换技术,使用软件划分)①基于端口;②基于MAC地址;③基于IP地址
  • 以太网的MAC协议提供无连接的不可靠服务。或者数据链路层为以太网提供无确认的无连接服务。
  • 广域网是单一的网络不使用路由器连接其他网络。(一般连接主机或路由器)
  • 局域网不等于以太网,以太网是局域网的一种实现形式。
  • 传输时延:路由器>网桥>以太网交换机>集线器
  • 虚拟局域网VLAN也是使用以太网交换机,但是可以可以隔离广播域。但是一般情况下都认为无法隔离。同时VLAN多了4个字节。VLAN以太网帧的最大帧长为1522B
  • 交换机速率计算=端口数×相应的端口速率(×2全双工)
  • 网桥没有流量控制功能,适用于小网络(不是大的复杂网络)

网络层

网络层的功能

  • 异构网络互连

请讲解一下异构网络互联的意义:

在IP网络之前,其实有出现过很多种类的网络(链路层),它们有着自己的协议规则,IP协议完美地使得它们可以正常通信,无论是用以太网或者是其它种类的局域网,只要符合IP协议,那么它们就能够通信,正是因为这个特点使得IP得到了迅速的推广。

  • 路由与转发

讲解一下路由与转发:

路由即某两个确定的主机之间的路径,转发即在路由器中根据匹配的IP规则,选择向某个网络端口转发包。

  • 拥塞控制

拥塞控制的意义:

当网络较为拥塞时,表现为排队处理延时非常长,此时需要一定的手段来抑制发送方的发送速率,如果不加以节制的话,会导致网络越来越拥塞。

路由算法

  • 静态路由与动态路由

解释一下静态路由和动态路由:

静态路由需要网络管理员手动配置路由表,运行过程中不会被改变。

动态路由即可以随着链路变化的状态动态地更新自己的路由表,从而选择最合适的路由。

  • 距离-向量路由算法

介绍一下距离-向量算法

RIP协议所使用的方法,每隔一段时间,路由器会向周围路由器告知它自己所知道的信息(通常是网段-距离这样的信息),通过一定的时间之后,所有的路由器会得到一个通向其它网段的最佳的路由。采用一个不等式进行收敛,即如果我自己表所示的路径大于其它路由器发给我的路径长度加上我距离该路由器长度时,那么我就会更新通向该网段的路由距离和转发端口。

具有好消息传得快,坏消息传得慢的特点(收敛慢)。

  • 链路状态算法(LS)

介绍一下链路状态算法:

OSPF协议所使用的算法,它用到了图论中单源最短路的思想。

  • 层次路由

讲解一下为什么有层次路由?

将互联网抽象成一张图显然过于理想化,让每个路由器都保存到其它所有路由器的路由信息显然是不切实际的。因此可以将网络进行划分,形成区域自治系统,区域自治系统内只有少量计算机,区域自治系统之间使用其它算法,区域自治系统内部使用上述的算法,这便是层次路由的思想。

IPv4

  • IPv4分组

请介绍一下IPv4分组的一些重要字段。

这里不需要知道哪个字段在哪个字节,而是需要我们明白各个字段的作用。

  • 版本字段:指明ip的版本,一般是4,IPv6该字段是6

  • 首部长度:这4比特标识了首部的长度,因为首部长度必须是4的倍数,所以这里能表示4~64中4的整倍数。

  • 服务类型:能够区分实时数据报(比如IP电话应用)和非实时数据报(比如FTP),里面还有两个bit是可以告诉主机网络发生了拥塞。

  • 数据报长度(包括首部):占16个bit,理论上长度是65535,但是实际上,数据报一般不超过1500字节,因为这个长度相当于链路层的payload长度。

  • 标识、标志、片偏移:这三个字段与所谓IP分片有关。 标识可以理解位序号,标志有三位,一位被保留,剩下两位分别是禁止分片标志(被设置表示禁止被分片,如果不符合MTU的大小,路由器会报告错误)和还有更多标志(被设置表示该数据报后面还有数据),片偏移(13位),一定是8的整倍数,因此可以表示 8~65535 中任意 8 的整倍数。

  • 寿命(Time-To-Live):这个字段防止数据报出现环路,每当路由器处理数据报的时候,会把TTL-1,减为0的时候,数据报会被路由器丢弃。

  • 协议:指明了该数据报的上层传输层协议,是使用UDP还是TCP,UDP数据报此字段值为 17,TCP数据报此字段值为6,OSPF为89。

  • 首部检验和:同TCP的吧,不过不同的是,因为存在TTL字段,所以每次需要修改一下检验和再发出去,并且,因为在传输层的两个协议中,都有对自己的检验和字段,因此这里的检验和只需要检验首部即可。

  • 源地址和目的地址:字面意思

  • IPv4地址与NAT

介绍一下IPv4的地址特点

32位长度,一般用点分十进制表示,4个数字每个不超过255,第一个数字 < 127 的是 A 类地址,默认掩码为 255.0.0.0,在128-191之间的是B类地址,192-223之间的是 C 类地址,剩余为保留地址和组播地址。

介绍一下NAT。

在IPv4协议中,有三块地址是内网地址,分别是 10.0.0.0/8,172.16.0.0/12,192.168/16,内网要想访问公网需要网关路由器具备 NAT 功能,即在流量出的时候,使用路由器端口作为内网某主机某端口的映射,便于公网服务器能够将内容正确转发回内网服务器上,该路由器会在内部维护一个NAT表作为映射,在进或者出的时候改变目的地址或者源地址。

  • 子网划分、路由聚集、子网掩码与CIDR

介绍一下子网划分:

一般来说,进行子网划分会选择一个大小刚好的子网掩码,除去网络地址(主机号全0)和广播地址(主机号全1)。例如刚好要划分62个主机我们最好给32-6=26位的子网掩码。

子网掩码:

IP地址与子网掩码相与得到自己的网络号,通常根据子网掩码我们可以推测出该网络可以容纳多少计算机。

CIDR:

无类别域间路由选择,让网络地址不仅仅局限于 A 类,B 类,C 类,而是可以根据自己的需要选择可变长度的子网掩码。当使用子网寻址时,32比特的IP地址被划分为两部分,并且也具有点分十进制数形式a. h. c. d/x,其中 x 指示了地址的第一部分中的比特数。前x位叫做该IP地址的网络部分,被称为地址前缀,这样的话在设计路由表的时候就只需要考虑前面的x比特,大大减少了所需的存储空间,使用单个网络前缀通告多个网络的能力称为路由聚合,即具有相同网络前缀,但是子网掩码长度不一样的多个网络,一般来说,较短子网掩码的网络可以包括较长子网掩码的网络。然后就是,多个子网匹配的话会给到最长的前缀(尽可能小的网络)。而剩余的32-x比特可以认为是区分子网的内部设备所使用的。

  • ARP协议、DHCP协议与ICMP协议

ARP协议:

地址解析协议,用于通过IP地址寻找MAC地址的,便于二层的分组交换,它会广播一个消息:谁具有MAC地址 AA:AA:AA:AA:AA:AA,请告诉 IP 地址为 192.168.1.1 的主机。

ARP属于网络层协议

DHCP:

用于动态地址分配,分配过程如下:

  1. DHCP discover:客户端广播DHCP请求,请求发现 DHCP 服务器,此时客户没有IP地址,也不知道DHCP服务器的IP地址,所以它把源地址设置为 0.0.0.0,目的地址设为广播地址 255.255.255.255,为了防止错乱,会在DHCP discover 中加上一个ID。
  2. DHCP offer:DHCP服务器接收到请求之后,同样需要广播回一个我预备给你IP地址池中的其中一个地址。
  3. DHCP request:收到地址之后,客户端觉得没问题,可以用这个地址,于是广播给 DHCP 服务器,我准备用这个地址,至于这里为什么是广播原因有 2,第一是告诉DHCP服务器我准备用你的地址,第二也告知其它服务器我用了那个地址,如果没有用你们的地址请你们把原先给我准备的地址释放掉吧。
  4. DHCP ACK:DHCP服务器收到你的请求之后,再次跟你确认,确定租好了以及租约时间,此时才真正完成了DHCP地址的获取。

此外,DHCP是应用层协议,以UDP承载,DHCP服务一般在 67 端口,而获取IP地址通常走 68 端口(客户端口)

ICMP:

因特网控制信息协议,主要用于报告IP层的一些错误。

ping,traceroute等命令都是通过 ICMP 报文实现的,ICMP可以用于发现某个主机,也可以追踪主机路由,通过依次设置TTL=1,2,3,4……,这样在通向该主机的每一个路由器都会报告一次错误(ICMP通告TTL过期),收集完这些信息后我们也得到了通向该主机的路由,通常ICMP出错不会再进行报告防止出现死循环。

IPv6

  • IPv6的主要特点

请介绍IPv6的主要特点:

地址空间更大肯定是一个最重要的特点,其次出现了任播,任播就是把指定数据报发送给预期服务器中的任何一个,首部长度固定 40 字节,其它的都差不多。

  • IPv6地址

有128位的地址,几乎不会被用尽。地址用冒号分割 8 个四位十六进制数,每组最前面的0可以省略不写, ::可以用于表示连续的很多零但只能用一次。

路由协议

  • 自治系统

解释一下为什么有自治系统?

其实前面提到过,为了更好地进行层次管理,减轻核心路由器的压力。

  • 域内路由与域间路由

域内路由和域间路由的差异?

域内路由指在自治系统中的路由,域间路由即不同自治系统的主机通信路由。

  • RIP(路由信息协议)路由协议

讲解一下RIP协议

使用距离向量向量算法的路由协议,距离仅仅视为两个主机之间经过的路由器数目,对于RIP协议来说,16表示网络不可达。特点是实现简单,适合小型的自治系统。

UDP承载,应用层协议

  • OSPF(开放最短路优先)路由协议

讲解一下OSPF协议

使用链路状态算法,具有安全,支持层次结构等特点,多条路开销一样不会单一选择一条路。

IP直接承载,网络层协议,协议字段为89。

BGP(边界网关协议)路由协议

讲解一下BGP协议

通过TCP传输,应用层协议,主要在自治系统之间选择合适路由。

IP组播

IP组播的概念

解释一下概念:

IP组播指的是把指定信息发送给指定的一组IP地址的主机。

组播地址

IP组播地址:

D类地址都是,即1110开头的ip地址

移动IP

移动IP概念

解释一下概念:

我们现在所使用的数据漫游就用到了移动IP的概念,移动IP技术是指移动结点以固定的网络IP地址实现跨越不同网段漫游功能

移动IP通信过程

介绍一下通信过程:

  1. 移动结点在本地时,采用传统的TCP/IP方式进行通信。
  2. 移动结点漫游到外部网络后,仍使用固定的IP地址进行通信,移动结点需要向本地代理注册当前的位置地址,即转交地址(外部代理分配的)。
  3. 本地代理收到转交地址后,会构建一条通向转交地址的隧道。将IP数据报通过隧道发生到转交地址。
  4. 转交地址解除隧道封装,恢复原始IP分组,最后送达至移动结点。
  5. 移动结点在外网通过外网访问时,可以直接访问不需要通过本地结点。
  6. 移动结点移动到新的外网,需要向本地代理更新转交地址。
  7. 移动网络回到本网络,则注销其转交地址。使用TCP/IP直接进行通信。

网络层设备

  • 路由器的组成和功能

介绍下路由器的组成和功能:

简单点讲,路由器是由转发表和端口组成,功能就是为分组选择合适的端口转发。

  • 路由表与路由转发

路由表就是路由器内部的一张转发表,收到分组之后根据转发表匹配,选择合适的端口转发出去,这里需要注意,多个条目匹配转发子网掩码最长的一项。

网络层习题

  • 路由器在互联多个局域网的结构中,要求每个局域网物理层、数据链路层、网络层(IPv4、IPv6)协议可以不同,而高层协议必须相同。因为路由器向传输层及以上层屏蔽下层的具体实现。
  • 路由器交付分为直接交付和间接交付。属于同一子网的直接交付,不同子网的间接交付。直接交付不涉及路由器,间接交付的最后一个路由器肯定是直接交付。
  • 私有IP地址可以作为单播地址。(个人理解在一局域网内部可以作为源IP和目的IP)
  • 主机号至少为2位,否则除了无法分配IP地址。
  • NAT表项需要管理员添加,无法自动添加。表项没有则丢弃分组。
  • ICMP是网络层协议,数据封装在IP分组中进行发送。
  • 注意进行分片时,必须保证数据部分是8B的整倍数。(片偏移为整数,单位为8B)
  • 同一原始IP分组的分片具有相同标识。
  • 对于ABC类网络在进行子网划分时,子网数量为2^n-2(子网号不能全为0或1)。避免和主网络广播地址和主网络地址冲突。CIDR划分的子网数量为2^n。
  • 路由器为域名服务器设定了一个特定的路由表项【域名服务器公有IP,路由转发过程中的目的IP不变】,因此该路由表项中的子网掩码应为255.255.255.255(只有和全1的子网掩码相与时才能完全保证和目的IP地址一样,从而选择该特定路由)。
  • 路由器到互联网的路由实质上相当于一个默认路由,一般为0.0.0.0/0。子网掩码也为0.0.0.0(任何不匹配的IP分组是添加该表项)
  • 交换机不改变MAC地址。在同一局域网内MAC地址不变,只有经过路由器跨局域网时MAC地址才会转变。如果同一局域网中AB两主机进行通信,AB之间具有多个交换机则源MAC地址为A的MAC地址,目的MAC地址为B的MAC地址。
  • IPv6没有校验和字段
  • IPv6不支持分片。数据报太长则丢弃并发送指示IP分组太大ICMP报文
  • OSPF路由器发送的信息是路由表的部分信息与本路由器相邻的所有路由器的链路状态
  • 设计组播路由时,为了避免路由环路,会构造组播转发树
  • 多个单播仿真一个组播时,需要更多的带宽和更长的时延
  • 多播(组播)网络前四位1110

传输层

传输层提供的服务

  • 传输层的功能

简述传输层提供的功能:

  1. 提供端到端的数据传送,端到端指的是具体主机的某个具体进程。
  2. 提供面向连接或者面向无连接的数据传输服务。
  3. 提供差错检测
  4. 分用与复用,复用指的向下封装成IP包发送出去,分用指递交到具体进程。
  • 传输层寻址与端口

传输层如何寻址?

通过端口寻址,一般来说,一个端口同一时间只能给一个进程使用,但是这个进程可以建立多个TCP连接。

熟知端口号(0-1023):

应用程序 FTP TELNET SMTP DNS TFTP HTTP SNMP
熟知端口号 21 23 25 53 69 80 161

登记端口号(1024-49151),一般用于服务的分配,这个由计算机管理员自行决定。

客户使用的端口号(49152-65535),客户端发起连接时短暂使用的端口号。

  • 无连接服务与面向连接服务

讲解一下无连接和面向连接服务的区别:

面向连接服务通信之前必须先建立连接,通信结束后释放连接,提供可靠的传输服务。

无连接服务尽最大努力交付。

UPD协议

  • UPD数据报

首部只有八个字节,分别是源端口,目的端口四个字节和长度(总长度),因特网检验和四个字节,面向无连接,提供不可靠服务,尽最大努力交付。

  • UDP校验

讲解一下因特网检验和:

因特网检验和的具体方法是,将要检测的数据分为两个字节一组,如果不足则最后一个字节用 0 填充。随后每两个连续的字节做加法,需要注意的是,需要保证加法结果在 16 位内,如果最高位进位则当作最低位 1 来处理。最后得到一个结果取反则是检验和的值。在检验的时候,对所有的每两字节进行相加,如果最后得到的结果为全 1,则说明正确。

计算检验和的时候,需要在前面增加一些首部字段称为伪首部,添加的信息为源IP(4字节),目的IP(4字节),全0字段(1字节),协议号(1字节,UDP为17,TCP为6),长度(2字节)。

TCP的此字段也是如此。

TCP协议

  • TCP段

介绍一下TCP报文段:

  • 32 比特的序号字段(sequence number field)和32比特的确认号字段(acknowledgment number field)),这些字段被TCP发送方和接收方用来实现可靠数据传输服务。
  • 16 比特的接收窗口字段(receive window field),该字段用于流量控制。我们很快就会看到,该字段用于指示接收方愿意接受的字节数量。
  • 4 比特的首部长度字段(header length field),该字段指示了以 32 比特的字为单位的TCP首部长度。由于TCP选项字段的原因,TCP首部的长度是可变的。(通常,选项字段为空,所以TCP首部的典型长度是20字节。)
  • 可选与变长的选项字段(options field),该字段用于发送方与接收方协商最大报文 段长度(MSS)时,或在高速网络环境下用作窗口调节因子时使用。
  • 6 比特的标志字段(flag field)。ACK比特用于指示确认字段中的值是有效的。RSTSYNFIN比特用于连接建立和拆除。当PSH比特被置位时,就指示接收方应立即将数据交给上层。最后,URG比特用来指示报文段里存在着被发送端的上层实 体置为“紧急”的数据。紧急数据的最后一个字节由16比特的紧急数据指针字段(urgent data pointer field)指出。当紧急数据存在并给出指向紧急数据尾指针的时候,TCP必须通知接收端的上层实体。
  • TCP连接管理

介绍一下TCP连接是怎么管理的

TCP连接包含三个阶段:连接建立、数据传送和连接释放。解决三个问题:①使得双方能够确知对方的存在。②允许双方协商参数(如窗口最大值、时间戳等)。③能够对运输实体资源进行分配。TCP连接的是端口即为套接字。每条TCP连接的是唯一的两个端口。

建立:TCP规定SYN报文段不能携带数据,但是要消耗一个序号。第三步可以携带数据,若不携带数据则不消耗序号。服务器是在第二次握手完成资源分配,客户是在第三次握手完成资源分配的。

释放:FIN报文段即使不携带数据,也会消耗一个序号。发送FIN的一端不能再发送数据,即关闭了其中一条数据通路,但对方还可以发送信息。

  • TCP可靠传输

TCP是如何实现可靠传输的?

通过确认重传机制实现的可靠传输。

  • TCP流量控制与拥塞控制(重点)

讲一讲TCP的流量控制和拥塞控制:

慢启动开始阶段,会把 cwnd 置为1,每次的成功接收会使得 cwnd 翻倍。虽然叫慢启动,但是发送速度是程指数增长的。当遇到了超时事件的时候,会把 ssthresh 状态变量设置为拥塞窗口的一半,并把 cwnd 重新设置为1,并重新执行慢开始。

cwnd>=ssthresh 的时候,马上进入拥塞避免模式,因为此时贸然翻番可能会导致拥塞,因此这里我们每次成功收完一 cwnd 个ACK 之后会把 cwnd 的值加1。

如果检测到三个冗余 ACK 则会进入快速恢复模式。因为 TCP 采用选择重传协议实现可靠传输,收到三个冗余 ACK 说明出现了数据丢失,并且当前网络状况并不拥塞,立刻重传ACK指定的报文并进入快速恢复模式(而不是从满开始阶段重来一遍)。

传输层习题

  1. UDP校验和不是必需的,如果不使用校验和。则将校验和字段设置为0,如果计算校验和为0,将校验和字段全部置1。

  2. 传输层分用是接受方的传输层剥去报文首部后,能把数据正确交付到目的进程。即通过目的端口号进行实现分用。

  3. TCP是面向字节的对每个字节进行编号。但是并不是对每个字节进行确认。而是采用对报文段的确认机制。

  4. TCP连接后进行全双工的字节流传输。

  5. TCP重传要收到三次重复的ACK确认。

  6. 注意一下四次握手的过程。

  7. 最大吞吐量的计算:单位时间内传输的数据量。在带宽不限制的情况下,对于TCPTCP窗口尺寸大小/RTT Mb/s。

  8. RTT估计值
    $$
    RTT_{估计值}=(1-α)\times(旧RTT) + α\times(新的RTT样本).\例如:RTT=35ms,接下来收到的确认,相比于发送时间滞后了27ms,30ms,21ms,α=0.2 求:RTT新的估计值。 \RTT_1=(1-0.2)\times35+0.2\times27=33.4ms\RTT_2=(1-0.2)\times33.4+0.2\times30=32.7ms\RTT_3=(1-0.2)\times32.7+0.2\times21=30.4ms\即RTT_{估计值}=30.4ms
    $$

应用层

网络应用模型

  • 客户/服务模型

简述 C/S 模型:

C/S模型中,总是打开的主机叫服务器,它服务于许多来自其他称为客户机的主机请求。

一般需要特定的客户程序和服务程序才能很好地通信。

  • P2P模型

简述P2P模型:

每个主机既可以是客户端也可以是服务端,去中心化,但是容易造成网络拥塞。

DNS

  • 层次域名空间

  • 域名服务器

  • 域名解析过程

建议直接移步最新的文章

FTP

  • FTP协议的工作原理

介绍下FTP的工作原理:

解决不同计算机之间文件传输的功能比较困难,原因是文件系统的不一致,不同操作系统的命令也不一致,而FTP可以帮助屏蔽这一细节。

文件传输协议是因特网上使用的最广泛的文件传输协议。FTP提供交互式的访问允许客户指明文件的类型和格式,并允许文件具有存取权限。分控制连接和数据连接,控制信息带外传送。

  • 控制连接与数据连接

讲解一下控制连接和数据连接的工作过程:

FTP在工作时使用两个并行的TCP连接:一个是控制连接21号端口,一个是数据连接20号端口。也就是分离控制连接。

控制连接用来传送控制信息(如连接请求,传送请求等),并且控制信息都以7位ASCLL格式传送。控制连接在整个会话期间会一直保持打开。控制信息是带外传递的。

数据连接用来连接客户端和服务端的数据传送进程。数据传送进程实际上完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。

FTP 想要修改文件需要先在下载完整文件,修改后上传副本进行替换。NFS 可以打开远程文件并对特定位置进行读写操作。因此NFS只需要复制小部分,而不需要下载全部。

  • TFTP

讲解一下TFTP的特点:

TFTP传输文件的简单协议,基于UDP来实现的。简化版的FTP,只能从服务器上获取或写入文件,不能列出目录,不进行认证。

TELNET

  • TELNET协议的工作原理

简述TELNET的工作原理:

TELNET是一个简单的远程终端协议,TELNET具有适应不同操作系统差异的能力。TCP 连接,熟知端口号 23。

电子邮件

  • 电子邮件系统的组成结构

简述电子邮件系统的组成:

用户代理、邮件服务器和电子邮件使用的协议,如SMTP、POP3(或IMAP)等。

用户代理:用户与邮件系统的接口。至少具有撰写、显示和邮件处理功能,是一个运行在PC上的程序。

邮件服务器:功能是发送和接收邮件,同时还要向发信人报告邮件传送情况(已交付、被拒绝、丢失等)。采用C/S模式,但是可以互为客户和服务器。

邮件发送协议和读取协议:

  1. 发送协议:SMTP(推Push)
  2. 读取协议:POP3(拉Pull)
  • 电子邮件格式与MIME

简单介绍电子邮件格式:

电子邮件分首部主体内容两部分,首部又有 From,To,Subject(可选),分别代表发送方,接收方和主题。

什么是MIME?

多用途网际邮件扩充,SMTP只能传送ASCII字符,因此用了诸如Base64编码等方法使得SMTP能够发送二进制文件,诸如图片,视频等等。

  • SMTP协议与POP3协议

简单介绍SMTP和POP3协议:

简单邮件传输协议(SMTP)是一种提供可靠且有效的电子邮件传输协议,他控制两个互相通信的SMTP进程交换信息。客户/服务器模式,使用TCP连接25号端口。

邮局协议(POP3)是一个非常简单是功能有限的邮件读取协议,POP也使用客户/服务器的工作方式,在传输层使用TCP,端口号为110。POP有两种工作方式:“下载并保留”和“下载并删除”。下载并删除一旦读取就会删除。

WWW

  • WWW的概念和组成结构

请介绍WWW的概念和组成结构:

万维网(World Wide Web, WWW)是一个分布式、联机式的信息存储空间。采用客户/服务器的工作方式。

万维网内核部分的三个标准:

  • 统一资源定位符(URL):标识万维网上的各种文档
  • 超文本传输协议(HTTP):一个应用层协议,它使用TCP连接进行可靠的传输,HTTP是万维网客户和服务器程序之间交互所必须严格遵守的协议。
  • 超文本标记语言(HTML):文档结构的标记语言,使用一些约定的标记对页面上的各种信息、格式进行描述。
  • HTTP协议

简单介绍HTTP协议:

推荐移步本篇文章

SNMP

  • 网络管理的基本概念

简单介绍网络管理的基本概念

网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,应用层TCP连接

  • 使用SNMP进行网络管理

简单讲解管理过程:

被管理的设备运行SNMP服务程序,而管理程序运行SNMP客户程序,被管程序不断监听端口等待客户程序的命令。

P2P

  • P2P应用的工作方式

简单讲解P2P的工作方式:

大致应该是,该应用即可以主动发起连接,也可以等待被连接。

网络安全

  • 系统安全、网络安全基本原理

  • 基本加密算法适用方法与数字签名

上面两块推荐移步本篇文章

  • 访问控制、信息加密与基本攻击原理

基本攻击原理:

分主动攻击和被动攻击,被动攻击主要以监听信息为主,获取通信中的流量。主动攻击有篡改,恶意程序,拒绝服务等攻击方式,上面的文章中有讲到。

流媒体

  • 流媒体的概念

介绍流媒体的概念:

流式存储表明数据不是实时产生而是已经录制好的诸如图片,视频,音频等素材。它使得我们可以边下载边观看视频,音乐等媒体信息。流媒体既可以使用TCP,也可以使用UDP。

  • 流媒体应用的工作方式

简单介绍下流媒体的工作方式:

根据视频播放的需要,下载指定的文件块,然后由网络提供的解码器进行实时播放。

应用层习题

  1. C/S模型中,客户机是面向用户的,服务器是面向任务的。
  2. 域名与IP地址,MAC地址以及主机都不具有一一对应的关系。一台主机可以赌赢两个IP,两个MAC地址可以映射到同一域名;多台主机可以映射到同一域名,一台主机也可以映射到多个域名。也就是映射关系是不确定的
  3. 授权(权限)服务器,可以将其管辖内的主机名转换为主机IP地址。
  4. FTP数据连接在每次数据传输完毕后就关闭。
  5. POP3协议在传输层使用明文来传输,不对密码进行加密。POP3是基于ASCII码的,一个账号在服务器上只有一个邮件接收目录。
  6. WEB服务器在对HTTP报文,若请求报文使用HEAD方法,则进行响应,但不需要返回请求对象。其作用主要是调试。