计算机网络面试真题总结(三)

文章收录在网站:http://hardyfish.top/

文章收录在网站:http://hardyfish.top/

文章收录在网站:http://hardyfish.top/

文章收录在网站:http://hardyfish.top/

TCP 和 UDP 分别对应的常见应用层协议有哪些?

TCP 对应的应用层协议

FTP:

  • 定义了文件传输协议,使用 21 端口。
    • 常说某某计算机开了 FTP 服务便是启动了文件传输服务。
      • 下载文件,上传主页,都要用到 FTP 服务。

Telnet:

  • 它是一种用于远程登陆的端口,用户可以以自己的身份远程连接到计算机上

SMTP:

  • 定义了简单邮件传送协议,现在很多邮件服务器都用的是这个协议,用于发送邮件。

POP3:

  • 它是和 SMTP 对应,POP3 用于接收邮件。

HTTP:

  • 从 Web 服务器传输超文本到本地浏览器的传送协议。

UDP 对应的应用层协议

DNS:

  • 用于域名解析服务,将域名地址转换为 IP 地址。DNS 用的是 53 号端口。

SNMP:

  • 简单网络管理协议,使用 161 号端口,是用来管理网络设备的。
    • 由于网络设备很多,无连接的服务就体现出其优势。

TFTP(Trival File Transfer Protocal):

  • 简单文件传输协议,该协议在熟知端口 69 上使用 UDP 服务。

什么是ICMP协议?

ICMP(Internet Control Message Protocol)是一种网络协议

  • 它用于在 IP 网络中传递错误信息和控制消息。
    • ICMP 是在 IP 协议的基础上构建的协议,它是在网络层进行通信的。

ICMP 主要有两个作用:

提供网络的错误报告机制:

  • 当在网络通信中发生错误或故障时,ICMP 可以生成错误报告,并将报告发送给源主机。
    • 比如,在路由选择失败、目标主机不可达或传输超时等情况下,会发送 ICMP 错误报告给源主机,通知发生了问题。

支持网络的控制消息:

  • ICMP 还支持网络中的控制消息传递。
    • 例如,ICMP 可以用于执行网络探测和诊断,如发起 Ping 命令(Echo 请求和 Echo 响应)进行网络连通性测试。

常见的 ICMP 消息类型包括:

  • Echo 请求和 Echo 响应:用于网络探测和连接测试。
  • 目标不可达:当一个数据包无法到达目标时,发送此消息通知源主机。
  • 超时:当数据包经过一定时间后未能到达目标,发送此消息通知源主机。
  • 重定向:用于告知主机优化数据包的传输路径。
  • 时间戳请求和时间戳响应:用于进行时间同步。

ICMP 是一种非常重要的网络协议,在 IP 网络中起着诊断和通信的作用。

  • 它协助网络管理员调试和定位问题,在网络通信中起到检测和响应错误的作用,提高网络的可靠性和效率。

谈谈你对 ARQ 协议的理解?

ARQ 全称 Automatic Repeat reQuest,中文意思是 自动重传请求,然后这个其实有好几种

  • 比如你可能听说过停等ARO,连续ARQ,回退N步ARO,容易混淆,所以下面先说一下他们的一个概念。

自动重传请求分成为三种:

  • 即停等式(stop-and-wait)ARQ,回退n帧(go-back-n)ARQ,以及选择性重传(selective repeat)ARQ

后两种协议是滑动窗口技术与请求重发技术的结合

  • 由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称其为连续ARQ协议

所以我们又可以简单分成两种:

  • 停止等待协议和连续 ARQ 协议

停止等待协议 是一种简单的 ARQ 协议,每当发送方发送一个数据包后,就会停止发送并等待接收方的确认信号。

  • 只有收到确认信号后,发送方才会继续发送下一个数据包。
  • 该协议的缺点是会浪费大量的时间在等待确认信号上。

连续 ARQ 协议 是一种改进的 ARQ 协议,它可以在等待确认信号的同时,继续发送其他的数据包,可提高信道利用率。

大概就是:发送方维持一个发送窗口,凡位于发送窗口内的分组可以连续发送出去,而不需要等待对方确认。

  • 接收方一般采用累计确认,对按序到达的最后一个分组发送确认,表明到这个分组为止的所有分组都已经正确收到了。

TCP 协议是如何保证可靠传输的?

应答机制

  • TCP协议采用应答机制,即发送端每发送一个数据包就会等待接收端的确认应答。
  • 如果发送端在规定时间内没有收到确认应答,就会重新发送数据包,直到接收到确认应答为止。

超时重传

  • 当发送端发送数据包后,在规定时间内没有收到确认应答,就会进行超时重传,重新发送该数据包。

数据校验

  • TCP协议使用校验和机制对数据包进行校验,以保证传输的数据包没有被篡改。
  • 接收端在接收到数据包后,会对其进行校验,如果发现校验和错误,则会丢弃该数据包,并通知发送端进行重传。

滑动窗口

  • TCP协议采用滑动窗口机制来控制发送端的发送速度,以避免发送过快导致接收端处理不过来。
  • 发送端根据接收端的反馈,动态调整发送窗口的大小,以达到最优的传输速率。

流量控制

  • TCP协议通过流量控制机制来限制发送端的发送速度,以避免网络拥塞。
  • 接收端可以通过发送窗口的大小来告诉发送端自己的接收能力,从而控制发送端的发送速度。

拥塞控制

  • TCP协议通过拥塞控制机制来避免网络拥塞。发送端根据网络的拥塞程度来调整发送速度
    • 以避免过多的数据包在网络中造成拥塞。
  • 同时,TCP协议还支持快速恢复和快速重传机制,以更快地适应网络拥塞的变化。

什么是流量控制?

TCP流量控制是一种内置于TCP协议的机制,用于防止发送方把接收方的缓冲区塞满,以避免数据丢失。

  • 简单地说,就是保证发送者不会将数据发送得过快,导致接收者无法接收。

TCP流量控制的工作方式是每个TCP段都有一个窗口大小字段,这个字段告诉发送者接收端的可用缓冲区大小。

  • 接收方通过更改这个窗口大小值来告诉发送方他还能接收多少数据。
  • 如果接收方的缓冲区被填满了,它就会将窗口大小设置为0,这时发送方就会停止发送数据,直到接收方再次更新其窗口大小。

TCP 是如何实现流量控制的?

TCP实现流量控制主要依赖于滑动窗口机制。

滑动窗口不仅是一种流量控制手段,也是一种可靠传输的手段。

  • 它的基本思想是:
    • 每个TCP连接都有两个窗口,一个是发送窗口,另一个是接收窗口。
      • 窗口大小是动态变化的。

发送窗口的大小由自己和接收方协商得出,不能超过接收窗口的大小。

  • 当发送方发送数据时,会根据窗口的大小来确定可以发送的数据量。
  • 当数据发送出去后,发送窗口就会向右滑动。

接收方在接收到数据后,会向发送方发送确认,确认号表示的是接收方期望接收的下一个数据字节的序号

  • 同时还会告诉发送方自己的接收窗口大小。

如果接收方处理数据的速度慢,那么接收窗口的大小就会减小,甚至变为0

  • 此时发送方就不能再发送数据,这样就实现了流量控制。

举个例子,假设你正在下载一个大文件,当你的硬盘写入速度跟不上网络下载速度时

  • 你的计算机会告诉发送方减小发送窗口的大小,减慢发送数据的速度,这样你的硬盘就有足够的时间来处理这些数据。
相关推荐
ifanatic25 分钟前
[面试]-golang基础面试题总结
面试·职场和发展·golang
程序猿进阶1 小时前
堆外内存泄露排查经历
java·jvm·后端·面试·性能优化·oom·内存泄露
长风清留扬3 小时前
一篇文章了解何为 “大数据治理“ 理论与实践
大数据·数据库·面试·数据治理
jiao_mrswang3 小时前
leetcode-18-四数之和
算法·leetcode·职场和发展
->yjy11 小时前
计算机网络(第一章)
网络·计算机网络·php
Swift社区12 小时前
LeetCode - #139 单词拆分
算法·leetcode·职场和发展
摘星星ʕ•̫͡•ʔ12 小时前
计算机网络 第三章:数据链路层(关于争用期的超详细内容)
网络·计算机网络
Dong雨13 小时前
力扣hot100-->栈/单调栈
算法·leetcode·职场和发展
周三有雨14 小时前
【面试题系列Vue07】Vuex是什么?使用Vuex的好处有哪些?
前端·vue.js·面试·typescript
爱米的前端小笔记14 小时前
前端八股自学笔记分享—页面布局(二)
前端·笔记·学习·面试·求职招聘