java面试Java后端开发岗面试中计算机网络相关的常见问题

Posted 棉花糖灬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java面试Java后端开发岗面试中计算机网络相关的常见问题相关的知识,希望对你有一定的参考价值。

1. OSI(开放系统互联)参考模型

  • 物理层:在物理媒体上为数据端设备透明的传输原始比特流。传输单位是比特
  • 数据链路层:成帧、差错控制、流量控制和传输管理。传输单位是帧
  • 网络层:对分组进行路由选择,并进行流量控制、拥塞控制、差错控制和网际互连。传输单位是数据报,即分组
  • 运输层:为端到端的连接提供可靠的传输服务,为端到端连接提供流量控制、差错控制、服务质量、数据传输管理。传输单位是报文段(TCP)或用户数据报(UDP)
  • 会话层:建立同步
  • 表示层:数据压缩、加密、解密、数据的格式转化
  • 应用层:为特定类型的网络应用提供访问OSI环境的手段

2. TCP/IP模型

  • 网络接口层:对应OSI中物理层和数据链路层
  • 网际层:
  • 传输层:
  • 应用层:对应OSI中会话层、表示层和应用层

3. 五层网络模型

也可以分为:物理层、数据链路层、网络层、传输层和应用层。即把TCP/IP模型中的网络接口层分为物理层和数据链路层, 数据链路层又可以分为介质访问控制(MAC)子层和逻辑链路控制(LLC)子层。

5层模型只出现在计算机网络学习教学过程中,既综合了OSI和TCP/IP 体系结构的优点,这样既简洁又能将概念阐述清楚。

4. 网络设备

  • 中继器:又称转发器,原理是信号再生,扩大网络传输距离,不存储,不检错,工作在物理层
  • 集线器:一个多端口的中继器,工作在物理层
  • 网桥:处理对象是帧,存储并转发帧并进行路径选择,可以隔离冲突域,但不能隔离广播域,工作在数据链路层的MAC子层
  • 交换机:多端口的网桥,工作在数据链路层
  • 路由器:完成路由选择和分组转发,可以隔离冲突与和广播域,实现了网络模型的物理层、数据链路层和网络层,工作在网络层
  • 网关:

5. 网络协议

CSMA/CD协议

两种广域网数据链路层控制协议:

PPP(点对点)协议:面向字节

HDLC(高级数据链路控制)协议:面向比特

4. 网络层

IP协议

ARP(地址解析)协议:解决同一局域网上从IP地址到硬件地址的映射问题

DHCP(动态主机配置)协议:给主机动态的分配IP地址,基于UPD

ICMP(网际控制报文)协议:允许主机或路由器报告差错和异常情况,分为ICMP差错报文和ICMP询问报文,可当做IP数据报的数据部分发送

RIP(路由信息)协议:分布式的基于距离向量的路由选择协议

OSPF(开放最短路径优先)协议:

BGP(边界网关)协议:采用的是路径向量路由选择协议,基于TCP

5. 传输层

UDP协议:在IP数据报基础上增加了复用、分用和差错检测,无需建立连接,面向报文的,不可靠传输,首部8字节

TCP协议:面向连接,提供全双工通信,首部20字节

TCP三次握手

  • 客户端的TCP向服务器的TCP发送一个连接请求报文
  • 服务器的TCP收到连接请求报文后,如同意建立连接,就向客户机发回确认,并为该TCP连接分配TCP缓存和变量
  • 客户机收到确认报文段后,还要向服务器给出确认,并且也要给该连接分配缓存和变量

TCP四次挥手

参与TCP连接的两个进程中的任何一个都可以终止该连接

  • 客户机打算关闭连接,就向其TCP发送一个连接释放报文段,并停止再发送数据,主动关闭TCP连接
  • 服务器收到连接释放报文段后发出确认,此时客户端到服务器方向的连接就释放了
  • 若服务器没有要向客户机发送的数据,就通知TCP释放连接,发出连接释放报文段
  • 客户机收到连接释放报文段后,必须发出确认,此时连接全关闭

6. 应用层

FTP(文件传输)协议:允许客户指明文件的类型与格式,并允许文件具有存取权限,基于TCP

SMTP(简单邮件传输)协议:基于TCP

POP3(邮局)协议:邮件读取协议,基于TCP

HTTP(超文本传输)协议:浏览器怎么向万维网请求文档,以及服务器怎么把文档传给浏览器。基于TCP协议

7. 其他

(1) HTTP 与 HTTPS 的区别

HTTP 默认工作在 TCP 协议 80 端口 , HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息 。

HTTPS 默认工作在 TCP 协议443端口, HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。

HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。

(2) http请求的全过程:

1) 浏览器根据域名解析IP地址

  • 浏览器缓存:首先搜索浏览器自身的DNS缓存
  • 系统缓存:再搜索操作系统自身的DNS缓存
  • 路由器缓存:然后向路由器发送查询请求
  • ISP(互联网服务提供商) DNS缓存:最后要查的就是ISP缓存DNS的服务器。

2) 浏览器与WEB服务器建立一个TCP连接

TCP的3次握手

3) 浏览器给WEB服务器发送一个HTTP请求

一个HTTP请求报文由请求行、请求头、空行和请求体4个部分组成

  • 请求行: 请求行分为三个部分:请求方法、请求地址URL和HTTP协议版本,它们之间用空格分割
  • 请求头: 请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔
  • 空行:表示请求头部结束
  • 请求体: 请求数据不在GET方法中使用,而在POST方法中使用。

4) 服务器端响应HTTP请求,浏览器得到html代码

HTTP响应报文由状态行、响应头、空行和响应体4个部分组成。

  • 状态行: 状态行由3部分组成,分别为:协议版本、状态码、状态码扫描。
  • 响应头:
  • 空行:表示响应头部结束
  • 响应体: 用于存放需要返回给客户端的数据信息。

5) 浏览器解析HTML代码,并请求HTML代码中的资源

浏览器拿到HTML文件后,开始解析HTML代码,遇到静态资源时,就向服务器端去请求下载。

6) 关闭TCP连接,浏览器对页面进行渲染呈现给用户

浏览器利用自己内部的工作机制,把请求到的静态资源和HTML代码进行渲染,呈现给用户。

以上是关于java面试Java后端开发岗面试中计算机网络相关的常见问题的主要内容,如果未能解决你的问题,请参考以下文章

java面试Java后端开发岗面试中操作系统相关的常见问题

java面试java后端开发岗面试中数据结构相关的常见问题

Java面试java后端开发岗面试中MySQL数据库相关的常见问题

[ Java面试题 ]Java 开发岗面试知识点解析

Java开发岗面试知识点解析

秋招已经开始准备了!Java面试题最新Java开发岗面试知识笔记