【计算机网络】期末考试复习简答题最全整理:题目+答案

第一部分为所有题目,没给答案,便于背诵,后面为分章节给出的对应题目的答案

所有题目无答案,方便背诵

  1. 简述分组交换机的主要功能和分类。
  2. 简单描述端到端数据传输的两种基本技术。
  3. 什么是多路复用?多路复用主要的两种方式是什么?
  4. 分组交换网中的 4 种时延是什么?对其进行简单描述。
  5. 简单描述分组交换网络中传输时延和传播时延的主要区别。
  6. 简述排队延时出现的原因,出现丢包的原因。
  7. 什么是分层的体系结构?特点是什么?分层体系结构的主要优点和缺点是什么?(了解)
  8. 因特网协议栈分为几个层次?分别是哪几个层次(按自顶向下的顺序描述)?简单描述每个层次的主要功能。
  9. 简单描述分层后数据传递的物理过程
  10. 简单描述病毒和蠕虫之间的共同点和主要区别。最近爆发的勒索恶意软件如果细分,是属于病毒还是蠕虫?
  11. 简单描述主要的网络攻击方式
  12. 在包括因特网的现代分组交换网中,源主机将长应用层报文(比如图像、音乐等)分段为较小的分组并向网络发送。接收方则将这些分组重新装配为初始报文,这称为报文分段。请简述报文分段技术的优缺点。
  13. 什么是应用程序体系结构?主要有哪几种类型?它和网络体系结构有何区别?
  14. 简单描述非持续(久)连接和持续(久)连接。非持续(久)连接的主要缺点是什么?
  15. 简单描述和比较持续连接的两种方式。
  16. Cookie 主要包括哪几个部分?**Cookie 的作用是什么?**会带来什么问题?
  17. 什么是 Web 缓存?简单描述 Web 缓存的作用。
  18. 在使用 Web 缓存时,缓存器采用了什么技术来证实其保存的对象是否为最新的?描述相关技术的原理。
  19. 描述使用 Web 缓存服务器后网页的访问过程以及使用条件 GET 请求更新对象的过程
  20. 简单描述 Alice 向 Bob 发送报文的过程
  21. SMTP 与 HTTP 的简单对比
  22. 描述 DNS 所提供的服务,以及两种解析(查询)方式
  23. 假设某台主机 X 上设置的本地 DNS 服务器为 dns.mycity.com。当在 X 上第一次在浏览器中输入域名 www.jd.com,而 dns.mycity.com 上没有该域名记录的缓存。假设根域名服务器为 root.net,管理.com 的顶级域名服务器为dns_com.net,其下属权威域名服务器为 dnspod.net,请描述迭代解析该域名的过程
  24. 简单描述可靠数据传输机制中,检验和、定时器、序号、确认、窗口的作用。
  25. 实现可靠数据传输需解决哪几个问题? 各使用何种技术?
  26. UDP 提供的是不可靠的运输服务,为什么有些程序会选择 UDP 协议?
  27. 简述 TCP 和 UDP 协议的主要特点。
  28. 简单描述面向连接的服务运行时的三个阶段。
  29. 简单描述 GBN 协议和 SR 协议的区别
  30. 流量控制和拥塞控制的区别
  31. TCP 流控工作原理
  32. TCP 建立连接时,三次握手的过程。
  33. 描述 TCP 的拥塞控制过程?
  34. TCP 建立连接采用三次握手机制,请问为何要用三次,而不是二次,或者四次以及更多次?
  35. TCP 可靠数据传输过程
  36. 校验和计算方法;
  37. 请用文字简述停-等协议 RDT3.0 的实现机制。
  38. 简单描述,intel 运输层所提供的服务?哪些主要服务没有提供?
  39. 试述 TCP 拥塞控制中慢启动、拥塞避免、快速恢复三个状态的转换过程。
  40. 早期的 TCP 拥塞控制算法如 Tahoe 中,只有慢启动和拥塞避免两种状态。后来的新版本如 Reno 中,则加入了快速恢复状态。设计者为何要加入这个状态?谈谈你的理解。简述 TCP 拥塞控制中进入慢启动、快速恢复、拥塞避免三种状态对应的触发事件?
  41. 简述 TCP 拥塞控制中进入慢启动、快速恢复、拥塞避免三种状态对应的触发事件?
  42. 简述 TCP 拥塞控制中,在三个状态下,对于收到 1 个新的 ACK,拥塞窗口的变化及可能发生的状态变化。
  43. 简单描述网络层的功能:转发和选路的区别
  44. 运输层所提供的服务与网络层所提供服务的区别是什么?
  45. 简单描述 intel 网中,路由器查表转发的方法。
  46. 简单描述 NAT 网络地址转换的过程。
  47. 简单描述全局选路算法和分散式选路算法的区别
  48. 什么是自治系统?什么是层次选路?
  49. 简单描述层次选路的优点
  50. 为什么 AS 内选路和 AS 间选路采用不同的协议 ?
  51. 简单描述层次路由选择的基本思路
  52. 简单描述 BGP 协议为每个 AS 提供了什么功能?
  53. 运输层提供了可靠交付服务,而有些链路层协议也提供可靠交付服务,为什么在协议栈的两层都提供这种可靠交付服务?两者的区别是什么?有什么共同点?
  54. 通过对检验和与 CRC 两种差错检测技术对比,简单说明,为什么在运输层采用检验和差错检测技术,而在链路层采用 CRC 差错检测技术。
  55. 简述以太网中 CSMA/CD 协议的工作方式。
  56. 简单描述 DNS 和 ARP 的区别
  57. 简述以太网二层交换机的交换过程。(简述二层交换机自学习和滤波转发查找的过程。
  58. 简单描述一台主机 A 想要查询同一个子网中的主机 B(IP 地址为BB.BB.BB.BB)所对应的 MAC 地址时,所执行的操作步骤。
  59. 简单描述以太网交换机的特点。
  60. 简单比较交换机和路由器的优缺点。
  61. 简单TCP循环服务器Socket编程基本步骤(服务器端和客户端)
  62. 简单UDP循环服务器Socket编程基本步骤(服务器端和客户端)

计算机网络与因特网

  1. 简述分组交换机的主要功能和分类。

    答:分组交换机是连接端系统的中间交换设备。主要功能是:接收、转发分组。从一条(入)通信链路接收分组、并保存,再从另一条(出)通信链路转发出去。

    类型:路由器(router)链路层交换机(link-layer switch)

  2. 简单描述端到端数据传输的两种基本技术。

    端到端的数据传输有两种基本技术:电路交换和分组交换

    电路交换,需要在数据正式传输之前,协商预留端到端资源:即预留端系统之间通信路径上,所需要的资源,包括交换机的缓存,链路带宽等资源,这种预留的资源是在建立连接的时候预留的。在建立连接的时候,相关资源就被协商确定下来。既然有预留的资源,那发送方就可以以恒定速率向接收方传送数据。电话网采用的电路交换技术。

    优点是传输时延低,数据传输稳定。电路交换缺陷:效率较低:静默期(无数据传输)专用电路空闲,网络资源被浪费;创建端到端电路及预留端到端带宽的过程复杂。

    分组交换的工作过程:源端将报文划分为较小的数据块(分组packet);每个分组通过一系列链路和分组交换机传送,直到目的端;目的端恢复原报文。

    分组交换:不需要资源预留,按需使用资源,可能要排队等待:因特网采用的是分组交换技术。所有分组共享网络资源,分组交换带宽共享好,简单,有效,成本更低。资源按需使用,资源利用率高。传输过程中采用存储转发传输机制。分组交换不适合实时服务:端到端时延不确定;

  3. 什么是多路复用?多路复用主要的两种方式是什么?

    所谓的多路复用,就是在一条传输链路上同时建立多条连接的电路,分别传输数据。

    多路复用主要有两种方式:频分多路复用 FDM 和时分多路复用 TDM

    频分多路复用:按频率划分若干频段,每个频段专用于 一个连接。每个频段具有一定的带宽。

    时分多路复用(TDM)是按传输信号的时间进行分割的,它使不同的信号在不同的时间内传送,将整个传输时间分为许多时间间隔,每个时间片被一路信号占用。其划分方式就是,先将时间划分为固定时间长度的帧,每帧再划分为固定数量的时隙,每一个时隙专用于一个连接,用于传输数据。

  4. 分组交换网中的 4 种时延是什么?对其进行简单描述。

    (1)处理时延:路由器处理分组头部、检查错误位、以及决定将该分组转发到何处所需时间;
    (2)排队时延:分组在路由器内部队列中排队所耗费的时间;
    (3)传输时延:将所有分组的比特推(传输)到链路所需的时间;
    (4)传播时延;分组在介质中传送所耗费的时间。

  5. 简单描述分组交换网络中传输时延和传播时延的主要区别。

    传输时延是路由器将分组推出所需要的时间,它是分组长度和链路传输速率的函数,而与两台路由器之间的距离无关;
    传播时延是一个比特从一台路由器向另一个路由器传播所需要的时间,它是两台路由器之间的距离的函数,而与分组长度或链路速率无关。

  6. 简述排队延时出现的原因,出现丢包的原因。

    每个分组交换机的每条相连的链路,都具有一个输出缓存(也称为:输出队列),用于保存准备发往那条链路的分组。如果到达的分组需要传输到某条链路,但该链路正忙于传输其他分组。则该分组需要在其输出缓存中排队等待。从而产生排队时延。

    还有,因为缓存的空间的大小是有限的,当一个分组到达的时候,可能会发现,该缓存已经被其他分组完全充满了,这种情况下,会出现分组丢失。

  7. 什么是分层的体系结构?特点是什么?分层体系结构的主要优点和缺点是什么?(了解)

    为了研究和设计方便,一般采用分层的方法,即按照功能划分为若干个层次。
    分层特点:每层功能独立;每两个相邻层之间有一逻辑接口,可交换信息;上一层建立在下一层基础上,上一层可调用下一层的服务,下一层为上一层提供服务。

    分层结构主要优点:

    • 使复杂系统简化:将一个大而复杂系统划分为若干个明确、特定的部分,分别讨论研究。
    • 易于维护、系统的更新:某层功能变化,不会影响系统其余部分:

    分层缺点:有些功能可能在不同层重复出现:某层的功能可能需要仅存在其他某层的信息。

  8. 因特网协议栈分为几个层次?分别是哪几个层次(按自顶向下的顺序描述)?简单描述每个层次的主要功能。

    因特网协议栈分为 5 个层次,分别是:应用层、运输层、网络层、链路层和物理层。

    每个层次主要实现的功能如下:
    应用层:提供各种应用,传输应用层报文
    运输层:主机进程间报文段传送。
    网络层:实现数据报主机到主机之间的运送服务
    链路层:相邻网络节点间的数据传送。
    物理层:物理介质上的比特传送。

  9. 简单描述分层后数据传递的物理过程

    主机(端系统)间数据传送实际上并不是在对等层间直接进行,而是通过相邻层间的传递合作完成。
    各层发方从上层到下层,收方从下层到上层传递数据:发方添加头部信息创建新的数据单元,收方去掉头部。
    源主机:由高层向低层逐层传递(封装)
    应用层报文 M 传递到运输层,附加上运输层首部信息,构成运输层报文段
    报文段传递到网络层,附加上网络层首部信息,构成网络层数据报
    数据报传递到链路层,附加上链路层首部信息,构成链路层帧
    传到物理层,送入网络传输。
    目的主机:由低层向高层逐层传递(解封)
    物理层接收,并将其沿协议栈逐层向上传递,每层去除对应的首部,恢复原报文。

  10. 简单描述病毒和蠕虫之间的共同点和主要区别。最近爆发的勒索恶意软件如果细分,是属于病毒还是蠕虫?

    病毒和蠕虫都是自我复制的,一旦感染上一台主机,就会寻求进入更多的主机。
    主要区别是:病毒是一种需要某种形式的用户交互来感染用户设备的恶意软件。而蠕虫是一种无需任何明显用户交互就能进入设备的恶意软件。最近爆发的勒索恶意软件属于蠕虫类型的恶意软件。

  11. 简单描述主要的网络攻击方式

    植入恶意软件、攻击服务器和网络基础设施、嗅探分组、伪装、修改或删除报文

  12. 在包括因特网的现代分组交换网中,源主机将长应用层报文(比如图像、音乐等)分段为较小的分组并向网络发送。接收方则将这些分组重新装配为初始报文,这称为报文分段。请简述报文分段技术的优缺点。

    优点:当源主机和目的主机之间有多跳时,可显著减小时延;当某个分段出错时仅需重发该分段;如果不分段,在路由器上过大的报文会堵塞较小的报文,增加后者的延迟(此点也可答为:过大的报文会增加路由器的处理负担

    缺点:在目的地报文分段需要进行排序;报文分段意味着每个分段都要加上头部信息,这增加了总的传输负荷

应用层

  1. 什么是应用程序体系结构?主要有哪几种类型?它和网络体系结构有何区别?

    应用程序体系结构:规定如何在各种端系统上组织应用程序,由研发者设计。

    三种类型: 客户机/服务器、对等 (P2P)、客户机/服务器与 P2P 的混合

    应用程序的体系结构不同于网络的体系结构:对应用程序开发者来说,网络体系结构是固定的,并为应用程序提供了特定的服务集合。而应用程序体系结构由研发者设计,规定如何在各种端系统上组织应用程序,由研发者设计。

  2. 简单描述非持续(久)连接和持续(久)连接。非持续(久)连接的主要缺点是什么?

    非持续 HTTP 连接:每个 TCP 连接上只传送一个 Web 对象,只传送一个请求/响应对。

    持续 HTTP 连接:传送多个请求/响应对,一个 TCP 连接上可以传送多个 Web 对象

    非持续(久)连接的主要缺点是:服务器负担重。每一个对象的传输时延长:包含两个 RTT 时延

  3. 简单描述和比较持续连接的两种方式。

    非流水线方式:客户机只能在前一个响应接收到之后才能发出新的请求。

    特点:客户机为每一个引用对象的请求和接收都使用一个 RTT 时延。会浪费一些服务器资源:服务器在发送完一个对象,等待下一个请求时,会出现空闲状态

    流水线方式:客户机可一个接一个连续产生请求(只要有引用就产生)。服务器一个接一个连续响应请求,发送相应对象。

    特点:节省 RTT 时延,可能所有引用对象只花费一个 RTT 。TCP 连接空闲时间很短。

  4. Cookie 主要包括哪几个部分?Cookie 的作用是什么?会带来什么问题?

    Cookie 主要包括以下 4 个部分

    1)在 HTTP 响应报文中有一个 cookie 首部行

    2)在 HTTP 请求报文中有一个 cookie 首部行

    3)用户主机中保留有一个 cookie 文件并由浏览器管理

    4)Web 站点的后端数据库保存 cookie

    Cookie:允许 Web 站点跟踪、识别用户;服务器可以限制用户访问,或把内容与用户身份关联。

    Cookie 使用不利于用户隐私保护

  5. 什么是 Web 缓存?简单描述 Web 缓存的作用。

    Web 缓存器(Web cache):也叫代理服务器,是能够代表起始服务器来满足 HTTP请求的网络实体。

    保存最近请求过的对象的副本,如果后续有对同一个对象的请求,则直接发送缓存的副本。

    使用 Web 缓存具有以下优点:

    减少对客户机请求的响应时间

    减少内部网络与接入链路上的通信量,能从整体上大大降低因特网上的 Web 流量。

  6. 在使用 Web 缓存时,缓存器采用了什么技术来证实其保存的对象是否为最新的?描述相关技术的原理。

    Web 缓存使用条件 GET 方法,来证实其保存的对象是否为最新的

    Web 服务器回发响应报文:包括对象的最后修改时间:Last-modified:date1

    缓存检查 Web 服务器中的该对象是否已被修改,发送一个条件 GET 请求报文:报文中包含 If-modified-since:date1 首部行

    告诉服务器,仅当自指定日期之后该对象被修改过,才发送该对象。

    若 Web 服务器中的该对象未被修改,则响应报文含有 304 Not Modified,并且实体为空。

  7. 描述使用 Web 缓存服务器后网页的访问过程以及使用条件 GET 请求更新对象的过程。

    客户的所有网页请求都送达 WEB 缓存服务器

    WEB 缓存服务器先查询本地是否具有请求对象,如果有且没有超时(或过期)则直接返回给客户,

    如果 WEB 缓存服务器本地没有所请求的对象,则转发请求到起始网页服务器,并接收网页响应,然后缓存在本地并转发给客户

    如果本地存在请求的网页但超时(或过期),则 WEB 缓存服务器使用条件 GET进行本地缓存更新;

    web 服务器收到条件 GET请求后判断自己是否对网页进行了修改,如果没有修改,则只返回未修改的响应报头,否则返回整个网页文件。

  8. 简单描述 Alice 向 Bob 发送报文的过程。

    1. Alice 启动邮件代理,提供接收方的邮件地址,撰写邮件
    2. 撰写完成后,点击发送按键,则用户代理把邮件报文发给其邮件服务器,在那里,邮件报文被放在发送队列中
    3. 运行在 Alice 的邮件服务器中的 SMTP 客户端,发现了这个在队列中的待转发的这个邮件报文后,这个 SMTP 的客户端,就创建与运行在 Bob 的邮件服务器上的 SMTP 服务器端的 TCP 连接
    4. 经过一些初始的 SMTP 握手后,SMTP 客户通过 TCP 连接发送 Alice 的有邮件报文。
    5. 在 Bob 的邮件服务器上,SMTP 服务器端接收该报文,并将该报文放入 Bob的邮箱中
    6. Bob 方便的时候,他调用其用户代理来读报文
  9. SMTP 与 HTTP 的简单对比

    相同点

    都用于从一台主机向另一台主机传送文件

    持久 HTTP 和 SMTP 都使用持久连接

    不同点

    HTTP 是拉协议:其 TCP 连接是由想获取文件的机器发起

    SMTP 是推协议:其TCP 连接是由要发送文件的机器发起

    SMTP 使用 7 位 ASCII 码格式,HTTP 数据没有该限制。

    对含有文本和图形 (或其他媒体类型)的文档:HTTP 把每个对象封装在它各自的HTTP 响应报文中发送;电子邮件则把所有报文对象放在一个报文中。

  10. 请描述 DNS 所提供的服务,以及两种解析(查询)方式

    DNS 最基本的服务是:提供主机名到 IP 地址的转换。

    主机别名服务:应用程序可以调用 DNS 来获得主机别名对应的规范主机名以及主机的 IP 地址。

    邮件服务器别名:电子邮件应用程序可以调用 DNS,对提供的邮件服务器别名进行解析,以获得该主机的规范主机名及 IP 地址。

    负载分配:当客户对映射到某地址集合的名字发出一个 DNS 请求时,该 DNS 服务器用 IP 地址的整个集合进行响应,但在每个回答中循环这些地址次序,可以实现在所有冗余服务器之间循环分配负载。

    查询方法包括递归解析和迭代解析。

  11. 假设某台主机 X 上设置的本地 DNS 服务器为 dns.mycity.com。当在 X 上第一次在浏览器中输入域名 www.jd.com,而 dns.mycity.com 上没有该域名记录的缓存。假设根域名服务器为 root.net,管理.com 的顶级域名服务器为dns_com.net,其下属权威域名服务器为 dnspod.net,请描述迭代解析该域名的过程

    (1)主机 X 作为客户机向本地域名服务器 dns.mycity.com 发出 DNS 查询报文,查询域名为 www.jd.com 的主机的 IP 地址。
    (2)由于本地域名服务器所管理的缓存中没有该域名,dns.mycity.com 以客户身份向根域名服务器 root.net 查询。root.net 将顶级域名服务器 dns_com.net 的 IP 地址返回给 dns.mycity.com。
    (3)dns.mycity.com 向 dns_com.net 发出查询请求,dns_com.net 将其下属权威域名服务器 dnspod.net 的 IP 地址返回给 dns.mycity.com。
    (4)dns.mycity.com 向权威域名服务器 dnspod.net 发出查询请求。dns.pod.net 将所查到的 www.jd.com 的 IP 地址返回给本地域名服务器 dns.mycity.com。
    (5)本地域名服务器将查到的 IP 地址告知主机 X,同时在本地域名服务器中缓存之。

运输层

  1. 简单描述可靠数据传输机制中,检验和、定时器、序号、确认、窗口的作用。

    检验和:用于检测在一个传输分组中的比特错误。

    定时器:用于检测超时/重传一个分组。

    序号:用于为从发送方流向接收方的数据分组按顺序编号。所接收分组的序号间的空隙可使该接收方检测出丢失的分组。具有相同序号的分组可使接收方检测出一个分组的冗余拷贝

    确认:接收方用于告诉发送方一个分组或一组分组已被正确地接收到了。

    窗口:通过对窗口长度的设置,可以限制发送方发送数据的速率。

  2. 实现可靠数据传输需解决哪几个问题**?** 各使用何种技术?

    解决三个问题:

    分组出错;

    乱序;

    包丢失;

    各自解决方法:

    错误校验+回复确认+序号;

    序号;

    倒计数定时器。

  3. UDP 提供的是不可靠的运输服务,简单为什么有些程序会选择 UDP 协议?

    无连接创建(它将增加时延)

    简单:在发送方、接收方无连接状态

    段首部小 (TCP首部20字节,UDP首部8字节)

    无拥塞控制: UDP 能够尽可能快地传输

  4. 简述 TCP 和 UDP 协议的主要特点。

    TCP 的主要特点是:

    (1)面向连接,提供了可靠的建立连接和拆除连接的方法,还提供了流量控制和拥塞控制的机制。

    (2)可靠交付,提供了对报文段的检错、确认、重传和排序等功能。

    (3)报文段头部长,传输开销大。

    UDP 的主要特点是:

    (1)传送数据前无需建立连接,没有流量控制机制,数据到达后也无需确认。

    (2)不可靠交付,只有有限的差错控制机制。

    (3)报文头部短,传输开销小,时延较短。

  5. 简单描述面向连接的服务运行时的三个阶段。

    建立连接(握手过程):客户机程序和服务器程序之间互相交换控制信息,在两个进程的套接字之间建立一个 TCP 连接。

    传输报文:连接是全双工的,即连接双方的进程可以在此连接上同时进行报文收发。

    拆除连接:应用程序报文发送结束

  6. 简单描述 GBN 协议和 SR 协议的区别。

    • 都采用流水线协议,允许发送方连续发送多个分组而不需确认,但它也受限于在流水线中未确认的分组数不能超过某个设定的最大值 N
    • GBN 接收方只对按序接收的分组进行确认,是累计确认方式。而 SR 接收方分别确认所有正确接收的报文段。
    • 对于正确接收但失序的分组GBN 接收方予以丢弃,而 SR 接收方将缓存这些正确接收但失序的分组,以便最后按序交付给上层。
    • GBN 发送方对每个传输中的分组的用同一个定时器,该定时器对第一个发送未被确认的报文定时。SR 发送方对每个没有确认的分组计时,即每个分组需要设置一个定时器。
    • 若超时,GBN 发送方重传窗口中的分组 n 及所有更高序号的分组。SR 发送方只重传没有收到 ACK 的分组。
    • SR 相对于 GBN 具有更高的传输效率,但是实现起来更复杂。
  7. 流量控制和拥塞控制的区别

    都是通过抑制发送方的发送速率来实现,但是其实现的目的不同:

    • 流量控制:是为了使得发送方不能发送太快,而淹没接收方。
    • 拥塞控制:是通过抑制发送方速率来防止过分占用网络资源
  8. TCP 流控工作原理

    TCP 流控工作原理:接收方在报文段接收窗口字段中通告其接收缓冲区的剩余空间 RcvWindow。发送方要限制未确认的数据不超过 RcvWindow

  9. TCP 建立连接时,三次握手的过程。

    步骤 1: 客户机向服务器发送 TCP SYN 报文段

    指定初始序号

    没有数据

    步骤 2: 服务器收到 SYN 报文段,用 SYN+ACK 报文段回复

    服务器为该连接分配缓冲区和变量

    指定服务器初始序号

    步骤 3: 客户机接收到 SYNACK,分配缓冲,用 ACK 报文段回复,可能包含数据。

    补充:四次挥手

    客户关闭套接字: clientSocket.close

    Step 1: 客户发送 TCP FIN 控制报文段到服务器

    Step 2: 服务器接收 FIN, 回复 ACK. 进入半关闭连接状态;

    Step 3: 服务器发送FIN到客户,客户接收 FIN, 回复 ACK,进入 “time wait”状态等待结束时释放连接资源

    Step 4: 服务器接收 ACK. 连接关闭.

  10. 描述 TCP 的拥塞控制过程?

    当 CongWin 低于阈值, 发送方处于慢启动阶段, 窗口指数增长.。

    当 CongWin 高于阈值, 发送方处于拥塞避免阶段, 窗口线性增长。

    当三个重复的 ACK 出现时,阈值置为 CongWin/2 并且 CongWin 置为阈值加上 3个 MSS 并进入快速恢复阶段,此时每收到一个重复的 ACK 拥塞窗口增加 1MSS,如果收到新的 ACK 则拥塞窗口置成阈值). 当超时发生时 ,迁移到慢启动阶段,阈值置为 CongWin/2 并且 CongWin 置为1 MSS.

  11. TCP 建立连接采用三次握手机制,请问为何要用三次,而不是二次,或者四次以及更多次?

    三次握手的第 2 步中,服务器端将自己选择的初始序号发送给客户端,因此客户端需要在第 3 步中向服务器确认此序号,可见二次握手是不够的;

    三次握手已经达到建立可靠连接的目的,更多次的握手就是多次重复确认,从效率来说已无必要。

  12. TCP 可靠数据传输过程

    发送方设置一个发送窗口,表示可以连续发送但未被确认的最大报文数,发送方收到确认报文后,则窗口向后移动到未收到确认的报文段的位置,并设置定时器;

    发送方在某一个报文的定时器超时之前没有收到确认报文,则发送方重传该报文,并重置定时器。

    接收方有一个接收窗口,表示能够接收的数据的最大数量,接收方在接收一个新报文时如果之前所有接收的报文都已经被确认,则等待 500ms,如果在 500ms 之内再次接收一个新报文,则返回累计确认,如果在 500ms之内没有接收到新报文,则返回对该报文的确认。

    接收方如果接到一个失序的报文则保存该报文,并重发正确接收的最高序号的报文段的确认。如果接收到的报文能够填充所有未被确认的报文序列,则返回最高序号的累计确认

  13. 校验和计算方法;

    按特定位数分割数据;

    累加求和;

    进位回卷到累加和末尾再次累加;

    最后的累加和按位变反生成校验和。

  14. 请用文字简述停-等协议 RDT3.0 的实现机制。

    使用 0、1 两个序号对分组进行循环编号;

    发送方发送一个分组后必须等到该分组的确认后才能发送下一个分组;

    发送方对当前发送的分组启动一个定时器,只有定时器超时没有收到确认才重发该分组;

    接收方收到正确的分组返回当前分组序号的确认,若收到错误的分组则返回上一个分组序号的确认。

  15. 简单描述,intel 运输层所提供的服务?哪些主要服务没有提供?

    通过 TCP 提供面向连接的可靠传输服务,提供拥塞控制和流量控制。不确保最小传输速率;不提供时延保证数据传输的时间不确定。不提供数据安全性服务

  16. 试述 TCP 拥塞控制中慢启动、拥塞避免、快速恢复三个状态的转换过程。

    当 CongWin 低于阈值, 发送方处于慢启动阶段, 窗口指数增长.。

    当 CongWin 高于阈值, 发送方处于拥塞避免阶段, 窗口线性增长。

    当三个重复的 ACK 出现时,阈值置为 CongWin/2 并且 CongWin 置为阈值加上 3个 MSS 并进入快速恢复阶段,此时每收到一个重复的 ACK 拥塞窗口增加 1MSS,如果收到新的 ACK 则拥塞窗口置成阈值). 当超时发生时 ,迁移到慢启动阶段,阈值置为 CongWin/2 并且 CongWin 置为1 MSS.

  17. 早期的 TCP 拥塞控制算法如 Tahoe 中,只有慢启动和拥塞避免两种状态。后来的新版本如 Reno 中,则加入了快速恢复状态。设计者为何要加入这个状态?谈谈你的理解。

    进入快速恢复状态的条件是收到 3个重复ACK,意味着网络目前有两个特性:(1)网络还能传输;(2)网络已有一定程度拥堵。

    如果没有快速恢复机制,发送方要么直接退回慢启动状态,要么等待超时出现再退回慢启动状态。这两种情况下,都无法发送新报文。而在快速恢复状态里,是可以传输新报文的,因此有效利用了特性(1);

    另一方面,在快速恢复状态里增加拥塞窗口及传输新报文,可以让发送方“快速探测”到网络当前的最大传输能力,从而避免长时间停留在特性(2)这种欠佳的情形中,快速恢复到慢启动或拥塞避免状态下。实际中,快速恢复状态的持续时间一般都不会太久。

    总言之,快速恢复状态的加入,就是为了能够更高效的利用网络的传输能力。

  18. 简述 TCP 拥塞控制中进入慢启动、快速恢复、拥塞避免三种状态对应的触发事件?

    慢启动状态的事件:

    开始传输;超时;低于阈值;

    快速恢复的事件:

    三次及以上重复确认;

    拥塞避免:

    高于阈值,正常收到分组确认。

  19. 简述 TCP 拥塞控制中,在三个状态下,对于收到 1 个新的 ACK,拥塞窗口的变化及可能发生的状态变化。

    在慢启动状态,每收到 1 个新的 ACK,拥塞窗口增加 1 个 MSS;

    在拥塞避免状态,每收到 1 个新的 ACK,拥塞窗口增加 MSS*MSS/cwnd;

    在快速恢复状态,收到 1 个新的 ACK,接收方重新进入拥塞避免状态,cwnd=ssthresh。

  20. TCP拥塞控制的慢启动是什么含义?为什么需要慢启动?

    慢启动:当连接开始的时候以指数方式增加速率:当传输报文段首次被确认,拥塞窗口增加一个MSS

    通过慢启动,发送方在建立连接时发送的数据量逐渐增加,从而观察网络的拥塞情况,并根据网络的反馈来调整发送速率,以避免过早引发拥塞,保持网络的稳定性和可靠性。

  21. TCP套接字编程是基于字节流的。假设你写一个程序,从A向B发送一段数据(比如一个文件的内容、一块缓冲区中的内容等),请给出两种方法,使得B可以判断数据是否全部接收到,并比较这两种方法的优缺点。

    方法一:定长消息
    在这种方法中,发送方在发送数据之前先确定数据的长度,并将长度信息作为数据的一部分发送给接收方。接收方在接收到数据后,首先读取长度信息,并根据长度信息来判断是否接收到了全部数据。

    优点:

    简单直接:发送方和接收方都只需处理固定长度的消息。
    易于实现:基于已知长度的数据接收和判断相对简单。

    缺点:

    固定长度限制:必须事先知道数据的确切长度,否则无法使用该方法。
    额外开销:需要额外的字节用于存储长度信息。

    方法二:结束标记
    在这种方法中,发送方在发送数据时,在数据的末尾添加一个特定的结束标记,接收方在接收到数据后,循环读取数据,直到遇到结束标记,从而确定是否接收到了全部数据。

    优点:

    适用性广泛:不需要事先知道数据的长度,可以处理任意长度的数据。
    灵活性:可以使用不同的结束标记,适应各种数据格式和需求。
    缺点:

    稳定的结束标记:需要选择一个在数据中不会出现的稳定结束标记,避免误判。
    额外的循环:接收方需要循环读取数据,直到遇到结束标记才能确定是否接收完全。

网络层

  1. 简单描述网络层的功能:转发和选路的区别

    转发:将分组从路由器的一个输入链路接口转移到一个合适的输出链路接口的本地动作。只涉及分组在路由器中从入链路到出链路的传送

    选路:指分组从源到目的地的端到端路径的网络范围动作。涉及网络中的所有路由器,集体经选路协议交互,决定分组从源到目的地的路径。

  2. 运输层所提供的服务与网络层所提供服务的区别是什么?

    服务对象不同: 网络层:向运输层提供的主机到主机的服务;

    运输层:向应用层提供的进程到进程的服务。

    服务选择:网络层:任何网络中的网络层只提供虚电路网络和数据报网络两种服务之一,不会同时提供。

    而运输层所提供的服务会同时提供,由应用层应用根据需要选择。

    实现:运输层:面向连接服务在网络边缘的端系统中实现;

    网络层:面向连接服务在端系统及网络核心的路由器中实现。

  3. 简单描述 intel 网中,路由器查表转发的方法。

    用目的地址前缀与转发表的前缀匹配

    存在匹配:向对应链路转发。

    不存在匹配:选择“其他”项对应的链路转发。

    存在多个匹配:使用最长前缀匹配规则,即向与最长前缀匹配的链路接口转发分组。

  4. 简单描述 NAT 网络地址转换的过程。

    外出的分组: 替换每个外出的分组的 (源 IP 地址, 端口号) 为 (NAT IP 地址, 新端口号) ,远程客户/服务器用(NAT IP 地址, 新端口号)作为目的地来响应。

    NAT 路由器需要记住:在 NAT 转换表中每个(源 IP 地址, 端口号)到 (NAT IP 地址,新端口号) 转换配对。

    对每个进来的分组,用保存在 NAT 表中的对应的(源 IP 地址, 端口号) 替换分组中的目的域 (NAT IP 地址, 新端口号)。

  5. 简单描述全局选路算法和分散式选路算法的区别

    全局选路算法:用完整的、全局性的网络信息来计算最低费用路径。即以所有节点之间的连通性及所有链路的费用为输入。

    在开始计算前,以某种方式获得这些信息。

    可在单个位置计算,也可在多个位置上复制。

    计算节点拥有连通性和链路费用的完整信息。

    分散式选路算法:以迭代的、分布式的方式计算最低费用路径。

    节点只有与其直接相连链路的费用信息:不需拥有所有网络链路费用的完整信息。

    通过迭代计算过程并与相邻节点(邻居节点)交换信息。

    逐步计算出到达某目的节点或一组目的节点的最低费用路径。

  6. 什么是自治系统?什么是层次选路?

    自治系统(Autonomous System) AS:按区域划分的系统。每个 AS 由一组在相同管理控制下的路由器组成。同一个 AS 内的路由器可运行相同的选路算法

    层次选路:将一个大的系统划分成若干小系统(自治系统),按区域或自治系统的形式组织路由器。自治系统之间再互连。

  7. 简单描述层次选路的优点

    减少规模大的网络选路计算的复杂性:AS 内部路由器运行相同的自治系统内部选路协议,仅需要知道本 AS 内的路由器与网关路由器。各 AS 之间,运行相同的AS 间选路协议。

    管理职权灵活:一个组织可自行选择 AS 内部选路协议,每对相连的 AS 运行相同AS 间选路协议,交换信息。

  8. 为什么 AS 内选路和 AS 间选路采用不同的协议 ?

    策略:

    AS 间: 管理员想控制本 AS 内产生的通信流怎样选路,以及什么通信流穿过自己的网络

    AS 内:单个管理者, 因此不需要策略

    规模:

    扩展是域间路由路由选择算法必须考虑的问题。

    而在一个 AS 内部,可扩展性不是关注的焦点。

    性能:

    AS 内: 集中在性能上

    AS 间: 策略可能比性能更加重要

  9. 简单描述层次路由选择的基本思路

    将一个大的系统划分成若干小系统(自治系统),按区域或自治系统的形式组织路由器。自治系统之间再互连。

    在一个自治系统内运行自治系统内部选路协议,在各 AS 之间运行自治系统间选路协议

    路由器转发表由 AS 内部选路协议和 AS 间选路协议产生。

  10. 简单描述 BGP 协议为每个 AS 提供了什么功能?

    BGP 为每个 AS 提供了以下功能:

    相邻 AS 获取子网可达信息

    向该 AS 内部的所有路由器传播这些可达性信息

    基于该可达信息和 AS 策略,决定到达子网的“好”路由

    允许一个子网向 Internet 的其他部分通告它的存在 。

  11. (补充)请简述 traceroute 程序执行的基本原理。

    (1)源主机的 traceroute 程序向目的主机发送一系列 IP 数据报,每个都携带一个不可达端口号的 UDP 报文,第一个数据报的 TTL 为 1,第二个的 TTL 为 2,依次类推;

    (2)当第 n 个数据报到达第 n 给路由器时,TTL 刚好过期,于是给源主机发送一个 ICMP 警告,源主机据此得到该路由器的名字和 IP 地址;

    (3)当目的主机收到报文,给源主机回复一个端口不可达 ICMP 报文时,源主机停止发送;

    (4)通过以上方法,再辅以定时器机制,源主机就可以跟踪到目的主机之间的路由。

链路层

  1. 运输层提供了可靠交付服务,而有些链路层协议也提供可靠交付服务,为什么在协议栈的两层都提供这种可靠交付服务?两者的区别是什么?有什么共同点?

    链路层的可靠传输服务,主要用于易产生高差错率的链路,其目的是在本地纠正一个错误,而不是通过运输层或应用层进行端到端的数据重传来进行纠正。
    而运输层提供可靠传输服务,是因为并不是所有的链路层协议都提供了可靠数据传输服务,要实现端到端的数据可靠传输,还需要运输层提供可靠传输服务。
    运输层提供的可靠传输服务,是在端到端的基础上为两个进程之间提供可靠传输;而链路层提供的可靠传输服务,在一条链路相连的两个节点之间提供可靠传输。两者都是通过确认和重传取得的。

  2. 通过对检验和与 CRC 两种差错检测技术对比,简单说明,为什么在运输层采用检验和差错检测技术,而在链路层采用 CRC 差错检测技术。

    检验和校验能力相对较弱,CRC 校验能力最强。
    校验和实现相对简单,计算量相对较小,常用于软件实现方式的场合,因此于网络层及其之上的层次的协议通常采用校验和,且由软件实现。
    CRC 校验实现相对复杂,计算量相对较大,因此 CRC 通常应用于链路层,一般由适配器硬件实现。

  3. 简述以太网中 CSMA/CD 协议的工作方式。

    (1)适配器从网络层得到分组, 创建帧

    (2)如果适配器侦听到信道空闲,开始传送帧。如果信道忙, 它会等到信道空闲才传送帧

    (3)如果适配器传送整个帧时,都没有检测到其它传输, 则完成该帧的传送

    (4)如果适配器在发送中检测到其它传送,就放弃传送,并发送一个拥塞信号

    (5)放弃传送后,适配器进入指数回退阶段,即该帧经过n次冲突后,适配器在{0,1,2,…, 2 m − 1 2^m-1 2m1}中随机选取一个K值 ,其中m=min(n,10),然后等待K*512比特时间后,回到第2步

  4. 简单描述 DNS 和 ARP 的区别

    DNS:负责主机名到 IP 地址的解析,为在因特网中任何地方的主机解析主机名。
    ARP 地址解析协议:将 IP 地址解析到 MAC 地址。ARP 只为在同一个 LAN 上的节点解析 IP 地址。

  5. 简述以太网二层交换机的交换过程。简述二层交换机自学习和滤波转发查找的过程。

    对接收到的帧,通过自学习的方式学习帧中的源 MAC 地址和接口的对应关系,更新交换表;
    根据获得的帧中的目的 MAC 地址查询交换表,如果目的 MAC 地址不在交换表中,则向其它所有接口广播;
    如果目的 MAC 地址在交换表中,且目的 MAC 地址和源 MAC 地址在同一端口,则丢弃该分组;如果目的 MAC 地址在交换表中目的 MAC 地址和源 MAC 地址不在同一端口,则向目的 MAC 地址对应的端口进行转发

  6. 简单描述一台主机 A 想要查询同一个子网中的主机 B(IP 地址为BB.BB.BB.BB)所对应的 MAC 地址时,所执行的操作步骤。

    第 1 步:A 主机的 ARP 模块先在自己的本地 ARP 缓存中检查主机 B 的匹配 MAC地址。
    第 2 步:如果主机 A 的 ARP 模块在 ARP 缓存中没有找到映射,它将询问BB.BB.BB.BB 的硬件地址。**首先将 ARP 请求帧广播到本地网络上的所有主机。**源主机 A 的 IP 地址和 MAC 地址都包括在 ARP 请求中。本地网络上的每台主机都接收到 ARP 请求并且检查是否与自己的 IP 地址匹配。如果主机发现请求的 IP地址与自己的 IP 地址不匹配,它将丢弃 ARP 请求。
    第 3 步:主机 B 确定 ARP 请求中的 IP 地址与自己的 IP 地址匹配,则将主机 A的 IP 地址和 MAC 地址映射添加到本地 ARP 缓存中。
    第 4 步:主机 B 将包含其 MAC 地址的 ARP 回复消息直接发送回主机 A。
    第 5 步:当主机 A 收到从主机 B 发来的 ARP 回复消息时,会用主机 B 的 IP 和MAC 地址映射更新 ARP 缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机 B 的 MAC 地址一旦确定,主机 A 就能向主机 B 发送 IP通信了。

  7. 简单描述以太网交换机的特点。

    不同 LAN 网段的主机可以互相通信,每个 LAN 网段是一个独立的冲突域。
    可以互联不同的 LAN 技术
    对 LAN 的大小没有限制,理论上,可扩展到全球。
    交换机以全双工方式工作。

  8. 简单比较交换机和路由器的优缺点。

    路由器:用网络层地址转发,是第三层的分组交换机。路由器维护选路表,实现选路算法。
    交换机:用 MAC 地址转发,是第二层的分组交换机。交换机维护交换机表, 实现过滤、学习算法。

    • 交换机的优缺点:
      • 优点:即插即用:不需网络管理员干预;较高的分组过滤和转发率:
      • 缺点:拓扑结构为一棵生成树。 可能产生“广播风暴”:
    • 路由器的优缺点:
      • 优点:网络寻址是层次的;若网络中存在冗余路径,分组不会在路由器中循环。
        无生成树限制,使用路由器构建因特网可以采用大量丰富的拓扑结构。可以使用源和目的之间的最佳路径。为第二层的广播风暴提供防火墙保护。
      • 缺点:非即插即用:路由器及主机都需配置 IP 地址。每个分组的处理时间比交换机长

网络编程

  1. 简单TCP循环服务器Socket编程基本步骤(服务器端和客户端)

    image.pngimage.png

  2. 简单UDP循环服务器Socket编程基本步骤(服务器端和客户端)

    image.pngimage.png

  • 17
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月出天山_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值