【Java核心面试宝典】Day16、详解“计算机网络协议层次及服务类型”!✊✊✊

178 阅读6分钟

这是我参与8月更文挑战的第26天,活动详情查看:8月更文挑战

Hello,你好呀,我是灰小猿!一个超会写bug的程序猿! 用坚持缔造技术、用指尖敲动未来! 和很多小伙伴们一样,我也是一名奔波在Java道路上的“创造者”。也想靠技术来改未来,改变世界!因为我们坚信每一次敲动键盘都能让生活变得更智能、世界变得更有趣在此专栏《Java核心面试宝典》记录我们备战梦想的【day 16】

在这里插入图片描述

前一部分和小伙伴分享了很多在Java基础和容器线程等方面的面试题,其中很多都是面试中常见的核心问题,小伙伴们可以一同去学习一下,今天我们来分享在计算机网络方面的面试题,计算机网络部分虽然枯燥且理论性强,但是这丝毫不影响面试官对我们的考察呀。 今天我们的面试题就围绕这下面这个图展开,看一看单这一个图,能从中出多少面试题? 请添加图片描述

1、说一下OSI七层模型?

OSI七层模型从低向上依次是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

2、说一下TCP/IP五层参考模型?

TCP/IP五层模型包括:物理层、数据链路层、网络层、传输层、应用层。 其中应用层对应OSI的上三层,下四层和OSI相同,五层协议的体系结构只是为了介绍网络原理而设计的。实际应用还是四层协议。

3、说一下TCP/IP四层参考模型中每一层的作用?

TCP/IP四层模型包括:网络接口层、网际互连层、传输层。应用层。 这四层的作用分别是: ① 应用层 TCP/IP 模型将 OSI 参考模型中的会话层、表示层和应用层的功能合并到一个应用层实现,通过不同的应用层协议为不同的应用提供服务。例如:FTP、Telnet、DNS、SMTP 等。 ② 传输层 该层对应于 OSI 参考模型的传输层,为上层实体提供源端到对端主机的通信功能。传输层定义了两个主要协议:传输控制协议(TCP)和用户数据报协议(UDP)。其中面向连接的 TCP 协议保证了数据的传输可靠性,面向无连接的 UDP 协议能够实现数据包简单、快速地传输。 ③ 网际互联层 网际互联层对应 OSI 参考模型的网络层,主要负责相同或不同网络中计算机之间的通信。在网际互联层, IP 协议提供的是一个不可靠、无连接的数据报传递服务。该协议实现两个基本功能:寻址和分段。根据数据报报头中的目的地址将数据传送到目的地址,在这个过程中 IP 负责选择传送路线。除了 IP 协议外,该层另外两个主要协议是互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。 ④ 网络接入层 网络接入层的功能对应于 OSI 参考模型中的物理层和数据链路层,它负责监视数据在主机和网络之间的交换。事实上,TCP/IP 并未真正描述这一层的实现,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与 TCP/IP 的网络接入层进行连接,因此具体的实现方法将随着网络类型的不同而有所差异。

4、OSI模型和TCP/IP模型有哪些异同?

相同点:

  1. OSI模型和TCP/IP模型都采用了层次结构
  2. 都能够提供面向连接和无连接的服务机制

不同点:

  1. OSI采用七层模型,TCP/IP是四层结构
  2. TCP/IP 参考模型没有对网络接口层进行细分,只是一些概念性的描述; OSI 参考模型对服务和协议做了明确的区分。
  3. OSI 先有模型,后有协议规范,适合于描述各种网络;TCP/IP是先有协议集然后建立模型,不适用于非 TCP/IP 网络。
  4. TCP/IP 一开始就提出面向连接和无连接服务,而 OSI一开始只强调面向连接服务,直到很晚才开始制定无连接的服务标准。
  5. OSI参考模型虽然被看好,但将网络划分为七层,实现起来较困难;相反,TCP/IP参考模型虽然有许多不尽人意的地方,但作为一种简化的分层结构还是比较成功的。

5、OSI和TCP/IP协议之间的对应关系

OSI和TCP/IP协议之间的对应关系以及他们哪一层中使用什么网络协议都要记清楚! 请添加图片描述

6、分别例举一下在TCP和UDP协议下有哪些常见的传输协议?

有很多协议只支持TCP协议或UDP协议,所以我把这些协议以图表的形式给罗列了出来, 请添加图片描述

7、为什么TCP/IP去除了表示层和会话层?

原因是由于会话层、表示层、应用层都是在程序内部实现的。最终产出的是一个应用数据包,而应用程序之间几乎是无法实现代码的抽象共享的,这也就造成OSI设想中的应用程序维度的分层是无法实现的。例如,我们几乎不会认为数据的压缩、加密算法算是一种协议,而会话的概念则更为抽象,难以用协议来进行描述,所以在后来的 TCP/IP 协议框架的设计中,便将表示层和会话层与应用层整合在一起,让整个过程更为清晰明了。

8、数据如何在各层之间传输【数据的封装过程】?

在发送主机端,一个应用层报文被传送到运输层。在最简单的情况下,运输层收取到报文并附上附加信息,该首部将被接收端的运输层使用。应用层报文和运输层首部信息一道构成了运输层报文段。

附加的信息可能包括:允许接收端运输层向上向适当的应用程序交付报文的信息以及差错检测位信息。该信息让接收端能够判断报文中的比特是否在途中已被改变。运输层则向网络层传递该报文段,网络层增加了如源和目的端系统地址等网络层首部信息,生成了网络层数据报。该数据报接下来被传递给链路层,在数据链路层数据包添加发送端 MAC 地址和接收端 MAC 地址后被封装成数据帧,在物理层数据帧被封装成比特流,之后通过 传输介质传送到对端。

今日总结

今天只是了解了计算机网络的协议层次以及他们的服务类型,我们需要掌握的理论内容比较的多。

如果小伙伴们有遇到其他相关的面试题,欢迎在评论区留言提出,我会把大家提出的总结到文章内`, 欢迎小伙伴们一起评论区打卡学习!小伙伴们可也在左方加我好友一起探讨学习!

我是灰小猿,我们下期见! 请添加图片描述