常用网络协议的学习

TCP/IP

TCP/IP的定义

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)是互联网的基本协议,也是国际互联网络的基础。

TCP/IP 不是指一个协议,也不是 TCP 和 IP 这两个协议的合称,而是一个协议族,包括多个网络协议,比如 IP、ICMP(互联网控制报文协议)、TCP、HTTP(超文本传输协议)、FTP(文件传输协议)等。

TCP/IP的分层结构

TCP/IP 协议族按照层次由上到下分成 4 层,分别是应用层传输层网络层(或称网际层)网络接口层(或称数据链路层)

TCP/IP在数据包设计上采用数据封装数据解封的策略,所谓封装就是在应用程序在发送数据的过程中,每一层都增加一些首部信息,这些信息用于和接收端同层次进行沟通。

在主机发送端,从传输层开始会把上一层的数据加上一个报头形成本层的数据,这个过程称为数据封装。在主机接收端,从最下层开始,每一层数据会去掉报头信息,该过程称为数据解封。其过程如下图所示。

TCP/IP协议通过分层的方式进行工作,每个层级负责特定的功能,上层利用下层提供的服务实现数据的传输和交互。

应用层包含了各种应用程序和协议,用于实现具体的网络服务

传输层主要负责端到端的数据传输和可靠性保证。

网络层主要负责数据包的传输和路由选择。它通过路由选择算法来选择最佳路径将数据包从源主机发送到目标主机。

数据链路层下面就是实体线路(比如以太网络、光纤网络等)。数据链路层有以太网、令牌环网等标准,负责网卡设备的驱动、帧同步(就是从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。交换机可以在不同的数据链路层的网络之间(比如十兆以太网和百兆以太网之间、以太网和令牌环网之间)转发数据帧,由于不同数据链路层的帧格式不同,交换机要将进来的数据报拆掉报头重新封装之后再转发。

TCP协议

TCP协议的定义

TCP协议,全称为Transmission Control Protocol,即传输控制协议,是一种面向连接的、可靠的基于字节流传输层通信协议。

TCP协议的使用

应用程序在使用TCP之前,必须先建立TCP连接;在使用完TCP协议后,要断开连接。

TCP协议通过三次握手来建立数据通讯的连接,通过四次挥手来断开数据通讯的连接。

TCP的三次握手

第1次握手:客户端发送一个带有SYN(synchronize)标志的数据包给服务端;
第2次握手:服务端接收成功后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了;
第3次握手:客户端再回传一个带有ACK标志的数据包,表示我知道了,握手结束。

举个例子:

一个男人向一个女人表白,说:我喜欢你,做我女朋友吧!

女人回复说:好啊!我愿意。

男人听到后,说:太好了,我们现在去约会。

TCP的四次挥手

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN 只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据

第1次挥手:客户端发送一个FIN,用来关闭客户端到服务端的数据发送,客户端进入FIN_WAIT_1状态;
第2次挥手:服务端收到FIN后,发送一个ACK给客户端,服务端进入CLOSE_WAIT状态;
第3次挥手:服务端发送一个FIN,用来关闭服务端到客户端的数据发送,服务端进入LAST_ACK状态;
第4次挥手:客户端收到FIN后,客户端t进入TIME_WAIT状态,接着发送一个ACK给服务端服务端进入CLOSED状态,完成四次挥手。

举个例子:

男人对女人说:你性格太差了,我们分手吧!

女人回复:好,等我收拾完东西,我们就分手!

收拾好东西后,女人说:我收拾好了,我们分手吧!

男人说:好,慢走不送。

UDP协议

UDP是一种无连接的、不可靠的传输层协议,它不保证数据传输的可靠性,但是具有传输速度快开销小等特点。UDP协议主要用于需要快速传输数据且对数据的可靠性要求不高的场景,如在线游戏,分布式系统信息的传输(短距离的传输 UDP 的传输的效率是很高的)。


UDP的特点

无连接性:UDP不需要在发送数据之前建立连接,因此发送端和接收端之间没有建立和维护连接的开销。每个UDP数据报都是独立的,不会与其他数据报之间有任何关系。

不可靠:UDP协议不保证数据传输的可靠性,因为它不提供重传机制、异常处理等功能,如果数据在传输过程中出现丢失或错误,UDP协议也不会进行任何处理。

支持广播和多播:UDP协议支持广播和多播,可以将数据同时发送给多个主机。

MQTT协议

MQTT协议是一种基于发布/订阅模式轻量级通讯协议,适合硬件性能较低或网络状况不佳的远程设备。它的优点在于能够以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。该协议构建于TCP/IP协议上。

如下图所示,MQTT协议采用客户端-服务器架构,客户端可以发布消息到特定的主题,而服务器负责将消息路由到订阅了这些主题的客户端。

HTTP协议

HTTP协议:全称为Hyper Text Transfer Protocol(超文本传输协议)。HTTP协议是用于从(WWW:World Wide Web,简称万维网)服务器传输超文本到本地浏览器应用层传输协议。

HTTP协议是基于TCP/IP协议来传递数据的。

HTTP 协议是一个无状态的应用层协议,即不会保存客户端与服务器之间的历史记录,每个请求都是独立的。其主要特点如下:

基于请求响应模式:HTTP 协议采用客户端-服务器架构模式,客户端向服务器发送请求,服务器返回相应的响应。

支持多媒体传输:HTTP 协议可以传输多种类型的数据,如 HTML、XML、JSON、图片、音频、视频等。这使得 HTTP 协议成为一种通用的网络传输协议,适用于各种不同类型的应用场景。

无连接:HTTP 协议是一个无连接协议,每个请求都是独立的,服务器处理请求后立即关闭连接。这样可以节省资源,但也带来了一些缺点,如需要重新建立连接、重复发送相同的头部信息等。

COAP 协议

CoAP(Constrained Application Protocol,受限应用协议)是一种专为物联网(IoT)设备和资源受限网络设计应用层协议。它旨在让小型设备能够接入互联网,因为对于这些设备来说,实现TCP和HTTP协议是一个过高的要求。

CoAP协议是一个应用层协议,基于传输层UDP而开发,而MQTT/HTTP协议则是基于TCP开发的。它采用了与HTTP类似的特征,同时又弥补了UDP传输的不可靠性。但是,CoAP的可靠性主要针对的是单播通信,对于组通信的可靠性保障尚不够完善。对于物联网小型设备而言,CoAP协议是一个极佳的选择,CoAP这种轻量级协议可以很好地适配资源受限的设备和场景。

CoAP的特点

轻量级:CoAP协议的设计非常简单,使用的头部和选项字段较少,占用的网络带宽和资源较少。这使得它非常适合在资源受限的设备和网络中使用。

基于UDP:CoAP通常在UDP上运行,而不是TCP。这使得它更适用于无连接、低延迟和高效率的通信。此外,CoAP还支持对消息的可靠性传输。

低能耗和低带宽消耗:CoAP协议针对资源受限设备和网络进行了优化,具有低能耗和低带宽消耗的特性。

支持IP多播:允许一对多的通信,这对于物联网中的多个设备同时接收更新非常有用。

EDP协议

EDP(Enhanced Device Protocol)是一种专为物联网领域设计的协议,由OneNET平台根据物联网的特点定制。它是一种基于TCP/IP协议栈的完全公开的协议,可以广泛应用于家居、交通、物流、能源以及其他行业应用中。

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

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

相关文章

天津廉租房如何申请取得廉租住房租房补贴资格

如何申请廉租住房租赁补贴资格? 低收入住房困难家庭应当向户籍所在地街道办事处(乡镇人民政府)提出申请。 申请时,您需要提供以下要求的原件和复印件: (一)您及家人的身份证件; &a…

海外代理IP干货:应该选择SOCKS55代理还是Http代理?

在使用IPFoxy全球代理时,选择 SOCKS55代理还是HTTP代理?IPFoxy代理可以SOCKS55、Http协议自主切换,但要怎么选择?为解决这个问题,得充分了解两种代理的工作原理和配置情况。 在这篇文章中,我们会简要介绍 …

每日一类:Qt GUI开发的基石《QWidget》

深入探索QWidget:Qt GUI开发的基石 在Qt框架中,QWidget类扮演着构建图形用户界面(GUI)的基础角色。它不仅提供了窗口的基本功能,还允许开发者通过继承和定制来创建各式各样的用户界面元素。本文将详细介绍QWidget的关…

低功耗运放D722,具有9MHz的高增益带宽积,转换速率为8.5V/μs

D722是低噪声、低电压、低功耗运放,应用广泛。D722具有9MHz的高增益带宽积,转换速率为8.5V/μs,静态电流为1.7mA(5V电源电压)。D722具有低电压、低噪声的特点,并提供轨到轨输出能力,D722的最大输…

vue实现自定义树形穿梭框功能

需求: 我们在开发过程中,会遇到需要将一个数据选择做成穿梭框,但是要求穿梭框左侧为树形结构、右侧为无层级结构的数据展示,ElementUI自身无法在穿梭框中添加树形结构,网上搜到了大佬封装的插件但是对于右侧的无树形结…

Go字符串实战操作大全!

目录 1. 引言文章结构概览 2. Go字符串基础字符串的定义与特性什么是字符串?Go字符串的不可变性原则 字符串的数据结构Go字符串的内部表达byte和rune的简介 3. 字符串操作与应用3.1 操作与应用字符串连接字符串切片字符串查找字符串比较字符串的替换字符串的大小写转…

androidapp开发工具,Android MVP模式详解

**工欲善其事必先利其器,要想拿到满意的offer,必须有一定的准备。**以下列出来的东西是笔者认为应该准备的东西 简历中提到的,一定要有准备,别给自己挖坑Java准备,Java基础,有的公司会扣的很细&#xff0c…

自动驾驶技术详解

🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:自动驾驶技术 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质就是极致重复! 目录 一 自动驾驶视觉感知算法 1目标检测 1.1 两阶…

挑战30天学完Python:Day28 数据库Mysql

🎉 本系列为Python基础学习,原稿来源于 30-Days-Of-Python 英文项目,大奇主要是对其本地化翻译、逐条验证和补充,想通过30天完成正儿八经的系统化实践。此系列适合零基础同学,或仅了解Python一点知识,但又没…

Dsco Dropship EDI需求分析

供应商要想从Dsco处通过EDI获取订单,需要部署自己的EDI系统,与Dsco的EDI供应商CommerceHub 建立连接,分为两个方向: 1.从CommerceHub 的 Dsco 平台获取 EDI 850 采购订单 2.向Dsco发送库存(846)、订单状态…

中仕公考:2024年安徽省直事业单位发布公告

2024年度安徽省直事业单位统一招聘发布公告,具体考试时间如下: 报名时间:2024年3月5日9.00-3月11日18.00 缴费时间:2024年3月13日18.00前 打印准考证时间:2024年3月27日-3月29日 笔试时间:2024年3月30日…

实现前端开发几个常用技巧

如何知道iframe下载完成 定时器轮询监听readyState的状态,如果是 complete 或者 interactive 说明文件加载完成。 常用的全屏居中 JS 函数 JS实现deepCopy 生成星级评分 JS数组扁平化之简单方法实现 toString 优点:简单,方便,对…

大势智慧黄先锋:现实世界数字重建 拥抱AI 擘画自主可控的三维画卷

来源:中国地理信息产业协会 实景三维涉及到大面积、高精度的地理空间信息数据,然而早期国内99%以上的实景三维数据制作测绘单位都基于国外软件进行三维重建,如此重要的工作大量使用国外软件,如何确保国家地理空间信息的安全&#…

MAC M1 安装mongodb7.0.5 版本

1、进入官网 Download MongoDB Community Server | MongoDBDownload MongoDB Community Server non-relational database to take your next big project to a higher level!https://www.mongodb.com/try/download/community 2、选择版本 3、下载后解压 放到 /usr/local 并修改…

C语言的数据存储详解

C语言数据存储 文章目录 C语言数据存储类型的基本归类类型的意义 数据在内存中的存储整形在内存中的存储大小端整形提升和截断 浮点型在内存中的存储浮点型的存储规则E的不同情况 运用 类型的基本归类 有无符号的意义:生活中有写数据是没有符号之分的,将…

DolphinScheduler——蔚来汽车数据治理开发平台的应用改造

目录 一、业务痛点 二、应用现状 三、技术改造 3.1 稳定性 3.1.1 滚动重启黑名单机制精准路由 3.2 易用性 依赖节点优化 补数任务优化 多 SQL 执行 原文大佬的这篇基于调度系统的数据治理案例有借鉴意义,这里摘抄下来用作学习和知识沉淀。 一、业务痛点 蔚…

lazada、速卖通、亚马逊店铺需要补单来稳定出单率吗?

亚马逊、速卖通、Lazada、shoppe、速卖通、敦煌网、Temu、shein、阿里国际、卖家如何保证店铺出单稳定?在竞争激烈的平台上,保持店铺的稳定出单是每个卖家都追求的目标。为了实现这一目标,卖家需要综合考虑产品、运营、客户服务等多个方面的因素&#x…

刘志雄:新产品市场+新智造模式,构建“声音+”产业创新生态 | 演讲嘉宾公布

随着科技的飞速发展,新技术、新的应用场景不断涌现,也影响着“声音”产业未来的发展方向。如何应对市场变化,满足市场的多样化需求?如何应用新产品市场、智造新模式去构造“声音”产业创新生态呢?请到GAS2024一探究竟。…

ElasticSearch之Completion Suggester

写在前面 通过completion suggester可以实现如下的效果: 其实就是做的like xxx%这种。通过FST这种数据结构来存储,实现快速的前缀匹配,并且可以将es所有的数据加载到内存中所以速度completion的查询速度非常快。 需要注意,如果…

2024最新版,Android开发教程入门

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读Android系统源码,还包括各种优秀的开源库。 由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。 深入解析微信 MMKV 源码 初始化获取修改删除读取…