计算机网络面试复习题

参考谢希仁《计算机网络》及其ppt

谢希仁《计算机网络》课件PPT 下载

计网体系结构


为了使得不同体系结构的计网可以互连,ISO(国际化标准组织) 1977年成立机构研究此问题。

ISO提出一个标准框架:开放系统互连基本参考模型OSI/RM((Open Systems Interconnection Reference Model)),建成OSI。

遵循OSI标准,一个系统则可以和世界上任意地点的同一标准其他系统进行通信。


国际标准OSI失败
非国际标准 TCP/IP获得广泛应用-----事实国际标准


层次式协议结构。
计网体系结构:计网各层及其协议的集合。


7/4/5层协议体系结构

计算机网络面试复习题_第1张图片


应用层:直接为用户进程服务。

运输层:互联网上任意主机的应用进程间(端到端)的数据传送

  • TCP报文段:面向连接,可靠交付
  • UDP用户数据报:无连接,尽最大努力交付

网络层:互联网上任意主机间数据报的分组传送

数据链路层data link:局域网内结点(主机/路由器)间无差错的数据帧接收

  • 发送端数据前后添加首尾:封装成帧;接收端根据首位识别帧的开始和结束并去除得到网络层的分组
  • 透明传输:网络层传下来的分组,不管是什么形式的bit组合,都要能正确识别传送。比如要消息数据中bit组合不能是帧的首尾定界符。【字节填充;零比特填充:每5个1添一个0】
  • 差错检测:CRC循环冗余检测。防止到很后期才发现差错进行重传,但是重传的还是错误的内容。因此在链路层进行无差错接收

物理层:如何在各种传输媒体上进行:原始的比特流的透明传输。使得物理层上面屏蔽掉硬件设备的差异。

对比特(数字信号)的调制,使之通过信道

  1. 基带调制/编码:数字信号—>数字信号
  2. 带通调制/调制:数字信号—>模拟信号

传输媒体/介质

计算机网络面试复习题_第2张图片


名词


node:结点(数据结构中树的node翻译节点)

  • 可以是计算机,集线器,交换机,路由等

计算机网络:简称网络

  1. 由分布在不同地理位置,功能独立的多台计算机使用网络设备和线路互连起来,形成的一个网络系统。其目的是信息交换和资源共享。
  2. 书本:由若干结点(node)和连接这些结点的链路(link)组成。

互连网(internet)“网络的网络”(network of networks)

  • 可以通过路由器把网络互连起来,这就构成了一个覆盖范围更大的计算机网络,称之为互连网。

互联网/网(Internet):是当今世界上最大的计算机网络。


注意点:

  1. 互联网>互连网>计算机网络
  2. 网络把许多计算机连接在一起
  3. 互连网把许多网络通过路由器连接在一起

host主机:和网络相连的计算机


云表示网络的不同情况:

  1. 云内已包含和网络相连的计算机(主机)
  2. 云内只剩下【路由器及其之间连接链路】,主机画在云外
    计算机网络面试复习题_第3张图片

物理层


数据通信系统模型


计算机网络面试复习题_第4张图片


术语


  • 信号signal:数据的电气/电磁的表现
  • 模拟信号 analogous signal:消息参数取值连续
  • 数字信号 digital signal:消息参数取值离散
  • code码元:不同离散数值的基本波形

信道channel:向某一方向传送信息的谋体

  1. 单工通信:只有一方向可以发送信息,无反方向交互
  2. 半双工通信:双向交替通信,即双方都可发送,但不可同时发送
  3. 全双工通信:双方可同时发送接收

对基带信号调制的两种方法:


基带信号/基本频带信号:来自信源的信号

问题:基带信号中的低频、直流成分,信道无法传输


1、编码coding/基带调制:

  • 变换基带信号波形,使之与信道特性相适应。
  • 变换波形后的信号,仍然是基带信号/数字信号

2、调制/带通调制,使用carrier 载波调制

  • 提高基带信号频率范围搬移到较高的频段。
  • 把基带信号转换为带通信号/模拟信号

编码/基带调制的方式


计算机网络面试复习题_第5张图片


基本的带通调制方法


计算机网络面试复习题_第6张图片
计算机网络面试复习题_第7张图片


数字信号通过信道传输v的限制


1、信道能通过的频率范围

码间串扰:很多高频分量无法通过信道,受到衰减,则收到的码元波形会失去清晰界限。

如果让信道的频率变宽,则能通过的高频分量更多,就可以用更高频率的速率传送码元而不出现码间串扰。

奈氏准则:理想条件下,为了避免码间串扰,码元传输速率的最大值


2、信噪比


噪声随机产生,瞬时值有时很大,使得接收端误判码元(1判为0或反之)

噪声影响是相对的:信号越强,影响越小

信 噪 比 ( d B ) = 信 号 的 平 均 功 率 噪 声 的 平 均 功 率 = S N 信噪比(dB) = {信号的平均功率\over 噪声的平均功率} = {S \over N} (dB)==NS

对v的影响:增大信噪比,可以让速率变大而不至于判决错误。


香农公式

带宽受限且有高斯白噪声干扰的信道的极限、无差错的信息传输速率

信 息 传 输 无 差 错 极 限 速 率 ( b i t / s ) = 信 道 带 宽 ( H z ) l o g 2 ( 1 + 信 噪 比 ) 信息传输无差错极限速率(bit/s) = 信道带宽_{(Hz)}log_2(1+信噪比) (bit/s)=(Hz)log2(1+)


物理层下面的传输媒体(不是物理层,是介质)


1、导引型传输媒体:电磁波被导引沿着固体媒体(铜线或光纤)传播

  • 双绞线:最常用的传输媒体;数字/模拟传输都可用;几到几十公里
  • 同轴电缆:抗干扰;传输高斯率数据

计算机网络面试复习题_第8张图片

  • 光纤:通信容量大;玻璃纤维易折断
    • 多模光纤:可以存在多条不同角度入射的光线在一条光纤中传输。这种光纤就称为多模光纤。
    • 单模光纤(更贵):若光纤的直径减小到只有一个光的波长,则光纤就像一根波导那样,它可使光线一直向前传播,而不会产生多次反射。这样的光纤称为单模光纤。

2、非导引型传输媒体:指自由空间,在非导引型传输媒体中,电磁波的传输常称为无线传输

  • 无线,红外,大气激光

信道复用技术:静态的划分信道


复用 (multiplexing) 是通信技术中的基本概念。
它允许用户使用一个共享信道进行通信,降低成本,提高利用率
计算机网络面试复习题_第9张图片
计算机网络面试复习题_第10张图片


频分复用FDM(Frequency Division Multiplexing):同时不同带宽


将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。
计算机网络面试复习题_第11张图片

频分复用的所有用户在同样的时间占用不同的带宽资源

请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。


时分复用TDM:不同时间占用相同频带宽度

计算机网络面试复习题_第12张图片

时分复用则是将时间划分为一段段等长的时分复用帧(TDM 帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。

每一个用户所占用的时隙是周期性地出现(其周期就是TDM帧的长度)。

TDM信号也称为等时(isochronous)信号。

时分复用的所有用户是在不同的时间占用同样的频带宽度。


统计时分复用STMD

是一种改进的时分复用,明显提高信道利用率。
非固定时隙,而是按需动态分配时隙
集中器常使用这种STMD


波分复用WDM(Wavelength):光的频分复用

C = λ * f
本质就是’光的频分复用’。使用一根光纤来同时传输多个光载波信号。


码分复用CDM(Code)/CDMA(CDM Access)

另一种共享信道的方法。更常叫做CDMA码分多址

每个用户可以在’同样的时间使用同样的频带’进行通信

各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。
这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现


数据链路层:帧


1、点对点信道


三个基本问题1:封装成帧framing

帧:IP数据报添加首位确定帧界限==(帧定界)==
计算机网络面试复习题_第13张图片


帧定界:控制字符SOH, EOT

当数据是由可打印的 ASCII 码组成的文本文件时,帧定界可以使用特殊的帧定界符

  • 控制字符== SOH (Start Of Header) ==放在一帧的最前面,表示帧的首部开始。
  • 另一个控制字符== EOT (End Of Transmission) ==表示帧的结束。
    计算机网络面试复习题_第14张图片

三个基本问题2:透明传输

如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”。
计算机网络面试复习题_第15张图片


解决方法1: 字节(byte stuffing)或 字符填充 (character stuffing)。

  • 发送端对数据插入转义字符:的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC” (其十六进制编码是 1B)。
  • 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符
  • 如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个。

计算机网络面试复习题_第16张图片


PPP协议:零比特填充

  • 在发送端,只要发现有 5 个连续 1,则立即填入一个 0。
  • 接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除

三个基本问题3:差错检测:可靠性


原因:传输过程产生1,0比特差错,要保证数据可靠性
BER(Bit Error Rate)误码率: 传 输 错 误 比 特 数 传 输 总 比 特 数 传输错误比特数\over 传输总比特数
BER和信噪比关系很大


广泛使用CRC循环冗余检验:无比特差错/无差错接收(非可靠传输)


待传输的一组数据M:1101011011,一组k=10个比特

发送端要做的:

(1)计算冗余码R:

  • 除数P(n+1位):题目会给出一个生成多项式,例如 P ( X ) = X 4 + X + 1 P(X) = X^4+X+1 P(X)=X4+X+1,则P就是 10011 10011 10011。则n = 4

  • 被除数(k+n位) = M ∗ 2 n M*2^n M2n:在M后添加n = 4位冗余码,即4个0,得到被除数:1101011011 0000

  • 商:对应位不同就是1,相同就是0,不考虑什么进位。

计算机网络面试复习题_第17张图片


(2)把冗余码R拼接在M之后,发送出去,即发送:1101011011 1110


接收端

对接收到的数据继续进行CRC检验“”

  • 被除数:拼接了冗余码的M
  • 除数:还是P
  • 商:模二除法

若余数R = 0, 则帧无差错,【接受】
若余数R ≠ 0 , 则帧有差错,【丢弃】


CRC只能做到:无差错接受accept【无比特差错】

  • 凡是数据链路层【接受的帧都无传输差错
  • 但是出错的帧会被丢弃,无法做到发送什么就收到什么

可靠传输:发送什么就收到什么。还要加上确认和重传机制。=


PPP点对点协议:面向字节


协议满足需求:

  1. 封装成帧
  2. 透明性
  3. 差错检测

PPP协议帧格式

首部:4字段
尾部:2字段
标志字段:F=0x7E:十六进制的 7E 的二进制表示是 01111110
地址字段A
控制字段C

计算机网络面试复习题_第18张图片


零比特填充

计算机网络面试复习题_第19张图片


2、一对多:广播信道、局域网


局域网:只考虑MAC层以下


局域网:见笔记

计算机网络面试复习题_第20张图片

计算机网络面试复习题_第21张图片

以太网Ethernet的两个标准

以太网:世界上第一个局域网产品

  • DIX Ethernet V2 :世界上第一个以太网归约
  • IEEE 802.3:第一个IEEE的以太网标准
    二者差别很小,因此802.3局域网简称为以太网

两个子层LLC和MAC


计算机网络面试复习题_第22张图片

逻辑链路控制子层LLC:logical link control

  • 局域网对LLC透明(看不见)

媒体接入控制子层MAC:medium access control

  • 与接入到传输媒体相关内容都放在MAC子层

拓展:现在一般不考虑LLC了

  • TCP/IP体系常使用 DIX Ethernet V2 标准的局域网,而不是802.3标准。
  • LLC层使用802.2标准,已经作用不大
  • 很多厂商适配器adapter只安装有MAC协议

CSMA/CD协议:载波监听多点接入/碰撞检测(半双工通信)


名词解释

CSMA/CD :(Carrier Sense Multiple Access with Collision Detection)

  • “多点接入”:许多计算机以多点接入的方式连接在一根总线上【总线型拓扑结构】

(动态媒体接入控制:共享信道除了多路复用(静态)的另一种方式,代价第一点,适合局域网(即以太网),以太网就是使用动态里的随机接入)

  • “载波监听”:每一个站(主机/站点局域网内这么称呼)在发送数据之前先要监听一下总线上是否有其他计算机在发送数据,如果有,则等待,暂时不要发送数据,防止发生碰撞。

总线上并没有什么“载波”。因此, “载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。

  • “碰撞检测”:计算机在发送数据过程中,不断检测是否发生碰撞;如果发生,则立刻停发,等待一段随机时间后,再次发送。

随机时间由二进制指数类型退避算法计算
计算机边发送数据边检测信道上的信号电压大小

  • 为何要在发送过程中进行碰撞检测:信号传播时延对载波监听有影响。

计算机网络面试复习题_第23张图片


  • 争用期/碰撞窗口 2 τ 2\tau 2τ:以太网的往返时延
    经过时间否经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。

例:10Mb/s的以太网取51.2us作为争用期的长度。在此征用期内,该以太网可以发送64B。
意味着:该以太网发送数据时,如果前64B没有发生冲突,则此次发送后面的数据必然不会冲突

  • 最短有效帧长:以太网规定为64B。小于的称为无效帧

  • 帧最小间隔:9.6us,相当于以太网规定为96bit的发送时间

  • 二进制指数类型退避算法

  1. 基本退避时间 = 争用期 = 2 τ 2\tau 2τ
  2. k = min(重传次数, 10);
  3. 从整数集合 { 0 , 1 , . . . , 2 k − 1 } \{0, 1, ..., 2^k-1\} {0,1,...,2k1}随机取一个数 = r
  4. 则碰撞检测中的随机等待时间 = 2 τ ∗ r 2\tau * r 2τr
    重传达16次时,丢弃该帧,向高层报告

总结CSMA/CD过程:有重传


数据链路层的一对多通信采用的是局域网,以太网是局域网的第一个产品。以太网规定最短有效帧长64B = 512bit,也是争用期长度 = 2 τ 2\tau 2τ

因此载波监听多点接入/碰撞检测协议,争用期就是 2 τ 2\tau 2τ,随机等待时间就是r倍的 2 τ 2\tau 2τ

载波监听多点接入/碰撞检测协议:总线型局域网(多点接入的特性)


(1) 准备发送。但在发送之前,必须先检测信道

(2) 检测信道:发送前

  • 忙则轮询检测
  • 信道转为空闲 + 在 96 比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。

(3) 检查碰撞(争用期)。在发送过程中,轮询检测信道,即网络适配器边发送边监听。这里只有两种可能性:

  • 发送成功:在争用期内一直未检测到碰撞这个帧肯定能够发送成功。发送完毕后,其他什么也不做。然后回到 (1)。
  • 发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号(让所有用户知道发生了冲突)。适配器接着就执行指数退避算法,等待 r 倍 512 比特时间后,返回到步骤 (2),继续检测信道。但若重传达 16 次仍不能成功,则停止重传而向上报错。

以太网的MAC层


MAC地址适配器地址


48位=6B的MAC地址

计算机网络面试复习题_第24张图片


MAC:媒体接入控制

局域网中:适配器地址 = MAC地址=硬件地址=物理地址 = 某个接口的标识符

生产适配器的时候,6B的MAC地址固化在适配器的ROM

如果连接在局域网是的host/router有多个adapter,则host/router就有多个地址


IEEE规定,MAC地址,第一字节的最低位为:I/G(individual/group)位

  • I/G位=0:单站地址。单播
  • I/G位=1:组地址。进行多播/组播。只分配前23bit
  • MAC地址48位全为1:广播地址。只能作为目的地址

只有目的地址可以使用广播和多播地址

IEEE规定,MAC地址,第一字节的最低第二位为:GL(glob/local)位

  • 为0:全球管理。保证全球没有相同地址
  • 为1:本地管理。用户可以任意分配网络上的地址

适配器检查网络上发来的MAC地址


硬件检查MAC帧中的MAC地址。
是发往本站的帧:收下

  • 单播:一对一:第一字节最后一位为0
  • 多播:一对多:第一字节最后一位为1
  • 广播:一对全体:48位全为1
    否则:丢弃。

MAC格式


以太网V2格式

计算机网络面试复习题_第25张图片

  • 类型字段用来标志上一层使用的是什么协议,以便接收端把收到的 MAC 帧的数据上交给上一层的这个协议。

IEEE 802.3MAC帧格式

第三个字段:

  • 值大于1536:0x0600,表示类型。和以太网V2标准一样
  • 值小于1536:0x0600,表示长度。且数据字段必须装入上面LLC逻辑链路控制帧

网络层

【互联网内】,任意两台主机间的【分组传送】

数据链路层,只考虑一对多的话是局域网内的传输帧,传送地址已经写好了MAC地址在适配器上


1、网络层的2种服务:选择不可靠的数据报服务

问题:计算机通信中,谁来负责可靠交付?

计算机网络面试复习题_第26张图片


1、网络负责可靠交付:面向连接

计算机网络面试复习题_第27张图片

2、运输层负责可靠交付:数据报服务,尽最大努力交付

运输层包括:差错处理, 流量控制
计算机网络面试复习题_第28张图片
计算机网络面试复习题_第29张图片


2、网际协议IP(Internet Protocal)


1、IP协议

IP协议:使得异构网络看起来像一个网络,主机好像在一个单一网络通信,屏蔽具体的编址方案,路由选择协议等等。


2、辅助协议1:ARR地址解析协议

地址解析协议 ARP:已知IP地址求硬件地址 (Address Resolution Protocol)


3、辅助协议2:网际控制报文协议 ICMP:差错报告

  • ICMP(Internet Control Message Protocol):结点报告差错情况,提供异常情况报告;提高转发IP数据报成功交付的机会。
  • ICMP报文装在ip数据报。

ICMP 报文的种类有两种:
  • ICMP 差错报告报文
  • ICMP 询问报文。

应用1:PING (Packet InterNet Groper)

PING 用来测试两个主机之间的连通性。
PING 使用了 ICMP 回送请求与回送回答报文。
PING 是应用层直接使用网络层ICMP 的例子,它没有通过运输层的 TCP 或UDP。


运用2:Traceroute

在 Windows 操作系统中这个命令是 tracert。
用来’跟踪’一个分组从源点到终点的路径。
它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。


4、辅助协议3:网际组管理协议 IGMP(不讲):(Internet Group Management Protocol)

计算机网络面试复习题_第30张图片


3、如何把异构的网络相互连接:中间设备


中间设备 = 中间系统 = 中继relay系统

两器一桥

  • 物理层:转发器repeater,集线器hub
  • 数据链路层(局域网):注意适配器不是的中间!!设备,它代表本站MAC地址!!
    • 网桥/桥接器bridge:互连两个局域网,2个接口
    • 交换机switch:互联局域网,多接口
  • 网络层:路由器router:网络与网络间广域网上的链接
  • 网络层以上:网关gateway

计算机网络面试复习题_第31张图片


虚拟互联网络的意义

利用IP协议可以使异构网络,用户看起来像同一网络

使用IP协议的虚拟互连网络:IP网

在现在覆盖全球的IP网上层使用TCP协议,就是互联网


IP地址:32位唯一标识


  • IP数据报的首部含有:目的IP地址,源IP地址
  • 给互联网上每个主机、路由器分配世界范围内32位唯一标识符
  • IP地址是给网络层及其以上的层使用的地址,是逻辑地址(软件实现)
  • 硬件地址是给物理层和MAC层使用的地址。
  • 数据链路层是看不见IP数据报的
  • IP层屏蔽了下层复杂细节,使用同一/抽象的IP地址,研究主机和主机,主机和路由器之间的通信
  • 同一局域网内的主机/路由器,网络号相同
  • 路由器每个接口连接不同的局域网,则每个接口的IP地址由不同的网络号
    计算机网络面试复习题_第32张图片

分类IP地址32位=net-id + host-id


在这里插入图片描述

网络号:主机/路由器连接到的网络
主机号:该主机/路由器

  • 主机号在它所在网络号范围内唯一

计算机网络面试复习题_第33张图片A类:网络号1字节, 0 + 7位(1~126少了127)
B类:网络号2字节,10 + 14位(1~2^14-1全)
C类:网络号3字节, 110 + 21位(1~2^21-1全)

计算机网络面试复习题_第34张图片


IP地址的点分十进制记法:8位一组


2^8-1 = 255
计算机网络面试复习题_第35张图片计算机网络面试复习题_第36张图片


IP数据报 = 首部(固定20B+[可选部分]+)数据


计算机网络面试复习题_第37张图片


首部20B


源IP地址
目的IP地址

标志(flag)字段:3位,只有前2位有意义

  • MF(more fragment)
    • 1:还有分片
    • 0:这是若干数据报分片中的最后一个分片
  • DF(Dont fragemnt)
    • 1:不允许分片
    • 0:允许分片

片偏移字段:13位

  • 原IP数据报,数据部分开头记为0,假设当前分片数据部分在原位置为1400B,则用1400/8 = 175,就是片偏移

TTL(Time To Live)字段、生存时间:占8位:数据报在网络中的寿命 【路由器跳数】

  • 功能:跳数限制 最大255,防止无法交付的数据报无限制在互联网中兜圈子/循环,消耗网络资源
  • 路由器在每次转发数据报’之前’就把TTL值-1.若减小到零就丢弃这个数据报,不在转发
  • 指示数据报在网络中可通过的路由器数的最大值(跳数)

IP数据报分片

计算机网络面试复习题_第38张图片
计算机网络面试复习题_第39张图片


IP层转发分组


计算机网络面试复习题_第40张图片

每个路由器制定一个路由表
按照主机所在网络号,而不是主机号制作路由,减少表项。
同一局域网的主机网络号相同,路由器每个接口对应一个网络
表项:【目的主机网络地址, 下一跳地址】

  • 目的主机网络和路由器直接相连:直接交付,指明路由器接口
  • 目的主机网络和路由器不直接相连:下一跳网络地址

二级IP地址路由器分组转发算法

  1. 直接交付
  2. 特定主机路由
  3. 路由表下一跳
  4. more路由
    计算机网络面试复习题_第41张图片

划分子网和构造超网


划分子网subnetting:三级IP协议(子网号字段)

计算机网络面试复习题_第42张图片

  1. 根据从IP数据报找到net-id目的网络id,找到链接目的网络的路由器【对外仍然是一个网络】
  2. 路由器根据:net-id, subnet-id,找到子网
  3. 交付主机

计算机网络面试复习题_第43张图片


子网掩码subnet mask:网络地址 = IP AND 子网掩码

子网掩码长度 = 32 位
某位 = 1:IP地址中的对应位为网络号和子网号
某位 = 0:IP地址中的对应位为主机号

如果进行了子网划分:子网网络地址 = IP AND 子网掩码
没进行子网划分,AND后的地址就无法对应
计算机网络面试复习题_第44张图片
默认子网掩码:
A类:255.0.0.0
B类:255.255.0.0
C类:255.255.255


根据IP地址和子网掩码求网络地址

计算机网络面试复习题_第45张图片


划分子网时路由器分组转发的算法

数据报首部没有哦子网掩码信息,则分组转发与二级IP地址不同。

主机H1发送分组

1、从IP数据报首部获得目的IP地址D

2、H1检查D是否和自己一个网络中。IP地址 AND D所在网子网掩码 是否等于H1的网络地址。
- 是则代表目的主机H1目的地址D连在一个网络中,可以直接交付
- 否则必须通过路由器间接交付


路由器转发分组

1、从IP数据报首部获得目的IP地址D

2、判断是否直接交付:逐个检查与路由器直接相连的网络地址,用各网络地址的子网掩码 AND 目的IP地址D

  • 若结果 = 匹配的网络地址,则匹配成功,直接交付分组
  • 若不符,则还要进行间接交付(执行3)

注:这里的算法,路由表不包括直接相连的网络项,只包括下一跳是路由器的项。

【以下全是要经过路由器的】

3、检查路由表的特定主机路由=:

  • 若表中存在目的地址为D的表项,则把数据报传送给表中指明的下一跳路由器。
  • 否则执行4

特定主机路由在表中:

  1. 目的网络地址实际上填的是IP地址
  2. 子网掩码是255.255.255.255

4、检查路由表中每一项(目的网络地址,子网掩码,下一跳路由)子网掩码 AND 目的IP地址D
- 若结果=目的网络地址,则匹配(IP使用了划分子网,且在路由表中),则将分左右传送给下一跳路由
- 否则执行 5。

5、判断是否有默认路由

  • 若有,则将分组传送给该默认路由器
  • 若无,执行6

6、报告转发分组出错。


互联网的路由选择协议:只介绍IGP

计算机网络面试复习题_第46张图片

自治系统AS

单一技术管理下的路由器组成的网络
如校园网,公司


内部网关协议IGP:A内部运行的协议


IGP:路由信息协议RIP(routing information)----距离向量算法


  • RIP 是一种分布式的、基于距离向量的路由选择协议。
  • 距离(最短距离)也叫“跳数hop count、经过的路由器数”:路由器到其直接连接的网络距离为1。
  • 要求网络中每一个路由器,维护自己到其他每一个目的网络的记录
  • RIP认为好的路由:距离短。
  • 适用于小型互联网:距离 = 16时认为不可达。即一条路径最多包含15个路由。
  • 仅和相邻路由器,按固定时间间隔交换【路由表】

距离向量算法

计算机网络面试复习题_第47张图片
路由器和相邻路由器按固定时间交换彼此的路由表,更新自己的路由表信息:距离,下一条

路由器收到相邻路由器(其地址为 X)的一个 RIP 报文(目目的网络地址,距离,下一条....)

1、修改 RIP 报文中所有项目:

  • 所有“下一跳”字段中的地址都改为 X
  • 所有的“距离”字段的值加 1

2、对修改后的 RIP 报文中的每一个项目,重复以下步骤:

  • 若RIP报文中:项目的目的网络不在路由表中,则把该项目到路由表中。否则

  • 若旧路由表和RIP中对应项目有:相同的下一跳X,则旧路由表该项目被替换为RIP报文中的对应项目。

  • 若RIP项目距离小于路由表中的距离,则更新路由表项目距离为RIP的距离,否则,什么也不做

3、若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16(RIP规定距离16表示不可达)

4、返回


IGP:开放最短路径优先OSPF协议(Open Shortest Path First):为克服RIP15跳限制缺点开发


克服RIP缺点

  1. RIP限制16表示不可达,限制网络规模
  2. 路由器交换路由信息是由完整路由表,规模会不断扩大
  3. 坏消息传的慢慢,网络故障需要距离更新到16才发现

特点及比RIP的好处

  1. 采用地杰斯特拉的最短路径算法
  2. 采用LC分布式的链路状态协议 (link state protocol)。
  3. LC数据库更新快:OSPF规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。
  4. 适合大规模互联网:需要的链路状态只需要知道和谁相邻,度量多少。不像RIP需要所有路由表来更新距离,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
  5. OSPF 没有“坏消息传播得慢的问题,据统计,其响应网络变化的时间小于 100 ms。
  6. OSPF 的更新过程收敛得快是其重要优点。

分布式的链路状态协议 LC(link state protocol)

  1. 每台路由器测量到所有邻居路由器链路的状态链路的“度量”(metric)

  2. 该路由器链路状态变化时:把上一步测量的所有的状态信息向自治系统内全部路由器广播

  3. 所有的路由器最终都能建立一个链路状态数据库。可以构成全网拓扑结构图(无向带权图)

  4. 有了拓扑结构图,就可以对一个路由器使用dijkstra单源最短路径算法求出任意两结点间的最短距离

  5. 根据最短路径,建立路由表


OSPF划分区域好处

就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量

在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。

OSPF 使用层次结构的区域划分。在上层的区域叫做主干区域 (backbone area)。
主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。


IPV6


IPv6地址:128位

IP网际协议是网络层唯一协议。
IPv4使用32位地址,已经耗尽。
IPv6:地址128位,原IPv4 32位


128位冒号十六进制记法:零压缩

每16位用16进制表示,中间冒号分割 128/16 = 8

允许省略多出来==连续==的0,

  • FF05:0:0:0:0:0:0:B3 可压缩为: FF05::B3
  • 注意:在任一地址中只能使用一次零压缩

结合点分十进制后缀

  • '0:0:0:0:0:0:128.10.2.1’再使用零压缩即可得出: ‘::128.10.2.1’

ipv6的优势:


IPv6 仍支持无连接的传送=,但将协议数据单元 PDU 称为分组。为方便起见,本书仍采用数据报这一名词。
所引进的主要变化如下:
1. 更大的地址空间。IPv6 将地址从 IPv4 的 32 位 增大到了 128 位。
2. 扩展的地址层次结构。
3. 灵活的首部格式。 IPv6 定义了许多可选的扩展首部。
4. 改进的选项。 IPv6 允许数据报包含有选项的控制信息,其选项放在有效载荷中。
5. 允许协议继续扩充。
6. 支持即插即用(即自动配置)。因此 IPv6 不需要使用 DHCP。
7. 支持资源的预分配。 IPv6 支持实时视像等要求,保证一定的带宽和时延的应用。
8. IPv6 首部改为 8 字节对齐。首部长度必须是 8 字节的整数倍。原来的 IPv4 首部是 4 字节对齐。


地址解析协议ARP


通信使用IP地址+MAC地址

计算机网络面试复习题_第48张图片


解决问题:已知IP地址,找到MAC地址

计算机网络面试复习题_第49张图片


问题描述:如图,网络层的IP数据报要加上目的MAC地址和源MAC地址,才能构成MAC帧通过局域网,在实际的数据链路层进行传输MAC帧。
计算机网络面试复习题_第50张图片


我们如何得到目的MAC地址,在网络层已知目的IP地址的情况下?----ARP地址解析协议:ARP cache


APR高速缓存解决问题

每个主机有一个ARP cache高速缓存:存放主机所在局域网上的各主机和路由器的IP地址硬件地址映射表

计算机网络面试复习题_第51张图片


具体获得目的主机MAC的过程


1、A发送IP数据报之前在ARP cache查看有无主机B的IP地址

2.、有则代表有此映射关系,查出对应B的硬件地址,封装如MAC帧,传给数据链路层,链路层就可以通过局域网把该MAC帧发往B的硬件地址

3、没有:A在本局域网广播发送ARP请求分组(封装在数据链路层的帧中传输)在这里插入图片描述

  • ARP请求分组(A的MAC地址,A的IP地址,目标方的MAC地址[未知填0], 目标方的IP地址)
  • 收到ARP响应分组后,把得到的IP地址–>MAC地址的映射,写入ARP cache


运输层


网络层:主机之间的逻辑通信,分组传输
运输层:应用进程之间【端到端】的传输

计算机网络面试复习题_第52张图片


端口:16位

为了使不同OS的计算机的应用程序能互相通信,要用统一方法标志TCP/IP体系的应用进程—端口port

两个应用进程要通信

  1. 找到主机:通过I/P地址,路由转发
  2. 找到主机对应进程端口号

常用端口号

计算机网络面试复习题_第53张图片


用户数据报协议UDP:user datagram protocal:无连接协议


特点

在这里插入图片描述

  • 提供无连接服务,减少时延
  • 不只是点对点的:支持一对一,一对多,多对一,多对多交互通信
  • 尽最大努力交付:不可靠、资源消耗少
  • 数据单位协议:UDP报文、用户数据报
  • 首部开销小:8B,TCP20B

对应用层报文不合并,不拆分,添加UDP首部就交给IP层
对IP传来的IP数据报数据部分,取出UDP首部就交付给应用层

  • 对方运输层收到UDP报文,无需给出确认
  • 没有拥塞控制:适合实时应用,即网络拥塞不会降低主机发送速率

UDP格式 = 首部8B + 数据

计算机网络面试复习题_第54张图片- 伪首部仅为计算检验和而临时连接


UDP基于端口的分用

UDP用户数据宝首部8B包含目的端口。
运输层根据目的端口,上交到应用进程

计算机网络面试复习题_第55张图片


传输控制协议TCP:transmission control protocol


在这里插入图片描述

  1. 提供面向连接(虚连接)可靠传输服务
  2. 每对TCP连接只能是端到端的,不提供广播、多播服务

TCP链接的端点:套接字socket = (IP地址:端口号)
端口号

  1. 面向字节流,传送的数据单位协议:TCP报文段segment

把应用层传下的数据块看成无结构的字节流。
对连续字节流分段,形成TCP报文段
TCP根据对方给出窗口值网络拥塞程度决定一个报文多少B。
计算机网络面试复习题_第56张图片

  1. 提供全双工通信
  2. 传播速度慢,所需资源多

TCP协议可靠传输的工作原理

确认和重传


停止等待协议:确认和重传机制

“停止等待”:

  1. 停止:每发送完一个分组就停止发送
  2. 等待:等待对方的确认,在收到确认后再发送下一个分组。

1、无差错情况:A发送-B确认-A收到-A继续发送

计算机网络面试复习题_第57张图片


2、超时重传解决:分组错误分组丢失

A为每个已发送分组设置【超时计时器】
到期前收到计时器的确认则撤销此计时器,可发送下一个。
反之,重传


计算机网络面试复习题_第58张图片

1、分组错误:A发送–B接收检测出差错–B丢弃(不通知A)

2、分组丢失:A发送M—M中途丢失—B不知也什么都不做


3、有超时重传的确认丢失和确认迟到

1、确认丢失,则超时重传

2、确认迟到:

  • B丢弃超时重发的,但也会发送此重复的确认
  • A收下迟到的重复确认并丢弃
    计算机网络面试复习题_第59张图片

停止等待协议的信道利用率:发送时间

计算机网络面试复习题_第60张图片

提高信道利用率:流水线传输

发送方可连续发送多个分组,无序ACK
计算机网络面试复习题_第61张图片


自动重传请求ARQ(Automatic Repeat reQuest)

  • 重传请求自动进行,无需接收方请求的协议。
  • 停止等待协议是最简单的ARQ

ARQ实现可靠传输 = 差错检测 + 确认机制 + 定时器超时触发重传

停止等待协议是最简单的ARQ协议
信道利用率太低


连续ARQ协议

发送方—滑动窗口
  • 发送方维持的发送窗口(窗口内流水线):位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认。这样,信道利用率就提高了。
  • 连续 ARQ 协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
接收方:累计确认

按序到达的最后一个分组发送确认,代表到此为止的所有分组都正确收到


回退N:重传N个分组

计算机网络面试复习题_第62张图片


TCP可靠通信具体实现:连续ARQ


经过上节从停止等待协议–重传–信道利用率低—流水线—连续的ARQ(滑动窗口)引入。

满足连续ARQ内容


以字节为单位的滑动窗口:AB都有


  • 滑动窗口内字节:在没收到确认时都可以连续发送
  • 累积确认

假定:A收到B的ACK:窗口20B,确认号31.

  • 表示B 期望收到的下一个序号是 31,而序号 30 为止的数据已经收到了

计算机网络面试复习题_第63张图片计算机网络面试复习题_第64张图片


TCP的流量控制


流量控制 (flow control) 就是让发送方的发送速率不要太快既要让接收方来得及接收,也不要使网络发生拥塞

利用滑动窗口机制可以很方便地在 TCP 连接上实现流量控制。
(一般说来,我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失)

TCP拥塞控制


在这里插入图片描述

在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种现象称为拥塞 (congestion)。
若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。

  • 增大缓存,但未提高输出链路的容量和处理机的速度,排队等待时间将会大大增加,引起大量超时重传,解决不了网络拥塞;
  • 拥塞控制和流量控制之所以常常被弄混,是因为某些拥塞控制算法是向发送端发送控制报文,并告诉发送端,网络已出现麻烦,必须放慢发送速率。这点又和流量控制是很相似的。
  • 和流量控制的相同和不同

TCP运输连接管理


运输连接三阶段

  1. 连接建立
  2. 数据传送
  3. 连接释放

1、连接建立


采用客户服务器方式

  • 主动发起连接的进程:client
  • 被动等待连接建立:server

TCP建立连接的过程:握手
三报文握手:client-server之间交换三个TCP报文段
采用三报文握手主要是为了防止已失效的连接请求报文段突然又传送到了,因而产生错误


三报文握手建立连接:

计算机网络面试复习题_第65张图片

SYN:同步序列编号(Synchronize Sequence Numbers)。是TCP/IP建立连接时使用的握手信号。
在客户机和服务器之间建立正常的TCP网络连接时

  1. 客户机首先发出一个SYN消息
  2. 服务器使用SYN+ACK应答表示接收到了这个消息
  3. 最后客户机再以ACK消息响应。

1、client向server发出连接请求报文段
- 首部中同步位SYN=1
- 选择序号seq=x:表明传送数据时的第一个数据字节的序号是 x。

2、server收到连接请求报文段,同意则发回确认报文段

  • 同步位SYN = 1
  • ACK = 1
  • 确认号ack = x+1
  • 自己选择的序号seq = y

3、client收到确认报文段,发送确认报文段

  • ACK=1
  • 序号seq = x
  • 确认号ack = y+1

4、client的TCP通知应用层,连接已建立

5、server收到client的ACK,通知应用层,TCP连接已建立。


为什么是三次握手

谢希仁版《计算机网络》中的例子是这样的,“已失效的连接请求报文段”的产生

client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。

本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。

假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接。”


TCP连接释放:四报文握手


计算机网络面试复习题_第66张图片

1、client向其TCP发出连接释放报文段;停止发送数据;主动关闭TCP连接

  • 首部FIN=1
  • 序号seq=u

2、server发出确认报文段,TCP 服务器进程通知高层应用进程【FIN不传输,因此只有3个内容】

  • ACK=1
  • ack = u+1
  • seq=v

此时client–>server连接释放。连接半关闭。


3、若server无数据发给client,则应用进程通知TCP释放server–client的连接,连接释放报文段

  • FIN = 1 【双向取消链接】
  • ACK=1 :表示client–>server已经释放
  • ack=u+1 表示client–>server已经释放
  • seq=w

4、clien收到连接释放报文段,发送确认报文段

  • ACK=1
  • ack = w+1
  • seq = u+1

A 必须等待 2MSL 的时间

第一,为了保证 A 发送的最后一个 ACK 报文段能够到达 B。
第二,防止 “已失效的连接请求报文段”出现在本连接中。A 在发送完最后一个 ACK 报文段后,再经过时间 2MSL,就可以使本连接持续的时间内所产生的所有报文段,都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。


应用层


域名结构

DNS :domain name system 53
域名系统是’互联网’使用的’命名系统’,用来把便于人们使用的机器名字转化为ip地址。
域名系统其实是名字系统,叫域名不叫名字的原因是,在互联的这种命名系统中使用了很多域。域就是名字空间中可被管理的划分
域名系统明确指明了这种系统用在互联网中

在这里插入图片描述计算机网络面试复习题_第67张图片

域名:便于人记忆的地址:互联网中结点的唯一的层次结构名字。

顶级域名TLD(Top Level Domain)

  1. 国家顶级域名nTLD:.cn, .us, .uk
  2. 通用顶级域名gTLD:.com, .net, .rg...
  3. 基础结构域名:只有arp,用于反向域名解析

域名服务器:管辖范围为一个区
权限域名服务器:每个区设置,保证区中所有主机域名-->IP地址映射计算机网络面试复习题_第68张图片

根域名服务器:13套装置

a.rootservers.net
b.rootservers.net

m.rootservers.net

顶级域名服务器:管理二级域名


域名解析过程:域名---->IP地址


主机递归查询本地域名服务器,不知道则
本地域名服务器迭代查询根域名服务器:发出查询请求报文
根要么给出IP地址,要么高速本地域名服务器:【下一步应该向哪一个域名服务器查询】
计算机网络面试复习题_第69张图片


万维网


URL uniform resource locator 统一资源定位符
www使用url在整个互联网==唯一标识’、==www上的各种文档资源。
文件名在网络范围的扩展。

URL一般形式:< 协议 >://< 主机 >:< 端口 >/< 路径 >

计算机网络面试复习题_第70张图片
协议:

  1. http:默认端口80,可省略
  2. ftp
  3. News

主机:存放资源的主机,在互联网中的域名
端口和路径有时可省略


点击链接直到用户获取网页的过程

用户点击 URL http://www.tsinghua.edu.cn/chn/yxsz/index.htm 后所发生的事件 :

  1. 取URL中域名地址:浏览器分析超链接(http)指向页面的URL,从连接取出URL指向的**主机域名地址(<主机部分>)www.tsinghua.edu.cn**
  2. 浏览器请求DNS解析IP地址::浏览器向域名系统DNS请求解析域名地址的IP地址
  3. 域名系统DNS通过域名服务器解析出网站服务器的IP地址
  4. 建立TCP连接:浏览器和服务器建立TCP连接
  5. 浏览器向网站服务器发出http请求报文GET/chn/yxsz/index.htm:方法为GET,请求URL路径部分/chn/yxsz/index.htm的资源:
  6. 服务器收到请求后,找到指向网页,打包文件,发送给客户机,客户机收到后在浏览器显示
  7. TCP连接释放

HTTP报文结构


请求报文:

计算机网络面试复习题_第71张图片
方法:

  • GET:请求读取 URL标志的信息:浏览器向网站服务器发出文件请求信息GET/chn/yxsz/index.htm
  • POST:给服务器添加信息

响应报文

计算机网络面试复习题_第72张图片
状态码:三位数字


电子邮件


发送邮件协议:SMTP简单邮件传输协议
读取邮件协议:POP3 IMAP(Internet Message Access Protocol)交互邮件访问协议
计算机网络面试复习题_第73张图片


发送和接收电子邮件的几个重要步骤

用户代理(撰写)----SMTP协议–>sender邮件服务器(邮件缓存队列)----SMTP客户-SMTP服务器建立TCP连接,发送—>receiver邮箱----用户代理+POP3/IMAP协议读取邮件

  1. 发件人调用 PC 中的用户代理撰写和编辑要发送的邮件。
  2. 发件人的用户代理把邮件用 SMTP 协议发发送方邮件服务器,
  3. SMTP 服务器把邮件临时存放在邮件缓存队列中,等待发送。
  4. 发送方邮件服务器的 SMTP 客户与接收方邮件服务器的 SMTP 服务器建立 TCP 连接,然后就把邮件缓存队列中的邮件依次发送出去。
  5. 运行在接收方邮件服务器中的SMTP服务器进 程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取。
  6. 收件人在打算收信时,就运行 PC 机中的用户代理,使用 POP3(或 IMAP)协议读取发送给自己的邮件。

你可能感兴趣的:(计算机网络,网络,tcp/ip,http)