Java实习生------计算机网络10道面试题打卡

有些路只能一个人走完,如果感到累了,也应该继续坚持。🌹

目录

1、TCP是如何保证可靠传输的?⭐

2、IP地址有哪些分类?

3、什么是SQL注入?怎么解决?

4、介绍一下网络五层模型以及各自的职责?

5、HTTP和HTTPS的区别?

6、对称加密和非对称加密的区别?

 7、简单说一下每一层对应的网络协议?⭐

8、ARP协议的工作原理?⭐

9、为什么要有TIME-WAIT状态?(为什么TIME-WAIT状态要等待两个MSL的时间?)⭐

10、什么是保活计时器?有什么作用? ⭐


参考资料:计算机网络面试题图解网络


1、TCP是如何保证可靠传输的?⭐

重传机制:

请求的数据到达接收端,接收端会返回一个确认。

  • 超时重传:发送端在发送数据时,会设定一个计时器,如果在一定时间内没有收到回应,那么就会对数据进行重传
  • 快速重传:发送端收到三个连续的ACK,就会对数据进行重传。(问题:对哪些数据进行过重传?)
  • SACK(选择性确认):接收方对已经接收到的数据进行确认,发送方根据接收方的情况,只发送未被接收的数据
  • D-SACK:接收方告诉发送方哪些数据被重复接受

滑动窗口:

        可以一次性的发送多个数据包,而不必等待其响应回来,并采用累积确认的方式进行应答,即对按序到达的最后一个分组来进行确认

流量控制:

        主要是通过滑动窗口来实现的:发送发可以根据接收方接受数据的能力来决定发送多少数据

拥塞控制:

流量控制主要是为了避免发送方发送的数据填满接收方的缓存,而拥塞控制主要是为了避免发送方的数据填满整个网络。 

  • 慢启动:慢启动过程中有一个慢启动门限值(ssthresh),当拥塞窗口的值(cwnd)小于这个值时,就会进入慢启动算法,即每收到一个ACK,拥塞窗口的大小就加1。拥塞窗口的大小呈指数增长。
  • 拥塞避免:当拥塞窗口的值等于慢启动门限时,就会进入拥塞避免算法,即每收到一个ACK,拥塞窗口的值就增加cwnd/1,每经过一个传输轮次,拥塞窗口的大小就加1。这个阶段,拥塞窗口的大小呈线性增长。
  • 拥塞发生:拥塞发生分为两种情况:一种是发生超时重传,一种是发生快速重传;如果发生超时重传,那么ssthresh=cwnd/2,且cwnd=1;如果发生快速重传,cwnd=cwnd/2,且ssthresh=cwnd
  • 快速恢复:拥塞窗口cwnd = ssthresh+n(n表示确认有三个数据包被收到了);然后重传丢失的数据包;如果再收到重复的ACK那么cwnd+1;收到新数据的ACK之后,把cwnd设置为之前的慢启动门限值

2、IP地址有哪些分类?

  • A类:以0开头,网络号占8位,主机号占24位
  • B类:以10开头,网络号占16位,主机号占16位
  • C类:以110开头,网络号占24位,主机号占8位
  • D类:以1110开头,主要用于IP多播
  • E类:以1111开头,留待后用

3、什么是SQL注入?怎么解决?

定义:后端接收前端传来的数据并没有做严格的判断,导致这些数据和SQL语句拼接在一起被执行,,从而导致数据库受损是一种常见的WEB漏洞。

例:‘ or 1 = 1 --  

解决方法:使用mybatis的#{}来获取参数

4、介绍一下网络五层模型以及各自的职责?

  • 应用层:负责为应用程序提供统一的接口
  • 传输层:负责端到端的数据传输
  • 网络层:负责数据的转发、路由以及分片
  • 数据链路层:负责数据封帧、差错检测以及MAC寻址
  • 物理层:负责物理数据的传输

5、HTTP和HTTPS的区别?

  • 加密方式:HTTP是明文传输,存在安全风险的问题;HTTPS则使用密文传输
  • 连接建立:HTTP连接建立相对简单,TCP三次握手之后即可建立连接,而HTTPS在TCP三次握手之后还有一个SSL/TLS的握手过程
  • 端口:HTTPS使用的端口是443,HTTP使用的端口是80
  • CA:HTTPS需要向CA(证书认证机构)申请数字证书,保证身份是可信赖的

6、对称加密和非对称加密的区别?

  • 对称加密:加密和解密使用同一个密钥,需要解决如何安全发送密钥的问题。
  • 非对称加密:分为公钥和私钥。公钥可以随意发布,而私钥只有自己知道。发送方使用私钥来进行加密,接收方使用公钥来解密。
  • 非对称加密的安全性更高,但是效率低。所以在实际应用的时候一般使用非对称加密来传送密钥。

 7、简单说一下每一层对应的网络协议?⭐

  • 应用层:HTTP、FTP、SMTP、DNS
  • 运输层:TCP、UDP
  • 网络层:IP、ARP、RARP
  • 数据链路层:ARQ、CSMA/CD

8、ARP协议的工作原理?⭐

 ARP协议主要用来获取目的主机的MAC地址,它完成了IP地址道MAC地址的映射。

当ARP协议需要向目的主机发送数据时,会在ARP列表中查询目的主机的MAC地址,如果能够查询到则直接发送;如果查询不到,则会向本地局域网中发送一个ARP请求包,请求包中包含了源主机的IP地址、源主机的MAC地址、目的主机的IP地址,当局域网中的所有主机收到请求包之后,会拿目的主机的IP地址与自身IP进行比较,如果一致,则返回一个ARP响应包,响应包中包含了目的主机的MAC地址,源主机收到这个响应包之后会更新ARP列表;如果源主机迟迟收不到响应包,则表示本次查询失败。

9、为什么要有TIME-WAIT状态?(为什么TIME-WAIT状态要等待两个MSL的时间?)⭐

  • 防止历史连接中的数据,被以后相同的四元组的连接接收
  • 能够保证被动关闭连接的一方可以正确关闭

防止历史连接中的数据,被以后相同的四元组的连接接收:

如果在上一次连接中,由于网络拥塞的原因,服务端所发送的数据没有到达客户端;当客户端重新建立一个和上一个连接相同四元组的连接之后,服务端被拥塞的数据正好到达客户端,而数据的序列号又正好在客户端的接收窗口内,那么客户端就会正常接收这些数据,就会造成数据错乱。

能够保证被动关闭连接的一方可以正确关闭:

假如客户端(主动关闭连接的一方)在第四次挥手之后直接进入到CLOSE状态,但是客户端所发送的ACK并没有被服务端所正常接收,服务端就会重新发送FIN报文,但这时客户端已经关闭连接了,就会回一个RST报文,服务端收到后会将其解释为一个错误,所以这并不是优雅的终止方式。

10、什么是保活计时器?有什么作用? ⭐

TCP保活计时器的工作原理:

 如果连接双方在一段时间内没有进行数据交互,那么TCP保活机制就开始向对端发送探测报文:

  • 如果对端接收到探测报文并做出回应,那么TCP保活时间就会重置
  • 如果对端并没有做出响应,那么TCP协议栈就会持续发送探测报文,当到达最大探测次数之后,依旧得不到回应,就会认为该TCP连接已经死亡

作用: 

  • 在两端都没有进行数据交互的时候,检查对端是否能够正常工作

在人声鼎沸的地方鼓起勇气,在无人问津的时光偷偷努力。

整理面经不易,如果觉得有帮助的小伙伴点个赞吧~感谢收看!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值