又到了一年一度的秋招,作为运维方向,看了一些面经,收集了一些  笔试面试题,总结了一下,贴出来仅供参考,有错误的地方还请指出.


1Linux设置环境变量

暂时的:export MYNAME=new name

echo $MYNAME

new name

永久的:通过改变/etc/profile实现

EG: export CLASSPATH=./java_HOME/lib;$JAVA_HOME/jre/lib

更改文件后执行 source  /etc/profile

 

2TCP连接的特点

(1)面向连接:采用C/S模型

(2)全双工

(3)安全可靠:①流量控制:解决接收方不能不及时处理数据的问题

               ②拥塞控制:解决因网络通信延迟带来的数据丢失问题

               ③差错控制:解决数据被破坏、重复、时序和丢失的问题

(4)基于字节流

 

3、为什么TCP连接需要三次握手,两次不可以吗?为什么?

两次不可以

三次握手连接过程

(1)建立连接时,客户端发送SYNSYN=j)包到服务器,并进入SYN_SEND状态,等待服务器响应、、确认

(2)服务器收到SYN包,必须确认客户端的SYNACK=j+1),同时自己也发送一个SYN包,即SYN+ACK包此时服务器进入SYN_RECV状态

(3)客户端收到服务器的SYN+ACK包,向服务器发送确认包ACKack=k+1),此包发送完毕客户端和服务器端进入ESTABLISHED状态,完成三次握手

为了保证服务端能收到客户端的信息并能做出正确的响应而进行前两次握手,为了保证客户端能够收到服务端的信息并能做出正确的响应而进行后两次响应

 

4、代理的实现原理

代理服务器有很多种,大体分为三类:HTTPFTPSOCKS,其中又分为透明代理和不透明代理,透明代理一般是网关,为硬件

过程:

1)客户端先和代理服务器通讯,建立TCP连接,目的IP是代理服务器的IP

2)客户端发出GET命令,GET命令中包含URLIP地址、明文

3)代理服务器将其中的URL转换为IP地址,可能会有DNS,将源数据包中的数据拷贝下来,去掉URL,重新组包再发出去

4)代理服务器和真实服务器通讯,源IP是代理服务器的IP



5、TCPUDP分别有什么优缺点

TCP

优点:可靠、稳定

TCP的可靠体现在TCP在传输数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完之后,还会断开连接用来节约系统资源

缺点:慢,效率低,占用系统资源高,易被***

在传递数据之前要先建立连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞机制等都会消耗大量时间,而且要在每台设备上维护所有的传输连接。然而,每个链接都会占用系统的CPU、内存等硬件资源。因为TCP有确认机制、三次握手机制,这些也导致TCP容易被利用,实现DOSDDOSCC等***

UDP

优点:快,TCP稍安全

UDPm没有TCP拥有的各种机制,是一个无状态的传输协议,所以传递数据非常快,没有TCP的这些机制,被***利用的机制就少一些,但是也无法避免被***

缺点:不可靠,不稳定

因为没有TCP的那些机制,UDP在传输数据时,如果网络质量不好,就会很容易丢包,造成数据的缺失

 

适用场景:

TCP:当对网络通讯质量有要求时,比如HTTPHTTPSFTP等传输文件的协议,                              POPSMTP等邮件传输的协议

UDP:对网络通讯质量要求不高时,要求网络通讯速度要快的场景。


6、面向对象和面向过程的区别

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就行。

面向对象是把构成问题事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。面向对象是以功能来划分问题,而不是步骤