【快手】电商Java日常实习一面|讲解|0229

今天继续挑选了一位同学的快手一面面经的部分内容进行讲解分析,参考回答和学习资料指引,主要是计算机网络的考察。并且考察的方式并不是简单的八股,部分题目是需要大家有一定的理解才能回答上的,所以也比较有参考意义,期望对大家有所帮助~

这里优先给大家推荐一个系统学习资料,如果大家能把这个资料理解并吃透,面试关于网络方面的问题应该都问不住你!!附上链接,需要的同学自取。 适合系统学习网络协议课

原贴链接

alt 感谢这位同学分享,预祝顺利offer!

开始吧~~~~

1.讲一讲网络分层、每一层的职责是什么?

解析:: 最常见的网络分层模型是OSI模型和TCP/IP模型;OSI模型更完整、更理论化,而TCP/IP模型在实际应用中更为广泛。

参考回答:

  1. 网络接口层(Network Interface Layer)
  • 职责:这一层负责处理与物理网络的接口细节,包括发送和接收数据帧。它对应于OSI模型中的物理层和数据链路层。在这一层,数据的单位称为帧(frame)。
  • 功能:负责接收IP数据报并添加头部和尾部,然后通过网络发送;或者从网络上接收物理数据帧,抽出IP数据报交给网络层。此外,它还负责地址解析(如ARP协议)、错误检测和流量控制。
  1. 网络层(Network Layer)
  • 职责:网络层负责处理数据包在网络中的路由选择,确保数据包能够从源主机传输到目的主机。在这一层,数据的单位称为数据包(packet)。
  • 功能:实现数据包的路由选择和转发,处理拥塞控制,以及为传输层提供端到端的逻辑通信。
  1. 传输层(Transport Layer)
  • 职责:传输层为应用层提供端到端的通信服务,负责数据的可靠传输或不可靠传输。在这一层,数据的单位称为段(segment)。
  • 功能:为应用层进程提供端到端的通信服务,如TCP提供可靠的数据传输服务,而UDP提供不可靠的数据传输服务。传输层还负责流量控制和差错控制。
  1. 应用层(Application Layer)
  • 职责:应用层负责处理特定的应用程序细节,为用户提供网络服务访问的接口。它是直接面向用户的最高层。
  • 功能:包含各种网络协议,如HTTP(用于Web访问)、FTP(用于文件传输)、SMTP(用于电子邮件发送)等。这些协议定义了应用程序之间如何交换数据。

学习指引:

短期突击资料:小林coding|图解网络|网络模型

系统学习资料: 趣谈网络协议学完前两节(01-02)

网络协议课:01-为什么要学习网络协议?

网络协议课:02-网络分层的真实含义是什么?

2.为什么要有应用层,如果没有会怎么样?

解析:: 需要理解应用层作用之后,从多样化,统一标准,处理复杂性上来回答就行。真实的场景,就是把我几个关键字之后,按照自己话来表述就行,不要背。

参考回答:

  1. 无法实现多样化的网络服务:应用层协议如HTTP、FTP、SMTP等,都是为了满足特定的网络需求而设计的。如果没有应用层,用户将无法使用诸如Web浏览、文件传输、电子邮件发送等网络服务。
  2. 缺乏统一的数据交换标准:应用层协议为应用程序之间的数据交换提供了统一的标准。如果没有应用层,各种应用程序将需要自行定义数据交换格式和规则,这将导致混乱和不兼容性,使得不同应用程序之间的数据交换变得困难甚至不可能。
  3. 增加网络开发和维护的复杂性:如果没有应用层,网络开发人员将需要处理更多底层的细节和问题,这将增加开发和维护的复杂性。同时,由于缺乏统一的标准和协议,不同厂商和开发人员之间的协作将变得更加困难。

学习指引:小林 coding|图解网络|应用层

3.传输层的职责是什么,如果没有传输层会怎么样,可以直接通过ip进行通信吗?

解析:: 主要考察传输层和网络层常用协议的理解。

参考回答:

职责:传输层为应用层提供端到端的通信服务,负责数据的可靠传输或不可靠传输。在这一层,数据的单位称为段(segment)。

如果没有传输层会怎么样?

  1. 可靠性问题:没有传输层提供的差错控制和流量控制机制,数据在传输过程中可能会丢失、损坏或乱序到达,导致通信的可靠性大大降低。
  2. 效率问题:没有分段和重组功能,大数据传输可能会受到网络层对数据包大小的限制,导致传输效率低下。
  3. 应用程序复杂性增加:应用程序将需要自行处理数据分段、流量控制、差错控制等底层细节,增加了开发复杂性和维护成本。

可以直接通过ip进行通信吗?

可以直接通过IP进行通信 。但主要用于一些特定的网络诊断和底层协议开发等场景。在正常的网络通信中,我们一般不会直接使用IP进行通信,而是会使用更高层次的传输层协议(如TCP或UDP)。 例如:Ping操作也算是一种通过IP进行的通信。Ping命令主要测试计算机名和计算机的IP地址,验证与远程计算机的连接。它会向计算机发送ICMP(控制消息/错误报文协议)回应数据包,并等待这些数据包的返回时间,以校验与远程计算机或本地计算机的连接情况。在这个过程中,Ping命令直接使用了IP协议进行通信。

学习指引:网络协议课:07-ICMP与ping:投石问路的侦察兵

4.如果只通过ip完成通信,主机可以确定进行通信的是哪个进程吗?

解析:: 不能

参考回答:

如果只通过IP完成通信,主机无法确定进行通信的是哪个进程。因为IP层只负责将数据从源主机路由到目的主机,并不关心数据具体属于哪个进程。确定通信进程的任务是由传输层(如TCP或UDP)来完成的。传输层协议为每个进程分配一个唯一的端口号,通过这个端口号,主机就可以确定数据应该发送给哪个进程。

学习指引:

面试突击: 小林coding|图解网络|网络层+传输层

系统学习: 网络协议课:08-12网络层+传输层

5.讲一下TCP报文头部信息

解析:: 面试计算机网络中,重点知识点!需要理解记忆并口头描述。

参考回答:alt

学习指引:

面试学习: 小林coding|图解网络|TCP 基本认识

系统学习: 网络协议课:11-TCP协议(上):因性恶而复杂,先恶后善反轻松

6.网络层的职责是什么?网络接口层的职责是什么?

解析:

第一题已经回答过了。

参考回答:

  1. 网络接口层(Network Interface Layer)
  • 职责:这一层负责处理与物理网络的接口细节,包括发送和接收数据帧。它对应于OSI模型中的物理层和数据链路层。在这一层,数据的单位称为帧(frame)。
  • 功能:负责接收IP数据报并添加头部和尾部,然后通过网络发送;或者从网络上接收物理数据帧,抽出IP数据报交给网络层。此外,它还负责地址解析(如ARP协议)、错误检测和流量控制。
  1. 网络层(Network Layer)
  • 职责:网络层负责处理数据包在网络中的路由选择,确保数据包能够从源主机传输到目的主机。在这一层,数据的单位称为数据包(packet)。
  • 功能:实现数据包的路由选择和转发,处理拥塞控制,以及为传输层提供端到端的逻辑通信。

学习指引:

面试学习: 小林coding|图解网络|网络层+网络接口层

系统学习: 网络协议课:05-06网络传输层

7.IP寻址和MAC寻址有什么不同?有了MAC地址为什么还要IP地址?

解析:

考察IP与MAC的理解. 可以从他们工作的层级,解决的问题方面来回答。

参考回答:

不同:

  • MAC地址是物理地址,它是网络设备(如网卡、路由器)的唯一标识,具有全球唯一性,并且通常在设备生产时就已经被分配并烧录到硬件中。MAC地址用于在本地局域网内识别网络设备,当设备连接到局域网时,其MAC地址会被用来确保数据能够正确地发送到目标设备。然而,MAC地址并不具备路由功能,也就是说,它无法用于在不同网络之间进行通信。

  • IP地址是用于在网络层(第三层)标识网络中的通信实体,如计算机、服务器等。IP地址具有路由功能,当数据包需要在不同网络之间进行传输时,路由器会根据数据包的目的IP地址来决定如何转发数据包,以确保数据能够从源端传输到目的端。IP地址的分配是基于网络拓扑的,可以根据需要动态地分配给设备,这使得网络通信更加灵活和可扩展。

既然已经有了MAC地址,为什么还需要IP地址呢?

这主要是因为MAC地址虽然可以唯一标识网络设备,但它无法在不同网络之间进行通信。而IP地址则可以实现跨网络的通信,使得位于不同地理位置、使用不同网络技术的设备都能够相互通信。此外,IP地址还可以提供层次化的地址结构,使得网络管理更加便捷和高效

学习指引:

面试学习:IP和 MAC之间的区别和关系

系统学习: 网络协议课:08-世界这么大,我想出网关

8.你对物理层的理解是什么,物理层有什么协议?

解析:

太细了,我觉得了解物理层功能和作用就行了。

参考回答:

物理层:负责在物理媒体上传输原始的二进制数据流。简而言之,物理层就是处理与传输媒体接口的一些特性,包括机械特性(如接口的形状、尺寸、引脚数目和排列等)、电气特性(如电压范围、阻抗等)、功能特性(如规定的电压表示何种意义等)和规程特性(如接口部件的信号时序关系等)

学习指引:: 物理层的理解: 网络协议课:05从物理层到MAC层:如何在宿舍里自己组网玩联机游戏?

9.如何理解TCP的拥塞控制、流量控制,两者有什么区别,分别是为了保护谁的?

解析:: TCP是重点,其中拥塞控制、流量控制也是其核心特性,面试常问

参考回答:

  • 拥塞控制:在网络出现拥堵时,如果继续发送大量数据包,可能会导致数据包时延、丢失等,这时 TCP 就会重传数据,但是一重传就会导致网络的负担更重,于是会导致更大的延迟以及更多的丢包,这个情况就会进入恶性循环被不断地放大。(所以控制的目的就是避免「发送方」的数据填满整个网络。)(保护发送方
  • 流量控制:发送方不能无脑的发数据给接收方,要考虑接收方处理能力。如果一直无脑的发数据给对方,但对方处理不过来,那么就会导致数据丢失,触发重发机制,从而导致网络流量的无端的浪费。(流量控制是避免「发送方」的数据填满「接收方」的缓存)(保护接受方

学习指引:: 面试学习 小林coding|图解网络|流量控制,拥塞控制

系统学习 网络协议课:12-TCP协议(下):西行必定多妖孽,恒心智慧消磨难

本文也是**《热门面经讲解》专栏** 系列文章之一,大家可以点个关注,我会持续更新

#面经##实习##暑期实习##快手##日常实习#
热门面经讲解 文章被收录于专栏

挑选近期热门真实后端面经进行讲解分析,给出:个人分析+参考回答+学习资料指引。

全部评论

相关推荐

18 53 评论
分享
牛客网
牛客企业服务