Java面试题-计算机网络

文章目录

1.介绍一下TCP/IP五层模型?

2.什么是TCP三次握手、四次挥手?

1.三次握手建立连接

客户端先向服务端发送请求,表示想要开始建立连接

服务端收到消息,则发送消息给客户端,表示他准备好了,并表示也想要建立连接

然后客户端收到消息,再发送消息给客户端,表示他收到了消息,可以开始建立连接了

第一次和第二次握手:决定了客户端的发包和服务端的收包能力

第三次和第四次握手:决定了服务端的发包和客户端的收包能力

2.四次握手断开连接

客户端向服务端发送消息,表示想要挂电话

服务端接收到消息,回复,知道了,但是还有点儿事要处理

一段时间之后,服务端处理完事情了,然后向客户端发送消息,表示事情处理完了,他准备好挂电话了

最后客户端收到了服务端的消息,并同意现在可以挂电话了

3.HTTPS和HTTP的区别是什么?

4.浏览器输入www.taobao.com回车之后发生了什么

1.URL解析,对URL进行编码,之后查看浏览器是否缓存了该页面
2.DNS查询,得到ip
3.建立连接,进行TCP三次握手
4.将请求封装为http报文,经过网关和路由器发送给server
5.请求发送到Nginx服务器,负载均衡到某个服务器,交给MVC处理
6.接下来就是MVC的执行流程了
7.扩展:http报文

从外到里分别为以太网首部+ip首部+tcp首部+http首部

5.什么是TCP的粘包、拆包问题?

6.http执行流程

1.URL解析,对URL进行编码,之后查看浏览器是否缓存了该页面
2.DNS查询,得到ip
3.建立连接,进行TCP三次握手
4.将请求封装为http报文,经过网关和路由器发送给服务器
5.服务器处理请求并返回http响应
6.客户端接受并解析响应
7.关闭连接

7.解释一下DNS?

DNS最重要的目的就是将域名翻译成ip地址。

DNS解析的过程是,输入域名,按照以下顺序查询ip,浏览器缓存,OS hosts缓存,根域名服务器缓存,顶级域名服务器缓存,权威域名服务器缓存。

8.ARP和RARP的区别是什么?

1.概念介绍

ARP和RARP都是网络通信协议,用于将ip地址和mac地址进行转换。

2.功能不同

ARP协议用于将ip地址转换为mac地址、RARP协议用于将mac地址转换为ip地址。

3.工作方式不同

ARP协议是一种广播协议,当一台主机需要知道另一台主机的mac地址时,直接在本地局域网广播一个ARP请求包,所有的主机都能够收到这个请求包,但是只有目标主机会响应这个请求,将自己的mac地址发送回来。

RARP协议则是向预定义的RARP服务器发出请求,请求服务器返回自己的ip地址。

9.交换机和路由器的区别是什么?

在OSI七层模型中,交换机主要工作在数据链路层,路由器工作在网络层。

交换机转发所依据的对象是物理地址,也就是mac地址,路由器转发所依据的对象是网络地址,也就是ip地址。

交换机主要用于组建局域网,而路由器主要功能是连接局域网。

10.TCP是如何保证可靠传输的?

1.三次握手建立连接
2.四次握手关闭连接
3.超时重传机制

超时机制 是 TCP 的核心之一。当发送方发送数据包后,等待接收方的 ACK。如果在预设的时间内没有收到 ACK,发送方会认为数据丢失了或没有成功到达接收方,于是触发超时重传,即重新发送数据。

4.确认应答机制(ACK)

每当接收方收到一个数据包后,会向发送方发送一个 确认应答(ACK)

5.数据包序列号确保顺序传输

TCP 通过为每个数据包分配一个 序列号,保证数据包的顺序传输。

6.校验和字段进行数据校验

每个TCP数据包中都有一个 校验和 字段,用来检查数据在传输过程中是否损坏。

7. 流量控制

TCP 使用 滑动窗口 机制来进行流量控制。滑动窗口指的是发送方允许未确认的数据的最大数量。接收方会通过通告窗口大小(window size)来告诉发送方它可以接收多少数据,避免接收方被数据包淹没。

11.ping的原理是什么?

ping是一个网络工具,用来测试两台机器的网络连通性。原理是基于ICMP协议,通过发送ICMP回显请求报文。并等待目标设备返回ICMP回显应答报文,来判断网络是否畅通。

另外ping是不需要端口的,因为ping是一个应用层直接使用网络协议的,不涉及到传输层,所以不需要指定端口。

12.什么是IPV6?和IPV4有什么区别?

IPV6是下一代网络协议,旨在解决IPV4的地址资源耗尽问题,并提供更高效的网络通信。

1.地址长度

IPV4地址长度32位,IPV6地址长度128位,足以满足未来全球的网络需求。

2.地址空间

IPV4的地址资源有限,地址逐渐耗尽。IPV6提供了大范围的地址空间,可以为每一个设备分配唯一的ip地址。

3.网络性能

IPV6去掉了IPV4的某些功能,比如校验和,减轻了路由器处理的负担,从而提高了网络传输效率。

13.TCP和UDP的区别是什么?

1.连接性

TCP需要建立连接,UDP是无连接的协议。

2.可靠性

TCP提供可靠的传输。

UDP没有数据包序列号,确认应答,校验和,所以是不可靠的。

3.流量控制

TCP使用滑动窗口机制动态保证发送数据的速率。

UDP不提供流量控制机制。

4.速度和效率

UDP 没有连接的建立和数据确认机制,因此传输速度更快,延迟更低,但无法保证数据的可靠性。

相关推荐
White の algo11 分钟前
C语言常见概念
c语言·开发语言·算法
阿猿收手吧!13 分钟前
【C语言】C语言经典面试题详解
linux·c语言·开发语言·算法
m0_7482361117 分钟前
2024 Rust现代实用教程:1.1Rust简介与安装更新
开发语言·数据库·rust
黑客Ela17 分钟前
Java怎么记录网络安全情报 java转网络安全
java·python·web安全
SomeB1oody24 分钟前
【Rust自学】20.4. 结语:Rust学习一阶段完成+附录
开发语言·后端·学习·rust
五行星辰26 分钟前
Java 读取 Word 模板文档并替换内容生成新文档
java·开发语言·word
旺代1 小时前
Qt实现简易视频播放器
开发语言·qt
獨枭1 小时前
如何在 Qt 中添加和使用系统托盘图标
开发语言·数据库·qt
瀛洲客1 小时前
Qt 支持的动画格式对比,Lottie/APNG/GIF/WEBP
开发语言·qt·lottie动画·apng动画·gif+ webp
不听话的小耳朵1 小时前
JUnit 5 配置文件详解
java·junit