Skip to content

Commit

Permalink
华为面经
Browse files Browse the repository at this point in the history
  • Loading branch information
itwanger committed Jun 2, 2024
1 parent 9509b64 commit 31d5672
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 19 deletions.
4 changes: 1 addition & 3 deletions docs/sidebar/sanfene/javase.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,12 @@ Java 是一门面向对象的编程语言,由 Sun 公司的詹姆斯高斯林

我是从大一下学期开始学习 Java 的,当时已经学完了 C 语言,但苦于 C 语言没有很好的应用方向,就开始学习 Java 了,因为我了解到,绝大多数的互联网公司后端服务都是用 Java 开发的,另外就是学习资料也非常丰富,就业岗位和薪资待遇都比较理想。

于是就想着一边学,一边实战,后来就有了[技术派](https://javabetter.cn/zhishixingqiu/paicoding.html)这个社区系统
于是就想着一边学,一边实战,后面我又接触到了 Spring Boot、MyBatis-Plus、MySQL、Redis、ElasticSearch、MongoDB、Docker、RabbitMQ 等一系列 Java 技术栈,让我的编程能力有了很大的提升。后来就有了[技术派](https://javabetter.cn/zhishixingqiu/paicoding.html)这个社区项目

![技术派实战项目](https://cdn.tobebetterjavaer.com/paicoding/bdfa153fc82310f9ab862a1b3db0d0d7.png)

这样我就可以作为创作者把自己在学习 Java 过程中的经验心得通过文章/教程的形式发布出来,同时读者还可以通过评论、点赞、收藏的形式和我进行互动。

后面我又接触到了 Spring Boot、MyBatis-Plus、MySQL、Redis、ElasticSearch、MongoDB、Docker、RabbitMQ 等一些 Java 技术栈,让我的编程能力也有了很大的提升。

#### 平常用什么编程语言?

大一上先学习的 C 语言,大一下半学期开始学习 Java,中间还学过一些 Python 和 JavaScript,但整体的感受上来说还是最喜欢 Java。
Expand Down
61 changes: 45 additions & 16 deletions docs/sidebar/sanfene/network.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,29 @@ OSI(Open System Interconnection)七层参考模型是一个网络架构模

#### 说说 TCP/IP 四层模型?

TCP/IP 合并了 OSI 的部分层次,专注于高效的网络通信实践,更具实用性
TCP/IP 四层模型是互联网通信的核心,定义了一系列协议和标准,确保设备间可以可靠地进行数据传输

- 应用层:对应于 OSI 模型的会话层、表示层和应用层。包括所有与网络有关的高级协议,如 HTTP、FTP、SMTP 等。
- 传输层: 对应于 OSI 模型的传输层。负责提供端到端的数据传输服务,包括数据分割、流量控制、错误恢复等。主要的协议有 TCP 和 UDP 。
- 网际层:对应于 OSI 模型的网络层。主要协议是 IP,负责数据包的寻址和路由。这一层还包括 ICMP 协议。
- 网络接口层:对应于 OSI 模型的物理层和数据链路层。负责数据帧的物理传输,包括硬件地址寻址(MAC 地址),数据封装和解封装,错误检测和纠正等。
![medium:Victor Aaron Winnercoz](https://cdn.tobebetterjavaer.com/stutymore/network-20240602114602.png)

①、**应用层(Application Layer)**:直接面向用户和应用程序,提供各种网络服务。它包含了用于特定应用的协议和服务,如 HTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)等。

示例:当在浏览器中输入一个 URL 并访问一个网页时,浏览器使用 HTTP 协议从 Web 服务器请求页面内容。

②、**传输层(Transport Layer)**:提供端到端的通信服务,确保数据可靠传输。它负责分段数据、流量控制、错误检测和纠正。常见的传输层协议有 TCP 和 UDP。

示例:当发送一封电子邮件时,TCP 协议确保邮件从你的客户端可靠地传输到邮件服务器。

③、**网际层**:或者叫网络层(Internet Layer),负责在不同网络之间路由数据包,提供逻辑地址(IP 地址)和网络寻址功能。用于处理数据包的分组、转发和路由选择,确保数据可以从源端传输到目标端。

常见协议:IPv4、IPv6、ICMP(Internet Control Message Protocol)。

示例:当访问一个网站时,网络层协议(如 IPv4)将你的请求从你的计算机通过多个路由器传输到目标服务器。

④、**网络接口层(Network Access Layer)**:或者叫链路层(Link Layer),负责将数字信号在物理通道(网线)中准确传输,定义了如何在单一网络链路上传输数据,如何处理数据帧的发送和接收,包括物理地址(MAC 地址)的解析。

常见协议:以太网(Ethernet)、Wi-Fi。

示例:在一个局域网(LAN)中,计算机通过以太网连接交换机,链路层协议负责数据帧在网络设备间的传输。

#### 说说五层体系结构?

Expand Down Expand Up @@ -1399,26 +1416,38 @@ GitHub 上标星 10000+ 的开源知识库《[二哥的 Java 进阶之路](https

### 48.IP 协议的定义和作用?

> **IP 协议是什么?**
IP 协议(Internet Protocol)用于在计算机网络之间传输数据包,它定义了数据包的格式和处理规则,确保数据能够从一个设备传输到另一个设备,可能跨越多个中间网络设备(如路由器)。

![三分恶面渣逆袭:虚拟 IP 网](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/nice-article/weixin-mianznxjsjwllsewswztwxxssc-2672de5a-b5de-4f7f-905b-7c4935ca3efb.jpg)

#### IP 协议有哪些作用?

①、**寻址**:每个连接到网络的设备都有一个唯一的 IP 地址。IP 协议使用这些地址来标识数据包的源地址和目的地址,确保数据包能够准确地传输到目标设备。

②、**路由**:IP 协议负责决定数据包在网络传输中的路径。比如说路由器使用路由表和 IP 地址信息来确定数据包的最佳传输路径。

③、**分片和重组**:当数据包过大无法在某个网络上传输时,IP 协议会将数据包分成更小的片段进行传输。接收端会根据头部信息将这些片段重新组装成完整的数据包。

IP 协议(Internet Protocol)又被称为互联网协议,是支持网间互联的数据包协议,工作在**网际层**,主要目的就是为了提高网络的可扩展性。
#### 举一个实际的例子来说明?

通过**网际协议 IP**,可以把参与互联的,性能各异的网络**看作一个统一的网络**
假设有两个设备 A 和 B 通过互联网通信,A 的 IP 地址是 192.168.1.1,B 的 IP 地址是 203.0.113.5。数据包的传输过程如下:

![虚拟 IP 网](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/nice-article/weixin-mianznxjsjwllsewswztwxxssc-2672de5a-b5de-4f7f-905b-7c4935ca3efb.jpg)
①、设备 A 发送数据包:

和传输层 TCP 相比,IP 协议是一种无连接/不可靠、尽力而为的数据包传输服务,和 TCP 协议一起构成了 TCP/IP 协议的核心。
- 设备 A 创建一个 IP 数据包,设置源地址为 192.168.1.1,目的地址为 203.0.113.5,将要传输的数据放入数据部分。
- 数据包封装后,通过本地网络发送到路由器。

> **IP 协议有哪些作用?**
②、路由器转发数据包:

IP 协议主要有以下几个作用:
- 路由器根据路由表查找目的地址 203.0.113.5,确定数据包的传输路径。
- 数据包可能经过多个中间路由器,每个路由器都根据路由表选择下一跳,最终到达目标设备的网络。

- **寻址和路由**:在 IP 数据报中携带源 IP 地址和目的 IP 地址来表示该数据包的源主机和目标主机。IP 数据报在传输过程中,每个中间节点(IP 网关、路由器)只根据网络地址来进行转发,如果中间节点是路由器,则路由器会根据路由表选择合适的路径。IP 协议根据路由选择协议提供的路由信息对 IP 数据报进行转发,直至目标主机。
- **分段和重组**:IP 数据报在传输过程中可能会经过不同的网络,在不同的网络中数据报的最大长度限制是不同的,IP 协议通过给每个 IP 数据报分配一个标识符以及分段与组装的相关信息,使得数据报在不同的网络中能够被传输,被分段后的 IP 数据报可以独立地在网络中进行转发,在达到目标主机后由目标主机完成重组工作,恢复出原来的 IP 数据报。
③、设备 B 接收数据包:

> **传输层协议和网络层协议有什么区别?**
- 设备 B 接收数据包,读取 IP 头部信息,验证数据包的完整性。
- 并数据部分取出,交给上层协议处理(如 TCP 或 UDP)。

网络层协议负责提供主机间的逻辑通信;传输层协议负责提供进程间的逻辑通信。
> 1. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的华为面经同学 12 暑期实习一面面试原题:说说IP协议.
### 49.IP 地址有哪些分类?

Expand Down

0 comments on commit 31d5672

Please sign in to comment.