首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
每日面经精选
浙江大学 运营
关注
已关注
取消关注
#计算机网络面经#
👈点击话题查看更多同类面经干货!每日面经精选,为你发掘牛客干货!
@Jeff_Lui:
计算机网络常见面试题
精华
计算机网络常见面试题 浏览器输入网址之后发生了什么 DNS域名解析 HTTP协议生成请求报文 TCP协议将请求报文分割成报文段,进行可靠传输 IP协议进行分组转发 TCP协议重组请求报文 HTTP协议对请求进行处理 网络体系(OSI七层、TCP/IP四层、五层) TCP/IP协议各层的作用 应用层:应用层的任务是通过应用进程之间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程是指主机中正在与运行的程序。对于不同的网络应用需要有不同的应用层协议。在互联网中的应用层协议有很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,等等。 传输层:传输层的任务是负责向两台主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。主要有TCP协议和UDP协议。 网络层:网络层的任务是为分组交换网上的不同主机提供通信服务。在发送数据的时候,网络层把运输层产生的报文段或者用户数据报封装成分组或包进行传送。主要使用IP协议。 网络接口层:操作系统中的设备驱动和计算机对应的网络接口,它们一起处理与传输媒介的物理接口细节。主要有ARP协议和RARP协议。 应用层 HTTP和HTTPS的区别 端口 :HTTP的URL由“http://”起始且默认使用端口80,而HTTPS的UR由“https://”起始且默认使用端口443。 安全性和资源消耗: HTTP协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS 运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。所以说,HTTP 安全性没有 HTTPS高,但是 HTTPS 比HTTP耗费更多服务器资源。 对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等; 非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。 HTTPS的加密过程 证书验证,客户端发送一个证书请求个服务器端,服务器端返回证书,客户端对证书进行验证。 交换密钥,使用非对称加密,客户端使用公钥进行加密,服务器端使用密钥解密。 交换数据,使用对称加密的方式对数据进行加密,然后进行传输。 HTTP1.0和HTPP1.1的区别 缓存处理:在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。 带宽优化及网络连接的使用:HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。 错误通知的管理:在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。 Host头处理:在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。 长连接:HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点。 长连接和短连接的区别 HTTP2.0与HTTP1.x的区别 新的二进制格式(Binary Format):HTTP1.x的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认0和1的组合。基于这种考虑HTTP2.0的协议解析决定采用二进制格式,实现方便且健壮 多路复用(MultiPlexing):即连接共享,即每一个request都是是用作连接共享机制的。一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面。 header压缩:HTTP1.x的header带有大量信息,而且每次都要重复发送,HTTP2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。 服务端推送(server push):同SPDY一样,HTTP2.0也具有server push功能。 HTTP协议中的GET和POST方式的区别 参数位置:GET方法参数位置包含在URL,POST方法参数包含在请求主体 参数长度:GET方法的URL长度有限度,POST长度没有限制 参数编码:GET方法参数编码是ASCII码,POST没有限制 TCP数据包:GET方法产生一个TCP数据包,把首部和数据一起发送,POST方法产生两个TCP数据包,先发首部,服务器响应后再发数据 HTTP的报文结构 HTTP协议有那些请求 HTTP的状态码 答: HTTP的首部字段 答: 通用首部字段(General Header Fields) 请求首部字段(Request Header Fields) 响应首部字段(Respond Header Fields) 实体首部字段(Entity Header Fields) Session和Cookie的区别 答: 储存位置:Cookie是客户端会话技术,数据保存在客户端,Session是服务器端会话技术,数据保存在服务器端。 存储容量:Cookie一般<=4KB,Session无限制。 跨域支持:Cookie支持跨域,Session不支持。 Cookie的知识点: 概念: 客户端会话技术,将数据保存在客户端 使用步骤: 创建Cookie对象,绑定数据 new Cookie(Cookie cookie) 发送Cookie对象 response.addCookie(Cookie cookie) 获取Cookie,拿到数据 Cookie[] request.getCookies() 实现原理: 基于响应头的set-cookie和请求头cookie实现 细节: 一次可不可以发送多少个Cookie 可以,可以创建多个Cookie对象,使用response调用多次addCookie方法发送多个Cookie Cookie在浏览器中保存多长时间 默认情况下,当浏览器关闭,Cookie数据被销毁 持久化存储: setMaxAge(int seconds) 正数:将Cookie数据写到硬盘的文件中,持久化存储 负数:默认情况 0:删除Cookie Cookie能不能存中文 在tomcat 8之前不能存储,tomcat 8之后可以 Cookie的共享问题: 假设在一个tomcat服务器,部署了多个项目,那么在这些项目中Cookie能不能共享 默认情况下不能共享 setPath(String path):设置Cookie的取值范围,默认情况下,设置当前虚拟目录,如果要共享,可以将path设置为“/” 不同的tomcat服务器间Cookie的共享问题 setDomain(String path):如果设置一级域名相同,那么多个服务器之间Cookie可以共享 Cookie的特点和作用 特点: Cookie储存数据在客户端浏览器 浏览器对于单个Cookie的大小有限制(4KB)以及对于同一域名下的总Cookie数量也有限制(20个) 作用: Cookie一般用于存储少量的不太敏感的数据 在不登陆的情况下,完成服务器对客户端的身份识别 如何设计API的安全性 Token授权机制、时间戳超时机制、签名机制、拒绝重复调用 HTTP攻击有哪些 跨站脚本攻击(XSS)、Dos攻击、SQL注入攻击、OS命令注入攻击、HTTP头部攻击、目录攻击、开放重定向攻击 HTTP和WebSocket的联系和区别,什么情况下用WebSocket 答:HTTP1.x是半双工通信,客户端请求服务器响应,是无状态的,如果要实现实时通讯需要长轮询或者长连接的方式,这两种方式带来资源浪费。WebSocket是HTML5以后基于TCP协议应用层的一种全双工实时通讯协议。客户端和服务端可以进行信息的相互传递。它是借Http请求产生握手,在Http的头部会包含WebSocket协议的请求,所以握手之后,协议进行一个升级,转成TCP协议进行交流。WebSocket可以应用于聊天和即时信息 WebSocket通信流程 答: 建立socket通信,包括客户端和服务器端创建套接字(socket方法),服务器端绑定端口(bind方法),建立监听(listen方法),客户端创建连接(connect方法)。 TCP三次握手建立连接 客户端服务器端收发数据(send方法、recv方法),读写数据(read方法、write方法)。 TCP四次挥手关闭连接 关闭socket(close方法) Socket编程主要大的步骤 创建套接字(socket方法) 客户端建立连接(connect方法),服务器端绑定端口(bind),建立监听(listen方法) 写入数据(write方法),发送数据(send方法),接收数据(recv方法)读取数据(read方法) 关闭连接(close方法) socket常见读写错误 EAGAIN的错误:一般是对非阻塞端口读写产生的错误。 EINTR:errno=4,错误描述Interrupted system call,操作也应该继续。 ECONNABORTED,错误描述software caused connection abort,即“软件引起的连接中止 ECONNRESET 不在TCP_SYN_SENT状态收到的rst,connection reset by peer,即“对方复位连接”,这种情况一般发生在服务进程较客户进程提前终止。 EPIPE ,错误被描述为“broken pipe”,即“管道破裂”,这种情况一般发生在客户进程不理会(或未及时处理)Socket 错误 ECONNREFUSED在TCP_SYN_SENT状态收到的rst,一般说明对方没有对应的监听服务。 ETIMEDOUT,错误被描述为“connect time out”,即“连接超时”,这种情况一般发生在服务器主机崩溃。 EHOSTTUNREACH ENETUNREACH,no route to host(软错)路由上引发了一个目的地不可达的ICMP错误 其中(1)(3),客户端会进行定时多次重试,一定次数后才返回错误。 DHCP原理 域名系统DNS FTP的两种模式 传输层 TCP三次握手和四次挥手的图 三次握手 四次挥手 第三次握手可以发送数据了吗 不能,需要三次握手成功之后才开始发送数据 TCP连接唯一性如何保证 对TCP而言在三次握手时的SYN标志会使用上一个ISN值,这个值是使用32位计数器,内由0-4294967295,每一次连接容都会分配到一个ISN值,连接双方对这个值会记录共识,假如这个值不一,就说明了这个连接已超时或无效甚至是被人恶意攻击冒充连接。 为什么要有TIME_WAIT 我是服务端你是TIME_WAIT客户端,我给你发了一段数据,我的seq是100,你应该回我ack多少(假设已经建立了三次握手,现在给你发了一段数据) 建立连接:Ack号 = Seq号 + 1 传输数据:Ack号 = Seq号 + 传递的字节数 + 1 TCP和UDP的区别 答: 连接:UDP是无连接的,发送数据之前无需建立连接,发送数据结束后也无需释放连接。TCP是面向连接的,在发送数据之前需要通过三次握手建立连接,发送数据结束后需要通过四次挥手释放连接。 交付:UDP使用尽最大努力交付,即不保证可靠交付,主机不需要维持复杂的连接状态表。TCP提供可靠交付,即通过TCP连接传送的数据,无差错、不丢失、不重复,并且按序到达。 数据:UDP是面向报文的,UDP对于应用层交下来的报文,添加首部后就向下交给IP层,既不合并,也不拆分,一次交付一个完整的报文。TCP是面向字节流的,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据看出成一连串无结构的字节流。TCP不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小关系。 通信双方:UDP支持一对一、一对多、多对一、多对多的交互通信。TCP连接是点对点(一对一),每一条TCP连接只能有两个端点。 拥塞:UDP没有拥塞控制,网络的拥塞不会使源主机的发送速率降低。TCP通过慢开始、拥塞避免、快重传、快恢复等算法进行拥塞控制。 首部:UDP首开销小,只有8个字节。TCP首部是20个字节。 TCP可靠连接的实现 答: 滑动窗口 选择确认 超时重传 TCP的流量控制 TCP拥塞控制的方法 慢开始 拥塞避免 快重传 快恢复 TCP三次握手和四次挥手时客户端和服务端的状态 答:参考上面两个图 常见端口和对应服务 答: 网络层 子网的划分 答: 交换机和路由器的区别 答: 工作层次:交换机主要工作在数据链路层,路由器主要工作在网络层 转发依据:交换机转发依据的对象是MAC地址,路由器转发依据的对象是IP地址 功能:交换机功能较简单,只是将主机连接起来组件局域网,路由器可以将局域网连接起来,还能分割广播域,还能提供防火墙 如果不想要一个ip,如何释放,如何重新获取一个ip 子网掩码的最大长度 30位,子网掩码将某个IP地址划分成网络地址和主机地址两部分,在一个网段中,有2个地址是被固定占用的,一个是网段地址,一个是网段内广播地址,其他是主机可用的地址,至少一个,不然就没有意义了。也就是说,被掩码所分的网段至少要包含3个地址。 MAC表、路由表、ARP表的字段 答: MAC表 路由表 ARP表 ARP协议的作用 答:将IP地址转换为物理地址 ARP协议的工作原理 首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。 当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机IP地址,源主机MAC地址,目的主机的IP地址。 当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。 源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。 广播发送ARP请求,单播发送ARP响应。 IPV6地址的基本类型 单播(unicast):单播就是传统的点对点通信。 多播(multicast):多播是一点对多点的通信,数据报发送到一组计算机中的每一个。IPV6没有广播的术语,而是将广播看作多播的一个特例。 任播(anycast):这是IPV6增加的一种类型。任播的终点是一组计算机,但是数据包只交付给其中一个,通常是距离最近的一个。 IPV6的首部 路由选择协议 内部网关协议RIP(Routing Information Protocol):RIP是一种分布式的基于距离向量的路由选择协议。 内部网关协议OPSF(Open Shortest Path First):OSPF是使用分布式的链路状态协议。 外部网关协议BGP(Border Gateway Protocol):边界网关协议。 IO多路复用 select epoll epoll和select的区别
点赞 89
评论 25
计算机网络面经
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
06-09 13:36
已编辑
千万不要AI作弊,会被永久拉黑的
现在的AI作弊产品太多了,上次我同事面试完回来就和我们感慨,遇到一个技术还不错的小伙子,八股问题面试过程中用AI辅助直接被平台检测出来了。已经被拉黑了。地点:某开水团Java 开发都是互相选择的过程,作弊是人品问题,没发现是侥幸,一旦发现都是万劫不复呀!大家拥抱AI可以多试试AI模拟面试,很多产品都做得还可以。
从零开始的转码生活:
打铁还需自身硬,靠ai辅助是很难胜任工作中需要处理的问题的,所以初学者还是别总用ai了虽然省力但是容易有依赖性
点赞
评论
收藏
分享
06-07 23:18
已编辑
北京体育大学 测试工程师
美团开放平台SDK自动生成技术与实践
一段话总结美团开放平台为解决近1000个OpenAPI的开发者接入效率问题,采用基于API元数据和DSL的代码自动生成技术,实现了Java、C#等多语言SDK的参数富模型代码及调用示例的自动化生成,并通过持续集成流水线将SDK发布周期缩短至分钟级。该方案使开发者接口对接问题减少,工单数量显著下降,有效降低了平台运营成本,未来将进一步扩展编程语言支持。思维导图详细总结一、背景与目标业务规模:美团开放平台提供20+业务场景(如外卖、配送)的近1000个OpenAPI,但开发者手工对接需处理通信协议、安全签名等细节,成本高且易出错。核心痛点: API数量增长快(近两年增长约1倍),人工维护多语言SD...
点赞
评论
收藏
分享
05-08 23:17
滴滴_Java开发(实习员工)
不删
自由水:
笑死了,敢这么面试不敢让别人说
点赞
评论
收藏
分享
04-18 15:37
门头沟学院 大数据开发工程师
太卑微了.......
现在工作形势这么难
Z_eus:
别打招呼直接发你的优势
点赞
评论
收藏
分享
06-05 17:17
重庆工程学院 Java
腾讯云智一面
1.自我介绍2.redis与mysql是否是双写入,怎样保证数据一致性3.介绍docker容器4.docker容器的缺点5.docker容器失效了怎么办6.运行项目时,内存爆了怎么办还有些不记得了太难了,全是场景题
腾讯云智研发一面205人在聊
查看6道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
4
收藏
分享
评论
提到的真题
返回内容
招聘动态
查看更多
26届投递链接合集
华泰证券Fintech星战营
全站热榜
更多
1
...
暑假还要上课,实习怎么办😭
8578
2
...
所以毕业就是分手季吗?
6223
TP-LINK开奖
热聊中
3
...
一文详解各大厂人才项目差异点(吐血整理)
5559
4
...
从竞赛到实习:我的成长之路与经验分享
4373
5
...
宝宝你是最棒的宝宝
4260
6
...
我的21岁
3586
7
...
一个双非普通人在大厂真实实习感受
3065
8
...
挑战27届大二沟通最多的
2772
9
...
遇上了人机hr...有一样的吗
2667
10
...
千万不要AI作弊,会被永久拉黑的
2231
创作者周榜
更多
正在热议
更多
#
聊聊这家公司值得去吗
#
225297次浏览
2125人参与
#
硬件人你反向读研了吗
#
41612次浏览
629人参与
#
为了找工作你投递了多少公司?
#
6357次浏览
78人参与
#
工作一周年分享
#
26621次浏览
126人参与
#
一人一个landing小技巧
#
77099次浏览
1106人参与
#
kpi面有什么特征
#
28576次浏览
152人参与
#
入职第一天,你准备什么时候下班
#
54740次浏览
349人参与
#
小米提前批笔试难吗
#
33145次浏览
352人参与
#
正在实习的你,几点下班
#
156239次浏览
1085人参与
#
担心入职之后被发现很菜怎么办
#
125926次浏览
749人参与
#
一人推荐一个机械人值得去的公司
#
403200次浏览
4136人参与
#
毕业论文怎么查AI率
#
43040次浏览
1891人参与
#
夸夸我的求职搭子
#
192163次浏览
1898人参与
#
校招入职后的感受
#
274775次浏览
2668人参与
#
投格力的你,拿到offer了吗?
#
82444次浏览
573人参与
#
Tplink求职进展汇总
#
130261次浏览
728人参与
#
体制内上岸心路历程
#
26539次浏览
212人参与
#
华为池子有多大
#
87543次浏览
689人参与
#
产品每日一题
#
43524次浏览
563人参与
#
tplink提前批进度交流
#
162314次浏览
1367人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务