经典计算机网络面试题

简介: 经典计算机网络面试题

1.说说HTTP常用的状态码及其含义?

状态码

类别

1xx

信息性状态码

2xx

成功状态码

3xx

重定向状态码

4xx

客户端错误状态码

5xx

服务端错误状态码

日常开发中的状态码:

状态码

含义

101

切换请求协议

200

请求成功

301

永久性重定向,会缓存

302

临时重定向,不会缓存

400

客户端请求的语法错误

403

服务器禁止访问,权限有关

404

服务器无法根据客户端的请求找的资源

500

服务端错误

2.HTTP常用的请求方式,区别和用途?

请求方式

用途

GET

对服务器资源获取的简单请求

POST

用于发送包含提交数据的请求

PUT

向服务器提交数据,以修改数据

HEAD

请求页面的首部,获取资源的元信息

DELETE

删除服务器上的某些资源

CONNECT

用于ssl隧道的基于代理的请求

OPTIONS

返回所有可用的方法,常用于跨域

TRACE

追踪请求-响应的传输路径

3.请简单说你了解的端口及对应的服务

端口

服务

21

FTP(文件传输协议)

22

SSH

23

telnet服务

25

SMTP(简单邮件传输协议)

53

DNS域名服务器

80

HTTP超文本传输协议

110

POP3邮件协议3

4.计算机网络体系结构

   

5.ISO七层模型

应用层:网络服务与最终用户的一个接口,常见的协议有:HTTP FTP SMTP SNMP DNS

表示层:数据的表示、安全、压缩。确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。

会话层:建立、管理、终止会话,对应主机进程,指本地主机与远程主机正在进行的会话。

传输层:定义传输数据的协议端口号,以及流控和差错校验,协议有TCP,UDP。

网络层:进行逻辑地址寻址,实现不同网络之间的路径选择,协议有ICMP,IGMP,IP等

数据链路层:在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路。

物理层:建立、维护、断开物理连接。

6.从浏览器地址栏URL到显示主页的过程

1.DNS解析,查找域名对应的IP地址

2.与服务器通过三次握手,建立TCP连接

3.向服务器发送HTTP请求

4.服务器处理请求,返回网页内容

5.浏览器解析并渲染页面

6.TCP四次挥手 ,连接结束

7.交互过程中如果数据传送完了,还不想断开连接怎么办,怎么维持?

在HTTP中响应体的connection字段指定为Keep-alive即可

8.http如何实现长连接?在什么时候会超时?

http的长连接实质是指tcp的长连接。至于什么时候超时,我们记住这几个参数如tcp_keepalive_time、tcp_keepalive_probes就好

在什么时候会超时?

http一般会有httpd守护进程,里面可以设置keep-alive timeout,当tcp连接闲置超过这个时间就会关闭,也可以在HTTP的header里面设置超时时间

tcp的keep-alive包含三个参数,支持在系统内核的net.ipv4里面设置;当tcp连接之后,闲置了tcp_keepalive_time,则会发生侦测包,如果没有收到对方的ACK,那么会每隔tcp_keepalive_intvl再发一次,直到发送了tcp_keepalive_probes,就会丢弃该连接。

9.http和https有什么区别

http,即超文本传输协议,是一个基于tcp/ip通信协议来传递明文数据的协议。http会存在这几个问题:

请求信息是明文传输,容易被窃听截取。

没有验证对方身份,存在被冒充的风险。

数据的完整性未校验,容易被中间人篡改。

所以为了解决这些问题,就有了https。

https=http+ssl,可以理解https是带着ssl的http。

http

https

安全性

不安全

安全

默认端口

80

443

资源消耗

较少

较多

是否需要证书

不需要

需要

报文是否加密

明文

密文

10.什么是数字签名?什么是数字证书?

数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。它的出现,是为了避免身份被篡改冒充的。比如Https的数字证书,就是为了避免公钥被中间人冒充篡改。

数字证书构成:

  • 公钥和个人等信息,经过Hash摘要算法加密,形成消息摘要;将消息摘要拿到拥有公信力的认证中心(CA),用它的私钥对消息摘要加密,形成数字签名。
  • 公钥和个人信息、数字签名共同构成数字证书。

11.说说DNS的解析过程

DNS,域名解析系统,是Internet上作为域名与IP相互映射的一个分布式数据库。它的作用很明确,就是可以根据域名查出对应的IP地址。

       

9.说下HTTP/1.0,1.1,2.0的区别

HTTP/1.0

默认使用短连接,每次请求都需要建立一个TCP连接。它可以设置connection:keep-alive,强制开启长连接。

HTTP/1.1

引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用。

分块传输编码,即服务端没产生一块数据,就发送一块,用“流模式”取代“缓存模式”。

管道机制,即在同一个TCP连接里面,客户端可以同时发送多个请求。

HTTP/2.0

二进制协议,1.1版本的头信息是文本(ASCII),数据体可以是文本或者二进制;2.0中,头信息和数据体都是二进制。

完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应。

报头压缩,HTTP协议不带有状态,每次请求都必须附上所有信息。

服务端推送,允许服务器未经请求,主动向客户端发送资源。

10.在交互过程中如果数据传送完了,还不想断开连接怎么办,怎么维持?

在HTTP中相应体的connection字段指定为keep-alive即可。

11.每一层网络协议有哪些?

应用层:HTTP(超文本传输协议),FTP(文本传输协议),SMTP(简单邮件传输协议),DNS(域名系统),SSH(安全外壳协议),DHCP(动态主机配置协议),TELNET(远程登录协议)

传输层:TCP(传输控制协议),UDP(用户数据报文协议)

网络层:IP(网际协议),ARP(地址转换协议),RARP(反向地址转换协议),ICMP(Internet控制报文协议)

数据链路层:ARQ(自动重传需求协议),CSMA(停止等待协议),PPP(点对点协议)

物理层:HUB,网线,中继器

12.说说websocket与socket的区别

socket就是IP地址+端口+协议

websocket是一个持久化的协议,伴随H5而出的协议,用来解决http不支持持久化连接的问题

socket一个是网编编程的标准接口,而websocket则是应用层通信协议。

13.IP地址有哪些分类?

IP地址=网络号+主机号

网络号:标志主机所连接的网络地址表示属于互联网的哪一个网络

主机号:标志主机地址表示其属于该网络中的哪一台主机

IP地址分为A,B,C,D,E五大类:

A类地址(1~126):以0开头,网络号占前8位,主机号占后面24位

B类地址(128~191):以10开头,网络号占前16位,主机号占后面16位

C类地址(192~223):以110开头,网络号占前24位,主机号占后面8位

D类地址(224~239):以1110开头,保留位多播地址

E类地址(240~255):以11110开头,保留位为将来使用

14.有了IP地址为什么还要用MAC地址?

一台计算机常用的就是IP地址和MAC地址,但计算机的IP地址可由用户自行更改,管理起来就相对困难,而mac地址不可更改,所以一般把mac地址和IP地址组合起来使用。

15.详细介绍一下TCP的三次握手机制

  • 第一次握手(SYN=1, seq=x),发送完毕后,客户端就进入SYN_SEND状态
  • 第二次握手(SYN=1, ACK=1, seq=y, ACKnum=x+1), 发送完毕后,服务器端就进入SYN_RCV状态。
  • 第三次握手(ACK=1,ACKnum=y+1),发送完毕后,客户端进入ESTABLISHED状态,当服务器端接收到这个包时,也进入ESTABLISHED状态。

16.TCP四次挥手过程

  1. 第一次挥手(FIN=1,seq=u),发送完毕后,客户端进入FIN_WAIT_1状态。
  2. 第二次挥手(ACK=1,ack=u+1,seq =v),发送完毕后,服务器端进入CLOSE_WAIT状态,客户端接收到这个确认包之后,进入FIN_WAIT_2状态。
  3. 第三次挥手(FIN=1,ACK1,seq=w,ack=u+1),发送完毕后,服务器端进入LAST_ACK状态,等待来自客户端的最后一个ACK。
  4. 第四次挥手(ACK=1,seq=u+1,ack=w+1),客户端接收到来自服务器端的关闭请求,发送一个确认包,并进入TIME_WAIT状态,等待了某个固定时间(两个最大段生命周期,2MSL,2 Maximum Segment Lifetime)之后,没有收到服务器端的ACK ,认为服务器端已经正常关闭连接,于是自己也关闭连接,进入CLOSED状态。服务器端接收到这个确认包之后,关闭连接,进入CLOSED状态。
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2天前
|
机器学习/深度学习 数据采集 自然语言处理
叮!你需要的Python面试指南以送到!,计算机网络面试知识
叮!你需要的Python面试指南以送到!,计算机网络面试知识
|
2天前
|
机器学习/深度学习 数据挖掘 算法框架/工具
想要了解图或图神经网络?没有比看论文更好的方式,面试阿里国际站运营一般会问什么
想要了解图或图神经网络?没有比看论文更好的方式,面试阿里国际站运营一般会问什么
|
2天前
|
算法 网络安全 Python
sqlmap性能优化_sqlmap 优化 不接受请求体,阿里巴巴网络安全面试题答案
sqlmap性能优化_sqlmap 优化 不接受请求体,阿里巴巴网络安全面试题答案
|
2天前
|
Linux 网络安全
CentOS系统openssh-9,网络安全大厂面试真题解析大全
CentOS系统openssh-9,网络安全大厂面试真题解析大全
|
2天前
|
SQL 安全 网络协议
网络安全行业名词_失陷主机,网络安全面试自我介绍
网络安全行业名词_失陷主机,网络安全面试自我介绍
|
2天前
|
网络安全 Windows
PentestGPT-V0(1),网络安全面试题2024笔试
PentestGPT-V0(1),网络安全面试题2024笔试
|
2天前
|
运维 网络协议 Linux
Docker网络_docker 网络,来看看这份超全面的《Linux运维面试题及解析》
Docker网络_docker 网络,来看看这份超全面的《Linux运维面试题及解析》
|
2天前
|
机器学习/深度学习 PyTorch 算法框架/工具
神经网络基本概念以及Pytorch实现,多线程编程面试题
神经网络基本概念以及Pytorch实现,多线程编程面试题
|
3天前
|
设计模式 算法 Android开发
2024年Android网络编程总结篇,androidview绘制流程面试
2024年Android网络编程总结篇,androidview绘制流程面试
2024年Android网络编程总结篇,androidview绘制流程面试
|
4天前
|
存储 网络协议 安全
【专栏】30 道初级网络工程师面试题为广大网络工程师提供参考。
【4月更文挑战第28天】本文为初级网络工程师提供了30道面试题,涵盖OSI七层模型、TCP/IP协议栈、IP地址分类、ARP、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN、网络拓扑、广域网、以太网、网络存储、网络拥塞、流量监控、延迟、网络安全、网络攻击防范、协议分析、性能优化、故障排查、网络虚拟化和云计算等基础知识。这些问题旨在帮助面试者准备并提升网络工程领域的知识和技能。