美文网首页
计算机网络面试核心

计算机网络面试核心

作者: Java全栈攻城狮 | 来源:发表于2020-02-25 11:34 被阅读0次

一、TCP相关

1.TCP与UDP的区别

tcp协议和udp协议的差别

TCP UDP
是否连接 面向连接 面向非连接
传输可靠性 可靠 不可靠
有序性 有序 无序
速度
应用场合 http ftp smtp 文件传输 语音通话 视频通话

2.TCP简介

1、面向连接的、可靠的、基于字节流的传输层通信协议

2、将应用层的数据流分割成报文段并发送给目标节点的TCP层

3、数据包都有序号,对方收到则发送ACK确认,未收到则重传

4、使用校验和来校验数据在传输过程中是否有误

3.TCP三次握手

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

第一次握手:建立连接时,客户端发送SYN包到服务器,并进入SYN_SEND状态,等待服务器确认。

第二次握手:服务器收到SYN包,必须确认客户到的SYN,同时自己也发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态。

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

4.TCP首次握手的隐患--SYN超时

当客户端发送SYN包后断开连接,服务器会重试直至超时才会断开连接,这会导致恶意攻击占满队列。

针对这种情况,SYN队列满后,通过tcp_syncookies参数回发SYN Cookie,若为正常连接则Client会回发SYN Cookie,直接建立连接。

5.TCP四次挥手

第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。

第二次挥手:Server收到FIN后,发送一个ACK给Client确认序号为收到序号+1,Server进入CLOSE_WAIT状态。

第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。

第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给SERVER,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

6.TCP的滑动窗口

1、保证TCP的可靠性(顺序)

2、保证TCP的流量控制特性

二、HTTP相关

1.HTTP主要特点

1、支持客户/服务器模式

2、简单快速

3、灵活

4、无连接(1.1后新增长连接特性KEEP-LIVE)

5、无状态

2.GET和POST的区别

1、Http报文层面:GET将请求信息放在URL,POST放在报文体中

2、数据库层面:GET符合幂等性和安全性,POST不符合

3、其他层面:GET可以被缓存、被存储,而POST不行

3.Cookie和Session的区别

1、Cookie数据存放在客户的浏览器上,Session数据放在服务器上。

2、Session相对于Cookie更安全。

3、若考虑减轻服务器负担,应使用Cookie。

Cookie

1、Cookie是由服务器发给客户端的特殊信息,以文本的形式存放在客户端

2、客户端再次请求的时间,会把Cookie回发

3、服务器接收到后,会解析Cookie生成与客户端相对应的内容。

Session

1、服务器端的机制,在服务器上保存的信息

2、解析客户端请求并操作session id,按需保存状态信息

4.Http和Https的区别

1、Https需要到CA申请证书,Http不需要

2、Https密文传输(非对称加密),Http明文传输

3、连接方式不同,Https默认使用443端口,Http使用80端口

4、Https=Http+加密+认证+完整性保护,较Http安全

SSL

1、为网络通信提供安全及数据完整性的一种安全协议

2、是操作系统对外的API,SSL3.0后更名为TLS

3、采用身份验证和数据加密保证网络通信的安全和数据的完整性

Https数据传输流程

1、浏览器将支持的加密算法信息发送给服务器

2、服务器选择一套浏览器支持的加密算法,以证书的形式回发浏览器。

3、浏览器验证证书合法性,并结合证书公钥加密信息发送给服务器。

4、服务器使用私钥解密信息,验证哈希,加密响应消息回发浏览器。

5、浏览器解密响应消息,并对消息进行验证,之后进行加密交互数据。

Https真的很安全吗

浏览器默认填充http://,请求需要进行跳转,有被劫持的风险

可以使用HSTS(Http Strict Transport Security)优化

Socket相关

BIO、NIO、AIO的区别

  1. BIO 就是传统的 [java.io]包,它是基于流模型实现的,交互的方式是同步、阻塞方式,也就是说在读入输入流或者输出流时,在读写动作完成之前,线程会一直阻塞在那里,它们之间的调用时可靠的线性顺序。它的有点就是代码比较简单、直观;缺点就是 IO 的效率和扩展性很低,容易成为应用性能瓶颈。
  2. NIO 是 Java 1.4 引入的 java.nio 包,提供了 Channel、Selector、Buffer 等新的抽象,可以构建多路复用的、同步非阻塞 IO 程序,同时提供了更接近操作系统底层高性能的数据操作方式。
  3. AIO 是 Java 1.7 之后引入的包,是 NIO 的升级版本,提供了异步非堵塞的 IO 操作方式,所以人们叫它 AIO(Asynchronous IO),异步 IO 是基于事件和回调机制实现的,也就是应用操作之后会直接返回,不会堵塞在那里,当后台处理完成,操作系统会通知相应的线程进行后续的操作。

多路复用器Selector

selector简称多路复用器,它是JAVA NIO编程的基础简单来讲,selector会不断轮询注册在其上的channel,如果某个channel上面发生了读或者写事件,这个channel就会处于就绪状态,会被selector轮询出来,然后通过selectorKey可以获取就绪channel的集合,进行后续的io操作。

一个多路复用器selector可以同时轮询多个channel,由于jdk使用epoll()替代传统的selector实现,所以他并没有最大连接句柄限制,也就意味着只需要一个负责轮询selector的线程就可以接入成千上万的channel.

select和epoll区别

select比epoll效率差的原因:select是轮询,epoll是触发式的,所以效率高。
Select:
1.Socket数量限制:该模式可操作的Socket数由FD_SETSIZE决定,内核默认32*32=1024.
2.操作限制:通过遍历FD_SETSIZE(1024)个Socket来完成调度,不管哪个Socket是活跃的,都遍历一遍.
Poll:
1.Socket数量几乎无限制:该模式下的Socket对应的fd列表由一个数组来保存,大小不限(默认4k).
2.操作限制:同Select.
Epoll:
1.Socket数量无限制:同Poll
2.操作无限制:基于内核提供的反射模式,有活跃Socket时,内核访问该Socket的callback,不需要遍历轮询.但是当所有Socket都活跃的时候,这时候所有的callback都被唤醒,会导致资源的竞争.既然都是要处理所有的Socket,那么遍历是最简单最有效的实现方式.

相关文章

  • 计算机网络面试核心

    计算机网络面试核心 传输层控制协议 TCP 简介 传输层控制协议 TCP 简介面向连接的,可靠的,基于字节流的传输...

  • 计算机网络面试核心

    一、TCP相关 1.TCP与UDP的区别 tcp协议和udp协议的差别 TCPUDP是否连接面向连接面向非连接传输...

  • 计网总结

    计算机网络常见面试题总结 - CSDN博客 常见面试题整理--计算机网络篇 - midiyu - 博客园 计算机网...

  • 几本对于笔试和面试有用的书(干货~)

    这儿放几本对程序员笔试和面试有益的书籍o(▽)o 4本408核心书籍: 数据结构 计算机操作系统 计算机网络 计算...

  • 常见面试题之计算机网络

    title: 常见面试题之计算机网络 categories: [网络] tags: [面试题] date: 202...

  • 持续输出面试题之计算机网络篇

    开篇介绍 大家好,我是Java最全面试题库的提裤姐,今天这篇是计算机网络,主要总结了计算机网络相关的面试题;在后续...

  • 计网面试题,怎能不盘它

    计算机网络一直是面试最头疼的问题,在这里,整理一份计算机网络相关的面试题,提高复习效率,节省更多的时间。 1、OS...

  • Golang面试之TCP/IP协议

    引用 关于TCP/IP的面试题 计算机网络——OSI、TCP/IP协议族详解 计算机网络【七】:可靠传输的实现 T...

  • 计算机网络-概述

    网络是指“三网”,即电信网络、有线电视网络和计算机网络。发展最快且起核心作用的是计算机网络。 计算机网络最重要的两...

  • 计算机网络的那些常见面试知识点,你还记得多少?

    这篇文章是计算机网络面试的第一篇文章,主要是对计算机网络知识体系的一个概述,当然了,本系列文章肯定不会把计算机网络...

网友评论

      本文标题:计算机网络面试核心

      本文链接:https://www.haomeiwen.com/subject/phlvqhtx.html