腾讯暑期实习面试问题回顾
问题列表:
问题1:C++的多态
1.编译时多态
2.运行时多态
问题2:排序算法
问题3:Linux下的内存管理机制
问题4:Linux下的任务调度机制
问题5:设计模式
1.工厂模式
问题6:游戏引擎
1.渲染管线
面试常问问题1:TCP/IP协议
- OSI(Open System Interconnect)七层参考模型,即开放式系统互联
OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)
(1)物理层
实际最终信号的传输是通过物理层实现的。通过物理介质传输比特流。规定了电平、速度和电缆针脚。常用设备有(各种物理设备)集线器、中继器、调制解调器、网线、双绞线、同轴电缆。这些都是物理层的传输介质。;
(2)数据链路层
将比特组合成字节,再将字节组合成帧,使用链路层地址 (以太网使用MAC地址)来访问介质,并进行差错检测;
(3)网络层
本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。就是通常说的IP层。这一层就是我们经常说的IP协议层。
(4) 传输层
传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。我们通常说的,TCP UDP就是在这一层。端口号既是这里的“端”。
(5) 会话层
会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
(6)表示层
表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。
(7)应用层
OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。 - TCP/IP五层模型,即开放式系统互联
(1)物理层:主要作用是定义物理设备如何传输数据(光缆,网线)
(2)数据链路层:为通讯实体间建立数据链路连接
(3)网络层:为数据在节点之间传输创建逻辑链路
(4)传输层:数据的传输都是在这层定义的,数据过大分包,分片。
(5)应用层:为应用软件提供了很多服务,构建于协议之上。将OSI7层参考模型中的会话层、表示层和应用层均为该层。
常见的网络服务协议:HTTP、HTTPS、FTP、POP3、SMTP属于应用层;
TCP和UDP属于传输层协议;
IP协议属于网络层;
其中HTTP、HTTPS是基于TCP/IP协议传输数据。
socket(套接字)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。