计网基础面试题

浏览器输入网址之后发生什么

1,DNS解析过程

2,三次握手

3,TLS通信

4,发送数据

5,四次挥手

两台计算机通信的过程
局域网通信———交换机——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表示什么
一个路由器是不是只有一个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的区别
1、首部
2、


数据包在传输过程中会发生哪些错误问题
怎么实现可靠传输
三种协议

有发送窗口,那有接收窗口吗
什么是累计确认
回退N帧协议:
接收窗口大小只有1。
当某一个数据包没有接收到,后面接收到多少新的数据包,但是不是应该接收的,那么就返回多少个已经正确接收到的最后一个数据包的确认。
选择重传协议:
接到一个确认一个

TCP怎么实现可靠传输
协议+三个字段+拥塞控制算法
TCP实现可靠传输使用哪个协议
TCP和可靠传输有关的三个字段
序号值是多少
确认号是不是接收到的序列号+1
不是,那是什么
窗口是表示什么
发送这个报文的接收窗口
(这里说的不太正确,太笼统,看详细TCP部分)

本端的发送窗口可以根据对端的接收窗口调整大小,对端表明可以接收多少,那本端就发送多少

什么是流量控制
发送端通过控制发送窗口大小控制对端发送数据的大小的过程
当接收端的窗口满了之后,告诉发送端停止发送数据。那么通过什么机制又可以再次发送数据?
发送端:计时器+零窗口探测报文

什么是拥塞控制
漏斗原理
拥塞窗口的本质是什么?
拥塞窗口是不是滑动窗口
拥塞窗口是不是发送窗口
网络出现拥塞的根据
拥塞窗口的大小是什么时候建立的
初始值为多少

数据包丢失就一定是网络拥塞吗?

TCP的拥塞控制
有哪些拥塞控制算法
5个

快速重传和快速回复算法解决了什么问题
描述整个拥塞控制的流程

怎么设置UDP可靠传输———QUIC协议
TCP和UDP的网络编程流程
TCP和UDP可以绑定同一个端口号吗,为什么?
四元组
TCP三次握手
过程和状态转换
四次握手过程和状态转换
三次握手过程中都可以发送数据吗,为什么
因为第三次握手客户端已经建立连接,发送数据更安全
初始序列号在什么时候发送给对端 
为什么需要三次握手
什么是半连接队列和全连接队列
第一次挥手的时候有没有确认号,如果有,是对什么的确认?
什么时候哪一端会处于半关闭状态,什么是半关闭状态?当一段处于半关闭状态,另一端还可以发送数据吗,处于半关闭状态的一段还可以发送数据吗,还可以接收数据吗?
半关闭状态虽然不可以发送数据包,但是还可以发送ACK确认包

如果发送数据的过程中,客户端突然出现故障,停止发送数据了,那么会发生什么?
服务端每接收到客户端的一个数据包,就会重置保活计时器,若保活计时器规定时间内都没有收到数据,服务端就会发送探测报文,75s发送一次,发送10次如果都没有接收到新数据包,就会断开连接。

看收藏链接
怎么回答三次握手过程
1、作用、4个数据交换。
2、客户端函数触发
3、详细的链接过程,每一个数据包中的信息,能否携带数据。

怎么回答四次握手过程
1、状态转换,以及close_wait状态需求。
2、time_wait状态。
time_wait的两个理由。


应用层
网络层通过协议字段知道把解析出来的报文发给运输层的哪个协议处理,那么运输层又怎么知道吧解析出来的数据交给哪个应用层的进程处理呢。
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———6

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的区别

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

你可能感兴趣的:(网络,智能路由器)