线程间通信方式
计算机网络 tcp ip握手, 网络拥塞控制
反转二叉树,递归+非递归
操作系统的内存映射是如何实现的
操作系统的内存分配以及在硬件上的映射是如何实现的
100万单词,每个单词对应一个汉字意思,怎么存储
100w单词查找,要求O(1)时间
设计可靠udp, 效率要比tcp要高
计算机网络考察,tcp拥塞控制机制,围绕着udp高效可靠传输来问的,udp可以比tcp高效的原因在于占用了过高的带宽

你们项目中 Redis 的内存使用和过期数据是怎么做的

MySQL 熟悉吗?MySQL 事务是什么?

知道 MySQL 的 MVCC 机制吗?

JVM 的垃圾回收机制了解吗

排错和调优
top, vmstat, iftop, awk, sed, sar, iostat, strace, ...
Zabbix, Nagios, Cacti, Prometheus, open-falcon, Ganglia, sar, ...

deveops、openstack、docker、集群运维、shell/python/perl/php、Django、Tornado、redis、mongodb、kafka、memcached、dubbo、omcat、nginx、zabbix、nagios、elk、saltstack、ansible、puppet、linux/uinx系统基础原理、Svn/git/Ansible/Nginx/Tomcat/salt、TCP/IP、HTTP……


一、安全和审计

不安全的网络环境和服务器配置,无异于在网络世界裸奔,任何人都可以窥探你的隐私。你的应用是否做了SQL防注入?你的***是否开启?是否还在用root+密码的方式登录服务器?网站开启了https么?是否对系统操作进行审计?

相关技术: iptables, firewalld, waf, auditd, 各服务的正确配置, ...



二、DevOps 与自动化

偷懒是社会进步的第一动力。聪明的我们怎么会让自己一直在重复枯燥的事情上浪费时间,装系统、部署环境、发版本、批量操作,把这一切交给程序去实现吧,我们需要的是享受生活。

相关技术: shell, python, go, rundeck, ansible, saltstack, puppet, chef, cobbler, fabric, ...


三、虚拟化和云计算

云计算革命的发起人是卖书的亚马逊,这家伙希望卖一切可以卖的东西,包括自己闲置的服务器资源。现在国内的阿里云和腾讯云也发展得如日中天,他们几乎提供了运维所需要的一切,甚至可以让一个公司不再需要运维的岗位。你需要服务器,只需要几秒钟,就可以创建一台。你需要数据库集群,只需要鼠标点击几下,就可以开通。

相关技术:docker, Moby, kubernetes, Xen, CoreOS, Hyper-V, KVM, ...



平时工作中有遇到过跨域问题吗?怎么解决的?

用过闭包吗,你一般用在哪里!

我个人理解,闭包就是缓存变量用的!

面试官:闭包为什么能缓存变量,知道他的原理吗?

答:闭包一般都是通过函数内返回另一个函数,并且返回的函数依赖了父函数的某个变量,当我们在外部调用父函数时,此时js将会获得一个内部的函数的对象引用,但因为这个内部函数依赖了外部函数的某个变量,所以外部函数无法被js引擎销毁,此时变量被缓存,行成闭包。


了解前端安全吗?比如xss这种

答:了解的,工作中经常遇到。

面试官,大致介绍一下xss攻击,如何利用xss去攻击一个网站,换句话说,攻击的步骤是哪些?

答:xss,也就是跨域脚本攻击,常见于前端的input框还有console控制栏,我们将我们写好的脚本通过input标签注入,没有拦截过xss页面将会直接执行这些脚本。


你了解csrf攻击吗?如何攻击别人?攻击的原理是什么!

答:csrf攻击,也就是跨站请求伪造,当我在一个以cookies为授权方式的网站登陆以后,服务端就会下发用户标识至客户端,此时客户端将会把这些信息存储在cookies中,此时我们打开另一个有攻击性的网站,他将会返回一个带有攻击性的脚本,去请求刚登陆的网站,原网站接到请求后以为是正常操作,默认通过,形成了csrf攻击。

面试官:你说的对,但是我觉得这没有意义啊,你这个csrf脚本,就是为了获取别人的账号信息,进行支付啊发布啊,你刚说的都是在自己本地玩,有考虑过怎么攻击别人吗?


了解http状态码吗?比如304状态码是什么意思?
了解http和https吗,说一下他们的区别!
了解中序查找吗?
了解二分查找吗?
了解快速排序吗?

进程和线程了解吗,解释一下?
了解linux吗,介绍一下他的原理。
大致描述一下服务端渲染。
说一下从输入url到页面渲染发生了什么?并针对每个步骤采取一些优化措施!
你觉得你的优势在哪里
了解tcp和udp吗,说说他们的原理及区别?


你就读的专业是什么呢?为什么选择它?大学的学习历程是怎么样的?


怎么查看系统负载;

3.负载信息;

4.怎么查看核数;


10.awk指定分隔符,取倒数第二个字段;

11.访问http://qq.com的过程;

12.iptable把自己封了怎么避免;

13.自己搭建的服务别人访问的时候卡顿怎么办;

14.top命令sy,us什么意思,怎么按照cpu时间排列;

15.说一下docker和虚拟机的差别;

16.在学校学习中最有成就感的事;


2.http状态码;

3.shell取出ip;

4.限制一个ip怎么做;

5.磁盘满了怎么做,如果磁盘满了但df查看还剩空间的原因;

6.timewait原因,timewait太多的优化方案;

7.http请求头部能说出哪些;

8.设置浏览器缓存时间,头部用哪个(Cache-Ctol:max-age=xx);

9.说一下协程,进程,线程之间的差别;

10.知道python中yield是做什么的吗;

11.1000万数据的表中取出xx行-xx行的数据,有什么优化方案;

12.联合索引的生效(a,b,c)用到索引的情况;

13.类变量实例变量区别;

14.说一下docker架构;

15.docker怎么查看他的内存占用,磁盘占比;

16.docker怎么进入一个容器;

17.docker的网络有哪些;

18.k8s了解吗;


docker核心技术;

4.cgroup支持限制哪些资源;

5.docker和虚拟机的区别,一直没答到点上,面试官一步步指引,点是docker一般放什么,以进程运行在host上;

6.用没用docker搭过什么;

7.进程和线程的区别;

8.进程间通信方式有哪些;

8.mysql存储引擎了解哪些;

9.myisam和innodb的区别;

10.读多写少的情况哪种引擎比较适合;



11.容灾方案;

12.服务器宕掉怎么办;

13.访问量暴增怎么办;

14.负载均衡了解哪些;

15.lvs哪几种模式(不了解);

16.访问http://qq.com的过程。

2.linux网卡怎么配置;

3.查看cpu,内存,磁盘io,网络io的命令;

4.sed删除是哪一个命令;

5.awk怎么取得最后一行;

6.grep匹配一个单词用什么选项(不知道,答了边界符\b);

7.ftp使用了哪些端口,区别;

8.shell脚本中查看本脚本进程号的变量是哪个($$);

9.expect脚本用于哪些场景;

10.tcp udp的区别;

11.tcp为什么可靠;


12.简述DHCP协议工作原理;

13.说出你知道的常见http状态码及含义;

14.怎么使用iptables让内网可以访问公网;

15.ansible playbook使用什么格式编写;

16.怎么实现删除半年前的文件;

17.mysql两种常见引擎myisam和innodb区别;

18.python装饰器的作用;

19.闭包是怎么实现的;

20.虚拟机和docker的区别。

1.图怎么求最短路径;

2.xtrabackup备份哪些文件;

3.xtrabackup备份为什么要备份undo,redo log;

4.xtrabackup为什么要记录binlog的位置点;

5./目录下各个目录名称和作用;

6./proc映射了进程哪些信息,可以说一两个吗;

7.怎么查看cpu状态;

8.top命令第三行各字段的含义;

9.现在我的cpu32核,执行一个简单计算,cpu分配核的策略是怎么样的;

10.平均负载的含义;

11.nginx负载均衡在第几层;

12.nginx提高并发量可以修改哪些参数;

13.如果改了worker数量和最大连接数,性能没有提升,怎么去解决,去配置系统的什么;

14.怎么让固定用户访问固定服务器,负载均衡策略(答了ip_hash);

15.那如果我用手机,ip一直变化,怎么去实现刚刚的问题;

16.docker做了哪些隔离;

17.dns信息在哪配置,除了网卡文件呢?;

18.docker怎么去发现其他容器的网络;

19.docker的桥接是工作在第几层;

20.能说一下ssl协议的工作过程吗;

21.如果有一个中间人获取了所有对话的消息,他可以得到我们的账号密码吗,为什么?

1.对sre这个岗位的理解;

2.tcp通信中后面的包先到了会怎么样,放在哪里,会不会发送确认;

3.tcp是怎么进行分组的,依据是什么;

4.mtu和mss是什么关系;

5.tcp快重传原理,你觉得会有什么弊端;

6.crontab中要是有一条命令卡死,怎么发现他,解决它;

7.iptables四表五链是哪些,作用;

8.用户空间和内核空间的区别是什么;

9.系统启动流程;

10.数据库建表时int8和9的区别,char和varchar的区别;

11.数据库主键索引和唯一索引哪个查询更快,为什么;

12.手写代码:斐波那契的递归和循环实现。


1.实现做了什么;

2.常用系统性能查看命令了解哪些;

3.free命令看到可用内存很少,新的进程能否从cache/buffer那里申请到内存;

4.http是第几层的协议,基于什么协议;

5.dns解析过程;

6.tcp udp区别,适用场景;

7.说出你知道的http状态码;

8.499状态码是否属于官方定义的状态码;

9.tcp拥塞控制过程,了解哪些拥塞控制算法;

10.shell中子进程能否调用父进程定义的变量;

11.shell脚本怎么调试;

12.dns指定dns服务器解析怎么指定;

13.iptables限制某个ip访问策略怎么写;

14.快排的思路,时间复杂度;

15.快排怎么进行优化;

16.常见的数据结构了解哪些,二叉树中序遍历的思路以及他的应用场景;

17.cdn加速的原理。



2.lvs有哪些工作模式;

3.lvs 部署dr模式需要修改什么内核参数,作用是什么;

4.做一个变更需要考虑一些什么(我的回答围绕的是灰度测试,验证,回滚这几个方面);

5.变更过程中你认为最重要是什么;

6.实习中做的事情中自己觉得最有挑战性的是什么。

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


2.cdn是什么,怎么工作的;

3.为什么cdn分了两级缓存;

4.你认为这种cdn架构存在哪些缺点;

5.如果一个文件更新了,这种时候如何解决哪些在缓存服务器中缓存未失效的老文件;

6.还问了一些网络编程的东西,问题中的名词不懂后面也忘记了;

7.32位的寄存器的计算机一般内存是多大;

8.python tuple和list的区别;

9.为什么python有tuple这种数据类型,而其他语言没有;

10.你觉得最能体现你运维能力的技术是什么;

11.了解linux哪些内核参数。



问了编译过程

编译中动态链接文件,二进制文件分别位于哪个过程,

数据库的索引一般是什么

数据库索引a,b,c和a+b+c的区别

问了TCP和HTTP区别

TCP四次挥手还有TCP的2MSL的时间具体是多少

描述单向链表

单向链表如何查找一个具体的值

单向链表如何查找环

快排算法

手撕二分查找法,










比如http和https的区别,tcp/ip的四层模型和作用,每一层的协议都大致有哪些。

你说你熟悉linux

对于路由协议你了解吗?ospf,rip是什么,ospf的作用,stp工作的核心
那如果我想要限制nginx流量怎么办

会不会写shell

作者:牛客网
链接:https://zhuanlan.zhihu.com/p/113795737
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

TCP/IP四层模型,OSI七层模型

Linux里怎么查看文件的占用空间大小?
du -a
du-sh查看当前目录总共占的容量。而不单独列出各子项占用的容量
du -sh *

Linux查看磁盘空间情况?df
du是以文件为目标的,df以磁盘为目标

Linux查看当前网络连接状况?

netstat

最后一次ACK包丢失会进入什么样的一个状态
服务器会重新发送ack syn
客户机会直接向服务器发送数据,服务器发出rst

滑动窗口
滑动窗口(Sliding window)是一种流量控制技术,用来改善吞吐量问题

DNS使用的到协议(TCP/UDP分别在什么情况下使用)
一般dns使用udp协议,但是当dns的主辅名字服务器同步时使用tcp,dns服务器响应长度超过512字节

广播风暴产生的原因及解决方法
stp,静态路由,一般在局域网中,未找到路由

TLS/SSL处于OSI哪一层
传输与应用层之间,是为了网络通信安全 提供安全及数据完整性的一种安全协议.

https加密方式
对称秘钥
非对称秘钥

kill和kill -9的区别,有没有更优雅的方式kill进程
kill -9 不会被应用程序捕获,可强制停止

Shell脚本中的return和exit作用及return的取值范围
return是一个关键字,用于返回一个结果,exit是shell脚本的一个内置命令,用于退出当前shell进程

进程和线程的区别
进程是资源分配的最小单位,线程是程序执行的最小单位
进程的地址空间是独立的
进程死掉不会影响其他进程,但是一个线程死掉了,整个进程就死掉了
线程之间通信更方便

死锁条件
请求和保持,循环等待,互斥条件,不剥夺条件

http状态码:
200成功
404服务器找不到请求的网页
502网关错误

私网地址
A 10.0.0.0-10.255.255.255
B 172.16.0.0-172.31.255.255
C 192.168.0.0-192.168.255.255

IP分类
A类1.0.0.0-127.255.255.255
B类:128.0.0.0-191.255.255.255
C类:192.0.0.0-223.255.255.255

调度机制:先来先服务,短作业优先
windows和linux的区别:linux是开源的,免费的,更安全,更稳定
linux几乎没有应用或用户可以访问内核
linux是Unix的一个版本,因为大部分免费软件和用户计算机都更喜欢以unix为基础
ipv4与v6的区别:地址长度上v4是32位的4个字节,二v6是16个字节的,v4地址数比v6要少
v6增加了任波,但没有了广播

ospf开放式最短路径优先
rip动态路由选择协议:
区别:rip协议是根据跳数来衡量距离的,他只关心他周围的环境,而ospf就比较全局话,他会了解整个拓扑结构,然后找出最优路径
MSTP,由于stp和rstp只生成一棵树,因此阻塞后会造成资源浪费,mstp兼容了stp和rstp,并且有提供了多条冗余路径

crontab:linux定时任务

磁盘阵列raid:0速度快,1,安全性高

  • 在腾讯里面工作,您觉得是一个甚麽样的氛围
  • 这个行业具体的工作内容
  • 您对这个行业未来的发展怎么看?
  • 公司对我这个职位的期望是什么?

  1. 你们公司的nginx主要用在哪些场景?

2. nginx的端口号是多少?

3. 你们用的nginx的版本号是多少?

4. nginx作为web与apache有什么区别?

5. nginx作为负载均衡与lvs有什么区别?

6. nginx如何处理HTTP请求?

7. nginx作为反向代理的优点是什么?

8. 解释下什么是正向代理,什么是反向代理?

9. nginx的Master和Worker进程分别是什么?

10. nginx 出现502 503 等是什么原因造成的如何排查?

11. 要做负载均衡用哪个模块?

12. 你对nginx做过哪些方面的调优?

13. 如何使用nginx配置http和HTTPS?

14. nginx负载均衡策略有哪些,你们公司用的哪种,有什么优势?

15. nginx性能高的原因?

16. 如何使用nginx和tomcat实现动静分离?

迪杰斯特拉 



1.说一下数据库的索引吧

2.数据库主键xxx,数据库xxxxx

(数据库还没复习,简历也没写啊,球球姐姐您别问了),统一回答都是不会,

但是我准备了数据结构所以把b树,b+树,b*树都给讲了一遍。估计姐姐看我都快自闭了,说问点别的吧。

3.用过ping吗, 是什么协议

4.数据链路层是干嘛的

5.TCP挥手为啥是四次

6.知道syn泛洪攻击吗?有什么处理方案吗?

7.输入网址到显示页面的全部过程

8.arp协议是咋样的,有安全问题吗?具体是怎样的?

9.https知道吗

10.https的连接过程,这个说的非常详细、非对称加密、对称加密、hash、证书、握手信息。

11.证书机构名字是啥? (黑人问号脸,回答了CA)

12.知道哪些加密算法?


1.有很多处于close_wait的tcp连接,分析一下原因

2.继续说一下处理方案

3.全双工、半双工、单工说一下



  • 自己用的什么linux系统?kernel版本,swap分区是怎么设置的?
  • 为什么要有swap分区,工作原理是什么?为什么你的云服务器上的swap没有开启?
  • 多进程和多线程的区别,自己喜欢用哪个?为什么?
  • /etc/sysctl.conf这个文件中有没有改过,列举一些常见的kernel参数和作用
  • nginx的应用场景,lvs和nginx自身的高可用如何解决?
  • lvs脑裂如何解决,为什么会产生双master?双master时VIP通不通
  • 为什么要从网工转运维?你觉得自己的优势在哪?
  • 运维需要哪些技能?
  • 你对运维的理解是什么?


  • 网易云音乐的评论无法加载,如何排查?说出思路,各业务模块监控指标QPS均无抖降点,但是问题依旧存在,为什么?
  • 实习在公司做了哪些事情?你们在原生的falcon上增加了哪些功能?着重说说你参与的部分以及如何做的
  • cdn了解多少?在你们的运维平台上刷新了一条资源如何检测这条资源有没有刷新成功?
  • 网站架构描述下?消息中间件了解哪些?缓存中间件了解哪些?redis集群怎么做
  • lsof用过没?
  • 如何在linux上添加路由?我添加了一条路由之后还是ping不通,可能的原因有哪些?
  • 如何排查网络故障、抓包、iptables原理等等
  • 对运维的理解?运维的趋势是什么?什么是AIops
  • 看你春招也投递了运维,你觉得你为什么没有通过笔试

  • 阐述对ospf的理解。hello报文的作用,hello报文是基于UDP还是TCP。
  • ospf的使用场景,什么是ecmp,具体的hash算法是什么,可以基于几元组
  • 对BGP的理解,BGP的使用场景,anycast的使用场景,服务器如何运行路由协议
  • 有没有在真实的环境中用过ospf和BGP
  • 对vlan的理解,对stp的理解
  • 描述一个用户访问http://www.didi.com这个网站中发生了哪些事情,尽可能的描述
  • GSLB的调度算法有哪些
  • 如果你是SA,运维时误操作,如何处理。如误删除了一个文件
  • 担心我的数据结构和算法
  • 一个指针的大小是多少
  • 对运维的理解,自己想做哪方面的运维呢?
  • 对一个新的知识的学习方式,之前在学校的学习经历

  • 说一下网络模型,每层起一个什么样的作用。
  • tcp比udp更加可靠,为什么?
  • tcp滑动窗口,详细说说原理,窗口的大小如何确定。
  • 描述一个用户访问http://www.didi.com这个网站中发生了哪些事情,尽可能的描述
  • 20G大小的文件,内容都是IP,有重复的。如何找出这里面的top N
  • 编程题,上台阶,n个台阶,一次只能上一或者两个台阶,一共有多少种方式
  • 说下实习经历,做了哪些事情,之前的公司代理什么产品,抗DDoS的工作原理,防御 4层的DDoS方式有哪些?SYN cookie的工作原理,cookie如何计算,在哪里传递
  • F5的产品有哪些,对于负载均衡上有哪些技术点?
  • cdn的工作原理。如何评估一个cdn sp做的好不好
  • 进程间通信有哪几种方式,说一个你最熟悉的详细说明工作原理
  • 现在两个进程间通信,数据量很大,要求延时很小,你会使用哪种形式?为什么?共享 内存使用的时候需要注意什么
  • 说一说你对技术的理解?为什么对计算机产生兴趣


    • 自我介绍,实习经历
    • 说一个你觉得最出色的项目,你做了什么事情和你的收获是什么?
    • 实习公司的监控体系详细的说一下,技术栈有哪些?指标预测是怎么做的?有没有看过 falcon的源码,现在监控系统的大致水位,还有哪些挑战?学习一门新的语言是否 有障碍
    • 再说一个你觉得有挑战或者有难点的项目
    • dns查询的过程说一下,为什么要有cname而不是直接返回一个cdn 边缘节点的ip
    • 两个机房里两台服务器,10G专线互联。两个服务器之间传送一个10G的数据,为什 么带宽只有1M。如何解释这个现象
    • 一个整形的数组,有乱序、重复的数字。有一个数重复的次数超过数组长度的一半,如 何找出这个数?说出至少两种实现思路
    • 你对运维的理解是什么,SE和SRE的区别,自己更偏向哪个方向?
    • 有什么需要问我的

  • 给你在核心路由器上的一个接口抓包,如何还原ospf同一个区域内的拓扑
  • 接入交换机的buffer一般多大?接口之间是共享还是独有
  • ospf和rip的本质区别是什么,ospf一定比rip收敛快吗?
  • Hadoop了解多少。hdfs的一个block多大,为什么128M?ext4文件系统的block多大
  • 进程、线程的本质区别?什么是协程
  • 实现一个冒泡和快排应该用什么数据结构来存储?
  • 告诉我你知道的负载均衡的方式,lvs nat和dr的本质区别
  • 对docker的理解?为什么要有docker
  • 你有什么优点我没有问到的地方,tcp trunk听过没?(到现在都不知道问的啥)

  • 1.tcp/udp 三次挥手,四次握手,timewait
    2.引用
    3.虚函数,纯虚函数
    4.linux

    假设1000张图片,快速存取,10000张呢,1000万张呢(分布式那套东西)

    比如建设机房需要考虑啥

    比如运行个服务需要监控啥


    1.     TCP与UDP的区别

    2.     TCP/IP协议分层

    3.     三次握手,四次挥手

    4.     http报文

    5.     http get与post方法的区别

    6.     HTTP与https的区别


    1.     单例(至少要会写代码)

    2.     观察者模式

    3.     适配器模式

    作者:SU坡馒
    链接:https://www.nowcoder.com/discuss/21824?type=post&order=time&pos=&page=2&ncTraceId=&channel=-1&source_id=search_post_nctrack
    来源:牛客网
    1.从下往上说一下OSI七个分层? 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

      TCP、UDP属于哪个层?  传输   
      FTP在哪个层?  应用

    OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
    TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。
    五层协议(5层):物理层、数据链路层、网络层、运输层、 应用层。
    每一层的协议如下:
    物理层:RJ45、CLOCK、IEEE802.3    (中继器,集线器,网关)
    数据链路:PPP、FR、HDLC、VLAN、MAC  (网桥,交换机)
    网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)
    传输层:TCP、UDP、SPX
    会话层:NFS、SQL、NETBIOS、RPC
    表示层:JPEG、MPEG、ASII
    应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS

    每一层的作用:
    物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
    数据链路层:将比特组装成帧和点到点的传递(帧Frame)
    网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
    传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
    会话层:建立、管理和终止会话(会话协议数据单元SPDU)
    表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
    应用层:允许访问OSI环境的手段(应用协议数据单元APDU)


    作者:SU坡馒
    链接:https://www.nowcoder.com/discuss/21824?type=post&order=time&pos=&page=2&ncTraceId=&channel=-1&source_id=search_post_nctrack
    来源:牛客网
    2.TCP和UDP的区别?
    -TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。(TCP发出去还会问候核实一下以确保安全; UDP发出去就不管了 )
    -TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。
    -TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。

    TCP对应的协议:
    (1) FTP:定义了文件传输协议,使用21端口。
    (2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。
    (3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
    (4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
    (5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。
    UDP对应的协议:
    (1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
    (2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
    (3) TFTP(Trival File Transfer Protocal),简单文件传输协议,该协议在端口69上使用UDP服务。      


    作者:SU坡馒
    链接:https://www.nowcoder.com/discuss/21824?type=post&order=time&pos=&page=2&ncTraceId=&channel=-1&source_id=search_post_nctrack
    来源:牛客网
    3.说说数据库连接(join)?    
    回答了inner join和outer join,又说了left join与right join和区别,然后他又问我那inner join呢?
    (当时直接卡壳了,一脸懵逼,无奈放弃回答,后来想想也真是好笑....)

    Inner join--产生的是AB两个集合的交集   
    left[outer]join--产生A的完全集,而B中匹配的则有值,没有匹配的则返回null
    right[outer]join--产生B的完全集,而A中匹配的则有值,没有匹配的则返回null



    作者:SU坡馒
    链接:https://www.nowcoder.com/discuss/21824?type=post&order=time&pos=&page=2&ncTraceId=&channel=-1&source_id=search_post_nctrack
    来源:牛客网
    4.说说事务?
    脑子还在想上一道题,感觉应该很简单啊,但是死活想不起来。回答了事务四个性质,四个隔离界别,不是很完整,感觉从这块开始,心就有点急了....

    (1)所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。
       *Atomicity(原子性)原子性是指事务是一个不可再分割的工作单位,事务中的操作要么都发生,要么都不发生。
       *Consistency(一致性)一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。
       *Isolation(隔离性)多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。
       这指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。
       事务查看数据更新时,数据所处的状态要么是另一事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看到中间状态的数据。
       *Durability(持久性)持久性,意味着在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。
    (2)标准SQL规范中定义了4个事务隔离级别,不同隔离级别对事务处理不同 。
       *未提交读(Read Uncommitted)最低的隔离级别。允许脏读(dirty reads),但不允许更新丢失,事务可以看到其他事务“尚未提交”的修改。
       *提交读(Read Committed)允许不可重复读取,但不允许脏读取。这可以通过“瞬间共享读锁”和“排他写锁”实现。
        读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。
       *可重复读(Repeatable Read)禁止不可重复读取和脏读取,但是有时可能出现幻读数据。这可以通过“共享读锁”和“排他写锁”实现。
        读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。
       *可序列化(Serializable)最高的隔离级别,它要求事务序列化执行,事务只能一个接着一个地执行,不能并发执行。仅仅通过“行级锁”是无法实现事务序列化的,
        必须通过其他机制保证新插入的数据不会被刚执行查询操作的事务访问到。
        
        隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。
    (3)在MySQL中使用START TRANSACTION 或 BEGIN开启事务,提交事务使用COMMIT,ROLLBACK用来放弃事务。MySQL默认设置了事务的自动提交,即一条SQL语句就是一个事务。
    总结:
    事务的(ACID)特性是由关系数据库管理系统(RDBMS,数据库系统)来实现的。数据库管理系统采用日志来保证事务的原子性、一致性和持久性。
    日志记录了事务对数据库所做的更新,如果某个事务在执行过程中发生错误,就可以根据日志,撤销事务对数据库已做的更新,使数据库退回到执行事务前的初始状态。
    数据库管理系统采用锁机制来实现事务的隔离性。当多个事务同时更新数据库中相同的数据时,只允许持有锁的事务能更新该数据,其他事务必须等待,
    直到前一个事务释放了锁,其他事务才有机会更新该数据。


    作者:SU坡馒
    链接:https://www.nowcoder.com/discuss/21824?type=post&order=time&pos=&page=2&ncTraceId=&channel=-1&source_id=search_post_nctrack
    来源:牛客网
    5.了解数据结构吗?单向链表概念及特点        
    (突然抛出什么是链表?有点惊讶,这问题也问得有点简单了吧?难道有什么坑?)  
    回答:链表就是带着指针的结构体,含数据域和指向下一个节点的地址。  
    又问头部和尾部有什么特点?  
    答:头部没有前驱节点,尾部指向NULL??增删快于数组,遍历慢于数组??...   因为面试官从头到尾都是一个语调,所以答得完整不完整并没有感觉到...... 
    ps:其实链表大家都用过,但是如果真的问你什么是链表及特点,是否能用书面语言完整描述出来 


    作者:SU坡馒
    链接:https://www.nowcoder.com/discuss/21824?type=post&order=time&pos=&page=2&ncTraceId=&channel=-1&source_id=search_post_nctrack
    来源:牛客网
    6.HashMap原理
    回答:底层是数组加链表实现的哈希表。允许null作为键,null作为值。线程不安全。
    为什么用数组+链表实现?
    利用拉链法解决冲突:把所有的同义词用单链表链接起来。该方法下,哈希表每个单元中存放的不再是元素本身,而是相应同义词单链表的头指针。

    HashMap维护了一个Entry数组,Entry内部类有key,value,hash和next四个字段,其中next也是一个Entry类型。
    可以将Entry数组理解为一个个的散列桶。每一个桶实际上是一个单链表。当执行put操作时,会根据key的hashcode定位到相应的桶。
    遍历单链表检查该key是否已经存在,如果存在,覆盖该value,反之,新建一个新的Entry,并放在单链表的头部。
    当通过传递key调用get方法时,它再次使用key.hashCode()来找到相应的散列桶,然后使用key.equals()方法找出单链表中正确的Entry,然后返回它的值。 

    HashMap:线程不同步。根据key的hashcode进行存储,内部使用静态内部类Node的数组进行存储,默认初始大小为16,每次扩大一倍。当发生Hash冲突时,采用拉链法(链表)。
    可以接受为null的键值(key)和值(value)。JDK 1.8中:当单个桶中元素个数大于等于8时,链表实现改为红黑树实现;当元素个数小于6时,变回链表实现。由此来防止hashCode攻击。 


    作者:SU坡馒
    链接:https://www.nowcoder.com/discuss/21824?type=post&order=time&pos=&page=2&ncTraceId=&channel=-1&source_id=search_post_nctrack
    来源:牛客网
    红黑树本质上是一颗二叉搜索树,它满足二叉搜索树的基本性质——即树中的任何节点的值大于它的左子节点,且小于它的右子节点。
    一颗红黑树必须满足以下几点条件:
    规则1、根节点必须是黑色。
    规则2、任意从根到叶子的路径不包含连续的红色节点。
    规则3、任意从根到叶子的路径的黑色节点总数相同。
    作为红黑树节点,其基本属性有:节点的颜色、左子节点指针、右子节点指针、父节点指针、节点的值。
    这些约束确保了红黑树的关键特性:从根到叶子的最长的可能路径不多于最短的可能路径的两倍长。结果是这个树大致上是平衡的。
    因为操作比如插入、删除和查找某个值的最坏情况时间都要求与树的高度成比例,这个在高度上的理论上限 允许红黑树在最坏情况下都是高效的,而不同于普通的二叉查找树。
    在很多树数据结构的表示中,一个节点有可能只有一个子节点,而叶子节点包含数据。用这种范例表示红黑树是可能的,但是这会改变一些性质并使算法复杂。
    为此,本文中我们使用"nil叶子"或"空(null)叶子",如上图所示,它不包含数据而只充当树在此结束的指示。这些节点在绘图中经常被省略,导致了这些树好像同上述原则相矛盾,而实际上不是这样。
    与此有关的结论是所有节点都有两个子节点,尽管其中的一个或两个可能是空叶子。
    因为每一个红黑树也是一个特化的二叉查找树,因此红黑树上的只读操作与普通二叉查找树上的只读操作相同。
    然而,在红黑树上进行插入操作和删除操作会导致不再符合红黑树的性质。恢复红黑树的性质需要少量(O(log n))的颜色变更(实际是非常快速的)和不超过三次树旋转(对于插入操作是两次)。
    虽然插入和删除很复杂,但操作时间仍可以保持为O(log n)次


    作者:AkChen
    链接:https://www.nowcoder.com/discuss/490999?type=post&order=time&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&subType=2
    来源:牛客网
    一面
    自我介绍、工作内容
    操作系统、计算机网络基础问题一把梭
    索引原理、redis底层zset的插入查询过程
    虚拟地址是什么,有什么好处
    poll、epoll
    运维相关:
    常用linux命令,怎么看cpu多少核,windows与linux文件系统区别、time_wait多了怎么办?

    写一个自己熟悉的排序算法(快排一把梭)
    字符串数组的最长公共后缀


    作者:匿名牛油
    链接:https://www.nowcoder.com/discuss/369542?type=post&order=time&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&subType=2
    来源:牛客网

    1. OSI 七层模型 - TCP/IP 五层模型

    2. TCP和UDP区别

    3. TCP三次握手和四次挥手

    4. 最后一次ACK包丢失会进入什么样的一个状态

    5. 关于TIME_WAIT状态等待2MSL解决什么问题

    6. 滑动窗口

    7. DNS使用的到协议(TCP/UDP分别在什么情况下使用)

    8. 广播风暴产生的原因及解决方法

    9. TLS/SSL处于OSI哪一层

    10.http/https区别,https请求流程(加密方式)



    作者:匿名牛油
    链接:https://www.nowcoder.com/discuss/369542?type=post&order=time&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&subType=2
    来源:牛客网

    1. 进程/线程

    2. Apache工作机制和Nginx工作机制对比分析

    3. 进程间通信方式(管道的应用场景)

    4. Linux文件权限755(文件目录x权限区别)

    5. cpu load x (x这个值代表什么意思)

    6. 如何查看进程使用到的文件

    7. 软硬链接区别(实现机制)

    8. kill和kill -9的区别,有没有更优雅的方式kill进程

    9. buffer和cache的区别

    10. Shell脚本中的return和exit作用及return的取值范围


    作者:匿名牛油
    链接:https://www.nowcoder.com/discuss/369542?type=post&order=time&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&subType=2
    来源:牛客网

    1. 容器和VM的区别

    2. 资源隔离和资源限制相关问题

    数据结构和算法

    1. 元组和链表的区别

    2. hash表是什么,如何解决hash冲突

    3. 快速排序和冒泡排序的时间复杂度和空间复杂度及稳定性

    4. 快速排序和冒泡排序的原理,还有比冒泡排序更慢的算法

    Python相关:

    1. 生成器和迭代器

    2. Python伪线程

    详细说说STP生成树协议

    腾讯云/阿里云/AWS负载均衡服务的区别

    作者:匿名牛油
    链接:https://www.nowcoder.com/discuss/369542?type=post&order=time&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&subType=2
    来源:牛客网

    3.子网掩码的作用

    4.负载均衡

    5.负载均衡算法

    6.Linux启动流程

    7.Linux常用命令(怎么看平均负载)

    8.如何找出日志中 “www.baidu.com” 出现的次数

    9.Python模块的使用(简历中写到的)

    10.Python中元组和列表的相同点和区别

    11.Redis持久化存储机制

    12.链表相交问题及空间复杂度


    作者:匿名牛油
    链接:https://www.nowcoder.com/discuss/369542?type=post&order=time&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&subType=2
    来源:牛客网

    1. 思路:判断单链表是否有环

    2. 思路:单链表逆转

    3. 思路:快排

    4. 思路:找到第K大的值

    5. 数据结构中“堆”的概念

    6. TCP三次握手四次挥手

    7. 拥塞控制

    8. 解释vlan,应用程序中关于vlan的使用

    9. Trunk口

    10. Python切片

    11. 装饰器和闭包

    12. Kubernetes控制器有哪些

    13. 服务发现怎么玩的(service keub-proxy)

    14. iptables四表五链

    15. 持久化存储方式(本地 pv pvc)

    16. daemoset 和 statefulset

    17. 线程池实现原理


    作者:匿名牛油
    链接:https://www.nowcoder.com/discuss/369542?type=post&order=time&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&subType=2
    来源:牛客网

    进程和线程

    3. 多进程和多线程(Web Server怎么选)

    4. 快排原理及时间复杂度

    5. 创建0-99个空文件

    6. 判断一个文件中的重复IP地址

    7. 如何反转一个整数

    8. 场景分析:AB模块,B模块原本每秒能接受1000个A的消息,现在只能收到10个

    9. 项目经历(选一个聊) 


    3. docker如何限制cpu资源

    4. docker的namespace