首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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-05 18:20
山东大学 iOS开发
被裁了 回来牛客看看
今年年初被裁了,到现在都没找到工作 想当年校招的时候也是意气风发,没想到3年过去也被“降本了”,原因还是C端业务规模萎缩,不需要那么多的客户端了。。。大厂进不去了,小厂也自身难保不招人只套方案,有点想趁着还没到35岁考公了 牛客的弟弟妹妹们现在没实习也不用太焦虑,工作也就那么一回事儿吧,随时都会有意外发生
Mayday1995:
同前天刚被裁后回来看看,20年秋招时候拿了十几个offer,短短几年光景,形式已经急转急下了
找工作的破防时刻
点赞
评论
收藏
分享
06-05 17:47
深圳大学 OTA系统工程师
牛友们是选爱情还是选前途?
看到那篇因为选offer吵架的帖子,感同深受了,虽然没有吵架,但是感觉异地以后就会分手,女朋友签了老家的国企,而我选择了广州,安徽到广东距离很远,远到2个年轻人会就此走散,我俩针对这个距离内心基本上默认可能会分手了,虽然她没说什么,但是我也能感受到,哎2年多的感情挺深的,不知道以后会不会后悔没有挽留这段感情,但是现在找工作确实也不太好找,好不容易找到了两人谁也不想放弃自己的人生规划,真挺难的,如果是牛友们会怎么选呢?
青春运维少年不会梦到前端学姐:
我猜你问了很多人,唯独没有问自己。爱他人的前提是学会爱自己,尊重自己,坚持自己的选择。
点赞
评论
收藏
分享
04-30 21:35
已编辑
长安大学 C++
美团小sp。。可惜了😪😪————更新——————别说我了兄弟们😭😭。女朋友是体制内高校教师,工作动不了。并且对我真的是非常非常好。在一块也是他出钱居多。并且双方也都见过父母,准备订婚了😭😭😭😭
晓沐咕咕咕:
评论区没被女朋友好好对待过的计小将可真多。觉得可惜可以理解,毕竟一线大厂sp。但是骂楼主糊涂的大可不必,说什么会被社会毒打更是丢人。女朋友体制内生活有保障,读研女朋友还供着,都准备订婚了人家两情相悦,二线本地以后两口子日子美滋滋,哪轮到你一个一线城市房子都买不起的996清高计小将在这说人家傻😅
点赞
评论
收藏
分享
04-22 10:11
西北农林科技大学 风电运维工程师
求助🆘大二第一次投实习
请问这算是没戏了么?
被加薪的哈里很优秀:
应该继续招人,不会给你留岗位的
点赞
评论
收藏
分享
今天 10:24
北京师范大学 Java
本2九硕后端0实习
秋招目标是国企,比较偏向银行。但是后端准备的太晚了,项目是苍穹外卖+类似黑马点评,八股刚背两周。大厂后端感觉已经没啥希望了,还有科研的压力,十月可能会中期,实验还没做出来。朋友说大厂测开难度小些,他已经进大厂测开了。现在还有个选择是找银行的暑期实习。大家觉得该怎么继续呢?
如何一边实习一边秋招
大厂无回复,继续等待还是奔赴小厂
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
4
收藏
分享
评论
提到的真题
返回内容
招聘动态
查看更多
26届投递链接合集
华泰证券Fintech星战营
全站热榜
更多
1
...
信息差补全:哪些假国企要避雷
1.2W
2
...
双一流本的春招失败总结 面试近40家公司 0offer结局 准备转行了
9219
华为开奖进度👉
热聊中
3
...
27届腾讯一面,强度太大了..
7058
4
...
一文详解各大厂人才项目差异点(吐血整理)
5681
5
...
所以毕业就是分手季吗?
4944
6
...
宝宝你是最棒的宝宝
4804
7
...
我的21岁
4411
8
...
在西二旗上班真的没有一点活人感
3916
9
...
从竞赛到实习:我的成长之路与经验分享
3773
10
...
Golang面试项目怎么找?
3708
创作者周榜
更多
正在热议
更多
#
聊聊这家公司值得去吗
#
232901次浏览
2182人参与
#
kpi面有什么特征
#
31632次浏览
208人参与
#
你认为哪个岗位找工作最卷
#
12296次浏览
41人参与
#
职场人,说说你的烦心事
#
8500次浏览
71人参与
#
一人一个landing小技巧
#
78975次浏览
1123人参与
#
职场上哪些事情令人讨厌
#
16641次浏览
82人参与
#
秋招最大的收获是什么?
#
33839次浏览
296人参与
#
小红书求职进展汇总
#
56067次浏览
485人参与
#
聊聊你的职场新体验
#
157400次浏览
1369人参与
#
机械制造岗投递时间线
#
22707次浏览
346人参与
#
职场吐槽大会
#
205318次浏览
1635人参与
#
研究所VS国企,该如何选
#
180562次浏览
1769人参与
#
为了找工作你投递了多少公司?
#
9390次浏览
127人参与
#
大家每天通勤多久?
#
41948次浏览
329人参与
#
通信硬件牛牛的实习日记
#
7143次浏览
65人参与
#
职场破防瞬间
#
234890次浏览
2125人参与
#
总结:哪家公司面试体验感最好
#
47601次浏览
338人参与
#
tplink提前批进度交流
#
162702次浏览
1378人参与
#
找工作前vs找工作后的心路变化
#
9571次浏览
102人参与
#
担心入职之后被发现很菜怎么办
#
126304次浏览
754人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务