计算机网络的体系结构

计算机网络的分类。

  • 按分布范围:广域网(WAN)、城域网(MAN)、局域网(LAN)、个人区域网(PAN)
  • 按传输技术:广播式网络、点对点网络
  • 按拓扑结构:总线形、星形、环形、网状形
  • 按交换技术:电路交换网络、报文交换网络、分组交换网络
  • 按传输介质:有线网络(双绞线、同轴电缆、光纤)、无线网络(蓝牙、WiFi)

简述计算机网络采用层次结构模型的优点。

  • 每层都实现一种相对独立的功能,降低整个系统的复杂度
  • 各层之间的界限自然清晰、易于理解
  • 各层功能的定义与其具体实现方法相独立,可以采用最合适的技术来实现
  • 保持下层对上层的独立性,上层单向使用下层提供的服务
  • 整个分层结构能促进标准化工作

解释协议、接口和服务

  • 协议:对等实体之间进行通信的规则的集合,它是水平的
  • 接口:同一结点内相邻两层之间交换信息的连接点,即服务访问点(SAP)
  • 服务:下层为相邻的上层提供的功能调用,它是垂直的。服务可分为面向连接的服务和无连接服务,可靠服务和不可靠服务

TCP/IP的核心是什么。

TCP/IP的核心思想是”网络互连”,即TCP、UDP、IP协议。将使用不同协议的异构网络,在网际层(即IP层)统一为虚拟逻辑网络。其特点是两头大中间小,应用层和网络接口层有很多协议,而中间的IP层很小。这表明,TCP/IP协议可以为各种应用提供服务(everything over ip),也可以屏蔽不同物理网络实现的细节(ip over everything)。

OSI模型和TCP/IP模型的区别是什么?

  • OSI模型有7层,而TCP/IP模型只有5层(物理层、数据链路层、网络层、传输层、应用层)
  • OSI模型有三个明确的概念:协议、服务和接口,而TCP/IP模型没有明确的划分
  • OSI模型在网络层支持无连接和面向连接的通信,而TCP/IP在网络层仅支持无连接的通信
  • OSI模型是先于协议设计的,TCP/IP模型是在协议发明之后总结的
  • OSI模型概念清晰,但复杂且不实用。TCP/IP模型是事实上的标准

【相关计算题】

  • 总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
  • 发送时延 = 分组长度 / 带宽速率
  • 传播时延 = 距离 / 电磁波速率
  • 1Mb = 10^3kb = 10^6b
  • 1s = 10^3 ms = 10^6 μs

物理层

什么是多路复用技术?有几种复用方法?

多路复用技术是将若干个彼此独立的信号进行合并,从而可以在同一物理信道上同时传输的方法。主要包括时分多路复用、频分多路复用、波分多路复用和码分多路复用。

  • 时分复用:所有的用户在不同的时间占用同样的带宽,一般用来传输数字信号
  • 频分复用:所有的用户在相同的时间占用不同的带宽,一般用来传输模拟信号
  • 波分复用:即光的频分复用,它在一根光纤中传输多种不同波长的光信号
  • 码分复用:用相互正交的码片序列来区分原始信号的一种复用方式,主要用于移动通信系统

什么是信道?有几种通信方式?

信道表示向单方向传送信息的媒体,通信线路通常包含一条发送信道和一条接收信道。

  • 单工通信:只能有一个方向的通信
  • 半双工通信:通信双方都可以发送和接收,但不能同时发送或者同时接收
  • 全双工通信:通信双方可以同时发送和接收

【相关计算题】

1)奈奎斯特定理:极限数据传输率 = (b/s),其中V表示有多少种不同的码元,W为带宽,单位为Hz

2)香农公式:极限数据传输率 = (b/s),其中信噪比S/N以分贝记,20dB = 100,30dB = 1000,40dB = 10000

数据链路层

数据链路层的作用是什么?

①封装成帧。在一段数据的前后加上首部和尾部,构成一个帧。接收端收到物理层上交的比特流后,能根据首部和尾部的标记,识别帧的开始和结束。

②透明传输。由于帧定界符可能出现在数据部分而产生错误。传送时要进行处理,以保证无论是什么样的数据都能够正确传输。

③差错检验。处理传输过程中可能出现的比特差错,帧丢失、帧重复和帧失序等问题。

④流量控制。控制发送速率,使得接收方有足够的缓冲空间来接收每个帧。协议包括:停止-等待协议、后退N帧协议和选择重传协议。

简述以太网CSMA/CD的工作原理。

CSMA/CD的全称是载波侦听多点接入/碰撞检测。工作过程可概括为”发前先听,边听边发,冲突停发,随机重发”。

适配器准备一个以太网帧放到缓冲区中,如果适配器侦听到信道空闲,就开始传输该帧。在传输过程中,适配器检测来自其他适配器的信号能量。如果发生冲突,则停止传输并发送一个48bit的拥塞信号。在中止(即传输拥塞信号)后,采用二进制指数退避算法等待一段随机时间后重发。

【相关计算题】

1)循环冗余码

生成多项式和位串的转换(下面是一个5阶多项式,注意有X^0)

  • 假设G(x)的阶数为r,在帧的最低为补r个0
  • 做模2除法,用帧序列除以G(x),得出r位冗余码(前导0不可省略)
  • 接收到的比特序列 除以G(x)后 余数为0,则表示没有出错

2)停止-等待协议的信道利用率

设L为帧长,C为发送速率,R为单程传播时延。可知,协议忙的时间为L/C,协议空闲的时间为等待确认返回的时间2R。故信道利用率为

3)CSMA/CD协议的最小帧长

最小帧长 = (总线传播时延 × 2) × 数据传输率

网络层

简述各物理设备的工作层次和作用。

  • 转发器(中继器)/集线器 工作在物理层。主要用于扩大网络传输的距离
  • 网桥/交换机 工作在数据链路层。它能识别帧中的MAC地址,可以隔离冲突域
  • 路由器 工作在网络层。它能识别IP地址,确定合适的路径,将数据包转发到其他网络
  • 网关 工作在网络层以上。用于两个高层协议不同的网络互连

什么是域名地址、IP地址和MAC地址?它们之间有什么关系?

  • 域名地址:为了便于用户记忆而引入,一个域名对应一个IP地址
  • IP地址:给互联网上每一台主机或路由器的每一个接口分配的全球唯一32位标识符
  • MAC地址:即硬件地址或物理地址,固化在适配器中。地址解析协议ARP,可将IP地址解析为MAC地址

简述RIP(距离向量算法)的特点。

每个路由表项目中有三项关键数据:<目的网络,距离,下一跳>。RIP通过距离向量算法完成路由表的更新。每隔30秒,路由器将自己知道的全部信息,即整个路由表发送给相邻的路由器。

对应每个相邻路由器发过来的RIP报文,先将此报文中所有的”下一跳”改为自己,并将距离字段加1(即通过自己去往目标网络)。同时,使用贪心算法更新自己的路由表。如果180秒还没有收到相邻路由器的更新报文,则把此相邻路由器设为不可达,即距离为16。

经过第一次RIP广播,每个路由器就知道了自己相邻路由器的路由表;经过第二次RIP广播,每个路由器就知道了距离自己跳数为2的网络的路由,直到最终收敛。

  • RIP限制了网络的规模,最大距离为15
  • 网络出现故障时,会出现慢收敛现象,即”好消息传的快,坏消息传的慢”
  • RIP是应用层协议,使用UDP传送数据

简述OSPF(链路状态算法)的特点。

  • OSPF使用洪泛法向本自治系统的其他所有路由器发送信息
  • 发送的信息是与本路由器相邻的路由器的链路状态,这只是路由器所知道的部分信息
  • 只有当链路状态发生变化时,才使用洪泛法更新,不会出现坏消息传得慢的问题
  • OSPF是网络层协议,直接使用IP数据报传送,IP首部的协议字段为89

具有特殊用途的IP地址。

  • 主机号全为0,表示网络号
  • 主机号全为1,表示本网络的广播地址
  • 32位全为0,表示本网络上的本主机
  • 32位全为1,表示整个TCP/IP网络的广播地址,又称受限广播地址。由于路由器对广播域的隔离,等价于本网络的广播地址
  • 127.0.0.0 保留为环路自检地址,表示任意主机本身

【相关计算题】

  • 子网划分、无分类编址CIDR
  • 计算可用主机数(A类地址主机号为24位,B类16位,C类8位)

传输层

简述TCP连接的建立过程(三次握手)

主机A向主机B发送连接请求,主机B对A发来的报文段进行确认,主机A对B的确认再确认。

  • 第一步(A->B):SYN=1, seq=x
  • 第二步(B->A):SYN=1, ACK=1, seq=y, ack=x+1
  • 第三步(A->B):ACK=1, seq=x+1, ack=y+1

规律:使用对方的ack作为自己的seq,自己的ack为对方的seq+1

简述TCP连接的释放过程(四次挥手)

  • 第一步(B->A):FIN=1, ACK=1, seq=x, ack=y
  • 第二步(A->B):ACK=1, seq=y, ack=x+1
  • 第三步(A->B):FIN=1, ACK=1, seq=y, ack=x+1(确定数据已发送完)
  • 第四步(B->A):ACK=1, seq=x+1, ack=y+1

简述TDP和UDP的区别。

  • TCP是面向连接的可靠传输,UDP”尽最大努力交付”,是无连接不可靠的传输
  • UDP面向报文。发送端应用层的数据加上一个UDP头部就交给网络层。TCP面向字节流
  • UDP支持一对一、多对多、一对多、多对一通信。TCP只支持一对一通信
  • UDP首部开销为8字节,TCP首部至少有20字节。UDP效率高

在TCP拥塞控制中,什么是慢开始、拥塞避免、快重传和快恢复算法?

  • 接收窗口rwnd:反映接收方的容量,由接收方通过TCP首部的窗口字段通知发送方
  • 拥塞窗口cwnd:发送方根据自己的估算确定
  • 发送窗口的上限值 = min(rwnd, cwnd)

慢开始算法:先令cwnd=1,每经过一个RTT,使cwnd加倍。直到cwnd达到慢开始门限ssthresh的值后,改为拥塞避免算法。

拥塞避免算法:每经过一个RTT,使cwnd增加一个MSS的大小(通常是1)。若出现超时,令慢开始门限ssthresh等于当前cwnd的一半,并置cwnd=1,重新执行慢开始算法。即”加法增大,乘法减小”。

快重传:使用冗余ACK来检测丢包。当发送方收到三个重复的ACK报文时,直接重传对方尚未收到的报文段,而不必等待那个报文段的重传计时器超时。

快恢复:当发送端收到三个重复的ACK时,执行”乘法减小”,把慢开始门限ssthresh设为出现拥塞时cwnd的一半。与慢开始不同的时,它置cwnd=ssthresh,然后执行拥塞避免算法。

应用层

假定某客户机想获知域名为y.abc.com主机的IP地址,说明域名解析过程。

  1. 客户机向本地域名服务器发送DNS请求报文。
  2. 本地域名服务器收到请求后,查询本地缓存,若没有该记录,则以DNS客户的身份向根域名服务器发出解析请求。
  3. 根域名服务器收到请求后,将对应的顶级域名服务器dns.com的IP地址返回给本地域名服务器。
  4. 本地域名服务器向顶级域名服务器dns.com发送解析请求报文。
  5. 顶级域名服务器dns.com收到请求后,将对应的授权域名服务器dns.abc.com的IP地址返回给本地域名服务器。
  6. 本地域名服务器向授权域名服务器dns.abc.com发送解析请求报文。
  7. 授权域名服务器收到请求后,将查询结果返回给本地域名服务器
  8. 本地域名服务器将结果存入缓存,并返回客户机。

其中,主机向本地域名服务器的查询采用递归查询,本地域名服务器向根域名服务器的查询采用迭代查询。(使用UDP报文)

简述FTP的工作过程。

文件传输协议FTP,提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。它屏蔽了各计算机系统的细节,因而适合于在异构网络中传送文件。

FTP在工作时采用两个并行的TCP连接。一个是控制连接(21端口),一个是数据连接(20端口)。控制连接在整个会话期间一直保持打开,其收到文件传输请求后,就创建数据连接。文件在数据连接上传送完毕后,数据连接就被关闭。

简述电子邮件的收发过程。

  1. 发信人调用用户代理(一个WEB或客户端程序,例如Gmail、Foxmail),用户代理使用SMTP或HTTP协议把邮件传送给发送方邮件服务器。
  2. 发送方邮件服务器将邮件放入缓存队列,等待发送。
  3. 发送方邮件服务器建立TCP连接,使用SMTP协议将待发邮件发送到接收方邮件服务器。
  4. 接收方邮件服务器收到邮件后,放入用户邮箱,等待收信人读取。
  5. 收信人调用用户代理,使用POP3(或IMAP)协议将自己的邮件从接收方邮件服务器的用户邮箱中取回。

简述HTTP访问的工作过程。

  1. 浏览器分析链接所指页面的URL,例如http://www.baidu.com/index.html。
  2. 浏览器向DNS请求解析www.baidu.com的IP地址。
  3. 浏览器通过该IP地址与服务器建立TCP连接,默认端口号为80。
  4. 浏览器发出HTTP请求:GET /index.html。
  5. 服务器通过HTTP响应,把文件index.html发送给浏览器(客户端随机选择的端口)。
  6. 释放TCP连接。
  7. 浏览器渲染index.html,将WEB页面展示给用户。