何为网络协议?一图知晓网络过程。

news2025/1/23 7:59:47

图片

网络协议就是计算机之间沟通的语言

为了有效地交流,计算机之间需要一种共同的规则或协议,

就像我们和老外沟通之前,要先商量好用哪种语言,

要么大家都说中文,要么大家都说英语,这才能有效地沟通。

网络协议就是计算机之间的语言,它们有一定的规则,规定了数据是怎么传输的,确保了数据在互联网上的传输是有序、可靠的。

🎢 链路过程

发送端:从下到上(应用层到物理层)。

接收端:从上到下(物理层到应用层)。

OSI参考模型:

OSI(Open System Interconnect),即开放式系统互连。

名称

层次

功能

物理层

1

实现计算机系统与网络间的物理连接

数据链路层 

2

进行数据打包与解包,形成信息帧

网络层

3

提供数据通过的路由

传输层

4

提供传输顺序信息与响应

会话层

5

建立和中止连接

表示层

6

数据转换、确认数据格式

应用层 

7

提供用户程序接口

协议层次

图片

下面这张动图形象地展示了8种流行的网络协议:

图片

图片

一、HTTP(超文本传输协议)

图片

「HTTP协议就像一个邮递员,负责把网页内容送到你的电脑上。」

**协议定义**:超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。

**场景**:当我们使用浏览器访问网页时,浏览器会向服务器发送HTTP请求,请求获取网页内容。服务器接收到请求后,会返回相应的HTML、CSS、JavaScript等文件,浏览器再将这些文件解析并渲染成我们看到的网页。

图片

二、HTTPS(超文本传输协议安全版)

图片

HTTPS协议就像一位保镖,守护着我们的信息安全。无论是在网上银行交易还是在网上购物,保镖都会确保我们的资金和个人信息不会被不法分子窃取。

**协议定义**:HTTPS (全称:Hypertext Transfer Protocol Secure),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。

**场景**:在进行网上银行、网上支付或登录个人账号等敏感操作时,HTTPS协议会保护我们的数据不被窃取或篡改。通过使用加密技术,HTTPS确保数据在传输过程中的机密性和完整性。

图片

三、WebSocket

图片

「WebSocket就像一位实时的接线员,能够让我们与网站进行实时对话。无论是与朋友聊天还是查看股票行情,接线员都会实时传递信息给我们,让我们随时掌握最新动态。

**协议定义**:WebSocket 是独立的、创建在 TCP 上的协议。Websocket 通过HTTP/1.1 协议的101状态码进行握手。为了创建Websocket连接,需要通过浏览器发出请求,之后服务器进行回应,这个过程通常称为“握手”(handshaking)。

**场景**:WebSocket常用于实时聊天、股票行情、在线游戏等需要实时交互的应用中。通过WebSocket,服务器可以实时推送最新的消息或数据给客户端,实现信息的即时更新和交互。

图片

四、TCP(传输控制协议)

图片

TCP就像一位严谨的快递员,他会仔细核对包裹的内容,确保没有遗漏或错误。无论遇到多大的风雨或困难,他都会坚持将包裹安全送达目的地

**协议定义**:传输控制协议(TCP,Transmission Control Protocol)是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议

**场景**:TCP广泛应用于文件传输、电子邮件、网页浏览等场景。无论是下载文件还是发送邮件,TCP都会确保数据能够准确无误地到达目的地。

图片

五、UDP(用户数据报协议)

图片

UDP就像一位粗心的快递员,他送快递的速度很快,但偶尔也会丢件。虽然有些小瑕疵,但在某些场景下,我们更看重的是他的速度和效率。

**协议定义**:UDP是一种无连接的、不可靠的、基于数据报的传输层通信协议。它追求的是传输速度而非可靠性,适用于对实时性要求较高但对数据完整性要求不高的场景。

**场景**:UDP常用于视频流媒体、在线游戏等实时性要求较高的应用中。在这些场景中,即使偶尔丢失一些数据包,也不会对整体体验造成太大影响。

图片

六、SMTP(简单邮件传输协议)

图片

「SMTP就像一位勤劳的邮递员,负责将我们的信件准确无误地送到收件人的信箱里。无论是重要的商务邮件还是温馨的祝福,他都会尽职尽责地完成传递任务。」

**协议定义**:SMTP是一种用于发送电子邮件的协议,它规定了电子邮件在发送过程中的格式和传输方式。

**场景**:当我们使用电子邮件客户端或网页邮箱发送邮件时,SMTP协议会负责将邮件从我们的邮箱传递到收件人的邮箱。

图片

七、FTP(文件传输协议)

图片

「FTP就像一位专业的文件搬运工,他可以帮助我们将文件从一个地方搬运到另一个地方。无论是备份重要文件还是分享资料给同事,他都能高效地完成任务。」

**协议定义**:文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。

**场景**:FTP常用于在不同计算机之间共享文件,比如将文件从本地计算机上传到服务器,或从服务器下载文件到本地计算机。

这些网络协议虽然各自有不同的特点和适用场景,但它们共同构成了互联网的基石。正是有了这些协议的存在,我们才能享受到便捷的在线生活。希望通过本文的介绍,你能对这些网络协议有更深入的了解和认识!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git bash上传文件至github仓库

Linux运维工具-ywtool 目录 一.访问github二.新建仓库1.点击自己头像2.选择"your repositories"3.点击"New"4.创建新仓库 三.通过git bash软件上传文件1.提示2.打开git bash软件3.切换到本地仓库目录4.配置github的用户名和邮箱信息5.生成SSH Key6.github添…

【使用flex两端对齐加margin-right】

解决办法众多&#xff1a;https://cloud.tencent.com/developer/article/1516801 <div class"job_tabs_content"><div class"job_tab_item"></div><div class"job_tab_item"></div><div class"job_tab_i…

c++的学习之路:15、list(2)

本章主要是讲模拟实现list&#xff0c;文章末附上代码。 目录 一、创建思路 二、构造函数 三、迭代器 四、增删 五、代码 一、创建思路 如下方代码&#xff0c;链表是由一块一块不连续的空间组成的&#xff0c;所以这里写了三个模板&#xff0c;一个是节点&#xff0c;一…

Linux IO的奥秘:深入探索数据流动的魔法

Linux I/O&#xff08;输入/输出&#xff09;系统是其核心功能之一&#xff0c;负责处理数据在系统内部及与外界之间的流动。为了优化这一流程&#xff0c;Linux进行了一系列努力和抽象化&#xff0c;以提高效率、灵活性和易用性。&#x1f680; 1. 统一的设备模型 Linux将所…

SpringCloud Alibaba Sentinel 实现熔断功能

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第十六篇&#xff0c;即使用 Sentinel 实现熔断功能。 二、 Ribbon 系列 首先我们新建两个服务的提供者…

2024单品正价起号,直播素材投流选品,【选品课】+【投流课】+【素材课】+【卡首屏】

课程下载&#xff1a;https://download.csdn.net/download/m0_66047725/89064168 更多资源下载&#xff1a;关注我。 课程内容: 01 01 1.如何养账号过风控,mp4 01 1.如何搭建一条计划(1)..mp4 02 1.如何搭建一条计划(2)..mp4 02 02 2.单品起号方案如何选择,mp4 03 2.-比…

Linux -- 字符设备驱动--LED的驱动开发(初级框架)

驱动框架一阶段 我们怎样去点亮一个 LED 呢&#xff1f;分为三步&#xff1a; 看原理图确定引脚&#xff0c;确定引脚输出什么电平才能点亮/熄灭 LED 看主芯片手册&#xff0c;确定寄存器操作方法&#xff1a;哪些寄存器&#xff1f;哪些位&#xff1f;地址是&#xff1f; 编…

每天五分钟掌握深度学习框架pytorch:本专栏说明

专栏大纲 专栏计划更新章节在100章左右&#xff0c;之后还会不断更新&#xff0c;都会配备代码实现。以下是专栏大纲 部分代码实现 代码获取 为了方便用户浏览代码&#xff0c;本专栏将代码同步更新到github中&#xff0c;所有用户可以读完专栏内容和代码解析之后&#xff0c…

go语言实现无头单向链表

什么是无头单向链表 无头单向链表是一种线性数据结构&#xff0c;它的每个元素都是一个节点&#xff0c;每个节点都有一个指向下一个节点的指针。"无头"意味着这个链表没有一个特殊的头节点&#xff0c;链表的第一个节点就是链表的头。 优点&#xff1a; 动态大小&…

三种算法实例(二分查找算法、插入排序算法、贪心算法)

当我们听到“算法”这个词时&#xff0c;很自然地会想到数学。然而实际上&#xff0c;许多算法并不涉及复杂数学&#xff0c;而是更多地依赖基本逻辑&#xff0c;这些逻辑在我们的日常生活中处处可见。 在正式探讨算法之前&#xff0c;有一个有趣的事实值得分享&#xff1a;你…

X64 基础(1)

X64 汇编 生成依赖项->生成自定义 勾选汇编选项 新建ASM文件 .codeaddl proc add rcx,rdx mov rax,rcx retaddl endpend项目类型选择汇编 在头文件中导出 EXTERN_C ULONG64 addl(ULONG64 x, ULONG64 y);然后就可以正常调用了&#xff0c;不能直接内联 X64内存 X64跟…

简析数据安全保护策略中的十个核心要素

数据显示&#xff0c;全球企业组织每年在数据安全防护上投入的资金已经超过千亿美元&#xff0c;但数据安全威胁态势依然严峻&#xff0c;其原因在于企业将更多资源投入到数据安全能力建设时&#xff0c;却忽视了这些工作本身的科学性与合理性。因此&#xff0c;企业在实施数据…

编程杂谈-代码review

目录 1. 关于智商 2. 关于能力 3. 关于changelist 3.1 关于CL内容编写 3.2 关于CL的大小 3.3 处理审稿人的意见 4. 关于代码审查 一个人的编程能力怎么去衡量&#xff1f;特别是在面试中&#xff0c;怎么避免“高分低能儿”、“专业做题家”、“面试造火箭”&#xff0c…

世界客观事物间的关系与面向对象编程中的类关系(day22)

世界客观事物间的关系 1.继承关系 继承是从原有类派生出新的类&#xff0c;原有类称为父类或者基类&#xff0c;派生出新的类称为子类或者派生类。 2.实现关系 接口制定了对象共同遵守的行为规范。一个类可以实现多个接口。 interface IA&#xff1b;interface IB&#xff1b;…

Sundar Pichai 谈巨型公司创新挑战及他今年感到兴奋的事物

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

[数据结构]不带头单向非循环链表

我们有学过&#xff0c;顺序表如何制作&#xff0c;还有一个与其非常相似的结构就是链表的制作&#xff0c;不过链表在数据中的存储不像顺序表一样是按照内存的顺序进行存储的&#xff0c;其在内存中是一块一块的进行存储,具体如何我们可以看看下面这张图 此链表有一个头指针p…

设计模式深度解析:AI大模型下的策略模式与模板方法模式对比解析

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 策略模式与模板方法模式对比解析 文章目录 &#x1f31f;引言&#x1f31f;Part 1:…

css伪类:last-child或:first-child不生效

目录 一、问题 二、原因及解决方法 三、总结 tiips:如嫌繁琐&#xff0c;直接移步总结即可&#xff01; 一、问题 1.想使用伪类:last-child给 for循环出来的最后一个元素单独添加样式。但是发现无论怎么写都没有添加上去。 2.真是奇怪呀&#xff0c;明明写的没有问题呀&a…

解决runCommand只查询到101条数据

最近在开发中使用runCommand查询数据时&#xff0c;发现每次返回的数据量都是101条&#xff0c;而我需要查询的是全部的数据&#xff0c;带着问题&#xff0c;扒了一下runCommand数据查询操作的官方文档&#xff0c;得到了问题的答案。 准备运行环境 MongoClient 这里我是用…

vue+springboot多角色登录

①前端编写 将Homeview修改为manager Manager&#xff1a; <template><div><el-container><!-- 侧边栏 --><el-aside :width"asideWidth" style"min-height: 100vh; background-color: #001529"><div style"h…