计算机网络常见面试题

目录

一. 计算机网络结构

1.1 ISO七层模型

1.2 TCP/IP 四层模型

1.3 五层体系结构

1.4 五层计算机网络体系结构中,每一层对应的网络协议有哪些?

1.5 请详细介绍一下 TCP 的三次握手机制

1.6 SYN攻击

1.7 请详细介绍一下TCP 四次挥手过程?

1.8 四次挥手释放连接时,等待2MSL的意义?

1.9 TCP 是如何保证可靠性的

1.10 TCP 和 UDP 的区别

1.11 详细讲一下 TCP 的滑动窗口

二. HTTP及HTTPS相关

2.1 HTTP常用的状态码及其含义?

2.2 HTTP常用的请求方式,区别和用途?

2.3 端口及对应的服务

2.4 如何理解HTTP协议是无状态的?

2.5 POST和GET有哪些区别?

2.6 解释一下HTTP长连接和短连接?

2.7 讲一讲 HTTPS 的原理?

2.8 HTTPS 的优缺点?

2.9 HTTP 和 HTTPS 的区别?

2.10 在浏览器中输入网址之后执行会发生什么?

2.11 什么是 Cookie 和 Session ?

2.12 Cookie 和 Session 是如何配合的?

2.13 Cookie 和 Session 的区别?


一. 计算机网络结构

计算机网络结构体系有三种:ISO七层模型、TCP/IP四层模型、五层体系结构。

1.1 ISO七层模型

🌞

  • 应用层:网络服务与最终用户的一个接口,常见的协议有:HTTP FTP  SMTP SNMP DNS。

  • 表示层:数据的表示、安全、压缩。,确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。

  • 会话层:建立、管理、终止会话,对应主机进程,指本地主机与远程主机正在进行的会话.

  • 传输层:定义传输数据的协议端口号,以及流控和差错校验,协议有TCP UDP。

  • 网络层:进行逻辑地址寻址,实现不同网络之间的路径选择,协议有ICMP IGMP IP等。

  • 数据链路层:在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路。

  • 物理层:建立、维护、断开物理连接。

1.2 TCP/IP 四层模型

🌞

  • 应用层:对应于OSI参考模型的(应用层、表示层、会话层)。

  • 传输层: 对应OSI的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。

  • 网际层:对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。

  • 网络接口层:与OSI参考模型的数据链路层、物理层对应。

1.3 五层体系结构

  • 应用层:对应于OSI参考模型的(应用层、表示层、会话层)。

  • 传输层:对应OSI参考模型的的传输层。

  • 网络层:对应OSI参考模型的的网络层。

  • 数据链路层:对应OSI参考模型的的数据链路层。

  • 物理层:对应OSI参考模型的的物理层。

1.4 五层计算机网络体系结构中,每一层对应的网络协议有哪些?

1.5 请详细介绍一下 TCP 的三次握手机制

三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。

第一次握手:
客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器的端口,以及初始序号X,保存在包头的序列号(Sequence Number)字段里。

第二次握手:
服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即X+1。

第三次握手:
客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1。

1.6 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 cookies技术。SYN Cookies 是对 TCP 服务器端的三次握手做一些修改,专门用来防范 SYN 洪泛攻击的一种手段。

1.7 请详细介绍一下TCP 四次挥手过程?

TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。

 

  • 第一次挥手 (FIN=1,seq=u),发送完毕后,客户端进入 FIN_WAIT_1 状态

  • 第二次挥手 (ACK=1,ack=u+1,seq =v),发送完毕后,服务器端进入 CLOSE_WAIT 状态,客户端接收到这个确认包之后,进入 FIN_WAIT_2 状态

  • 第三次挥手 (FIN=1,ACK1,seq=w,ack=u+1),发送完毕后,服务器端进入 LAST_ACK 状态&#

  • 12
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值