1.三次握手原理:
tcp握手协议在tcp/ip协议中,tcp协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入syn_send状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的syn_recv状态;第三次握手:客户端收到服务器的syn+ack包,向服务器发送确认包ack(ack=k+1),此包发送完毕,客户端和服务器进入established状态,完成三次握手
2.TCP与UDP 区别
TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。
UDP:面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。
3.DNS工作原理
DNS译成中文就是“域名系统”或“域名解析系统”。它在互联网的作用是:把域名转换成为网络可以识别的IP地址.DNS分为Client和Server,Client扮演发问的角色,也就是问Server一个Domain Name,而Server必须要回答此Domain Name的真正IP地址。而当地的DNS先会查自己的资料库。如果自己的资料库没有,则会往该DNS上所设的的DNS询问,依此得到答案之后,将收到的答案存起来,并回答客户。DNS服务器会根据不同的授权区(Zone),记录所属该网域下的各名称资料,这个资料包括网域下的次网域名称及主机名称。 在每一个名称服务器中都有一个快取缓存区(Cache),这个快取缓存区的主要目的是将该名称服务器所查询出来的名称及相对的IP地址记录在快取缓存区中,这样当下一次还有另外一个客户端到次服务器上去查询相同的名称 时,服务器就不用在到别台主机上去寻找,而直接可以从缓存区中找到该笔名称记录资料,传回给客户端,加速客户端对名称查询的速度
4.FTP有哪两种工作模式,工作流程及对比
FTP是仅基于TCP的服务,不支持UDP。与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端口)和20(数据端口)。但FTP 工作方式的不同,数据端口并不总是20。这就是主动与被动FTP的最大不同之处。(一)主动FTP:在主动模式下:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:1. 任何大于1024的端口到FTP服务器的21端口。(客户端初始化的连接)2. FTP服务器的21端口到大于1024的端口。 (服务器响应客户端的控制端口)3. FTP服务器的20端口到大于1024的端口。(服务器端初始化数据连接到客户端的数据端口)4. 大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口)(二)被动FTP:
为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。
在被动方式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。在被动模式下,FTP库户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。(三) 主动与被动FTP优缺点:主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。总的来说,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。
5.LVS三种模式的工作过程
NAT模式(VS-NAT):就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理,RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址即可?期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器?IP隧道模式TUN模式(VS-TUN):首先要知道,互联网上的大多Internet服务的请求包很短小,而应答包通常很大。那么隧道模式就是,把客户端发来的数据包,封装一个新的IP头标记(仅目的IP)发给RS,RS收到后,先把数据包的头解开,还原数据包,处理后,直接返回给客户端,不需要再经过负载均衡器?注意,由于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持IPTUNNEL协议?所以,在RS的内核中,必须编译支持IPTUNNEL这个选项 直接路由模式(VS-DR):负载均衡器和RS都使用同一个IP对外服务?但只有DR对ARP请求进行响应,所有RS对本身这个IP的ARP请求保持静默?也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC(因为IP一致)并将请求分发给这台RS?这时RS收到这个数据包,处理完成之后,由于IP一致,可以直接将数据返给客户,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端?由于负载均衡器要对二层包头进行改换,所以负载均衡器和RS之间必须在一个广播域,也可以简单的理解为在同一台交换机上?
6.CDN的理解
CDN的全称是Content Delivery Network,即内容分发网络。CDN技术是近年来在美国首先兴起并迅速发展起来的一种解决互联网性能不佳问题的有效手段。其基本思路就是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。
7.Mysql的主从复制原理
分为同步复制和异步复制,实际复制架构中大部分为异步复制。复制的基本过程如下:1)、Slave上面的IO进程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;2)、Master接收到来自Slave的IO进程的请求后,通过负责复制的IO进程根据请求信息读取制定日志指定位置之后的日志信息,返回给Slave 的IO进程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到Master端的bin-log文件的名称以及bin-log的位置;3)、Slave的IO进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的 bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉Master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我”;4)、Slave的Sql进程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行时候的那些可执行的内容,并在自身执行。
8.浮动IP技术概念
网际网路上,每台电脑之间,是透过IP位址来通讯。 也就是说,不管是要连上网路,或是传送信件,都必须知道对方的IP位址才能与该台电脑沟通。也就是说,不管是要连上网路,或是传送信件,都必须知道对方的IP位址才能与该台电脑沟通。 而IP位址都是数字(EX:123.123.123.123)。而IP位址都是数字(EX:123.123.123.123)。 固定IP即ISP业者给予用户固定的IP位址,不会变动,适合架设网站。固定IP即ISP业者给予用户固定的IP位址,不会变动,适合架设网站。 一般使用户较适合浮动IP,意即IP位址会随电脑开、关机,或ISP业者重新发派IP位址而异动。一般使用户较适合浮动IP,意即IP位址会随电脑开、关机,或ISP业者重新发派IP位址而异动。 为什么需要用浮动IP?为什么需要用浮动IP? 第一、IP不够用,第二、你随便设,和别人衝突机会高,第三、使用NB不就每换地方就得改设定。第一、IP不够用,第二、你随便设,和别人冲突机会高,第三、使用NB不就每换地方就得改设定。 所以伺服主机和网路设备多使用固定IP。所以伺服主机和网路设备多使用固定IP。
9.iptables三表五链
三表:即nat表,filter表,mangle表;五链:PERROUTING链,POSTROUTING链,OUTPUT链,INPUT链,和FORWARD链,但不是所有的表都包括这五个链。
10.服务器监控性能指标有哪些
首看CPU?使用率、CPU?负载、内存使用率、磁盘?I/O、磁盘空间、网络流量等。。而数据库服务器像SQL除了首看这些指标外还要看资源监控中指标缓存点击率(Cache Hit Ratio)该值越高越好。Oracle呢则还看一些库快存或数据字典快存的命中率,缓冲区命中率等等。
11.磁盘阵列raid0,1,5工作原理、区别及应用
工作原理:RAID 0:主机要求写入数据时,RAID控制器将数据分成许多块,然后并行地将它们写到磁盘阵列中的各个硬盘上;读出数据时,RAID控制器从各个硬盘上读取数据,把这些数据恢复为原来顺序后传给主机。RAID 1是使用磁盘镜像(disk mirroring)的技术。它的方式是在工作磁盘(working disk)之外再加一额外的备份磁盘(backup disk),两个磁盘所储存的数据完全一样,数据写入工作磁盘的同时亦写入备份磁盘。磁盘镜像不见得就是RAID 1,如Novell NetWare亦有提供磁盘镜像的功能,但并不表示NetWare有了RAID 1的功能。RAID 5:同RAID1一样也采用数据分块并行传送的方法,但不同的是它在数据分块之后计算它们的奇偶校验和,然后把分块数据和奇偶校验信息一并写到硬盘阵列中。
区别:1)、在硬盘 数量上 RAID 0 至少2块硬盘。RAID 1 至少2块硬盘且硬盘的数量是偶数。RAID 5 至少 3块硬盘。2)、在容量上 RAID 0 的容量是所有硬盘容量的总和。RAID 1是所有以硬盘容量总和的一半,RAID 5的容量是所有硬盘总和减去一只硬盘的容量。RAID 0是将所有硬盘作为一个逻辑存储空间来使用。3),RAID 1是拿出一半的硬盘空间来做存储数据镜像,以保证数据的完整可靠性。RAID 5是拿一只硬盘来做数据存储校验,以保证数据存储的完整性。
应用:RAID 0具有的特点,使其特别适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站等。对于个人用户,RAID 0也是提高硬盘存储性能的绝佳选择。RAID 1其主要特点在提供了较为优异的数据安全保障兼顾到了存取速度和数据的安全,所以这种阵列在网吧、小型企业中使用非常广泛。RAID 5由于的阵列卡价格较为高昂,所以该种阵列目前仅在大型企业中使用,而鲜有被网吧采用。
12.常见爬寻返回代码有什么含义?
1xx
2xx
3xx
4xx
5xx
HTTP状态码是五个不同的类别:
1XX:临时/信息响应
2XX:成功
3XX:重定向
4XX:客户端/请求错误
5XX:服务器错误
五个类别的响应状态代码的第一个数字是唯一代表。
13.客户打电话来说某个应用出问题了,你要怎么操作,说出详细步骤
参考:首先态度要认真,负责和坚持。注意语气变化, 言语要富有条理性,不可语无伦次前后反复,让对方产生反感或罗嗦。如果对方懂技术可先具体询问那个应用的具体的那一环节出错或者呈现出什么状态,对方告知后应立即思考判断最好记录下来并告诉对方解决办法。倘若对方不懂技术可协商对方将该单位技术人员找来与你沟通解决。以上办法若解决不了应立即和对方协商好时间及安排好自己的工作进程赶赴现场进行解决。
14.比如说有7台文件服务器,其中两台宕机后,如何确实其它文件服务器能正常使用,采用什么技术去实现这效果
参考:1),可用nginx+keepalived实现高可用负载均衡 。2),配置主从服务器,一台是主服务器,一台是备用服务器,如果主服务器宕机,那么立即切换到备用服务器。或者WEB前面用F5做负载,部署成集群模式共享磁盘阵列。3),备份:通常会用双机容灾的方式,即通过利用两台文件服务器构建双机备份系统,这在一定程度确保了数据安全,同时对于网络的稳定及安全也起到一定的效果。
15.几万台的游戏服务器,如何规划一个监控应用系统,不采用开源软件做实施
参考:最好编写监控脚本或者开发监控系统软件。网络服务器正式上线后,服务器数据流动、连接数、网络流量、系统负荷等各方面都会增加,安全问题也随之而来。?
对于服务器的硬件资源、性能、带宽、端口、进程、服务等都必须有一个可靠和持续的监测,统计分析每天的各种数据,从而能及时反映出服务器哪里存在性能瓶颈、安全隐患等。
监控,是预防的其中的一项重要工作。先说说需要监控的内容。系统负载、cpu使用率、内存占用、磁盘空间、网络流量、端口、进程、数据库的运行状态等等。要了解服务器每时每刻的整体运行状态,而利用shell脚本和开源监控工具进行服务器监控成为了两个主要的选择。?
利用shell脚本监控能够很好把握的监控的内容,时间,警告峰值,以及方便地进行告警通知,自定义监控日志内容等等。
16.MySQL存储引擎比较
MySQL常用的存储引擎为MyISAM、InnoDB、MEMORY、MERGE,其中InnoDB提供事务安全表,其他存储引擎都是非事务安全表。 MyISAM是MySQL的默认存储引擎。MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求。 InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。 MEMORY存储引擎使用存在内存中的内容来创建表。每个MEMORY表只实际对应一个磁盘文件。MEMORY类型的表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH索引。但是一旦服务关闭,表中的数据就会丢失掉。 MERGE存储引擎是一组MyISAM表的组合,这些MyISAM表必须结构完全相同。MERGE表本身没有数据,对MERGE类型的表进行查询、更新、删除的操作,就是对内部的MyISAM表进行的。
17.WEB服务器nginx的性能有哪些
参考:Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性:1),高并发连接:官方测试能够支撑5万并发连接,在实际生产环境中跑到2-3万并发连接数。2),内存消耗少,在3万并发连下下,开启的10个Nginx进程才消耗150M。3),安装配置简单,风格跟程序一样通俗易懂。4),成本低廉:Nginx为开源软件,可以免费使用。而购买F5 BIG-IP ,NetScaler等硬件负载均衡交换机则需要十多万至几十万RMB 。5),支持Rewrite重写规则,能够根据域名,URL的不同,将HTTP请求分到不同的后端服务器群组。6),内置的健康检查功能:如果Nginx Proxy后端的某台Web服务器宕机了,不会影响前端的访问。7),节省宽带:支持GZIP压缩,可以添加浏览器本地缓存的Headertou 。8),稳定性高:用于反向代理,宕机的慨率微乎其微。在高连接并发的情况下,能够支持高达 50,000 个并发连接数的响应,采用epoll and kqueue 作为开发模型。 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理 服务器对外进行服务. 采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多.而作为邮件代理服务器:同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器)。 Bugs 非常少。 启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动. 还能够不间断服务的情况下进行软件版本的升级 .