计算机网络面试常问问题--保研及考研复试

前言: Hello大家好,我是Dream。今年保研上岸山东大学人工智能专业 经验贴,现在将我自己的专业课备考知识点整理出来,分享给大家,希望可以帮助到大家!这是重点知识总结,如果你想看全部的内容的话,这里我给大家都已经打包好了,需要自取: 保研复试全套材料+408专业课知识总结及思维导图(点击即可),内容速看:
1.保研复试全套材料,含有夏令营准备材料(包括联系老师模板、面试自我介绍、提交材料和推荐信模板)以及预推免准备材料;
2.408专业课复习材料、思维导图;
3.高等数学、线性代数、概率、离散复习材料及思维导图;
4.机器学习常见常问算法总结;
5.算法总结以及机试得分训练秘籍;
6.面试前必看知识,408常问内容总结及面试常见问题。
在这里插入图片描述

目录

第一章、计算机网络体系结构

知识框架

在这里插入图片描述

1.计算机网络的主要功能?

1、硬件资源共享。

可以在全网范围内提供对处理资源、存储资源、输入输出资源等昂贵设备的共享,使用户节省投资,也便于集中管理和均衡分担负荷。

2、软件资源共享。

允许互联网上的用户远程访问各类大弄数据库,可以得到网络文件传送服务、远地进程管理服务和远程文件访问服务,从而避免软件研制上的重复劳动以及数据资源的重复存贮,也便于集中管理。

3、用户间信息交换。

计算机网络为分布在各地的用户提供了强有力的通信手段。用户可以通过计算机网络传送电子邮件、发布新闻消息和进行电子商务活动。

4、分布式处理

当计算机网络中某个计算机系统负荷过重时,可以将其处理的某个复杂任务分配给网络中的其他计算机系统,从而利用空闲计算机资源以提高整个系统的利用率。

2.主机间的通信方式?

客户-服务器(C/S): 客户是服务的请求方,服务器是服务的提供方。
对等(P2P): 不区分客户和服务器。

3.电路交换,报文交换和分组交换的区别?

电路交换: 整个报文的比特流从源点连续的直达终点,像在一个管道中传输。包括建立连接、传输数据和断开连接三个阶段。最典型的电路交换网络是传统电话网络。
报文交换: 将整个报文转发到相邻节点,全部存储下来,查找转发表,转发到下一个节点。是存储-转发类型的网络。
分组交换: 将报文分组转发到相邻节点,查找转发表,转发到下一个节点。也是存储-转发类型的网络在这里插入图片描述

4.计算机网络的主要性能指标?

1、带宽(Bandwidth)

本来表示通信线路允许通过的信号频带范围,但在计算机网络中,带宽表示网络的通信线路所能传送数据的能力,是数字信道所能传送的“最高数据率”的同义词,单位是比特/秒(b/s)。

2、时延(Delay)

总时延 = 排队时延 + 处理时延 + 传输时延 + 传播时延
(1) 排队时延
分组在路由器的输入队列和输出队列中排队等待的时间,取决于网络当前的通信量。
(2) 处理时延
主机或路由器收到分组时进行处理所需要的时间,例如分析首部、从分组中提取数据、进行差错检验或查找适当的路由等。
(3) 传输时延(发送时延)
结点将分组所有比特推向链路所需的时间。
(4) 传播时延
电磁波在信道中传播所需要花费的时间,电磁波传播的速度接近光速。

3、时延带宽积

指发送端发送的第一个比特即将到达终点时,发送端已经发送了多少个比特,因此又称以比特为单位的链路长度,即时延带宽积 = 传播时延 * 信道带宽。

5.计算机网络提供的服务的三种分类?

1、面向连接服务与无连接服务

在面向连接服务中, 通信前双方必须先建立连接, 分配相应的资源(如缓冲区), 以保证通信能正常进行, 传输结束后释放连接和所占用的资源。因此这种服务可以分为连接建立、数据传输和连接释放三个阶段。例如TCP就是一种面向连接服务的协议。

2、可靠服务和不可靠服务

可靠服务是指网络具有纠错、检错、应答机制, 能保证数据正确、可靠地传送到目的地。不可靠服务是指网络只是尽晕正确、可靠地传送, 而不能保证数据正确、可靠地传送到目的地, 是一种尽力而为的服务。
对于提供不可靠服务的网络, 其网络的正确性、可靠性要由应用或用户来保障。例如, 用户收到信息后要判断信息的正确性, 如果不正确, 那么用户要把出错信息报告给信息的发送者,以便发送者采取纠正措施。通过用户的这些措施, 可以把不可靠的服务变成可靠的服务。

3、有应答服务和无应答服务

有应答服务是指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现, 而不由用户实现。所发送的应答既可以是肯定应答, 也可以是否定应答, 通常在接收到的

6.ISO/OSI参考模型和TCP/IP模型?

1、参考图片

在这里插入图片描述

2、五层协议

应用层 :为特定应用程序提供数据传输服务,例如 HTTP、DNS 等协议。数据单位为报文。
传输层 :为进程提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。
网络层 :为主机提供数据传输服务。而传输层协议是为主机中的进程提供数据传输服务。网络层把传输层传递下来的报文段或者用户数据报封装成分组。
数据链路层 :网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。
物理层 :考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。

3、OSI

其中表示层和会话层用途如下:
表示层 :数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。
会话层 :建立及管理会话。
五层协议没有表示层和会话层,而是将这些功能留给应用程序开发者处理。

4、TCP/IP

它只有四层,相当于五层协议中数据链路层和物理层合并为网络接口层。
TCP/IP 体系结构不严格遵循 OSI 分层概念,应用层可能会直接使用 IP 层或者网络接口层。

7.端到端通信和点到点通信的区别?

从本质上说,由物理层、数据链路层和网络层组成的通信子网为网络环境中的主机提供点到点的服务, 而传输层为网络中的主机提供端到端的通信。
直接相连的结点之间的通信称为点到点通信, 它只提供一台机器到另一台机器之间的通信,不涉及程序或进程的概念。同时,点到点通信并不能保证数据传输的可靠性,也不能说明源主机与目的主机之间是哪两个进程在通信,这些工作都是由传输层来完成的。
端到端通信建立在点到点通信的基础上,它是由一段段的点到点通信信道构成的,是比点到点通信更高一级的通信方式,以完成应用程序(进程) 之间的通信。”端” 是指用户程序的端口,端口号标识了应用层中不同的进程。

第二章、物理层

知识框架:

在这里插入图片描述

8.如何理解同步和异步?什么是同步通信和异步通信?

异步(Asynchronous)可简单地理解为“ 非同步”。在数据通信中,同步通信与异步通信区别较大。同步通信的通信双方必须先建立同步, 即双方的时钟要调整到同一个频率。收发双方不停地发送和接收连续的同步比特流。主要有两种同步方式: 一种是全网同步, 即用一个非常精确的主时钟对全网所有结点上的时钟进行同步;另一种是准同步, 即各结点的时钟之间允许有微小的误差,然后采用其他措施实现同步传输。同步通信数据率较高,但实现的代价也较高。
异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的,但接收端必须时刻做好接收的准备。发送端可以在任意时刻开始发送字符, 因此必须在每个字符开始和结束的地方加上标志, 即开始位和停止位,以便使接收端能够正确地将每个字符接收下来。异步通信也可以帧作为发送的单位。这时,帧的首部和尾部必须设有一些特殊的比特组合,使得接收端能够找出一帧的开始(即帧定界)。异步通信的通信设备简单、便宜,但传输效率较低(因为标志的开销所占比例较大)。

9.频分复用 时分复用 波分复用 码分复用

频分复用:给每个信号分配唯一的载波频率并通过单一媒体来传输多个独立信号的方法。
时分复用:把多个信号复用到单个硬件传输信道,它允许每个信号在一个很短的时间使用信道,接着再让下一个信号使用。
波分复用:就是光的频分复用。用一根光纤同时传输多个频率很接近的光载波信号。
码分复用:码分复用是用一组包含互相正交的码字的码组携带多路信号。每一个用户可以在同样的时间使用同样的频带进行通信。由于各用户使用经过特殊挑选的不同码型,各用户之间不会造成干扰, 有很强的抗干扰能力。

第三章、数据链路层

忆知识框架:

在这里插入图片描述

10.为什么要进行流量控制?

由于接收发双方各自的工作速率和缓存空间的差异,可能出现发送方的发送能力大于接收方的接收能力的现象,如若此时不适当限制发送方的发送速率(即链路上的信息流量),前而来不及接收的帧将会被后面不断发送辈的帧"淹没",造成帧的丢失而出错。
因此流量控制实际上就是限制发送方的数据流量,使其发送速率不超过接收方的接收能力。这个过程需要通过某种反馈机制使发送方能够知道接收方是否能跟上自己,即需要有一些规则使得发送方知道在什么情况下可以接着发送下一帧而在什么情况下必须暂停发送,以等待收到某种反馈信息后继续发送。

11.流量控制的常见方式?

1、停止-等待流量控制方式基本原理(发送窗口大小=1,接受窗口大小=1)

发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;接收方每接收一帧,都要反馈一个应答信号,表示可接收下一帧,如果接收方不反馈应答信号,那么发送方必须一直等待。每次只允许发送一帧,然后就陷入等待接收方确认信息的过程中,因而传输效率很低。

2、滑动窗口流量控制方式基本原理

在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口;同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口。发送窗口用来对发送方进行流量控制,而发送窗口的大小代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧。同理,在接收端设置接收窗口是为了控制可以接收哪些数据帧和不可以接收哪些帧。在接收方,只有收到的数据帧的序号落入接收窗口内时,才允许将该数据帧收下。若接收到的数据帧落在接收窗口之外,则一律将其丢弃。

3、后退N帧协议(GBN)(发送窗口大小>1,接收窗口大小=1)

在后退N 帧式ARQ 中,发送方无须在收到上一个帧的ACK 后才能开始发送下一帧,而是可以连续发送帧。当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧;或者当发送方发送了N 个帧后,若发现该N 个帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重传该出错帧及随后的N 个帧。

4、选择重传协议(SR)(发送窗口大小>1,接收窗口大小>1)

为进一K步提高信道的利用率,可设法只重传出现差错的数据帧或计时器超时的数据帧,但此时必须加大接收窗口,以便先收下发送序号不连续但仍处在接收窗口中的那些数据帧。等到所缺序号的数据帧收到后再一并送交主机。这就是选择重传ARQ 协议。

12.可靠传输机制有哪些?

数据链路层的可靠传输通常使用确认和超时重传两种机制来完成。
确认是一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道哪些内容被正确接收。有些情况下为了提高传输效率,将确认捎带在一个回复帧中,称为捎带确认。超时重传是指发送方在发送某个数据帧后就开启一个计时器,在一定时间内如果没有得到发送的数据帧的确认帧,那么就重新发送该数据帧,直到发送成功为止。
自动重传请求通过接收方请求发送方重传出错的数据帧来恢复出错的帧,是通信中用于处理信道所带来差错的方法之一。传统自动重传请求分为三种,即停止-等待 、后退N 帧和选择性重传,后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称其为连续ARQ 协议。注意,在数据链路层中流量控制机制和可靠传输机制是交织在一起的。

13.随机访问介质访问控制?

在随机访问协议中,不采用集中控制方式(信道划分介质访问–时分复用)解决发送信息的次序问题,所有用户能根据自己的意愿随机地发送信息,占用信道全部速率。在总线形网络中,当有两个或多个用户同时发送信息时,就会产生帧的冲突(碰撞,即前面所说的相互干扰),导致所有冲突用户的发送均以失败告终。为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无碰撞地通过。A/这些规则就是随机访问介质访问控制协议,常用的协议有ALOHA 协议、CSMA协议、CSMA/CD 协议和CSMA/CA 协议等,它们的核心思想都是:胜利者通过争用获得信道,从而获得信息的发送权

14.PPP协议?

点到点协议(Point to Point Protocol,PPP)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。PPP具有以下功能:
(1)PPP具有动态分配IP地址的能力,允许在连接时刻协商IP地址;
(2)PPP支持多种网络协议,比如TCP/IP、NetBEUI、NWLINK等;
(3)PPP具有错误检测能力,但不具备纠错能力,所以ppp是不可靠传输协议;
(4)无重传的机制,网络开销小,速度快。
(5)PPP具有身份验证功能。
(6) PPP可以用于多种类型的物理介质上,包括串口线、电话线、移动电话和光纤(例如SDH),PPP也用于Internet接入。

15.HDLC协议?

HDLC协议使用统一的帧格式,运用方便;采用零比特插入法,易于硬件实现,且支持任意的位流传输,实现信息的透明传输;全双工通信,吞吐率高,在未收到应答帧的情况下,可连续发送信息帧,提高数据链路传输的效率;采用CRC帧校验序列,可防止漏帧,提高信息传输的可靠性。
主要有四个特点:
(1)对于任何一种比特流都可透明传输。
(2)较高的数据链路传输效率。
(3)所有的帧都有帧校验序列(FCS),传输可靠性高。
(4)用统一的帧格式来实现传输。

16.试分析中继器、集线器、网桥和交换机这四种网络互联设备的区别与联系。

这四种设备都是用于互联、扩展局域网的连接设备,但它们工作的层次和实现的功能不同。
中继器工作在物理层,用来连接两个速率相同且数据链路层协议也相同的网段,其功能是消除数字信号在基带传输中由于经过一长段电缆而造成的失真和衰减,使信号的波形和强度达到所需的要求;其原理是信号再生。
集线器(Hub) 也工作在物理层,相当于一个多接口的中继器,它可将多个结点连接成一个共享式的局域网,但任何时刻都只能有一个结点通过公共信道发送数据。
网桥工作在数据链路层,可以互联不同的物理层、不同的MAC 子层及不同速率的以太网。网桥具有过滤帧及存储转发帧的功能,可以隔离冲突域,但不能隔离广播域。
交换机工作在数据链路层,相当于一个多端口的网桥,是交换式局域网的核心设备。它允许端口之间建立多个并发连接,实现多个结点之间的并发传输。因此,交换机的每个端口结点所占用的带宽不会因为端口结点数目的增加而减少,且整个交换机的总带宽会随着端口结点的增加而增加。交换机一般工作在全双工方式,有的局域网交换机采用存储转发方式进行转发,也有的交换机采用直通交换方式。

第四章、网络层

知识框架:

在这里插入图片描述

17.路由器的主要功能?

路由器主要完成两个功能:一是路由选择(确定哪一条路径),二是分组转发(当一个分组到达时所采取的动作)。前者是根据特定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。后者处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度等。

  1. 路由选择。指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由。
  2. 分组转发。指路由器根据转发表将用户的IP 数据报从合适的端口转发出去。路由表是根据路由选择算法得出的,而转发表是从路由表得出的。转发表的结构应当使查找过程最优化,路由表则需要对网络拓扑变化的计算最优化。在讨论路由选择的原理时,往往不去区分转发表和路由表,而是笼统地使用路由表一词。

18.动态路由算法?

1、距离-向量路由算法(例如RIP算法)

在距离-向量路由算法中,所有结点都定期地将它们的整个路由选择表传送给所有与之直接相邻的结点。这种路由选择表包含:1.每条路径的目的地(另一结点)。2.路径的代价(也称距离)。
在这种算法中,所有结点都必须参与距离向量交换,以保证路由的有效性和一致性,也就是说,所有的结点都监听从其他结点传来的路由选择更新信息,并在下列情况下更新它们的路由选择表:

  1. 被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地系统加入这条新的路由。
  2. 发来的路由信息中有一条到达某个目的地的路由,该路由与当前使用的路由相比,有较短的距离(较小的代价)。此种情况下,就用经过发送路由信息的结点的新路由替换路由表中到达那个目的地的现有路由。

2、链路状态路由算法(例如OSPF算法)

链路状态路由算法要求每个参与该算法的结点都具有完全的网络拓扑信息,它们执行下述两项任务。第一,主动测试所有邻接结点的状态。两个共享一条链接的结点是相邻结点,它们连接到同一条链路,或者连接到同一广播型物理网络。第二,定期地将链路状态传播给所有其他结点(或称路由结点)
距离-向量路由算法与链路状态路由算法的比较:在距离-向量路由算法中,每个结点仅与它的直接邻居交谈,它为它的邻居提供从自已到网络中所有其他结点的最低费用估计。在链路状态路由算法中,每个结点通过广播的方式与所有其他结点交谈,但它仅告诉它们与它直接相连的链路的费用。相较之下,距离~向量路由算法有可能遇到路由环路等问题。

3、一个自治系统内部所使用的路由选择协议称为内部网关协议(IGP), 也称域内路由选择,具体的协议有RIP 和OSPF 等。

19.网络层转发分组的流程?

  1. 从数据报的首部提取目的主机的IP 地址D, 得出目的网络地址N。
  2. 若网络N 与此路由器直接相连,则把数据报直接交付给目的主机D, 这称为路由器的直接交付;否则是间接交付,执行步骤3) 。
  3. 若路由表中有目的地址为D 的特定主机路由(对特定的目的主机指明一个特定的路由,通常是为了控制或测试网络,或出千安全考虑才采用的),则把数据报传送给路由表中所指明的下一跳路由器;否则执行步骤4)
  4. 若路由表中有到达网络N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行步骤5) 。
  5. 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行步骤6) 。
  6. 报告转发分组出错。

20.IP地址和MAC地址?

IP 地址是网络层使用的地址,它是分层次等级的。MAC地址是数据链路层使用的地址,它是平面式的。在网络层及网络层之上使用IP 地址, IP 地址放在IP 数据报的首部,而MAC 地址放在MAC帧的首部。通过数据封装,把IP 数据报分组封装为MAC 帧后,数据链路层看不见数据报分组中的IP地址。
由于路由器的隔离, IP 网络中无法通过广播方式依靠MAC 地址来完成跨网络的寻址,因此在IP网络的网络层只使用IP 地址来完成寻址。寻址时,IP每个路由器依据其路由表选择到目标网络需要转发到的下一跳,而IP 分组通过多次路由转发到达目标网络后,改为在目标LAN 中通过数据链路层的MAC 地址以广播方式寻址。这样可以提高路由选择的效率。
注意:路由器由于互联多个网络,因此它不仅有多个IP 地址,也有多个硬件地址。

21.ARP地址解析协议?

无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成IP 地址到MAC 地址的映射,这就是地址解析协议。每台主机都设有一个ARP 高速缓存,用来存放本局域网上各主机和路由器的IP地址到MAC 地址的映射表,称ARP 表。使用ARP 来动态维护此ARP 表。

22.DHCP动态主机配置协议?

动态主机配置协议(Dynamic Host Configuration Protocol, DHCP) 常用于给主机动态地分配IP 地址,它提供了即插即用联网的机制,这种机制允许一台计算机加入新的网络和获取IP 地址而不用手工参与。DHCP 是应用层协议,它是基于UDP 的。
DHCP 的工作原理如下:使用客户/服务器方式。需要IP 地址的主机在启动时就向DHCP 服务器广播发送发现报文,这时该主机就成为DHCP 客户。本地网络上所有主机都能收到此广播报文,但只有DHCP 服务器才回答此广播报文。DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP 地址池中取一个地址分配给该计算机。DHCP 服务器的回答报文称为提供报文。
DHCP 服务器聚合DHCP 客户端的交换过程如下:

  1. DHCP 客户机广播"DHCP 发现“消息,试图找到网络中的DHCP 服务器,以便从DHCP服务器获得一个IP 地址。
  2. DHCP 服务器收到"DHCP 发现消息后,向网络中广播"DHCP 提供“消息,其中包括提供DHCP客户机的IP 地址和相关配置信息。
  3. DHCP 客户机收到"DHCP 提供“消息,如果接收DHCP 服务器所提供的相关参数,那么通过广播"DHCP 请求“消息向DHCP 服务器请求提供IP 地址。
  4. DHCP 服务器广播"DHCP 确认“消息,将IP 地址分配给DHCP 客户机。DHCP 允许网络上配置多台DHCP 服务器,当DHCP 客户机发出DHCP 请求时,有可能收到多个应答消息。这时,DHCP 客户机只会挑选其中的一个,通常挑选最先到达的。DHCP 服务器分配给DHCP 客户的IP 地址是临时的,因此DHCP 客户只能在一段有限的时间内使用这个分配到的IP 地址。DHCP 称这段时间为租用期。租用期的数值应由DHCP 服务器自己决定, DHCP 客户也可在自已发送的报文中提出对租用期的要求。

23.ICMP网际控制报文协议?

为了提高IP 数据报交付成功的机会,在网络层使用了网际控制报文协议(Internet ControlMessage Protocol, ICMP) 来让主机或路由器报告差错和异常情况。ICMP 报文作为IP 层数据报的数据,加上数据报的首部,组成IP 数据报发送出去。ICMP 是IP 层协议。ICMP 报文的种类有两种,即ICMP 差错报告报文和ICMP 询问报文。ICMP 差错报告报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况。共有以下5种类型:

  1. 终点不可达。当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。
  2. 源点抑制。当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
  3. 时间超过。当路由器收到生存时间(TTL) 为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
  4. 参数问题。当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
  5. 改变路由(重定向)。路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。

第五章、传输层

知识框架:

在这里插入图片描述

24.传输层的功能?

从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属千面向通信部分的最高层,同时也是用户功能中的最低层。传输层位于网络层之上,它为运行在不同主机上的进程之间提供了逻辑通信,而网络层提供主机之间的逻辑通信。显然,即使网络层协议不可靠(网络层协议使分组丢失、混乱或重复),传输层同样能为应用程序提供可靠的服务。
传输层的功能如下:
l) 传输层提供应用进程之间的逻辑通信(即端到端的通信)。与网络层的区别是,网络层提供的是主机之间的逻辑通信。从网络层来说,通信的双方是两台主机, IP 数据报的首部给出了这两台主机的IP 地址。但“两台主机之间的通信”实际上是两台主机中的应用进程之间的通信,应用进程之间的通信又称端到端的逻辑通信。
2) 复用和分用。复用是指发送方不同的应用进程都可使用同一个传输层协议传送数据;分用是指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。
3) 传输层还要对收到的报文进行差错检测(首部和数据部分)。而网络层只检查IP 数据报的首部,不检验数据部分是否出错。
4) 提供两种不同的传输协议,即面向连接的TCP 和无连接的UDP 。而网络层无法同时实现两种协议(即在网络层要么只提供面向连接的服务,如虚电路;要么只提供无连接服务,如数据报,而不可能在网络层同时存在这两种方式)

25.UDP协议?

RFC 768 定义的UDP 只是做了传输协议能够做的最少工作,它仅在IP 的数据报服务之上增加了两个最基本的服务:复用和分用以及差错检测。如果应用程序开发者选择UDP 而非TCP,那么应用程序几乎直接与IP 打交道。为什么应用开发人员宁愿在UDP 之上构建应用,也不选择TCP? 既然TCP提供可靠的服务,而UDP 不提供,那么TCP 总是首选吗?答案是否定的,因为有很多应用更适合用UDP,主要是因为UDP 具有如下优点:

  1. UDP 无须建立连接。因此UDP 不会引入建立连接的时延。试想如果DNS 运行在TCP 而非UDP上,那么DNS 的速度会慢很多。HTTP 使用TCP 而非UDP, 是因为对于基于文本数据的Web网页来说可靠性是至关重要的。
  2. 无连接状态。TCP 需要在端系统中维护连接状态。此连接状态包括接收和发送缓存、拥塞控制参数和序号与确认号的参数。而UDP 不维护连接状态,也不跟踪这些参数。因此,某些专用应用服务器使用UDP 时,一般都能支持更多的活动客户机
  3. 分组首部开销小。TCP 有20B 的首部升销,而UDP 仅有8B 的升销。
  4. 应用层能更好地控制要发送的数据和发送时间。UDP 没有拥塞控制,因此网络中的拥塞不会影响主机的发送效率。某些实时应用要求以稳定的速度发送,能容忍一些数据的丢失,但不允许有较大的时延,而UDP 正好满足这些应用的需求。UDP 常用于一次性传输较少数据的网络应用如DNS 、SNMP 等,因为对千这此应用,若采用TCP, 则将为连接创建、维护和拆除带来不小的开销。UDP 也常用于多媒体应用,显然,可靠数据传输对这些应用来说并不是最重要的,但TCP的拥塞控制会导致数据出现较大的延迟,这是它们不可容忍的。

UDP 提供尽最大努力的交付,即不保证可靠交付,但这并不意味着应用对数据的要求是不可靠的,因此所有维护传输可靠性的工作需要用户在应用层来完成。应用实体可以根据应用的需求来灵活设计自己的可靠性机制。

26.TCP协议?

TCP 是在不可靠的IP 层之上实现的可靠的数据传输协议,它主要解决传输的可靠、有序、无丢失和不重复问题。TCP 是TCP/IP 体系中非常复杂的一个协议,主要特点如下:

  1. TCP 是面向连接的传输层协议。
  2. 每条TCP 连接只能有两个端点,每条TCP 连接只能是点对点的(一对一)。
  3. TCP 提供可靠的交付服务,保证传送的数据无差错、不丢失、不重复且有序。
  4. TCP 提供全双工通信,允许通信双方的应用进程在任何时候都能发送数据,为此TCP 连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。发送缓存用来暂时存放以下数据:(1)发送应用程序传送给发送方TCP 准备发送的数据;(2)TCP 已发送但尚未收到确认的数据。接收缓存用来暂时存放以下数据:(1)按序到达但尚未被接收应用程序收取的数据;(2)不按序到达的数据。

TCP连接的建立
在TCP 连接建立的过程中,要解决以下三个问题:

  1. 要使每一方都能够确知对方的存在。
  2. 要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项、时间戳选项及服务质量等)。
  3. 能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。

27.拥塞控制的四种算法?

所谓拥塞控制,是指防止过多的数据注入网络,保证网络中的路由器或链路小致过载。出现拥塞时,端点并不了解到拥塞发生的细节,对通信连接的端点来说,拥塞往往表现为通信时延的增加。当然,拥塞控制和流量控制也有相似的地方,即它们都通过控制发送方发送数据的速率来达到控制效果。
拥塞控制与流量控制的区别:拥塞控制是让网络能够承受现有的网络负荷,是一个全局性的过程,涉及所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。相反,流量控制往往是指点对点的通信量的控制,即接收端控制发送端,它所要做的是抑制发送端发送数据的速率,以便使接收端来得及接收。

1、慢开始算法(接收窗口rwnd,拥塞窗口cwnd)

在TCP 刚刚连接好并开始发送TCP 报文段时,先令拥塞窗口cwnd = 1, 即一个最大报文段长度MSS 。每收到一个对新报文段的确认后,将cwnd 加1, 即增大一个MSS 。用这样的方法逐步增大发送方的拥塞窗口cwnd, 可使分组注入网络的速率更加合理。使用慢开始算法后,每经过一个传输轮次(即往返时延RTT), 拥塞窗口cwnd 就会加倍,即cwnd 的大小指数式增长。这样,慢开始一直把拥塞窗口cwnd 增大到一个规定的慢开始门限ssthresh(阔值),然后改用拥塞避免算法

2、拥塞避免算法

拥寒避免算法的做法如下:发送端的拥塞窗口cwnd 每经过一个往返时延RTT 就增加一个MSS的大小,而不是加倍,使cwnd 按线性规律缓慢增长(即加法增大),而当出现一次超时(网络拥塞)时,令慢开始门限ssthresh 等于当前cwnd 的一半(即乘法减小)。
在这里插入图片描述

3、快重传

快重传技术使用了冗余ACK 来检测丢包的发生。同样,冗余ACK 也用千网络拥塞的检测(丢了包当然意味着网络可能出现了拥塞)。快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。当发送方连续收到三个重复的ACK 报文时,直接重传对方尚未收到的报文段,而不必等待那个报文段设置的重传计时器超时。

4、快恢复

快恢复算法的原理如下:发送端收到连续三个冗余ACK (即重复确认)时,执行“乘法减小”算法,把慢开始门限ssthresh 设置为出现拥塞时发送方cwnd 的一半。与慢开始(慢开始算法将拥塞窗口cwnd 设置为1) 的不同之处是,它把cwnd 的值设置为慢开始门限ssthresh 改变后的数值,然后开始执行拥塞避免算法(“加法增大”)'使拥塞窗口缓慢地线性增大。由于跳过了cwnd 从1 起始的慢开始过程,所以被称为快恢复。

28.为何不采用“三次握手“释放连接,且发送最后一次握手报文后要等待2MSL 的时间呢?

原因有两个:

  1. 保证A 发送的最后一个确认报文段能够到达B 。如果A 不等待2MSL, 若A 返回的最后确认报文段丢失,则B 不能进入正常关闭状态,而A 此时已经关闭,也不可能再重传。
  2. 防止出现“已失效的连接请求报文段“。A 在发送最后一个确认报文段后,再经过2MSL可保证本连接持续的时间内所产生的所有报文段从网络中消失。服务器结束TCP 连接的时间要比客户机早一些,因为客户机最后要等待2MSL 后才可进入CLOSED状态。

29.为什么不采用“两次握手”建立连接呢?

这主要是为了防止两次握手情况下已失效的连接请求报文段突然又传送到服务器而产生错误。考虑下面这种情况。客户A 向服务器B 发出TCP 连接请求,第一个连接请求报文在网络的某个结点长时间滞留, A 超时后认为报文丢失,千是再重传一次连接请求, B 收到后建立连接。数据传输完毕后双方断开连接。而此时,前一个滞留在网络中的连接请求到达服务器B, 而B 认为A 又发来连接请求,此时若使用“三次握手”,则B 向A 返回确认报文段,由于是一个失效的请求,因此A 不予理睬,建立连接失败。若采用的是“两次握手”,则这种情况下B 认为传输连接已经建立,并一直等待A 传输数据,而A 此时并无连接请求,因此不予理睬,这样就造成了B的资源白白浪费。

第六章、应用层

知识框架:

在这里插入图片描述

30.DNS域名解析协议?

域名解析是指把域名映射成为IP 地址或把IP 地址映射成域名的过程。前者称为正向解析,后者称为反向解析。当客户端需要域名解析时,通过本机的DNS 客户端构造一个DNS 请求报文,以UDP数据报方式发往本地域名服务器。域名解析有两种方式:递归查询和递归与迭代相结合的查询。

31.FTP文件传输协议?

文件传输协议(file Transfer Protocol, FTP) 是因特网上使用得最广泛的文件传输协议。FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。它屏蔽了各计算机系统的细节,因而适合于在异构网络中的任意计算机之间传送文件。FTP 提供以下功能:
(1)提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。
(2)以用户权限管理的方式提供用户对远程FTP 服务器上的文件管理能力。
(3)以匿名FTP 的方式提供公用文件共享的能力。
FTP 采用客户/服务器的工作方式,它使用TCP 可靠的传输服务。一个FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外有若干从属进程,负责处理单个请求。其工作步骤如下:
(1)打开熟知端口21 (控制端口),使客户进程能够连接上。
(2)等待客户进程发连接请求。
(3)启动从属进程来处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。
(4)回到等待状态,继续接收其他客户进程的请求。

32.SMTP简单邮件传输协议?

简单邮件传输协议(Simple Mail Transfer Protocol, SMTP) 是一种提供可靠且有效的电子邮件传输的协议,它控制两个相互通信的SMTP 进程交换信息。由于SMTP 使用客户/服务器方式,因此负责发送邮件的SMTP 进程就是SMTP 客户,而负责接收邮件的SMTP 进程就是SMTP 服务器。SMTP 用的是TCP 连接,端口号为25 。SMTP 通信有以下三个阶段:(1) 连接建立(2) 邮件传送(3)连接释放。

33.POP3

邮局协议(Post Office Protocol, POP) 是一个非常简单但功能有限的邮件读取协议,现在使用的是它的第3 个版本POP3 。POP3 采用的是“拉" (Pull) 的通信方式,当用户读取邮件时,用户代理向邮件服务器发出请求,“拉”取用户邮箱中的邮件。POP 也使用客户/服务器的工作方式,在传输层使用TCP, 端口号为110 。接收方的用户代理上必须运行POP 客户程序,而接收方的邮件服务器上则运行POP 服务器程序。POP 有两种工作方式:“下载并保留”和“下载并删除"。在“下载并保留”方式下,用户从邮件服务器上读取邮件后,邮件依然会保存在邮件服务器上,用户可再次从服务器上读取该邮件;而使用“下载并删除“方式时,邮件一旦被读取,就被从邮件服务器上删除,用户不能再次从服务器上读取。
随着万维网的流行,目前出现了很多基于万维网的电子邮件,如Hotmail 、Gmail 等。这种电子邮件的特点是,用户浏览器与Hotmail 或Gmail 的邮件服务器之间的邮件发送或接收使用的是HTTP, 而仅在不同邮件服务器之间传送邮件时才使用SMTP

34.HTTP超文本传输协议?

HTTP 定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看, HTTP 是面向事务的(Transaction-oriented) 应用层协议,它规定了在浏览器和服务器之间的请求和响应的格式与规则,是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
用户单击鼠标后所发生的事件按顺序如下(以访问清华大学的网站为例):

  1. 浏览器分析链接指向页面的URL (http://www.tsinghua.edu.cn /chn/index.htm) 。
  2. 浏览器向DNS 请求解析www.tsinghuaaedu.CR 的IP 地址。-
  3. 域名系统统DNS 胪祈出清毕大学服务器的IP 地址。
  4. 浏览器与该服务器建立TCP 连接(默认端口号为80) 。
  5. 浏览器发出HTTP 请求: GET /chn/index.htm 。
  6. 服务器通过HTTP 响应把文件index.htm 发送给浏览器。
  7. TCP 连接释放。
  8. 浏览器解释文件index.htm, 并将Web 页显示给用户。
    在这里插入图片描述

本期推荐:

《从零开始读懂相对论》(购买通道)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_51390582/article/details/132603429
今日推荐