计网基础面试题
浏览器输入网址之后发生什么
1,DNS解析过程
2,三次握手
3,TLS通信
4,发送数据
5,四次挥手
TCP三次握手和四次挥手
两台计算机通信的过程
局域网通信———交换机——MAC地址
广域网通信———路由器——IP地址
网关是什么
OSI七层模型
详细介绍各层作用
表示层和会话层
数据链路层
网卡(网络适配器)
网卡中用于信号转换的两个设备
调制器和解调器
传输的信号在计算机内部是什么信号在
数据链路层
三个基本功能及实现过程
MAC地址(硬件地址)
一台计算机的MAC地址出厂时就被固定在网卡中了,除非网卡换了,MAC地址才换。
MAC地址有几个字节
MAC地址作用
获取MAC地址
ARP协议利用IP地址获取MAC地址的过程
1、ARP协议先在ARP高速缓存表中找有没有目的IP对应的MAC地址,没有的话就会发送ARP请求报文,ARP协议以广播的形式发送ARP请求报文,以单播形式发送ARP响应报文
ARP是局域网协议,只适用一个网络内
单播,多播,广播
广播:MAC6个字节全为1
交换机
交换机中的转发表映射的是什么
交换机属于那一层
交换机通过缓存帧防止帧碰撞的问题
当计算机获取一个帧时,数据链路层解析完成后,怎么知道需要把数据包传给网络层的哪一个协议
帧首部几个字段,保存什么
帧尾部几个字段,保存什么。
网络层
A,B,C类IP地址网络号以及主机号划分,固定的前几位。
0
10
110
各类可以支持的网络数
每一个网络可以支持的主机数
全零的网络号和主机号不可以分配,除了不改变位,全1的网络号和全1的主机号不可以分配
最大网络号作为本地环回测试地址
网络地址=网络号+子网号+全0主机号
广播地址=网络号+子网号+全1主机号
广播地址用于广播
每一个网络都有一个网络地址,用于路由器寻址这个网络
B 128~191
C 192~223
191233
路由器的作用
主机怎么知道负责自己的数据包传输的路由器的IP地址———默认
路由器和交换机
内部交换机,外部路由器
在传输过程中源IP地址和目的IP地址会改变吗,如果不会,那改变的是什么。
IP,MAC
子网是怎么划分的
如同多级页表
从主机号中拿出固定的一些位来表示子网号
计算机怎么知道一个IP地址的子网号是哪几位
什么是子网掩码
子网掩码=全1网络号+全1子网号
什么是网络地址
网络地址不是网络号
网络地址=网络号+子网号
网络地址=IP地址&子网掩码
192.168.13.11/24
这个24表示什么--子网掩码占据24位,有24个1。
一个路由器是不是只有一个IP地址
如果说一个网络地址分给一个地方,那么世界上那么多的地方需要各自的网络地址,那么网络地址够不够分,怎么办?
(无分类IP地址
无分类IP地址=网络前缀+主机号
一个IP地址后加/,/后面加上网络前缀所占位数。
192.168.17.43/20)
内网和外网区分
VPN和NET技术
外网不可以通过因特网访问内网
哪些可以作为内网使用
10
172.16
192.168
使用内网IP的网络叫专用网
同一个公司的两个不同内网怎么通过因特网通信
网络地址转换———NET
通过路由器进行私网IP和公网IP转换,然后进行数据加密从因特网传输。
将原来的源私有IP地址转换为公网IP,以这个公网IP作为源IP地址发送数据。
多个主机怎么使用同一个公网IP
IP:端口号
内网通信不需要因特网
IP首部
IPv4或者IPv6
哪个字段标识
为什么要分片
因为帧的MTU=1500字节
数据链路层处理完可以根据帧首的协议字段将数据包发给网络层的哪个协议。
网络层处理完数据包后发给TCP还是UDP协议处理呢。
IP首部TTL之后有一个协议字段
ICMP
ICMP可以单独发送数据吗
ICMP报文分哪两种
询问报文又分哪两种
ICMP协议属于哪个层
如果一个数据包在发送的过程中丢失了,会发生什么
1、在过程中
2、当接收端在规定时间内接受不到一个数据包的全部分片时,就会……
相同点:都要向发送端发送一个报文,提示数据包没有被正常接收。
ping
直接跳过TCP层
利用ICMP报文的回送请求(8)和回送回答(13)报文测试两台主机之间网络的连通性。
ping没有通过运输层
我们在应用层输入ping命令,回车,操作系统直接启动哪一层协议。
如果ping之后网络不通呢
四个字:请求超时
协议栈解析完成一个报文段之后,是在哪一层知道这个报文段要给哪个程序,给哪个程序由什么决定。
HTTP使用的端口号
TCP首部
每发送一个报文段都有一个表示报文段顺序的序列号和对上一个报文进行确认的确认号,这两个号在什么位置。
发送端发送一个报文段,都会要告诉对端,本端还可以接收多少字节的数据,这个用于告诉对端的数据叫什么,在哪里---用于做流量控制的字段。
UDP和TCP的区别
TCP怎么实现流量控制
滑动窗口=发送窗口+接收窗口
TCP怎么实现可靠传输
协议+确认号+序列号
TCP实现可靠传输使用哪个协议
停止-等待协议:
回退N帧协议:
选择重传协议:
序号值是多少
确认号是不是接收到的序列号+1
不是,那是什么
本端的发送窗口可以根据对端的接收窗口调整大小,对端表明可以接收多少,那本端就发送多少
什么是流量控制
发送端通过控制发送窗口大小控制对端发送数据的大小的过程
当接收端的窗口满了之后,告诉发送端停止发送数据。那么通过什么机制又可以再次发送数据?
发送端:计时器+零窗口探测报文
什么是拥塞控制
漏斗原理
拥塞窗口的本质是什么?
拥塞窗口是不是滑动窗口
拥塞窗口是不是发送窗口
网络出现拥塞的根据
拥塞窗口的大小是什么时候建立的
初始值为多少
数据包丢失就一定是网络拥塞吗?
TCP的拥塞控制
有哪些拥塞控制算法
5个
快速重传和快速回复算法解决了什么问题
描述整个拥塞控制的流程
拥塞窗口和一个变量,发送窗口和接收窗口是两个缓冲区。
swnd = min(cwnd, rwnd)
怎么设置UDP可靠传输———QUIC协议
TCP和UDP的网络编程流程
TCP和UDP可以绑定同一个端口号吗,为什么?
四元组
粘包的第三中解决方案--自定义消息结构=固定包头+数据
应用层
网络层通过协议字段知道把解析出来的报文发给运输层的哪个协议处理,那么运输层又怎么知道吧解析出来的数据交给哪个应用层的进程处理呢。
dkh
网址(URL)最基本的三个部分
URL和URI的区别
DNS域名解析过程
1、hosts文件
2、DNS解析器缓存
3、DNS协议+UDP协议—>最近的DNS服务器
4、根域NS服务器
从根域查询就需要解析域名,从不同级别域名的DNS服务器往下查询,指定查找到目的域名IP地址。
域名在因特网中以什么数据结构存储
DNS属于那一层协议
一台计算机进入一个网络之后,它是怎么配置自己的默认网关,私有IP地址,子网掩码,DNS服务器的?
计算机的DHCP协议想本网络的DHCP服务器发送信息配置请求报文
再说几个应用层的协议:
FTP
HTTP
HTTP属于哪一层协议
http方法
http头部字段
connection什么作用
close,keep-alive
http状态码
post和get
cookie和session
cookie和session的本质是什么
cookie是谁给谁做的标记
当客户端再次访问服务器时,怎么带上自己的cookie值
有cookie为什么还要session。
cookie只是一个变量,无法存储大量信息,而session是一个数据结构,可以存储用户更多信息,通过cookie ID值找到session数据就可以获取用户很多数据。
cookie和session都有生存时间
http头部字段中控制缓存的字段
客户端获取服务端的数据会暂时缓存在自己的磁盘中
http头部字段中控制缓存的字段服务端,客户端都有,服务端表示客户端可以缓存,而客户端的这个字段表示自己要不要直接使用缓存的数据。cache-control:max-age=0表示不使用缓存
前进后退才使用缓存
HTTPS
HTTPS=HTTP+TLS
HTTPS和http的区别
http有哪些版本,什么区别?
中间人(此网站的安全证书存在问题)和抓包工具的原理
TLS握手过程
socket
套接字接收缓冲区和发送缓冲区属于套接字属性,可以用getsocketopt和setsocketopt进行设置。
查看TCP报文的命令
查看网卡的命令
本地环回网卡
netstat
netstat -a
netstat -p
netstat -n
查看指定端口进程
netstat -anp | grip 端口号
这个命令也可以查看当前连接的状态
服务端可以发起关闭连接请求吗
setsocketopt设置端口重用解决TIME_WAIT问题。
客户端进程挂了会发生什么
FIN+RST
客户端机器挂了会发生什么
服务端进程挂了会发生什么
FIN+RST
服务端机器挂了会发生什么
超时重传多次结束连接
保活计时器
粘包和半包问题以及解决方案
粘包——多个数据的字节流粘合发送,没有指定消息边界,无法正确解析一个消息;
半包——一个数据分为多个包发送,没有指定消息边界,无法正确解析一个消息;
定义
原因 3
解决方案 3
加分割符同透明传输
多路IO复用
为什么需要多路IO复用
select,poll,epoll原理
什么区别
1、拷贝
2、数量
3、监测方式
服务端的连接数上限由什么决定
TCP的应用层到底什么功能?
应用层是工作在用户态的,我们的电脑和手机的软件就是应用层的功能软件,直接和用户进行交互的一层。
说几个应用的协议:
UDP实现可靠传输是在哪一层实现的?
说一说键入网址到显示网页的整个过程发生了什么?
发送端:
生成HTTP请求消息
DNS解析
启动协议栈
TCP三次握手建立连接
生成报文段
生成数据包
数据链路层三步作用
网卡信号转换发送
接收端:
网卡中断通知操作系统解析包
层层解析
将解析出来的http数据放入接收缓冲区,通过端口号通知对应的http进程处理这个http请求
获取文件生成http响应报文
再次发送数据包
发送端解析响应数据包,渲染页面
发送端发起连接断开请求,TCP四次挥手
网卡通知操作系统解析包的过程:
网卡接收到数据包,将数据包放入自己的缓存中,产生一个中断通知操作系统,操作系统收到这个中断之后会然CPU记录当前进程的上下文到这个进程的PCB中,然后CPU更具这个中断号在中断表中找到对应的中断处理程序,中断处理程序会去读取网卡缓存中的数据包,然后让协议栈层层解析,最后将解析出来的HTTP数据放入接收缓冲区,通过端口号通知对应的HTTP进程处理。
TCP从发送缓冲区获取的是什么数据———http消息
传输层一定会拆分http数据吗,数据超过了多少才会拆分———mss一个报文段数据部分的大小。
TCP窗口大小字段实际标识的是什么的大小,用来做什么?
arp一定会发送请求吗———arp缓存
交换机使用IP地址发送数据包还是使用MAC地址发送数据———arp协议利用默认网关的IP地址,向默认网关请求默认网关的MAC地址,交换机高速缓存表中记录的是MAC地址和对应的出口,而不是目的IP和对应出口,如果高速缓存表有记录MAC地址和这个地址对应的出口,那么就直接将数据发送给这个出口,如果没有这个MAC地址的记录,就把这个数据发送给除了数据包进入的接口的其他接口。
如果数据包没有指定目的MAC地址,也会发送给除了数据包进入接口的其他接口,比如arp请求。
交换机和路由器的区别:
作用;
路由器有自己的MAC和IP地址,因为它要进行数据包的转发。
linux系统查看系统IP,系统网卡,系统路由?
get和post的安全性和可缓存性
http的缓存
http请求的数据缓存在哪———浏览器的缓存
缓存的两种类型,区别和实现过程。
强制缓存实现过程
协商缓存实现过程:
第一次请求服务器会为这份数据设置缓存时间,第二次请求时带上缓存时间,服务器会根据缓存时间决定发送回新数据还是304重定位让客户端直接使用本地缓存。
缓存时间是哪一端规定的
http有哪些版本
各个版本的区别
是TLS还是TSL
http的缺点
1、什么是无状态,无状态的好处和坏处
2、明文传输
3、不安全
4、不能保持长链接
http1.0和http1.1的区别,也就是1.1在1.0上做了什么改变?
http1.1的队头阻塞问题?
解决了请求的对头阻塞,但是存在响应的对头阻塞。
http和https的四个区别:
一来就先说无状态不能保持长链接
然后再说其他两个
简单描述TLS握手过程
你知道抓包工具为什么可以看到明文吗,简单说一下———从安装抓包工具到回去明文
访问一些网站时提示危险,是否要继续访问,如果继续访问会发生什么?
说几个http1.1的缺点
队头阻塞会导致什么
服务器只能响应不发送
消息头不压缩就发送———重复消息头会重复发送
http2.0怎么解决1.1的问题:
并发传输解决响应的队头阻塞。
但是又存在接收的数据在接收缓冲区的对头阻塞。
使用压缩算法压缩消息头,提高发送速度;
服务器使用http2.0可以发送数据了;
http2丢包为什么会产生
http3.0不使用TCP,而是使用QUIC和UDP传输数据
连接断开的问题:
如果建立连接的通信双方长时间没有通信,会发生什么?———小林http
相关文章:
计网基础面试题
浏览器输入网址之后发生什么 1,DNS解析过程 2,三次握手 3,TLS通信 4,发送数据 5,四次挥手 TCP三次握手和四次挥手 两台计算机通信的过程 局域网通信———交换机——MAC地址 广域网通信———路由器——IP地址 网…...

设置Linux CentOS7桥接模式连网
在虚拟机上安装centos7系统后,首要任务就是设置网络。 我们在文章《设置linux centos7连接网络》中讨论了如何设置NAT模式连网。本文讨论如何在设置好NAT模式后,调换为桥接模式。 仍采用图形化方式设置方法。 一、查看物理机网络 把虚拟机设置为桥接…...

Mysql底层数据结构为什么选择B+树
索引底层采用什么数据结构,为什么使用B树而不是其他数据结构: (1)如果采用二叉树:使用递增字段作为索引时,二叉树会退化成链表,查找效率太低 (2)如果采用红黑树…...
R语言列操作函数
目录 一.dplyr包 1.新增变量和变量重新赋值 2.筛选行 3.筛选列 4.分组计算 5.管道操作符 6.连接数据框 二.tidyr 1.列的分裂 2.列的合并 3.宽数据转长数据 4.长数据转宽数据 一.dplyr包 1.新增变量和变量重新赋值 > head(ToothGrowth)len supp dose 1 4.2 …...

【Unity】VS Code 没有自动补全 MonoBehaviour 的方法
正常来说,在VS Code 输入类似 OnTriggerEnter2D等方法名时,VS Code会根据已经输入的前缀自动提示相关方法。 在不正常的情况下,根据StackOverFlow上面的回答,依次试过了 安装 .NET SDK安装 .NET Framework Dev PackVS Code安装 …...

计算机竞赛 基于深度学习的人脸性别年龄识别 - 图像识别 opencv
文章目录 0 前言1 课题描述2 实现效果3 算法实现原理3.1 数据集3.2 深度学习识别算法3.3 特征提取主干网络3.4 总体实现流程 4 具体实现4.1 预训练数据格式4.2 部分实现代码 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 毕业设计…...

大厂面试 | 百度一面,顶不住
题目来源:https://www.nowcoder.com/feed/main/detail/d39aabc0debd4dba810b4b9671d54348 前文 本期是【捞捞面经】系列文章的第 2 期,持续更新中…。(更多与往期下方仓库直达) 《捞捞面经》系列正式开始连载啦,据说看…...
c++线程
pthread(部分内容来自菜鸟教程) 创建线程 创建一个 POSIX 线程: #include <pthread.h> pthread_create (thread, attr, start_routine, arg) pthread_create 创建一个新的线程,并让它可执行。 参数: thread :指向线程标…...
【Docker】02-安装mysql
参考教程: https://www.bilibili.com/video/BV1Qa4y1t7YH/?p5&spm_id_frompageDriver&vd_source4964ba5015a16eb57d0ac13401b0fe77 docker安装Mysql 1、拉取最新版本的镜像 docker pull mysq:latestl 2、运行mysql服务 docker run --name mysql -e MYSQL_…...
JAVA每日小知识(关于excel下载时插入和stream流遍历优化)
1、在windows系统下启动rocketmq操作: 在bin目录下使用cmd 分别输入 start mqnamesrv.cmd start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnabletrue 2、在stream流中需要new对象时,可能会出现new很多对象堆积在堆中,这是需要用try,…...

阿里后端开发:抽象建模经典案例
0.引言 在互联网行业,软件工程师面对的产品需求大都是以具象的现实世界事物概念来描述的,遵循的是人类世界的自然语言,而软件世界里通行的则是机器语言,两者间跨度太大,需要一座桥梁来联通,抽象建模便是打…...
【车载以太网测试从入门到精通】——DoIP BootLoader刷写测试(含CAPL源码)
系列文章目录 文章目录 系列文章目录前言一、DoIP刷写环境搭建二、DoIP刷写工程使用方法三、DoIP刷写CAPL源码四、刷写工程下载链接前言 DoIP概述: DoIP(Diagnostic communication over InternetProtocol),基于IP网络的汽车诊断协议。DoIP技术可实现本地诊断、远程诊断、空…...

RK开发板的USB连接(Ubuntu)
一、安装连接工具 sudo apt-get install putty 二、启动putty工具 sudo putty 三、连接usb,并查看相关的信息 # 查看接入的是否有usb ls /dev/tty* 显示如下:(含有usb接口: /dev/ttyUSB0) /dev/tty /dev/tty23 /d…...

Redis-Cluster集群的部署(详细步骤)
一、环境准备 本次实操为三台机器,关闭防火墙和selinux 注:规划架构两种方案,一种是单机多实例,这里我们采用多机器部署 三台机器,每台机器上面两个redis实例,一个master一个slave,第一列做主库ÿ…...

Vulnhub: Hogwarts: Bellatrix靶机
kali:192.168.111.111 靶机:192.168.111.228 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.228访问80端口 查看源码,提示ikilledsiriusblack.php和文件包含的参数名file 漏洞利用 ikilledsiriusblack.p…...

机器学习(吴恩达第一课)
课程链接 文章目录 第一周1、机器学习定义2、监督学习(Supervised learning)1、回归(Regression)2、分类(Classification) 3、无监督学习(Unsupervised learning)4、线性回归模型5、代价函数6、梯度下降(Gradient descent)1、学习率2、用于线性回归的梯度下降 第二周(多维特征…...

固定资产管理怎么改革
固定资产管理改革需要考虑以下几个方面: 建立完善的管理制度和流程:制定固定资产管理的规章制度,明确各部门的职责和任务,规范资产采购、登记、领用、保管、维修、报废等流程。 采用先进的资产管理软件:通过采用先进的…...

【js】防抖和节流的使用场景和区别:
文章目录 一、防抖 (多次触发 只执行最后一次)二、节流 (规定时间内 只触发一次)三、防抖和节流的使用场景【1】防抖(debounce)【2】节流(throttle) 一、防抖 (多次触发 …...

Blazor前后端框架Known-V1.2.14
V1.2.14 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。 Gitee: https://gitee.com/known/KnownGithub:https://github.com/known/Known 概述 基于C#和Blazo…...

港陆证券:五日线破位怎么看?
在股票交易中,五日线是个重要的技术指标之一,它能够反映出最近的商场趋势。假如五日线破位,这意味着商场呈现了趋势反转,出资者需求注重趋势改动,并采取相应的出资战略。 首先,咱们来看看五日线破位的原因…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...

深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...