20180820 美团一面

一、介绍自己、询问项目经验,详细询问项目中自己做了什么,遇到问题如何处理

二、手写插入排序算法实现,并对写的算法询问有没有优化的可能

三、手写堆排序算法实现,并询问各排序算法的原理、时间复杂度、空间复杂度

四、一个链表,遍历一遍,求倒数第K个数  我用的快慢指针,面试官问有没有更好的方法

五、数据库优化案例、数据库索引原理

六、美团应用实例,上游发送一个状态字,我要发送给下游,如何处理,使无论上游是否重复发送,我只向下游发送一次(异步线程)

七、计算机网络OSI七层模型和TCP/IP四层参考模型

八、输入一个网址后的过程

九、三次握手,为什么是三次握手而不是两次?如果是两次,会发生什么?

OSI七层网络模型和TCP/IP四层参考模型

OSI七层网络协议 TCP/IP四层概念模型 对应网络协议
应用层(Application) 应用层

HTTP、TFTP、FTP, NFS, WAIS、SMTP

表示层(Presentation) Telnet, Rlogin, SNMP, Gopher
会话层(Session) SMTP, DNS
传输层(Transport) 传输层 TCP, UDP
网络层(Network) 网络层 IP, ICMP, ARP, RARP, AKP, UUCP
数据链路层(Data Link) 数据链路层 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP
物理层(Physical) IEEE 802.1A, IEEE 802.2到IEEE 802.11

输入一个网址的过程?

1、浏览器查找该域名的IP地址

2、浏览器根据解析到得到的IP地址,向web服务器发送一个HTTP请求

3、服务器收到请求并进行处理

4、服务器返回一个响应

5、浏览器对该响应进行解码,渲染显示

6、页面显示完成后,浏览器发送异步请求

三次握手

要弄清TCP建立连接需要几次交互才行,我们需要弄清建立连接进行初始化的目标是什么。TCP进行握手初始化一个连接的目标是:分配资源、初始化序列号(通知Peer对端我的初始序列号是多少),知道初始化连接的目标,那么要达成这个目标的过程就简单了,握手过程可以简化为下面的四次交互:

(1) Client端首先发送一个SYN包告诉Server端我的初始序列号是X;

(2) Server端收到SYN包后回复给Client一个ACK确认包,告诉Client说我收到了;

(3) 接着Server端也需要告诉Client端自己的初始序列号,于是Server也发送一个SYN包告诉Client我的初始序列号是Y;

(4) Client收到后,回复Server一个ACK确认包说我知道了。

原文地址:https://www.cnblogs.com/kxzh/p/9505929.html