探索网络模型与协议:从OSI到HTTPs的原理解析

一、OSI网络模型

OSI(Open Systems Interconnection)七层网络参考模型和TCP/IP四层模型都是用于理解和设计计算机网络的框架,但它们之间存在一些差异。

1、七层 vs 四层

OSI七层网络参考模型:

  1. 物理层(Physical Layer):
    • 负责传输比特流,定义物理连接和电气规范。
  1. 数据链路层(Data Link Layer):
    • 提供可靠的数据传输,错误检测和纠正。
  1. 网络层(Network Layer):
    • 负责数据包的路由、转发和寻址。
  1. 传输层(Transport Layer):
    • 提供端到端的通信和数据流控制。
  1. 会话层(Session Layer):
    • 管理和维护会话,确保数据的同步和顺序传输。
  1. 表示层(Presentation Layer):
    • 负责数据格式的转换,确保数据的可读性。
  1. 应用层(Application Layer):
    • 提供网络服务和应用程序接口。

TCP/IP四层模型:

  1. 链路层(Link Layer):
    • 类似于OSI的数据链路层,负责物理网络链路的操作。
  1. 网络层(Internet Layer):
    • 类似于OSI的网络层,负责数据包的路由、转发和寻址。
  1. 传输层(Transport Layer):
    • 同OSI的传输层,提供端到端的通信和数据流控制。
  1. 应用层(Application Layer):
    • 同OSI的应用层,提供网络服务和应用程序接口。

2、关系与比较:

  1. 对应关系:
    • OSI的物理层和数据链路层合并为TCP/IP的链路层。
    • OSI的会话层、表示层和应用层合并为TCP/IP的应用层。
  1. 层次数量:
    • OSI有七个层次,而TCP/IP只有四个层次。
  1. 发展历史:
    • OSI是一个理论上的参考模型,由国际标准化组织(ISO)提出。然而,TCP/IP是实际应用中首先被广泛采用的协议族,其发展始于美国国防部的ARPANET项目。
  1. 广泛应用:
    • 尽管OSI提供了一个理论框架,但TCP/IP在实际应用中更为广泛,成为互联网的基础协议。

二、网络模型与协议

OSI(Open Systems Interconnection)七层网络参考模型是一个标准的理论框架,用于理解和设计计算机网络。每一层都有特定的功能,并且网络协议通常被设计为在这个模型的特定层次上运行。下面是每一层及其与网络协议的关系:

  1. 物理层(Physical Layer):
    • 功能:传输比特流,定义物理连接和电气规范。
    • 协议和设备:以太网(Ethernet)、USB、光纤、网线等。
  1. 数据链路层(Data Link Layer):
    • 功能:提供可靠的数据传输,错误检测和纠正。
    • 协议和设备:MAC地址、PPP(Point-to-Point Protocol)、HDLC(High-Level Data Link Control)等。
  1. 网络层(Network Layer):
    • 功能:负责数据包的路由、转发和寻址。
    • 协议:IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、OSPF(Open Shortest Path First)等。
  1. 传输层(Transport Layer):
    • 功能:提供端到端的通信和数据流控制。
    • 协议:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)等。
  1. 会话层(Session Layer):
    • 功能:管理和维护会话,确保数据的同步和顺序传输。
    • 协议:NetBIOS(Network Basic Input/Output System)等。
  1. 表示层(Presentation Layer):
    • 功能:数据格式的转换,确保数据的可读性。
    • 协议:JPEG、ASCII、SSL/TLS(Secure Sockets Layer/Transport Layer Security)等。
  1. 应用层(Application Layer):
    • 功能:提供网络服务和应用程序接口。
    • 协议:HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)等。

网络协议通常被设计为在特定的OSI层次上运行,每个协议负责执行该层次的功能。例如,TCP和UDP是传输层协议,IP是网络层协议,而HTTP是应用层协议。这种分层结构有助于不同厂商和组织开发和维护独立的技术,从而提高互操作性和可扩展性。

三、Https协议

几个概念

1、文中的使用非对称加密对称密钥就是数字信封技术

2、https通讯全过程

TCP三次握手->建立SSL连接(验证双方证书身份、获取对称密钥)->建立https连接(使用对称密钥加密通讯)

HTTPS(Hypertext Transfer Protocol Secure)是一种用于安全数据传输的通信协议,它基于HTTP,但通过使用TLS(Transport Layer Security)或其前身SSL(Secure Sockets Layer)来加密数据。HTTPS的主要目的是保护网站上的用户数据,如登录信息、支付信息等,免受中间人攻击和窃听。

数字信封技术是一种加密通信的方法,用于确保数据的机密性、完整性和身份认证。它通常与非对称加密算法和数字证书结合使用。以下是数字信封技术的基本原理:

  1. 非对称加密: 在数字信封技术中,通常使用非对称加密算法,如RSA。这种算法涉及到一对密钥:公钥和私钥。公钥用于加密,而私钥用于解密。公钥可以公开分享,但私钥必须保持机密。
  2. 数字证书: 数字信封技术通常需要使用数字证书,这是由可信的证书颁发机构(CA)签发的一种电子证明,用于证明公钥的合法性。数字证书中包含了与特定实体(如网站、服务器或个人)相关联的公钥,同时还包含了CA的数字签名,用于验证证书的真实性。
  3. 数字签名: 数字信封技术使用数字签名来确保数据的完整性。数字签名是通过使用私钥对消息或数据进行加密生成的,然后可以使用公钥进行解密验证。如果数据在传输过程中被篡改,数字签名验证将失败,表明数据不再是原始的。
  4. 加密和解密过程: 发送方使用接收方的公钥来加密消息,形成数字信封。这个数字信封可以被任何人截获,但只有拥有相应私钥的接收方才能解密并读取消息。因为私钥只有接收方知道,所以只有接收方能够解密消息,从而确保了数据的机密性。

3.1、HTTPS单向身份认证

1、https建立连接过程

0)客户端与服务器建立tcp通信,经过三次握手。

1)客户端向服务器发送https请求,基本包括SSL证书版本等信息给服务器端建立连接。

2)服务器端确认SSL证书版本、服务器公钥证书、服务器随机数返回给客户端。

3)客户端校验服务器端证书是否合法(通过CA证书来验证服务器身份)。验证通过就继续下一步,验证不通过警告提示(如浏览器的警告提示)。一般CA证书的验证包括:证书信任链验证、证书有效期验证、证书是否吊销等。

4)客户端发送可支持的对称加密方案到服务器端供其选择。

5)服务器端将选择好的加密方案(算法)以明文方式发给客户端

6)客户端收到采用的加密算法后,产生随机码即预主密钥。

7)客户端把预主密钥使用服务器端的公钥(非对称加密)加密后发送到服务器端。

8)服务器端使用私钥(非对称加密)解密后获得预主密钥,并结合服务器随机数计算出主密钥即对称加密的密钥。

9)双方通过对称加密密钥(主密钥)进行加密通讯。

3.2、HTTPS双向身份认证

1)客户端通过发送Client Hello报文开始SSL通信。报文中包含客户端支持的SSL的指定版本、加密组件列表、所使用的加密算法及密钥长度、随机数Random-A等。

2)服务器可进行SSL通信时,会以Server Hello报文作为应答。和客户端一样,在报文中包含SSL版本以及加密组件(客户端支持中筛选)、服务器生成的随机数Random-B、服务器公钥证书PublicKey-B。

3)客户端校验服务器端证书PublicKey-B是否合法(通过CA证书来验证服务器身份)。验证通过就继续下一步,验证不通过警告提示(如浏览器的警告提示)。一般CA证书的验证包括:证书信任链验证、证书有效期验证、证书是否吊销等。

4)客户端将自己的公钥证书PublicKey-A发送给服务器端,供服务器验证客户端身份。客户端事先也需申请相应的SSL证书。

5)服务器校验客户端证书PublicKey-A是否合法(通过CA证书来验证服务器身份)。验证通过就继续下一步,验证不通过警告提示(如浏览器的警告提示)。一般CA证书的验证包括:证书信任链验证、证书有效期验证、证书是否吊销等。

6)客户端发送可支持的对称加密方案到服务器端供其选择。

7)服务器端将选择好的加密方案(算法)发送给客户端,报文使用客户端公钥PublicKey-A进行非对称加密。

8)客户端使用自己的私钥PrivateKey-A解密报文,并通过Random-A、Random-B推算出Random-C,也就是对称加密的密钥。

9)客户端使用服务器公钥PublicKey-B非对称加密对称密钥Random-C,发送给服务器。

10)服务器使用自己的私钥PrivateKey-B解密报文,解决出对称密钥Random-C。

11)双方完成身份验证,并使用对称密钥Random-C进行加密通讯。

3.3、浏览器Https访问过程

浏览器通过Https访问https://www.baidu.com的全过程可以分为以下几个步骤:

  • 输入网址

用户在浏览器地址栏中输入网址 https://www.baidu.com。

  • DNS解析

浏览器将网址 https://www.baidu.com 发送给本地 DNS 服务器,请求解析域名。

  • 获取IP地址

DNS 服务器将域名 https://www.baidu.com 解析为 IP 地址 14.215.177.39。

  • 建立TCP连接

浏览器使用 IP 地址 14.215.177.39 连接到百度服务器。

  • 发送HTTPS请求

浏览器发送 HTTPS 请求,请求百度服务器返回网页内容。

  • 接收HTTPS响应

百度服务器返回 HTTPS 响应,包含网页内容和证书。

  • 验证证书

浏览器验证证书的有效性。

  • 解析网页内容

浏览器解析网页内容,并显示给用户。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/186377.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

京东数据分析:2023年10月京东彩妆销售大数据采集

鲸参谋监测的京东平台10月份彩妆市场销售数据已出炉! 鲸参谋数据显示,今年10月份,京东平台上彩妆市场的销量将近430万,环比增长约21%,同比下滑约3%;销售额将近5.8亿,环比增长约7%,同…

【数据库篇】关系模式的表示——(1)问题的提出

1、关系模式的表示 R:表示关系的名字比如:sc选课表,student学生表。 U:表示一个关系模式的所有属性,比如student表:U(sno,sname,sage,ssex)。 …

13.docker的网络模式-自定义网络

1. 为什么要使用自定义网络 前面默认的bridge模式,可以实现容器与宿主机,容器与容器之前的互通,但是容器一旦删除,它的ip就会变化,所以并不是很好用。为了解决这个问题,我们当时想了,如果能用容…

经典的回溯算法题leetcode棋盘问题思路代码详解

目录 棋盘问题 leetcode51题.N皇后 对回溯算法感兴趣的朋友也可以多多支持一下我的其他文章。 回溯算法详解-CSDN博客 经典的回溯算法题leetcode组合问题整理及思路代码详解-CSDN博客 经典的回溯算法题leetcode子集问题思路代码详解-CSDN博客 经典的回溯算法题leetcode全…

​LeetCode解法汇总2304. 网格中的最小路径代价

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 描述: 给你一个下…

Tars-GO 开发

默认环境是安装好的 创建服务: tarsgo make App Server Servant GoModuleName Tars 实例的名称,有三个层级,分别是 App(应用)、Server(服务)、Servant(服务者,有时也称 Object&am…

centos 7.9 下利用miniconda里的pyinstaller打包python程序为二进制文件操作方法

centos 7.9 下利用miniconda里的pyinstaller打包python程序为二进制文件操作方法 一.centos 7.9 操作系统安装 参考:https://blog.csdn.net/qq_46015509/article/details/134572030?utm_sourceminiapp_weixin 安装完成后用后台连接工具连上虚拟机 二.安装python3 …

AI动画制作 StableDiffusion

1.brew -v 2.安装爬虫项目包所必需的python和git等系列系统支持部件 brew install cmake protobuf rust python3.10 git wget pod --version brew link --overwrite cocoapods 3.从github网站克隆stable-diffusion-webui爬虫项目包至本地 ssh-add /Users/haijunyan/.ssh/id_rs…

Spring原理——基于xml配置文件创建IOC容器的过程

Spring框架的核心之一是IOC,那么我们是怎么创建出来的Bean呢? 作者进行了简单的总结,希望能对你有所帮助。 IOC的创建并不是通过new而是利用了java的反射机制,利用了newInstance方法进行的创建对象。 首先,我们先定义…

亚马逊云科技re:Invent大会:云计算与生成式AI共筑科技新局面,携手构建未来

随着科技的飞速发展,云计算和生成式 AI 已经成为了推动科技进步的重要力量。这两者相互结合,正在为我们创造一个全新的科技局面。 亚马逊云科技的re:Invent大会再次证明了云计算和生成式AI的强大结合正在塑造科技的新未来。这次大会聚焦了云计算的前沿技…

【阿里云服务器】2023安装宝塔面板8.0.4

文章目录 前言安装宝塔远程链接服务器输入安装宝塔命令放行宝塔端口 一键安装环境附录重装系统Linux系统卸载宝塔方式一方式二 遇见的问题 前言 镜像是CentOS 7.9.4 安装宝塔 远程链接服务器 输入安装宝塔命令 yum install -y wget && wget -O install.sh https://…

计算机毕业设计 基于SpringBoot的无人智慧超市管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解+答疑

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

基于战争策略算法优化概率神经网络PNN的分类预测 - 附代码

基于战争策略算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于战争策略算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于战争策略优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

uniapp视频倍速播放插件,uniapp视频试看插件——sunny-video使用文档

sunny-video视频倍速播放器 组件名:sunny-video 效果图 img1img2img3img4 平台差异说明 目前已应用到APP(安卓、iOS)、微信(小程序、H5)其它平台未测试 安装方式 本组件符合easycom规范,HBuilderX 2.5…

网络安全—自学

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…

LangChain 9 模型Model I/O 聊天提示词ChatPromptTemplate, 少量样本提示词FewShotPrompt

LangChain系列文章 LangChain 实现给动物取名字,LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索I…

【XSLVGL2.0】如何新增一种语言和词条

XSLVGL2.0 开发手册 【XSLVGL2.0】如何新增一种语言和词条 1、概述2、以外置资源的方式增加词条3、以内置资源的方式增加词条4、使用方法1、概述 本文件旨在介绍新增一种语言词条的方法 2、以外置资源的方式增加词条 假设项目需要增加一种英文的词条。一般地,我们采用国际…

关闭vscode打开的本地服务器端口

vscode开了本地的一个端口“8443”当本地服务器端口,然后随手把VScode一关,后来继续做发现8443端口已经被占用了。   原来,即便关闭了编译器VScode,服务器依然是被node.exe运行着的。那这个端口怎么才能关掉呢?   …

浅析linux中的信号

人们往往将信号称为“软件中断”,它提供了异步事件的处理机制,这些事件可以来自系统外部(如用户按下ctrlc产生中断符),也可能来自程序或者内核内部的执行动作(如进程除零操作)。进程收到信号&am…