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

图片

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

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

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

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

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

🎢 链路过程

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

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

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.rhkb.cn/news/300656.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM 全景图

今天我重新复习了一下 jvm 的一些知识点。我以前觉得 jvm 的知识点很多很碎,而且记起来很困难,但是今天我重新复习了一下,对这些知识点进行了简单的梳理之后,产生了不一样的看法。虽然 jvm 的知识点很碎,但是如果你真的…

如何自定义项目启动时的图案

说明:有的项目启动时,会在控制台输出下面的图案。本文介绍Spring Boot项目如何自定义项目启动时的图案; 生成字符图案 首先,找到一张需要设置的图片,使用下面的代码,将图片转为字符文件; impo…

动态规划刷题(算法竞赛、蓝桥杯)--线段(线性DP)

1、题目链接&#xff1a;P3842 [TJOI2007] 线段 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include <bits/stdc.h> using namespace std; const int N20010; int a[N][2],f[N][2]; //a[i][0]表示l[i],a[i][1]表示r[i] int dis(int a,int b){return abs(a-b); } int…

基于Swin Transformers的乳腺癌组织病理学图像多分类

乳腺癌的非侵入性诊断程序涉及体检和成像技术&#xff0c;如乳房X光检查、超声检查和磁共振成像。成像程序对于更全面地评估癌症区域和识别癌症亚型的敏感性较低。 CNN表现出固有的归纳偏差&#xff0c;并且对于图像中感兴趣对象的平移、旋转和位置有所不同。因此&#xff0c;…

flutter升级3.10.6Xcode构建报错

flutter sdk 升级Xcode报错收集&#xff0c;错误信息如下&#xff1a; Error (Xcode): Cycle inside Runner; building could produce unreliable results.没问题版本信息&#xff1a; Xcode&#xff1a;15.3 flutter sdk &#xff1a;3.7.12 dart sdk&#xff1a;2.19.6 …

考研||考公||就业||其他?-------愿不再犹豫

大三下了&#xff0c;现在已经开学一个多月了&#xff0c;在上个学期的时候陆陆续续吧周围有的行动早的人已经开始准备考研了&#xff0c;当然这只是下小部分人吧&#xff0c;也有一部分人是寒假可能就开始了&#xff0c;更多的则是开学的时候&#xff0c;我的直观感受是图书馆…

AI大模型下的策略模式与模板方法模式对比解析

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自热榜文章&#xff1a;设计模式深度解析&#xff1a;AI大模型下…

[挖坟]如何安装Shizuku和LSPatch并安装模块(不需要Root,非Magisk)

2023年12月13日&#xff0c;LSPatch 停止维护 2024年1月8日&#xff0c;LSPosed 停止维护 2024年1月8日&#xff0c;ZygiskNext 停止维护 2024年1月9日&#xff0c;KernelSU 停止维护 这里使用 ColorOS 14 演示&#xff0c;其他品牌手机类似 安装 Shizuku 官网: https://shiz…

报修小程序怎么建立?维修服务行业的智能化升级

在这个数字化飞速发展的时代&#xff0c;维修服务行业也在经历着前所未有的变革。消费者对于服务的期待不再局限于传统的电话预约或线下等待&#xff0c;而是希望能够通过更加智能、便捷的途径解决日常生活中的维修问题。在这样的背景下&#xff0c;报修小程序应运而生&#xf…

性能分析-CPU知识

目录 CPU知识 cpu组成 查看cpu信息&#xff1a; top命令中 cpu相关&#xff1a; top命令看到系统负载&#xff1a; CPU负载 IO负载 上下文&#xff1a; CPU的寄存器和程序计数器----在cpu的控制器中 实战演示分析 top命令分析 arthas工具 进程上下文切换高的问题分析…

【MIT6.S081】Lab1: Xv6 and Unix utilities(详细解答版)

实验内容网址&#xff1a;https://xv6.dgs.zone/labs/requirements/lab1.html Sleep 关键点&#xff1a;函数参数判断、系统函数调用 思路&#xff1a; 通过argc来判断函数参数是否正确&#xff0c;通过atoi函数来讲字符串转化为整型&#xff0c;调用sleep函数后退出程序。 代…

OpenAI Sora:浅析文生视频模型Sora以及技术原理简介

一、Sora是什么&#xff1f; Sora官方链接&#xff1a;https://openai.com/sora 视频模型领头羊Runway Gen 2、Pika等AI视频工具&#xff0c;都还在突破几秒内的连贯性&#xff0c;而OpenAI&#xff0c;已经达到了史诗级的纪录。 OpenAI&#xff0c;永远快别人一步&#xff0…

C++的List类(一):List类的基本概念

目录 前言 List类的基本概念 List的构造函数 List类迭代器的使用 List的功能 List的元素访问 List与vector比较 前言 vector的insert和erase都会导致迭代器失效list的insert不会导致迭代器失效&#xff0c;erase会导致迭代器失效 insert导致失效的原因是开辟了新空间后…

【氮化镓】在轨实验研究辐射对GaN器件的影响

【Pioneering evaluation of GaN transistors in geostationary satellites】 摘要&#xff1a; 这篇论文介绍了一项为期6年的空间实验结果&#xff0c;该实验研究了在地球静止轨道上辐射对氮化镓&#xff08;GaN&#xff09;电子元件的影响。实验使用了四个GaN晶体管&#xf…

解决前端精度丢失问题:后端Long类型到前端的处理策略

在Web开发中&#xff0c;我们经常遇到前后端数据类型不匹配的问题&#xff0c;特别是当后端使用大数据类型如Long时&#xff0c;前端由于JavaScript的数字精度限制&#xff0c;可能导致精度丢失。本文将深入探讨这个问题&#xff0c;并提供两种有效的解决方法。 一、问题背景 …

Java: LinkedList的模拟实现

一、双向链表简介 上一篇文章我介绍了单向链表的实现&#xff0c;单向链表的特点是&#xff1a;可以根据上一个节点访问下一个节点&#xff01;但是&#xff0c;它有个缺点&#xff0c;无法通过下一个节点访问上一个节点&#xff01;这也是它称为单向链表的原因。 那么&#x…

Tomcat的安装

Tomcat的网址https://tomcat.apache.org/ 点击进去之后的左边可以选择要下载的版本 可以通过下面的which version来进行确定你当前的jdk版本适配的Tomact版本 点进去之后 我的Tomcat适配8版本 点击Core的ZIP进行下载。 下载之后会给一个压缩文件将其进行解压随 最终呈现出这…

c++20协程详解(四)

前言 到这就是协程的最后一节了。希望能帮到大家 代码 到这里我们整合下之前二、三节的代码 #include <coroutine> #include <functional> #include <chrono> #include <iostream> #include <thread> #include <mutex> #include <me…

配置vscode用于STM32编译,Debug

配置环境参考&#xff1a; Docs 用cubemx配置工程文件&#xff0c;用VScode打开工程文件。 编译的时候会有如下报错&#xff1a; vscode出现process_begin :CreateProcess failed 系统找不到指定文件 解决方案&#xff1a;在你的makefile中加上SHELLcmd.exe就可以了 参考…

nest.js + sms 实现短信验证码登录

文章目录 一、前言1、方案概述 二、教程1、阿里云配置&#xff08;1&#xff09;购买短信服务&#xff08;2&#xff09;、短信测试&#xff08;3&#xff09;、资质申请&#xff08;4&#xff09;、通用设置 2、获取API代码示例3、运行工程代码 一、前言 最近做些网站的时候&…