面经-TCP/IP网络分层-http/https(应用层)

635 阅读4分钟

TCP-IP-4-model.a534f46f.png

应用层:主要负责提供两个终端设备应用程序之间信息交换服务,定义了信息交换的格式。

应用层定义了网络通信规则,不同的网络应用规则不同。如支持 Web 应用的 HTTP 协议,支持电子邮件的 SMTP 协议等等。

传输层:负责向两台终端设备进程之间的通信提供通用数据传输服务

应用进程利用传输层传输应用层的报文。

2.1 TCP/IP 网络模型有哪几层? | 小林coding (xiaolincoding.com)

image.png

image.png

image.png 网络层:实现数据包在网络之间的传输,是真正实现传输功能的层。 在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在 TCP/IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报,简称数据报。

image.png

image.png

IP 协议的寻址作用是告诉我们去往下一个目的地该朝哪个方向走,路由则是根据「下一个目的地」选择路径。寻址更像在导航,路由更像在操作方向盘

网络接口层:数据链路层和物理层的合体

数据链路层:将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。

网络接口层主要为网络层提供「链路级别」 传输的服务,负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这个层次,使用MAC 地址 来标识网络上的设备。

物理层:实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异

为什么要分层?

这个就好比我们使用框架写一个后端项目 ,往往都会分controller-logic-dao三层,每一层都需要专注一类事情。网络分层也一样,每一层只专注一类事情。。

image.png

HTTP vs HTTPS(应用层)

  • HTTP超文本传输协议,用来规范超文本的传输,超文本,也就是网络上的包括文本在内的各式各样的消息,具体来说,主要是来规范浏览器和服务器端的行为的。HTTP 是一个无状态(stateless)协议,也就是说服务器不维护客户端以前发的消息。

image.png

image.png

HTTP 协议通信过程

image.png

扩展性强、速度快、跨平台支持性好。

HTTPS 协议介绍

  • HTTPS 是基于 HTTP 的,也是用 TCP 作为底层协议,并额外使用 SSL/TLS 协议用作加密和安全认证。默认端口号是 443.

保密性好、信任度高

HTTPS 的核心—SSL/TLS协议

  • 是结合了 SSL/TLS 和 TCP 协议,对通信数据进行加密,解决了 HTTP 数据透明的问题。

  • ssl和tls没什么大的区别,tls是ssl的升级版

SSL/TLS 的工作原理

  • 非对称加密,采用两个密钥——一个公钥,一个私钥。在通信时,私钥仅由解密者保存,公钥由任何一个想与解密者通信的发送者(加密者)所知。。公私钥对的生成算法依赖于单向陷门函数

public-key-cryptography.22f51898.png

  • 但是由于非对称加密的计算成本高,所以在实际应用上用对称加密。 对称加密:通信双方共享唯一密钥 k加解密算法已知,加密方利用密钥 k 加密,解密方利用密钥 k 解密,保密性依赖于密钥 k 的保密性

symmetric-encryption.20454cea.png

那么为什么还需要非对称加密呢?

因为在双方通信前需要商量一个对称密钥,我们知道网络通信的信道是不安全的,传输报文对任何人是可见的,因此,使用非对称加密,对对称加密的密钥进行加密,保护该密钥不在网络信道中被窃听。之后的通信过程使用安全的对称密钥对信息加密。

公钥传输的信赖性

image.png

attack1.48b62b2e.png

为了解决-----证书颁发机构CA,CA 会给各个服务器颁发证书,证书存储在服务器上,并附有 CA 的电子签名防止证书被改造(相当于ca给证书搞了个章)。

  • 当客户端向服务器发送 HTTPS 请求时,一定要先获取目标服务器的证书,并根据证书上的信息,检验证书的合法性。一旦客户端检测到证书非法,就会发生错误。客户端获取了服务器的证书后,由于证书的信任性是由第三方信赖机构认证的,而证书上又包含着服务器的公钥信息,客户端就可以放心的信任证书上的公钥就是目标服务器的公钥

image.png

image.png