说明:
- 面试群,群号: 228447240
- 面试题来源于网络书籍,公司题目以及博主原创或修改(题目大部分来源于各种公司);
- 文中很多题目,或许大家直接编译器写完,1分钟就出结果了。但在这里博主希望每一个题目,大家都要经过认真思考,答案不重要,重要的是通过题目理解所考知识点,好应对题目更多的变化;
- 博主与大家一起学习,一起刷题,共同进步;
- 写文不易,麻烦给个三连!!!
目录
1.说说什么是 TCP 粘包和拆包?
答案:
TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是所谓的TCP粘包和拆包问题。
2.如何解决粘包和拆包问题
答案:
粘包的问题出现是因为不知道一个用户消息的边界在哪,如果知道了边界在哪,接收方就可以通过边界来划分出有效的用户消息。
所以可以:
- 固定长度的消息;
- 特殊字符作为边界;要注意特殊字符转义
- 自定义消息结构。比如这个消息结构体,首先 4 个字节大小的变量来表示数据长度,真正的数据则在后面
3.Tcp为什么比UDP可靠
答案:
1.确认和重传机制
主要还三次握手和四次挥手
2.数据排序
TCP有专门的序列SN字段,可提供re-order
3.流量控制
窗口和计时器的使用,TCP窗口中指明双方能够接发的最大数据数量
4.拥塞控制
TCP的拥塞控制由4个核心算法组成,“慢启动”,“拥塞避免”,“”快速重传,“快速恢复”
4.IPv4和IPv6的区别
答案:
(1)协议地址的区别
地址长度:IPv4协议具有32位(4字节)地址长度;IPv6协议具有128位(16字节)地址长度
地址的表示方法:IPv4地址是以小数表示的二进制数。 IPv6地址是以十六进制表示的二进制数。
(2)地址解析协议
IPv4协议:地址解析协议(ARP)可用于将IPv4地址映射到MAC地址。
IPv6协议:地址解析协议(ARP)被邻居发现协议(NDP)的功能所取代。
(3)身份验证和加密
IPv6提供身份验证和加密,但IPv4不提供。
(4)数据包的区别
包的大小:IPv4协议的数据包最小值为576个字节;IPv6协议的数据包最小值为1280个字节。
包头:IPv4长度为20~40字节;IPv6固定40字节。
5.OSI 的七层模型分别是?各自的功能是什么?
答案:
- 物理层:底层数据传输,如网线;网卡标准。
- 数据链路层:定义数据的基本格式,如何传输,如何标识;如网卡MAC地址。
- 网络层:定义IP编址,定义路由功能;如不同设备的数据转发。
- 传输层:端到端传输数据的基本功能;如 TCP、UDP。
- 会话层:控制应用程序之间会话能力;如不同软件数据分发给不同软件。
- 表示层:数据格式标识,基本压缩加密功能。
- 应用层:各种应用软件,包括 Web 应用。
- 在四层,既传输层数据被称作段(Segments);
- 三层网络层数据被称做包(Packages);
- 二层数据链路层时数据被称为帧(Frames);
- 一层物理层时数据被称为比特流(Bits)。
- 网络七层模型是一个标准,而非实现。
- 网络四层DNS的工作原理?模型是一个实现的应用模型。
- 网络四层模型由七层模型简化合并而来。
6.说一下一次完整的HTTP请求过程包括哪些内容?
答案:
7.DNS的工作原理?
答案:
8.为什么域名解析用UDP协议?
答案:
9.为什么区域传送用TCP协议?
答案:
10.当 ping 一个 IP 地址时发生了什么
答案:
从ping 的man手册就可以看出来,ping实际上发送了 ICMP ECHO_REQUEST
的报文。
ping -- send ICMP ECHO_REQUEST packets to network hosts
通过让目标 IP 地址返回 ICMP ECHO_RESPONSE
报文来判断 IP 可不可达。
ICMP
分为 Query
查询报文及 Error Message
报文,ping 为查询报文。
11.HTTP长连接和短连接的区别
答案:
12.服务器缓存的原因是什么?如何实现的?
答案:
- 缓解服务器压力;
- 降低客户端获取资源的延迟:缓存通常位于内存中,读取缓存的速度更快。并且缓存服务器在地理位置上也有可能比源服务器来得近,例如浏览器缓存。
- 让代理服务器进行缓存;
- 让客户端浏览器进行缓存。