Java开发技术面试考点--计算机网络

计算机网络

❤1、网络概述

1、TCP协议在哪一层?IP协议在那一层?HTTP在哪一层?
传输层,网络层,应用层。

❤2、运输层

1、讲一下TCP的连接和释放连接。
Tcp的链接建立(三次握手)

  1. 服务端进程先创建传输控制块(TCB),准备接受客户端进程的连接请求,服务端处于listen的状态,等待客户端的连接请求;
  2. 客户端继承创建传输控制块(TCB),然后向服务端发送请求报文段,这是首部的同步位SYN=1,同时选择一个序列号seq = x.(TCP规定,SYN报文段不能携带任何数据,但是要消耗一个序号),这时客户端进程进入SYN-SENT(同步已发送)状态;
  3. 服务端收到客户端的请求报文后,如同意建立连接,则向客户端发送确认。在确认报文中应把SYN和ACK都置为1,确认号是ack=x+1,同时也为自己选择一个初始的序号seq=y,这个确认报文也不能携带数据,但是要消耗一个序号,这时TCP服务端进程进入SYN-RCVD(同步已收到状态)状态。
  4. 客户端收到服务端的确认后,还要向服务端进行确认。确认报文段的ACK为1,确认好为ack = y+1,自己的序号为seq = x+1,ACK报文段可以携带数据,但是如果不携带数据则不消耗序号,此时TCP连接已经建立,客户端进入ESTABLISHED状态(已建立连接状态);
  5. 服务端收到确认后也进入以建立连接状态。
    Tcp的连接释放(四次挥手)
  6. 当不再需要传输数据时,客户端会向服务端发送释放报文段,将连接释放报文段的FIN置为1,其序号为seq = u,这时客户端进入终止等待1状态;(TCP规定,FIN报文段即使不携带数据,也消耗掉一个序号)
  7. 服务端收到释放报文段后发送确认,确认号为ack=u+1,这个报文段自己的序号为w,然后服务端进入关闭等待状态(这时TCP服务器进程就会通知应用进程,因而从客户端到服务器的连接就是放了),这时TCP处于半关闭状态
  8. 当客户端收到来自服务器端的确认后就会进入终止等待2状态,等待服务器发出的连接释放报文;
  9. 服务端发出连接释放报文段,使得FIN=1,服务器必须重复上次已发送的确认号ack=u+1,这时服务器进入最后的确认状态,等待客户端的确认;
  10. 客户端在收到服务端的释放报文段后,必须对此发出确认。在确认报文段中报ACK置为1,确认号为ack = w+1,自己的序号变成seq = u+1,进入时间等待状态。
    2、TCP有哪些应用场景
    tcp协议是面向连接的,可靠的数据传输协议,但是它的传输数据速率相比于udp协议比较慢。它适用于对数据传输可靠性要求比较高的场景,例如文本传输之类的。
    3、tcp为什么可靠
    重传
    报文重传是TCP最基本的错误恢复功能,它的目的是防止报文丢失。
    流量控制
    tcp窗口
    拥塞控制
    4、tcp为什么要建立连接
    tcp是提供可靠性连接的,只有支持端到端的连接,才能进行可靠性传输,连接的主要功能在于记录两个端口间的通信状态,不连接则无法记录两个端口通信的状态,则无法知道丢失了哪个数据包,重复收到了哪个数据包,也无法确保数据包之间的到达顺序,还有很多增加可靠性的功能都无法应用。
    5、阐述TCP的4次挥手
    TCP四次挥手 当客户端没有数据再需要发送给服务端时,就需要释放客户端的连接,这整个过程为: 1 客户端发送一个报文给服务端(没有数据),其中FIN设置为1,Sequence Number置为u,客户端进入FIN_WAIT_1状态 2 服务端收到来自客户端的请求,发送一个ACK给客户端,Acknowledge置为u+1,同时发送Sequence Number为v,服务端年进入CLOSE_WAIT状态 3 服务端发送一个FIN给客户端,ACK置为1,Sequence置为w,Acknowledge置为u+1,用来关闭服务端到客户端的数据传送,服务端进入LAST_ACK状态 4 客户端收到FIN后,进入TIME_WAIT状态,接着发送一个ACK给服务端,Acknowledge置为w+1,Sequence Number置为u+1,最后客户端和服务端都进入CLOSED状态
    6、讲一下浏览器从接收到一个URL到最后展示出页面,经历了哪些过程。tag
    1.DNS域名解析 2.建立TCP连接 3.发送HTTP请求 4.服务器处理请求 5.返回响应结果 6.关闭TCP连接 7.浏览器解析渲染页面
    7、http和https的区别
    Http协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份;Https是身披SSL(Secure Socket Layer)外壳的Http,运行于SSL上,SSL运行于TCP之上,是添加了加密和认证机制的HTTP。二者之间存在如下不同:
    端口不同:Http与Https使用不同的连接方式,用的端口也不一样,前者是80,后者是443;
    资源消耗:和HTTP通信相比,Https通信会由于加减密处理消耗更多的CPU和内存资源;
    开销:Https通信需要证书,而证书一般需要向认证机构购买;
    Https的加密机制是一种共享密钥加密和公开密钥加密并用的混合加密机制。
    8、http的请求有哪些,应答码502和504有什么区别
    http的请求方式
    1、opions 返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送测试服务器功能(允许客户端查看服务器性能)
    2、Get 向特定资源发出请求(请求指定页面信息,并返回实体主体)
    3、Post 向指定资源提交数据进行处理请求(提交表单、上传文件),有可能导致新的资源的建立或原有资源的修改
    4、Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)
    5、Head 与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)
    6、Delete 请求服务器删除request-URL所标示的资源(请求服务器删除页面)
    7、Trace 回显服务器收到的请求,用于测试和诊断
    8、Connect HTTP/1.1协议中能够将连接改为管道方式的代理服务器
    502表示错误网关,无效网关 。 504表示网关超时,说明服务器作为网关或代理,但是没有及时从上游服务器收到请求。
    9、http1.1和1.0的区别
    在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话。
    而从HTTP/1.1起,默认使用长连接,用以保持连接特性。
    10、说说ssl四次握手的过程
    1.客户端请求建立SSL链接,并向服务端发送一个随机数(client random)和客户端支持的加密方法(比如RSA),此时是明文传输的。
    2.服务端选择客户端支持的一种加密算法并生成另一个随机数(server random),并将授信的服务端证书和公钥下发给客户端。
    3.客户端收到服务端的回复,会校验服务端证书的合法性,若合法,则生成一个新的随机数premaster secret并通过服务端下发的公钥及加密方法进行加密,然后发送给服务端。
    4.服务端收到客户端的回复,利用已知的加解密方式进行解密,同时利用client random、server random和premater secret通过一定算法生成对称加密key - session key。
    此后,数据传输即通过对称加密方式进行加密传输。
    从以上过程可以看看https实际上是用了对称加密技术和非对称加密技术,非对称加密解密速度慢,但安全性高,用来加密对称加密的密钥;而对称加密虽然安全性低,但解密速度快,可以用于传输数据的加密。
    11、304状态码有什么含义?
    301:永久重定向
    302:临时重定向
    304:服务器资源未变化

❤3、网络层

1、arp协议,arp攻击
arp是地址解析协议,用于将IP地址转换为mac地址。
arp攻击就是arp欺骗。用别人的ip地址和自己的mac地址发送数据。欺骗成功后,发往目的ip地址的数据就会被发到你对应的mac地址的设备上。
2、icmp协议
ICMP:Internet 控制报文协议。它传递的是差错报文以及其他需要注意的信息。
ICMP报文在IP数据报的内部进行传输。
3、讲一下路由器和交换机的区别?
路由器工作在网络层,路由器知道转发的目d的IP地址,路由器将数据包分组转发到不同网段上
交换机工作在链路层,交换机只知道转发的物理地址,交换机将数据帧转发到同一网段。

❤4、应用层

1、DNS寻址过程
1、客户机发出查询请求,在本地计算机缓存查找,若没有找到,就会将请求发送给dns服务器
2、先发送给本地dns服务器,本地的就会在自己的区域里面查找,若找到,根据此记录进行解析,若没有找到,就会在本地的缓存里面查找
3、本地服务器没有找到客户机查询的信息,就会将此请求发送到根域名dns服务器
4、根域名服务器解析客户机请求的根域部分,它把包含的下一级的dns服务器的地址返回到客户机的dns服务器地址
5、客户机的dns服务器根据返回的信息接着访问下一级的dns服务器
6、这样递归的方法一级一级接近查询的目标,最后在有目标域名的服务器上面得到相应的IP信息
7、客户机的本地的dns服务器会将查询结果返回给我们的客户机
8、客户机根据得到的ip信息访问目标主机,完成解析过程
2、负载均衡反向代理模式优点及缺点

你可能感兴趣的:(Java开发技术面试考点--计算机网络)