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

news2024/11/14 17:50:19

文章收录在网站: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

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

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

  • 你的计算机会告诉发送方减小发送窗口的大小,减慢发送数据的速度,这样你的硬盘就有足够的时间来处理这些数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2074896.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

帮助我们从曲线图中获取数据的软件分享——GetData Graph Digitizer

在科技论文写作和数据分析过程中,我们常常需要将自己的数据与前人的研究成果进行对比。然而,有时我们只能从别人的论文中获得一张包含坐标轴的曲线图,而无法直接获取原始数据。在这种情况下,GetData Graph Digitizer 软件就显得尤…

(24)(24.4) MultiWii/DJI/HDZero OSD (version 4.2 and later)(三)

文章目录 前言 3 显示端口OSD 前言 经过 WTF-OSD 修改的 HDZero、Walksnail 和 DJI 能够进行 DisplayPort 操作。 3 显示端口OSD DisplayPort 是一种 MSP 协议扩展,允许自动驾驶仪在兼容的外部操作系统上远程绘制文本。DisplayPort 是一种 MSP 协议扩展&#xf…

架构师篇-21、工作坊实战DDD分解业务

课程内容: 采用工作坊的教学模式共创主题一:DDD业务分析步骤共创主题二:DDD领域模型输出共创主题三:业务架构蓝图输出 收益: 如何采用DDD进行业务分解?【循序渐进不断实践】共创输出项目业务架构图及业务…

xtrabackup 用户权限

xtrabackup 用户权限 1.1、建用户及授权 The database user needs the following privileges on the tables/databases to be backed up: RELOAD and LOCK TABLES (unless the --no-lock option is specified) in order to FLUSH TABLES WITH READ LOCK and FLUSH ENGINE LO…

【C++】vector(上)

个人主页~ vector类 一、vector的介绍和使用1、vector的介绍2、vector的使用(1)vector的定义(2)vector iterator的使用(3)vector 空间增长(4)vector的增删查改(5&#xf…

linux qt编写串口软件

1.界面布局 界面的简单设置,用到了 1.输入显示栏 2.数据发送栏 3.选择栏 4.16进制显示栏 和若干pushbottom label,布局就是横竖横竖这样布局下去 对界面进行基础的对齐美化 1.右侧布局的对齐 添加设置代码 右上选项已对齐 有个校验位一开始忘记添加…

PostgreSQL:后端开发者的瑞士军刀

PostgreSQL:后端开发者的瑞士军刀 在后端开发的世界中,PostgreSQL不仅是一个数据库,它更像是一个多功能的瑞士军刀,为开发者提供了强大的工具来构建和维护复杂的数据系统。作为一名资深后端开发者,我想分享一些关于Po…

Nginx四层负载均衡

1、Nginx四层负载均衡 1.1 负载均衡概述 负载均衡是一种分布式计算技术,用于将网络流量和用户请求分散到多台服务器上,以此来提高网络服务的可用性和可靠性。它通过优化资源使用、最大化吞吐量以及最小化响应时间,增强了网络、服务器和数据…

资源受限的智能陷阱:集成TinyML的果蝇监控框架

这篇论文的标题是《Resource-Constrained Intelligent Trap: Fruit Flies Surveillance Framework with TinyML Integration》,作者是Quan Minh Nguyen、Minh Nhat Lai、Vu Thanh Le和Hien Bich Vo。论文介绍了一种资源受限的智能陷阱系统,用于监测和控制…

开放式耳机什么牌子好用?五款备受赞誉的单品推荐

开放式耳机设计不堵耳道,让用户听歌或打电话时还能听到周围的声音,这对喜欢户外运动的人很好。这种耳机戴着稳,舒服,也更安全。根据我自己的试戴体验,我挑出了几款不错的开放式耳机。接下来,让我们一起探讨…

【办公类-54-01】20240826每周安排文件夹制作

背景需求: 今天开始上班了,做开学前准备。我先整理电脑,然后把一些文件夹搭建好。 桌面上有一个超链接文件夹 作为通讯上报员,每周我都要保存每周的周计划安排表(包含每周五天活动内容和通讯文章) 以上学期为例 每个…

来自DeepSeek:形式化证明的RL框架

今天为大家带来来自DeepSeek(DS)的一篇内容详实且思想完备的形式化证明强化学习框架。 因篇幅有限,文中的预训练及SFT阶段不做展开,仅对文中的RLPAF的核心观点浅述: 为了在证明步骤生成中过程性引入中间策略状态,同时保持全证明生…

案例:LVS-DR模式

一、LVS-DR数据包流向分析 (1)客户端发送请求到 Director Server(负载均衡器),请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP)到达内核空间。 (2)Director Server 和 Real…

0、LVGL PC模拟器CodeBlocks

本篇文章目录导航 ♠♠ LVGL PC模拟器 ♣♣♣♣ 一、LVGL简介 ♦♦♦♦♦♦♦♦ 1.1 配置要求(LVGL V9版本) ♣♣♣♣ 二、LVGL PC模拟器 ♦♦♦♦♦♦♦♦ 2.1 CodeBlocks安装 ♦♦♦♦♦♦♦♦ 2.2 CodeBlocks环境包下载 ♦♦♦♦♦♦♦♦ 2.3 CodeBl…

【前端基础篇】JavaScript之BOM介绍

文章目录 浏览器对象模型(BOM)介绍1. 什么是BOM?2. Window 对象2.1 弹出框2.1.1 警告框2.1.2 确认框2.1.3 提示框 2.2 定时事件2.2.1 延时器2.2.2 定时器 2.3 Window 对象其他常用属性与方法2.3.1 获取窗口尺寸2.3.2 打开新窗口与关闭窗口2.3…

企业级数据采集解决方案:三步骤搞定大数据抓取

面对浩瀚如海的互联网数据,如何才能高效、准确地完成企业级数据采集?本文将揭秘一种简化大数据抓取的三步骤策略,助力企业与开发者轻松应对数据挑战,实现数据价值最大化。 正文: 在数字化转型的浪潮中,大…

【C/C++进阶】——文件操作之文本文件与二进制文件指针读写

【文件】——操作文件 目录 一:文件的定义 二:文件名 三:文件类型 3.1:二进制文件 3.2:文本文件 四:文件的打开与关闭 4.1:文件指针 4.2:文件的打开与关闭 五:…

【Stable Diffusion】ComfyUI-插件-IPAdapter图片融合

哈喽大家好,这期来分享下如何利用IPAdapter实现两张图的融合 参考图1 参考图2 融合图 图片融合 1、工作流 将基础工作流中的【IPAdapter Unified Loader】节点换成【IPAdapter Unified Loader Community】 【IPAdapter】节点换成【IPAdapter advanced】 【IPAd…

C语言指针详解(1)

目录 一、什么是指针 1.1、定义 1.2、取地址操作符(&) 1.3、指针变量和解引用操作符(*) 二、指针变量类型的意义 三、const修饰指针 3.1、const修饰变量 3.2、const修饰指针变量 3.2.1、const放在*的左边 3.2.2、 con…

docker的安装+docker镜像的基本操作

一.docker的介绍 1、Docker 是什么? Docker 是⼀个开源的应⽤容器引擎,可以实现虚拟化,完全采⽤“沙 盒”机制,容器之间不会存在任何接⼝。 Docker 通过 Linux Container(容器)技术将任意…