JAVA--计算机网络常见面试题

1、网络分层模型

  • OSI七层模型

应用层

表示层

会话层

传输层

网络层

数据链路层

物理层

  • TCP/IP四层模型

目前被广泛采用的一种模型,可以看作是OSI七层模型的简化。

应用层

传输层

网络层

网络接口层

为什么分层?

  • 各层之间相互独立,各层之间不需要关心其他层如何实现
  • 提高整体灵活性,每一层都可以使用最合适的技术实现
  • 大问题化小:将复杂问题化为许多比较小的、界线比较清晰简单的小问题来处理和解决。

2、常见网络协议

  • 应用层的常见网络协议

HTTP :超文本传输协议,基于TCP协议。是一种用于传输超文本和多媒体内容的协议,主要是为Web浏览器与Web服务器之间的通信而设计,当我们使用浏览器浏览网页的时候,我们网页就是通过HTTP请求进行加载

SMTP :简单邮件发送协议,基于TCP协议。是一种用于发送电子邮件的协议。

POP3/IMAP :邮件接收协议,基于TCP协议。IMAP在功能和性能上都更加强大,几乎所有现代电子邮件客户端和服务器都支持IMAP

FTP :基于TCP协议,用于在计算机之间传输文件的协议,可以屏蔽操作系统和文件存储方式。并不安全,在传输过程中不会对数据加密,建议使用更安全的协议 SFTP

Telnet :远程登录协议,基于TCP协议,用于通过一个终端登陆到其他服务器。最大的缺点是所有数据都以明文方式发生,有潜在的安全问题。现在,很少使用telnet,而是使用称为SSH的非常安全的网络传输协议

SSH :安全的网络传输协议。基于TCP协议,通过加密和认证机制实现安全的访问和文件传输等业务

RTP :实时传输协议,基于UDP协议

DNS :域名管理系统,基于UDP协议,用于解决域名和IP地址的映射问题

  • 传输层常见的协议

TCP :传输控制协议,提供面向连接的、可靠的数据传输服务

UDP :用户数据协议,提供无连接的,尽最大努力的数据传输服务,不保证数据传输的可靠性,简单高效

  • 网络层常见的协议

IP :网际协议 。TCP/IP协议中最重要的协议。主要作用是定义数据包的格式、对数据包进行路由和寻址,以便它们可以跨网络传播并到达正确的目的地。目前IP协议分为两种,IPV4和较新的IPV6。

ARP :地址解析协议,ARP协议解决的是网络层地址和链路层地址之间的转换问题。IP地址属于逻辑地址,而MAC地址才是物理地址,ARP解决了IP地址转MAC地址的一些问题

ICMP :互联网控制报文协议。一种用于传输网络状态和错误信息的协议,常用于网络诊断和故障排除。

NAT :网络地址转换协议,应用于内部网到外部网的地址转换过程中。

OSPF : 开放式最短路径优先,一种内部网关协议,广泛使用的一种动态路由协议,基于链路状态算法,考虑了链路的带宽、延迟等因素来选择最佳路径

RIP :路由信息协议。一种内部网关协议,也是一种动态路由协议,基于距离向量算法,使用固定的跳数作为度量标准,选择跳数最少的路径作为最佳路径。

BGP : 边界网关协议,一种用在路由选择域之间交换网络层可达性信息的路由选择协议,具有高度的灵活性和可扩展性

3、从输入URL到页面展示到底发生什么?

  • 第一步,浏览器查找域名的ip地址—DNS解析域名,获得ip地址。DNS查找过程:浏览器缓存、路由器缓存、DNS缓存。
  • 第二步,与服务器建立TCP连接,浏览器向web服务器发送一个HTTP请求,cookies也会随着请求发送给服务器
  • 第三步,服务器处理请求并返回HTTP报文(发回一个HTML响应)
  • 第五步,浏览器解析渲染页面。连接结束

使用到的协议:

DNS:获取域名对于ip地址

TCP:与服务器建立TCP连接

IP:建立TCP协议时,需要发送数据,发送数据在网络层使用IP协议

OSPF:IP数据包在路由器之间,路由选择使用OSPF协议

ARP:路由器在与服务器通信时,需要将ip地址转换为MAC地址,需要使用ARP协议

HTTP:在TCP建立完成后,使用HTTP协议访问网页

4、HTTP和HTTPS有什么区别?

  • 端口号:HTTP默认是80,HTTPS默认是443

  • URL前缀:HTTP的URL前缀是 http:// ,HTTPS的URL前缀是 https://

  • 安全性和资源消耗:HTTP协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器都无法验证对方的身份。HTTPS是运行在SSL/TLS之上的的HTTP协议,所有传输内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。所以说,HTTP 安全性没有 HTTPS 高,但是 HTTPS 比 HTTP 耗费更多服务器资源。

  • SEO(搜索引擎优化):搜索引擎通常会更青睐使用HTTPS协议的网站,因为HTTPS能够提供更高的安全性和用户隐私保护。使用HTTPS协议的网站在搜索结果中可能会被优先显示,从而对SEO产生影响。

5、HTTP是不保存状态的协议,如何保存用户状态?

HTTP是一种不保存状态的协议,也就是说HTTP协议自身不对请求和响应之间的通信状态进行保存。如何保存用户状态呢?Session机制。Session的主要作用就是通过服务端记录用户的状态,从而标识用户并且可以跟踪用户。一般情况下,服务器会在一定时间内保存这个Session,过了时间限制,就会销毁这个session。既然 Session 存放在服务器端,那么我们如何实现 Session 跟踪呢?大部分情况下,我们都是通过在 Cookie 中附加一个 Session ID 来方式来跟踪。

6、PING命令的工作原理

PING基于网络层的ICMP协议,主要原理是通过在网络上发送和接收ICMP报文实现

7、DNS

  • DNS作用

域名管理系统。解决的是域名和IP地址的映射问题

在实际使用中,有一种情况下,浏览器是可以不必动用 DNS 就可以获知域名和 IP 地址的映射的。浏览器在本地会维护一个hosts列表,一般来说浏览器要先查看要访问的域名是否在hosts列表中,如果有的话,直接提取对应的 IP 地址记录。如果没有要访问的域名所对应记录的话,那么 就用DNS来解析域名获得IP地址。

目前 DNS 的设计采用的是分布式、层次数据库结构,DNS 是应用层协议,基于 UDP 协议之上,端口为 53

  • DNS服务器有哪些

根DNS服务器 : 在每个域名后面默认有一个.,指的就是根服务器,解析从根服务器开始。

顶级域DNS服务器:指域名的后缀 如com,org,net,edu,con等

权威DNS服务器

本地DNS服务器

8、TCP与UDP的区别

  • 是否面向连接:UDP在传送数据之前不需要先建立连接。而TCP提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后要释放连接。
  • 是否是可靠传输:远地主机在收到UDP报文后,不需要给出任何确认,并且不保证数据不丢失、不保证是否顺序到达。TCP提供可靠的传输服务,TCP在传递数据之前,会有三次握手来建立连接 ,并且在数据传递时,有确认、窗口、重传、拥塞控制机制。通过TCP连接传输的数据,无差错、不丢失、不重复、并且按序到达。
  • 是否有状态:TCP传输是有状态的,TCP会去记录自己发送信息的状态,为此TCP需要维持复杂的连接状态表。而UDP是无状态服务,不用去管发出去之后的事。
  • 传输效率:TCP的传输效率比UDP低很多
  • 是否提供广播或多播服务:TCP只支持点对点通信,UDP支持一对一、一对多、多对一、多对多

UDP一般用于即时通信,如语音、视频、直播等;这些场景对传输数据的准确性要求不是特别高

TCP用于对传输准确性要求特别高的场景,比如文件传输、发送和接收邮件、远程登录等

HTTP/3.0之前是基于TCP协议的,而HTTP/3.0将弃用TCP,改用基于UDP的QUIC协议,此变化解决了HTTP/2中存在的队头阻塞问题。

9、使用TCP的协议有哪些?

HTTP、HTTPS、FTP、SMTP、POP3/IMAP、Telnet、SSH

10、使用UDP的协议有哪些?

DHCP、DNS

11、三次握手

三次握手目的是建立可靠的通信信道,而通信,简单来说就是数据的发送与接收,所以三次握手最主要的目的就是双方都要确认彼此之间的发送与接收是正常的

第一次握手:客户端发送数据包(SYN)给服务端 ,服务端接收----客户端无法确认,服务端可以确认自己接收正常,对方发送正常;

第二次握手:服务端发送数据包(SYN+ACK)给客户端 ,客户端接收—服务端发来的数据包包含第一次握手客户端发过去的,因此,客户端可以确认自己发送正常,自己接收正常,对方发送正常,对方接收正常;服务端可以确认自己接收正常,对方发送正常;

第三次握手:客户端发送数据包ACK给服务端 ,服务端确认自己发送正常,对方接收正常。然后客户端和服务器端都进入ESTABLISHED 状态,完成 TCP 三次握手。

当建立三次握手后,客户端和服务端就可以传输数据。

为什么一定要三次?

因为三次才能刚好双方都确认自己和对方的接收和发送正常 ,而这也是握手的目的。

12、四次挥手

断开一个TCP连接需要“四次挥手”,缺一不可,只要四次挥手没有结束,客户端和服务端就可以继续传输数据!

为什么要四次挥手呢?

TCP是全双工通信,可以双向传输数据。任何一方都可以在数据传输结束发出释放连接的通知,待对方确认后进入半关闭状态,当另一方也没有数据传输时,则发出释放连接的通知,对方确认后就完全关闭

第一次挥手:客户端没有数据需要传输,客户端向服务端发送释放连接的通知

第二次挥手:服务端收到通知,发送一个确认通知给客户端。但是服务端可能还有数据传输,此时处于半关闭

第三次挥手:服务端没有数据可以传输,于是服务端发送释放连接的通知给客户端

第四次挥手:客户端发送确认通知给服务端。客户端关闭。TCP断开连接

13、IP

主要作用是定义数据包的格式、对数据包进行路由和寻址,以便它们可以跨网络传播并到达正确的目的地。

分为IPV4/IPV6,目前两种协议都在使用。

  • IP地址

每个进入互联网的设备或域都被分配一个IP地址,作为唯一标识符。

  • IPV6比IPV4拥有更大的IP地址空间,具有很多优势

14、NAT

网络地址转换。主要用于在不同网络之间转换IP地址,它允许将私有IP地址映射为公有IP地址或者反向映射。

NAT不光可以缓解IPV4地址资源短缺的问题,还可以隐藏内部网络的实际拓扑结构,使得外部网络无法直接访问内部网络中的设备,从而提高内部网络的安全性。

15、ARP

MAC地址

MAC地址是媒体访问控制地址。如果说互联网中每一个资源都由IP地址唯一标识(IP协议内容),那么一切网络设备都由MAC地址唯一标识。

ARP

ARP协议,称为地址解析协议,它解决的是网络层地址和链路层地址之间的转换问题。因为一个IP数据报在物理上传输的过程总是需要知道下一跳该去哪(物理上的下一个目的地),但IP是逻辑地址,而MAC才是物理地址。因此,ARP协议解决了IP地址转换为MAC地址的一些问题。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zero摄氏度

感谢鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值