关于计算机网络的常见面试问题

来源:互联网 发布:触摸屏一体机软件 编辑:程序博客网 时间:2024/06/03 18:26

TCP和UDP的区别?

TCP:面向连接,传输可靠(保证数据正确性,保证数据顺序),一对一,用于传输大量数据(流模式),速度慢,建立连接需要开销较多(时间,系统资源)。

UDP:面向无连接,传输不可靠,可以支持一对一、多对多、一对多的通信,用于传输少量数据(数据包模式),速度快。

三次握手中的Syn攻击?

在三次握手过程中,服务器发送SYN-ACK之后,收到客户端的ACK之前的TCP连接称为半连接(half-open connect).此时服务器处于Syn_RECV状态。当收到ACK后,服务器转入ESTABLISHED状态。

Syn攻击就是攻击客户端 在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直 至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。

Syn攻击是一个典型的DDOS攻击。检测SYN攻击非常的方便,当你在服务器上看到大量的半连接状态时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击。在Linux下可以如下命令检测是否被Syn攻击netstat -n -p TCP | grep SYN_RECV。

一般较新的TCP/IP协议栈都对这一过程进行修正来防范Syn攻击,修改tcp协议实现。主要方法有SynAttackProtect保护机制、SYN cookies技术、增加最大半连接和缩短超时时间等,但是不能完全防范syn攻击。

TCP、IP、Http、Socket的区别?

传输层的TCP协议是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算是协议,它只是提供了一个针对TCP或者UDP编程的接口

HTTP和HTTPS的区别?

HTTP是普通超文本协议,而HTTPS就是安全超文本传输协议,需要CA(certificate authority)证书和提供安全连接。
HTTP信息是明文传送,HTTPS是嵌套了SSL加密的HTTP连接,其内容会由SSL先加密,然后再传送。
HTTP是使用端口80,而HTTPS使用443。

get和post区别?

从语义上来讲:

GET
是请求获取指定的资源。GET方法是安全、幂等可缓存的(除非有 Cache-ControlHeader的约束),GET方法的报文主体没有任何语义。

POST
是根据请求负荷(报文主体)对指定的资源做出处理,具体的处理方式视资源类型而不同。POST不安全,不幂等,(大部分实现)不可缓存。为了针对其不可缓存性,有一系列的方法来进行优化。

从实现上来讲:

1.GET使用URL或Cookie传参。而POST将数据放在BODY中。

2.GET的URL会有长度上的限制,则POST的BODY则可以非常大。

3.POST比GET安全,因为数据在地址栏上不可见。

OSI和TCP/IP的区别?

参看这篇文章OSI和TCP/IP。

HTTPS原理?

参看这篇文章HTTPS原理详解。

TCP的三次握手和四次挥手?

参看这篇文章TCP之三次握手和四次挥手。

参考:
1.get和post区别?
2.TCP/IP、Http、Socket的区
3.http 和 https 有何区别?如何灵活使用?

原创粉丝点击