测试笔试题梳理与总结,感兴趣的小伙伴可以答答看。
1、网络
简单描述下TCP协议
TCP:传输控制协议,是传输层通信协议。它有面向连接、可靠、字节流传输等特点。
TCP建立连接时,需要三次握手协议。
TCP三次握手的过程如下:
①客户端发送SYN保温给服务端,进入SYN_SEND(SEQ=X)状态;
②服务端收到SYN保温,回应一个SYN(SEQ=Y) ACK(ACK=X+1)报文,进入SYN_RECV状态;
③客户端收到服务端的SYN报文,回应一个ACK(ACK=Y+1)报文,开始建立连接;
TCP/IP作用是什么?
TCP/IP协议是一套网络通信标准,让全世界的各种不同的设备之间可以进行通信。
TCP与UDP的区别?
①TCP传输控制协议 。UDP用户数据报协议;
②TCP对资源要求比较多,UDP对资源要求比较少;
③TCP可以保证数据的正确性,UDP有可能会丢包;
④TCP可以保证数据的顺序,UDP不会保证;
网络7层模型是那7层?列举一些具体的应用实例
从下到上,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
物理层:同轴电缆、接收器、发送器等;
数据链路层:网卡、交换机、网桥;
网络层:路由器、网关;
传输层:TCP协议、UDP协议;
会话层:SQL、ASP、 PHP等;
表示层:ASCII、JPEG、PNG、MP3等;
应用层:telnet、ssh、http、smtp等;
怎么测试网络是否连通?
使用ping命令
什么方式可以是外网连接到家里主机?
telnet
如何让外网访问家里的终端?它的原理是什么?
方式一、电脑上开启远程桌面;
方式二、使用teamview;
他们的原理是:
①你和对方机器建立一个Socket连接;
②在本地虚拟一个对方的系统;
③对方系统会在这个Socket连接上实时发送它系统状态的数据;
④收到的数据,是本虚拟系统通过这个数据还原对方系统操作;
⑤本地操作这个虚拟操作系统,会发送数据命令到对方机器;
⑥对方继器接收指令,通过Hook(底层钩子)传给操作系统;
⑦然后循环;
访问一个网址会经历哪些流程?
以下几个简单的流程
①首先需要通过域名找到IP,如果本地缓存没有需要请求DNS服务器
②得到IP后开始与目的主机进行三次握手来建立TCP连接
③连接建立后进行HTTP访问,传输病获取网页内容
④传输完成后与目的主机四次握手断开TCP连接
2、Linux
Linux常用命令有哪些,并简述他们的作用
ls 查看当前目录
df-h 查看磁盘使用情况
kill 杀掉进程
top 查看当前主机状态
mv 移动文件
cp 复制文件
netstat-a 查看端口使用状态
rm 删除
cat 查看文件
vim怎么退出
q 不保存直接退出
wq 保存后退出
q! 强制退出
怎样一页一页地查看一个大文件的内容呢?
cat filename.txt | more 通过管道命令和more实现
如何查看linux端口号被占用?
netstat -a 查看端口状态
如何查看进程状态?
ps -ef | grep 进程名
chown是什么?grep是什么?
chown 改变文件的拥有者和组;
gerp 查找文件里符合条件的字符串;
如何查看日志?
tail -f 日志文件名
5个客户端通过TCP连接到主机,如何查看这5个连接?
netstat -nat|grep ESTABLISHED
3、数据库
哪些方法可以提高数据库查询效率?
①建立索引,利用索引;
②只查询必要的字段;
③合理的处理NULL字段;
④慎用like等通配符;
索引设计的时候要注意什么?
①索引字段长度不能太长;
②索引的个数不能太多;
数据库更新语句?GROUP BY 如何使用?
UPDATE TABLENAME SET 字段名称 = 新值 WHERE 列名称 = 旧值
GROUP BY 一般常用于对查询结果进行分组
# 如果想要对结果进行分组统计,加上SUM函数即可
SELECT SUM(列名1) 列命2 FROM TABLENAME
WHERE 列名1 列名2
GROUP BY 列命1
如果一个数据表有成千上万条记录,访问时很慢,有哪些方法可以优化?
MySQL
mysql的索引,最左匹配原则
索引可以加快对数据的检索。常见的有B+Tree索引,哈希索引。
最左匹配原则:
当索引是联合索引,在查询条件中,mysql是从最左边开始命中的,如果出现了范围查询(>、<、between、like),就不能进一步命中了,后续退化为线性查找,列的排列顺序决定了可命中索引的列数。