计算机网络 面试题

news2024/11/17 10:57:37

PART1

1.TCP和UDP的区别是什么?

2.TCP报文首部格式是什么?

3.TCP三次握手的过程

4.为什么TCP要三次握手?

5.TCP三次握手的数据报可以携带数据吗?

6.半连接队列是什么?

7.SYN 洪泛攻击是什么?

8.TCP四次挥手的过程

9.为什么要四次挥手?

10.HTTP和HTTPS的区别?

11.MAC地址和IP地址的区别?

12.OSI是什么?有哪些层?

13.DNS域名解析是做什么的?有哪些步骤?

14.TCP/IP层次模型是什么?

15.IP地址是什么?IP地址有哪几类?

16.子网掩码是什么?

17.公网IP地址和私网IP地址区别是什么?

18.NAT是什么?

19. IPv4和IPv6地址格式的区别?

PART2

1.TCP和UDP的区别是什么?

UDP

  • 在传输数据前不需要建立连接,接收方收到数据,也不需要给出任何确认。
  • 是不可靠的,不保证传输成功的。
  • 一般用于即时通讯(语音、视频、直播)

TCP

  • 提供可靠的,面向连接的服务。
  • 在传送数据前必须建立连接,在传送数据后释放连接。
  • TCP首部更大,占用更多CPU资源
  • 一般用于文件传输、收发邮件、远程登录

2.TCP报文首部格式是什么?

源端口和目的端口:分别占据2个字节,IP地址+端口号就可以确定一个进程地址。

序号(Seq):本报文发送的数据的第一个字节的序号。在TCP连接中,字节流中的每一个字节都按顺序编号 。

确认号(ack):期望收到对方下一个报文段的第一个数据字节的序号。若 ack=X,则表示前X-1个字节都已经正确收到。

数据偏移(首部长度):报文段的数据起始处距离报文段起始处有多远,也就是报文首部的长度。

保留6位:置为0,供日后使用。

标志位(共6位):

  • 紧急位URG: URG为1,表明报文中有紧急数据,优先级高,需要尽快发送,不用在缓存中排队。
  • 推送PSH:PSH为1,表明发送方希望立即接收到对方的响应,发送方会立即创建一个报文发送,接收方接收到报文,会尽快交付给应用层,不用在缓存中排队。
  • 复位RST:RST为1,表明TCP连接中出现严重错误,需要重建连接。必须释放连接,再重新建立一个连接。
  • 同步SYN:SYN为1, 表明这时一个请求连接或者接受连接的报文。
    • SYN=1, ACK=0,表明这时一个请求连接的报文段。
    • SYN=1, ACK=1,表明这时一个接受连接的报文段。
  • 确认ACK:ACK为1,确认号字段才有效。在连接建立后,之后所有报文段都必须将ACK置为1。2
  • 终止FIN:FIN为1,表明发送该报文段的发送方已经发送数据完毕,要求释放传输连接。

3.TCP三次握手的过程

客户端发送请求连接报文:SYN=1, seq = x,表明本报文发送的数据的第一个字节的序号。

服务器端接受请求,发送接收请求的响应报文:SYN=1, ack = x+1, seq  = y 表明接收到了客户端发来的报文,希望收到的下一个报文的数据的第一个字节为x+1

客户端接收到了服务器端的响应报文后,发送一个ACK报文: ack = y+1, seq = x+1。此时客户端出于连接已建立的状态,等到服务器端接收到ACK报文,服务器端也会处于连接已建立的状态,至此,双方建立起了TCP连接。

4.为什么TCP要三次握手?

建立可靠的通信通道。双方都确认字节与对方的发送和接收是正常的。

第一次握手:服务器端确认对方的发送和自己的接收是正常的。

第二次握手:客户端确认自己的发送和接收,对方的发送和接收都是正常的。

第三次握手:服务器端确认自己的发送和接收,对方的发送和接受是正常的。

5.TCP三次握手的数据报可以携带数据吗?

前两次不可以。第三次可以。

假如第一次握手可以携带数据,那么恶意攻击者可以在第一次握手时携带大量的数据,并且发送非常多的请求连接报文段,这样服务器端会一直在接收这些报文段,没有空处理正常的连接请求。

6.半连接队列是什么?

服务器收到了请求连接报文,但连接还没有完全建立起来,服务器会把这些请求连接放在半连接队列中。

7.SYN 洪泛攻击是什么?

客户端在短时间内伪造很多不存在的IP地址,并且向服务器端发送非常多的SYN请求。

服务器端回复这些SYN包,并且等待客户端确认。由于源地址不存在,服务器端需要不断重复回复,直到超时。这些伪造的SYN包将长时间占用半连接队列,导致正常的SYN包因为队列满而被丢弃。从而引发网络堵塞甚至系统瘫痪。

8.TCP四次挥手的过程

第一次挥手:客户端发送FIN报文:FIN=1, seq = u

第二次挥手:服务器端发送确认报文: ACK=1, ack = u+1, seq = v

此时TCP处于半关闭状态,客户端到服务器端的连接已释放。

第三次挥手:服务器端发送FIN报文: FIN=1, ACK=1, seq = w, ack = u+1

第四次挥手:客户端发送确认报文: ACK=1, ack = w+1, seq = u+1

此时服务器端到客户端的TCP连接并未释放,客户端需要等待一个报文来回时间才会进入关闭状态。目的是确保服务器端可以接收到ACK报文,如果服务器端在规定时间内没有收到ACK报文,会重发FIN报文,直到服务器端收到ACK报文,连接才完全关闭。

9.为什么要四次挥手?

TCP连接具有半连接的特性,连接的一方在结束了发送后,还能继续接收数据。

两次握手可以释放一方到另一方的连接。四次握手就能完全释放连接。

10.HTTP和HTTPS的区别?

HTTPHTTPS
明文传输数据,连接简单,无状态使用TLS加密传输,TCP三次握手后,还要进行SSL握手,协商对称加密密钥
端口号为80端口号为443
无需申请任何证书服务器端需要申请证书,浏览器端需要安装对应的根证书
延时短延时长
部署成本低部署成本高,需要购买证书和加密解密数据占用更多的CPU资源

HTTPS保证了数据的保密性、完整性和验证了服务器的身份。

11.MAC地址和IP地址的区别?

MAC地址:在数据链路层使用,48位,物理地址,写在硬件设备的内部,是不可变的。

IP地址:在网络层使用,32位,可以改变。为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

12.OSI是什么?有哪些层?

OSI是开放式通信系统互连参考模型,一个试图把计算机在世界范围内互连为网络的标准框架。

应用层:

  • 该层协议定义了应用进程之间的通信规则,不同的应用协议为不同的应用程序提供服务。
  • 万维网应用(HTTP协议),电子邮件应用(SMTP协议)

表示层

  • 解决不同系统之间数据格式不同的问题。
  • 解释交换数据的含义,提供的服务包括数据加密、数据压缩、数据描述。
  • 使应用程序不必担心在不同计算机中表示和存储内部格式的差异。

会话层

  • 管理不同主机上各进程之间的会话。
  • 控制用户间逻辑连接的建立和挂断。
  • 在会话层及以上的层次中,数据被称报文。

传输层

  • 为不同主机上的进程通信提供服务。
  • 管理网络中端到端的信息传送。
  • 为会话层提供透明和可靠的数据传输服务。保证端到端数据的完整性
  • 通过错误纠正和流控制机制提供可靠且有序的数据包传送。
  • 提供面向无连接的数据包传送。
  • 传输层协议:TCP协议、UDP协议。
  • 在传输层中,数据单元被称为数据包,在具体的TCP协议中,被称为报文段,在具体的UDP协议中,被称为数据报。

以上四层处理数据源和数据目的地之间的端到端通信

以下三层处理网络设备间的通信

网络层

  • 定义网络设备间如何传送数据
  • 从源端到目的端,选择合适的网间路由和交换节点,及时传送数据包。

数据链路层

  • 在链路上的相邻结点间传送数据,无差错地传送以帧为单位的数据,并进行流量控制。
  • 监测和纠正数据包传输错误,通知发送方重发有问题的数据帧。
  • 数据单元被称为数据帧。

物理层

  • 定义通过网络设备传送数据的物理方式
  • 在物理媒体上传输原始的数据比特流

13.DNS域名解析是做什么的?有哪些步骤?

将域名和IP地址互相映射。DNS服务器是基于UDP协议的。

步骤:

  • 首先搜索浏览器中的DNS缓存
  • 若没有命中,继续搜索操作系统的DNS缓存
  • 若没有名字,操作系统会将域名发送至本地域名服务器。本地域名服务器查询自己的DNS缓存,若找到,则返回结果。
  • 若没有找到,本地域名服务器向上迭代查询该域名
    • 本地域名服务器向根域名服务器发起请求,根域名服务器返回包含该域名的顶级域名服务器的地址。
    • 本地域名服务器继续向该顶级域名服务器发起请求,顶级域名服务器返回包含该域名的权限域名服务器的地址。
    • 本地域名服务器继续向该权限域名服务器发起请求,最终得到该域名对应的IP地址。
  • 本地域名服务器得到IP地址,返回给操作系统,并且缓存在自己的DNS缓存中。
  • 操作系统得到IP地址,返回给浏览器,并且缓存在自己的DNS缓存中。
  • 浏览器得到IP地址,并且缓存在自己的DNS缓存中。

14.TCP/IP层次模型是什么?

应用层:合并了OSI模型中的应用层、表示层、会话层

传输层:建立端到端的连接

网络层:寻址和路由选择

网络接口层:物理介质访问、数据流传输

15.IP地址是什么?IP地址有哪几类?

IP地址是IP协议为因特网上的每一个网络和主机分配的逻辑地址,以此来屏蔽物理地址的差异性。

IP协议为因特网上的每一台主机和路由器都提供了全世界范围内唯一的32bit的标识符。

IP地址由网络号和主机号组成。

  • 网络号:标志着主机(或路由器)所连接到的网络。网络号在全世界范围内必须是唯一的。
  • 主机号:一台主机的主机号在它的网络号所标识的网络里必须是唯一的。

综上,每一台主机和路由器的IP地址在全世界范围内都是唯一的。、

IP地址常用的有A类、B类和C类

A类地址:0xxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx 首位必须为0

  • 地址范围:1.0.0.0 -- 126.255.255.255
  • 网络号:前8位,子网掩码:255.0.0.0
  • 最大主机数量:256*256*256-2 减去主机号全为0的网络地址和主机号全为1的广播地址。

B类地址:10xxxxxx xxxxxxxx xxxxxxxx xxxxxxxx 前两位必须为10

  • 地址范围: 128.0.0.0 -- 191.255.255.255
  • 网络号:前16位,子网掩码:255.255.0.0
  • 最大主机数量:256*256*-2

C类地址:110xxxxx xxxxxxxx xxxxxxxx xxxxxxxx 前三位必须为100

  • 地址范围: 192.0.0.0 -- 223.255.255.255
  • 网络号:前24位,子网掩码:255.255.255.0
  • 最大主机数量:256-2

不常用的由D类和E类地址

D类地址:1110xxxx xxxxxxxx xxxxxxxx xxxxxxxx 前四位必须为1110

组播地址,不区分网络号和主机号

E类地址:11110xxx xxxxxxxx xxxxxxxx xxxxxxxx 前五位必须为11110

实验地址:保留今后使用

16.子网掩码是什么?

子网掩码用于计算IP地址的网络号,子网掩码与IP地址进行与运算,可以得到网络号。

17.公网IP地址和私网IP地址区别是什么?

公网IP地址:可以直接访问互联网,在全世界范围内唯一

私网IP地址:不能用于访问互联网,在局域网内使用,在局域网的范围内唯一,在互联网上不唯一,所以不能用私有IP地址来访问主机。

  • A类:10.0.0.1 -- 10.255.255.254
  • B类:172.16.0.1 -- 172.31.255.254
  • C类:192.168.0.1 -- 192.168.255.254

18.NAT是什么?

NAT是网络地址转换,实现私网IP地址和公网IP地址之间的相互转换,将大量的私网IP地址转换为少量的公网IP地址,以减少对公网IP地址的占用。

静态转换:IP地址一对一转换,且不会再改变,某个私网IP地址只转换成某个公网IP地址

动态转换:当私网IP地址转换成公网IP地址时,公网IP地址是不确定的、随机的。一般用于共公网IP地址略少于私网IP地址的情况。

端口多路复用 PAT:把多个私网IP地址映射到一个公网IP地址的不同端口上,实现一对多映射。

19. IPv4和IPv6地址格式的区别?

IPv4地址32位,每8位表示一个段,用十进制表示,段与段之间用.隔开,共4段

172.16.0.1

IPv6地址128位,每16位表示一个段,用十六进制表示,段与段之间用:隔开,共8段

2000:0000:0000:1000:0000:FFFF:6666:0001

连续的几个段都是0,可以简记为::,一个IPv6地址里只能有一个::

2000::1000:0000:FFFF:6666:0001

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

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

相关文章

数据库sql查询成绩第二高

select * from propro; #查询成绩第二高 select max(id) from propro where id <(select max(id) from propro); #查询成绩第二高的第二种方式 select * from (select * from propro order by id desc limit 2) as b order by id asc limit 1;

尚硅谷CSS学习笔记

什么是css css&#xff08;层叠样式表&#xff09; 它是一种标记语言&#xff0c;用于给HTML结构设置样式。简单理解css可以美化html&#xff0c;实现结构与样式的分离。 <link rel"shortcut icon" href"favicon.ico" type"image/x-icon"&g…

【SpringCloud】Nacos的安装、Nacos注册、Nacos服务多级存储模型

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaEE 操作系统 Redis 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 Nacos 一、 Nacos安装&#xff08;基于Wind…

35.树与二叉树练习(1)(王道第5章综合练习)

【所用的树&#xff0c;队列&#xff0c;栈的基本操作详见上一节代码】 试题1&#xff08;王道5.3.3节第3题&#xff09;&#xff1a; 编写后序遍历二叉树的非递归算法。 参考&#xff1a;34.二叉链树的C语言实现_北京地铁1号线的博客-CSDN博客https://blog.csdn.net/qq_547…

【【萌新的SOC学习之重新起航SOC】】

萌新的SOC学习之重新起航SOC ZYNQ PL 部分等价于 Xilinx 7 系列 FPGA PS端&#xff1a;Zynq 实际上是一个以处理器为核心的系统&#xff0c;PL 部分可以看作是它的一个外设。 我们可以通过使用AXI(Advanced eXtensible Interface)接口的方式调用 IP 核&#xff0c;系统通过 AX…

四维曲面如何画?matlab

clc; clear all [theta,phi]meshgrid(linspace(0,pi,50),linspace(0,2*pi,50)); zcos(theta); xsin(theta).*cos(phi); ysin(theta).*sin(phi); f-1*((x.*y).2(y.*z).2(z.*x).^2); surf(sin(theta).*cos(phi).*f,sin(theta).*sin(phi).*f,cos(theta).*f,f) 结果

第九天!玩转langchain!回调处理器!一篇学会日志+监控+流式传输!9/10

原文&#xff1a;第九天&#xff01;玩转langchain&#xff01;回调处理器&#xff01;一篇学会日志监控流式传输&#xff01;9/10 - 知乎 在第九篇&#xff01;跟着雄哥学langchain中的回调处理器&#xff01; 时间飞快呀~已经第九课了&#xff0c;在更新的这10天时间&#x…

电脑出现msvcp110.dll丢失的解决方法,快速解决msvcp110.dll丢失

电脑中经常会出现msvcp110.dll文件丢失的情况&#xff0c;所以如果电脑中缺失msvcp110.dll文件会让大家很苦恼&#xff0c;那么msvcp110.dll丢失有什么解决办法呢&#xff1f;今天就给大家介绍几种msvcp110.dll丢失的解决办法。 一.msvcp110.dll常出现的问题 1.当您尝试打开某…

Springcloud笔记(2)-Eureka服务注册

Eureka服务注册 服务注册&#xff0c;发现。 在Spring Cloud框架中&#xff0c;Eureka的核心作用是服务的注册和发现&#xff0c;并实现服务治理。 Eureka包含两个组件&#xff1a;Eureka Server和Eureka Client。 Eureka Server提供服务注册服务&#xff0c;各个节点启动后…

Spring AOP的失效场景

首先&#xff0c;Spring的AOP其实是通过动态代理实现的&#xff0c;所以&#xff0c;想要让AOP生效&#xff0c;前提必须是动态代理生效&#xff0c;并且可以调用到代理对象的方法什么情况下会不走代理对象的调用呢&#xff1f;首先就是类内部的调用&#xff0c;比如一些私有方…

中国人民大学与加拿大女王大学金融硕士——不忘初心,点燃梦想之火

人类所具有的种种力量中&#xff0c;最神奇的莫过于梦想的力量。梦想使人生更有意义&#xff0c;是人类的先锋&#xff0c;是前进的引路人。有梦想&#xff0c;才会有希望&#xff0c;才会激发我们内在的潜能&#xff0c;努力去求得光明的前途。让我们点燃梦想之火&#xff0c;…

Linux系统切换用户后只显示$问题解决

问题描述&#xff1a; unbantu操作系统切换为es用户后没有tab键没有补全功能 问题分析 创建用户的时候未指定shell类型&#xff0c;默认的shell为/bin/sh&#xff0c;而不是/bin/bash。 cat /etc/passwd查询结果 es:x:1001:1001::/home/es:/bin/sh解决方案 把对应用户的…

【Mysql实现递归树查询】

Mysql8实现递归查询 递归执行分析demo数据查询demo数据扩展字段扩展 大家好! 在我们日常工作中&#xff0c;经常会遇到一些问题,它们的一些解决方案通常会用到递归这一强大的技术手段。递归不仅能帮助我们更高效的解决问题,还可以使代码更简介、更易于理解, 今天我来给大家分享…

Can 通信-协议

概述 CAN 是 Controller Area Network 的缩写&#xff08;以下称为 CAN&#xff09;&#xff0c;是 ISO国际标准化的串行通信协议。 在当前的汽车产业中&#xff0c;出于对安全性、舒适性、方便性、低公害、低成本的要求&#xff0c;各种各样的电子控制系统 被开发了出来。由于…

Spring中shutdown hook作用

在Spring框架中&#xff0c;Shutdown Hook&#xff08;关闭钩子&#xff09;是一种机制&#xff0c;用于在应用程序关闭时执行一些清理操作Spring会向JVM注册一个shutdown hook&#xff0c;在接收到关闭通知的时候&#xff0c;进行bean的销毁&#xff0c;容器的销毁处理等操作在…

代码随想录算法训练营第23期day17| 110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和

目录 一、&#xff08;leetcode 110&#xff09;平衡二叉树 二、&#xff08;leetcode 257&#xff09;二叉树的所有路径 三、&#xff08;leetcode 404&#xff09;左叶子之和 一、&#xff08;leetcode 110&#xff09;平衡二叉树 力扣题目链接 状态&#xff1a;已AC 求深…

【Qt】三种方式实现抽奖小游戏

简介 本文章是基本Qt与C实现一个抽奖小游戏&#xff0c;用到的知识点在此前发布的几篇文章。 下面是跳转链接&#xff1a; 【Qt控件之QLabel】用法及技巧链接&#xff1a; https://blog.csdn.net/MrHHHHHH/article/details/133691441?spm1001.2014.3001.5501 【Qt控件之QPus…

C++ 类和对象(一)

1.面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对象&#xff0c;靠对象之间的交互完 成。 …

启山智软/商城源码

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 启山智软一、五种商业模式赋能1.S2B2C供应链商城2.B2B2C多商户商城3.B2C单商户商城4.O2O外卖配送5.社区团购 二、过硬的编程实力1.前端2.后端 总结 启山智软 想要了…

【【萌新的SOC学习之AXI接口简介】】

萌新的SOC学习之AXI接口简介 AXI总线的初步介绍 AXI 总线是 ARM AMBA 一部分 &#xff08;高级可扩展接口&#xff09; AMBA(高级微控制器总线架构&#xff09; &#xff1a;开放的片内互联的总线标准&#xff0c;能再多主机设计中实现多个控制器和外围设备之间的连接和管理。…