【网络】网络通信的传输方式
目录
1.网络通信中的两种基本通信模式
1.1.怎么理解连接
1.2.面向有连接类型
1.3.面向无连接类型
2.实现这两种通信模式的具体交换技术
2.1.电路交换
2.2.分组交换
3.根据接收端数量分类
单播(Unicast)
广播(Broadcast)
多播(Multicast)
任播(Anycast)
1.网络通信中的两种基本通信模式
1.1.怎么理解连接
我们怎么理解连接?
在不同的分层协议中,连接的具体含义可能有所不同。
- 在数据链路层中的连接,就是指物理的、通信线路的连接。
- 而传输层则负责创建与管理逻辑上的连接。
在TCP/IP协议栈中,从应用层到数据链路层,每一层都承担着不同的职责,并且连接的含义也随之变化。
以下是对各层连接含义的详细解释:
1. 应用层
- 连接含义:在应用层,连接通常指的是应用程序之间的逻辑连接。这种连接不是物理的,也不是直接的网络连接,而是通过应用层协议(如HTTP、FTP、SMTP等)建立的,用于实现特定应用的数据交换。
- 功能:应用层负责处理特定的应用程序细节,如数据格式、用户认证、会话管理等。它提供了各种网络应用所需的服务,使得用户可以通过网络进行文件传输、网页浏览、电子邮件发送等操作。
- 我们可以这么理解:只要我的应用层和你的应用层不能通信,那么对于应用层来说,我和你的这个连接就没有建立成功
2. 传输层
- 连接含义:在传输层,连接指的是端到端的逻辑连接。这种连接是通过传输层协议(如TCP和UDP)建立的,用于在源端和目的端(所谓端可以理解为进程)之间传输数据。
- TCP(传输控制协议):TCP是一种面向连接的协议,它提供了可靠的数据传输服务。在TCP连接中,通信双方会进行三次握手来建立连接,并在数据传输结束后进行四次挥手来释放连接。TCP通过序列号、确认机制、重传等机制来确保数据的顺序和完整性。
- UDP(用户数据报协议):UDP则是一种无连接的协议,它不提供可靠的数据传输服务。UDP数据包在发送后不会等待接收方的确认,因此不保证数据的顺序和完整性。但是,UDP具有较低的延迟和较高的吞吐量,适用于对实时性要求较高的应用。
- 功能:传输层负责在源端和目的端之间建立、管理和终止会话,提供可靠或不可靠的数据传输服务。
- 我们可以这么理解:只要我的传输层和你的传输层不能通信,那么对于传输层来说,我和你的这个连接就没有建立成功
3. 网络层
- 连接含义:在网络层,连接通常指的是逻辑上的路径选择和数据包转发过程,而不是传统意义上的“连接”。网络层通过IP协议(互联网协议)来实现数据的路由和转发。
- 功能:网络层负责数据的路径选择和逻辑地址寻址。它使用IP地址来标识网络上的设备,并通过路由选择算法来确定数据包的最佳路径。网络层还包含了ICMP(互联网控制消息协议)等协议,用于在互联网设备之间传递控制消息,如路由信息、错误报告等。
- 我们可以这么理解:只要我的网络层和你的网络层不能通信,那么对于网络层来说,我和你的这个连接就没有建立成功
4. 数据链路层
- 连接含义:在数据链路层,连接通常指的是物理链路上的帧传输过程。数据链路层负责在物理网络连接上发送和接收数据帧,确保数据在物理介质上的可靠传输。
- 功能:数据链路层通过封装成帧、差错检测、流量控制等机制来确保数据在物理链路上的正确传输。它还包括了物理地址寻址(如MAC地址)等功能,以便在局域网中正确地识别和传输数据帧。
- 我们可以这么理解:只要我的数据链路层和你的数据链路层不能通信,那么对于数据链路层来说,我和你的这个连接就没有建立成功
综上所述,TCP/IP协议栈中各层的连接含义随着层次的深入而逐渐变化。从应用层的逻辑应用到传输层的端到端连接,再到网络层的路径选择和数据链路层的物理链路传输,每一层都承担着不同的职责,共同实现了数据在网络中的高效传输。
通过网络发送数据,大致可以分为面向有连接与面向无连接两种类型
- 面向无连接型包括以太网、IP、UDP等协议。
- 面向有连接型包括ATM、帧中继、TCP等协议。
1.2.面向有连接类型
面向有连接型中,在发送数据之前,需要在收发主机之间连接一条通信线路(在不同的分层协议中,连接的具体含义可能有所不同。在数据链路层中的连接,就是指物理的、通信线路的连接。而传输层则负责创建与管理逻辑上的连接。) 。
面向有连接型就好比人们平常用手机打电话,输入完对方电话号码点击拨出之后,只有对端拿起电话点击接听之后才能真正通话,通话结束时就点击挂断电话就能结束对话。
因此在面向有连接的方式下,必须在通信传输前后,专门进行建立和断开连接的处理。如果与对端之间无法通信,就可以避免发送无谓的数据。
面向有连接型协议在通信过程中,需要在发送数据之前,在收发主机之间建立一条逻辑或物理的通信线路,并在通信结束后断开这条连接。这种类型的协议通常用于确保数据传输的可靠性和顺序性。
以下是一些常见的面向有连接类型的协议:
传输层协议
- TCP(传输控制协议):TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP连接中,通信双方会进行三次握手来建立连接,并在数据传输结束后进行四次挥手来释放连接。TCP通过序列号、确认机制、重传等机制来确保数据的顺序和完整性。
网络层协议(虽然网络层通常不直接建立逻辑连接,但某些网络层技术可以支持面向连接的服务)
- 在网络层,面向连接的服务通常由特定的网络协议或技术提供,如ATM(异步传输模式)网络中的虚电路(VC)服务。然而,在现代互联网中,网络层主要使用IP协议,它本身是无连接的,但可以通过传输层的TCP协议来提供面向连接的服务。
数据链路层协议(物理连接)
- 在数据链路层,面向连接的服务通常涉及到物理链路的建立和管理。然而,数据链路层协议本身并不直接提供面向连接的逻辑服务,而是为上层协议(如网络层和传输层)提供可靠的物理传输基础。例如,HDLC(高级数据链路控制协议)和PPP(点对点协议)等可以在数据链路层建立和维护物理连接,但它们本身并不提供传输层那样的逻辑连接服务。
需要注意的是,虽然数据链路层协议涉及到物理链路的连接,但面向有连接型的概念在传输层中更为常见和重要。在TCP/IP协议栈中,TCP是主要的面向有连接型传输层协议。
综上所述,面向有连接型的协议主要包括传输层的TCP协议,以及在某些特定网络环境中可能使用的网络层或数据链路层技术(如ATM网络中的虚电路服务)。
在日常应用中,TCP是最常见的面向有连接型协议之一。
1.3.面向无连接类型
面向无连接型则不要求建立和断开连接。发送端可于任何时候自由发送数据。反之,接收端也永远不知道自己会在何时从哪里收到数据。因此,在面向无连接的情况下,接收端需要时常确认是否收到了数据。
这就如同人们去邮局寄包裹一样。负责处理邮递业务的营业员,不需要确认收件人的详细地址是否真的存在,也不需要确认收件人是否能收到包裹,只要发件人有一个寄件地址就可以办理邮寄包裹的业务。面向无连接通信与电话通信不同,它不需要拨打电话、挂掉电话之类的处理,而是全凭发送端自由地发送自己想要传递出去的数据。
因此,在面向无连接的通信中,不需要确认对端是否存在。即使接收端不存在或无法接收数据,发送端也能将数据发送出去。
面向无连接类型的协议在通信过程中,不需要在发送数据之前建立一条明确的通信线路。
这种类型的协议通常将每个数据分组(报文或数据包)独立地发送到网络上,由网络负责将它们传输到目的地。
以下是一些常见的面向无连接类型的协议:
传输层协议
- UDP(用户数据报协议):UDP是传输层的一种面向无连接的协议,它提供了简单的、不可靠的信息传送服务。UDP在发送数据之前不会建立连接,也不会对数据包的到达进行确认。因此,UDP通常用于那些对实时性要求较高,但对数据可靠性要求不高的应用场景,如实时音视频传输、在线游戏等。
网络层协议
- IP(互联网协议):IP协议是网络层的核心协议,它负责将数据报从源主机传输到目的主机。IP协议本身是无连接的,它不对数据包的到达进行确认,也不保证数据包的顺序和完整性。然而,通过结合传输层的TCP或UDP协议,可以在上层实现可靠的数据传输服务。
数据链路层协议(特定场景)
- 在数据链路层,虽然大多数协议(如以太网协议)主要提供面向连接的服务(通过帧的确认和重传机制),但在某些特定场景下,也存在面向无连接的服务。例如,在某些简单的数据链路层协议中,可能只负责将数据包封装成帧并发送到网络上,而不关心数据包的到达和确认。然而,这种情况相对较少见,且通常不是数据链路层的主要功能。
特点与优势
- 简单高效:面向无连接的协议通常具有较低的协议开销和较快的传输速度,因为它们不需要建立和维护连接状态。
- 实时性强:由于不需要等待连接的建立和确认,面向无连接的协议能够更快地响应数据传输请求,适用于对实时性要求较高的应用场景。
- 灵活性强:面向无连接的协议允许数据分组独立地传输到网络上,这使得它们能够灵活地适应不同的网络环境和传输需求。
然而,面向无连接的协议也存在一些缺点,如数据包可能丢失、乱序到达等。因此,在使用这类协议时,需要根据具体的应用场景和需求进行权衡和选择。
2.实现这两种通信模式的具体交换技术
- 网络通信方式大致分为两种——电路交换和分组交换。电路交换技术的历史相对久远,主要用于过去的电话网。
- 而分组交换技术则是一种较新的通信方式,从20世纪60年代后半叶才开始逐渐被人们认可。我们所熟悉的TCP/IP,正是采用了分组交换技术。
2.1.电路交换
- 在电路交换中,交换机主要负责数据的中转处理。
- 计算机首先被连接到交换机上,而交换机与交换机之间则由众多通信线路再继续连接。
- 因此计算机之间在发送数据时,需要通过交换机与目标主机建立通信电路。
- 我们将连接电路称为建立连接。建立好连接以后,用户就可以一直使用这条电路,直到该连接被断开为止。
如果某条电路只是用来连接两台计算机的通信线路,就意味着只需在这两台计算机之间实现通信,因此这两台计算机是可以独占线路进行数据传输的。
但是,如果一条电路上连接了多台计算机,而这些计算机之间需要相互传递数据,就会出现新的问题。
- 鉴于一台计算机在收发信息时会独占整个电路,其他计算机只能等待这台计算机处理结束以后才有机会使用这条电路收发数据。
- 并且在此过程中,谁也无法预测某一台计算机的数据传输从何时开始又在何时结束。如果并发用户数超过交换机之间的通信线路数,就意味着通信根本无法实现。
为此,人们想到了一个新的方法,即让连接到通信电路的计算机将所要发送的数据分成多个数据包,按照一定的顺序排列之后分别发送。这就是分组交换。有了分组交换,数据被细分后,所有的计算机就可以一齐收发数据,这样也就提高了通信线路的利用率。由于在分组的过程中,已经在每个分组的首部写入了发送端和接收端的地址,所以即使同一条线路同时为多个用户提供服务,也可以明确区分每个分组数据发往的目的地,以及它是与哪台计算机进行的通信。
2.2.分组交换
在分组交换中,由分组交换机(路由器)连接通信线路。分组交换的大致处理过程是:发送端计算机将数据分组发送给路由器,路由器收到这些分组数据以后,缓存到自己的缓冲区,然后再转发给目标计算机。因此,分组交换也有另一个名称:蓄积交换。
路由器接收到数据以后会按照顺序缓存到相应的队列当中,再以先进先出的顺序将它们逐一发送出去(有时,也会优先发送目标地址比较特殊的数据。) 。
在分组交换中,计算机与路由器之间以及路由器与路由器之间通常只有一条通信线路。因此,这条线路其实是一条共享线路。在电路交换中,计算机之间的传输速度不变。然而在分组交换中,通信线路的速度可能会有所不同。根据网络拥堵的情况,数据达到目标地址的时间有长有短。另外,路由器的缓存饱和或溢出时,甚至可能会发生分组数据丢失、无法发送到对端的情况。
3.根据接收端数量分类
网络通信当中,也可以根据目标地址的个数及其后续的行为对通信进行分类。如广播、多播等就是这种分类的产物。
单播(Unicast)
字面上,“Uni”表示“1”,“Cast”意为“投掷”。组合起来就是指1对1通信。早先的固定电话就是单播通信的一个典型例子。
广播(Broadcast)
字面上具有“播放”之意。因此它指是将消息从1台主机发送给与之相连的所有其他主机。广播通信的一个典型例子就是电视播放,它将电视信号一齐发送给非特定的多个接收对象。
此外,我们知道电视信号一般都有自己的频段。只有在相应频段的可接收范围内才能收到电视信号。
与之类似,进行广播通信的计算机也有它们的广播范围。只有在这个范围之内的计算机才能收到相应的广播消息。这个范围叫做广播域。
多播(Multicast)
多播与广播类似,也是将消息发给多个接收主机。不同之处在于多播要限定某一组主机作为接收端。多播通信 最典型的例子就是电视会议,这是由多组人在不同的地方参加的一种远程会议。在这种形式下,会由一台主机发送消息给特定的多台主机。电视会议通常不能使用广播方式。否则将无从掌握是谁在哪儿参与电视会议。
任播(Anycast)
任播是指在特定的多台主机中选出一台作为接收端的一种通信方式。虽然,这种方式与多播有相似之处,都是面向特定的一群主机,但是它的行为却与多播不同。任播通信从目标主机群中选择一台最符合网络条件的主机作为目标主机发送消息。通常,所被选中的那台特定主机将返回一个单播信号,随后发送端主机会只跟这台主机进行通信。
相关文章:

【网络】网络通信的传输方式
目录 1.网络通信中的两种基本通信模式 1.1.怎么理解连接 1.2.面向有连接类型 1.3.面向无连接类型 2.实现这两种通信模式的具体交换技术 2.1.电路交换 2.2.分组交换 3.根据接收端数量分类 单播(Unicast) 广播(Broadcast) …...

数据仓库理论知识
1、数据仓库的概念 数据仓库(英文:Date Warehouse,简称数仓、DW),是一个用于数据存储、分析、报告的数据系统。数据仓库的建设目的是面向分析的集成化数据环境,其数据来源于不同的外部系统&#…...

容易中、见刊快的6本医学期刊推荐!
常笑医学整理了6本容易中、见刊快的医学期刊,以及期刊详细参数与投稿经验,供医生、医学生们在论文投稿时参考。投稿经历均来自常笑医学网用户真实分享,欢迎大家到常笑医学网分享自己的投稿经历和实用经验。 1.《中国医药科学》 (详…...

nnunetv2系列:使用默认的预测类推理2D数据
nnunetv2系列:使用默认的预测类推理2D数据 这里参考源代码nnUNet/nnunetv2/inference/predict_from_raw_data.py中给的示例进行调整和测试。 代码示例 from torch import device from nnunetv2.inference.predict_from_raw_data import nnUNetPredictor# from nn…...

伺服电机如何计算扭矩——看这一篇就够了
#零基础学工控##西门子PLC##V90##电机##工控分享##自动化#工控人加入PLC工业自动化精英社群 工控人加入PLC工业自动化精英社群...

数据库C语言删除修改和输出
#include<myhead.h> #include<sqlite3.h> int out_callback(void *arg,int column_num, char **msgrow,char **msgcolumn)//输出查找的工人信息 { int i 0, j 0; while(i<column_num) { printf("%s\t" ,*(msgcolumni)); …...

插槽slot
一、简介: 插槽是 Vue 组件化开发中非常强大且灵活的工具,它使得组件的复用性和可定制性大大提高。通过合理地使用不同类型的插槽,可以构建出更加灵活和可维护的 Vue 应用程序。 二、使用场景 可重用组件的定制化 比如一个通用的弹窗组件&am…...

交换技术是一种在计算机网络和通信系统中广泛应用的关键技术,它主要通过交换设备(如交换机、路由器等)实现数据的转发和传输
交换技术是一种在计算机网络和通信系统中广泛应用的关键技术,它主要通过交换设备(如交换机、路由器等)实现数据的转发和传输。交换技术的核心目的是在不同的设备之间高效地传输数据,实现信息的互联互通。 一、交换技术的定义 交换…...

数仓建模:数仓设计中的10个陷阱
目录 0 引言 1 主要内容 1.1 过于迷恋技术,而没有将重点放在业务需求和目标上 1.2 没有或无法找到一个有影响的、平易近人的、明白事理的高级管理人员作为数仓建设的发起人 1.3 将项目处理为一个巨大的持续多年的项目,而不是追求更容易管理的、虽然…...

Vue如何将网页转换成图片或PDF并上传
一.使用html2canvas获取页面元素并绘制成图片 htmlcanvas中文文档 npm install --save html2canvas<template><div><button click"uploadImg">上传</button><div ref"yourDom"><!-- ...图片中页面内容 --><img s…...

【引领数据分析革命】TaskWeaver框架全景解读与入门指南!
亲爱的技术爱好者们,我是你们的老朋友—— 一个热爱.NET和AI相关技术的博主,在今天这个信息与数据爆炸的时代,我们始终寻求着处理数据分析任务的更优雅、更高效的方式。Microsoft团队推出了一个叫做TaskWeaver的神器,这可不仅仅是…...

LabVIEW灵活集成与调试的方法
在LabVIEW开发中,为了构建一个既便于调试又能灵活集成到主VI中的控制VI,开发者需要采用适当的编程方式和架构。常见的选择包括模块化设计、状态机架构以及事件驱动编程。这些方法有助于简化调试过程、提高系统的稳定性,并确保代码的重用性和可…...

网络药理学:分子对接之二:PDB数据库的使用(已知PDB ID)、PubChem数据库如果没有3D结构
PDB数据库使用 官方地址:https://www.rcsb.org/ 首页如下: 我们以热休克蛋白HSP90AA1为例,其PDB ID为7DHG,所以我们在搜索栏输入7DHG: 主要关注红框里的几个地方。 Download 下载文件,一般选择PDB For…...

JS获取页面中video标签视频的封面和时长
从HTML中提取Video信息 /*** 从html字符串中提取video标签* 入参: {String} htmlString* 出参:{Array} 数组*/ function extractVideosFromHTML(htmlString) {const dom new DOMParser().parseFromString(htmlString, text/html);const videos Arr…...

LLM大模型学习:AI Agent综述
AI Agent是什么 将LLM思想链接到一起,自主实现用户设定的任何目标。只需要告诉AutoGPT一个目标,能自主生成执行计划。 吴恩达:“与其争论哪些工作才算是真正的 Agent,不如承认系统可以具有不同程度的 Agentic 特性。” 核心在于…...

极米科技:走出舒适圈,推动数据架构现代化升级 | OceanBase 《DB大咖说》
《DB 大咖说》第 13 期,邀请到了极米科技软件与创新产品线高级架构师施刘凡来进行分享。 在小红书平台上,“是否应将家里的电视升级为投影仪?”这一话题激发了上百万篇笔记的分享与推荐,反映出年轻群体对投影仪的偏好。随着手机、…...

IP学习——Fiveday
设备排错 [R1]display ip interface brief 查看路由器接口的IP地址信息 [R1]display current-configuration int g0/0/1.10 查看路由器接口的IP地址信息 TG---> trunk查看vlan指令:displayvan其中UT--->accessc.vlan确认完成后 即链路层配置完成排查网络层错误 排查终端主…...

格式化的硬盘能恢复数据吗?拯救数据的可能性
在信息技术高速发展的今天,硬盘作为计算机的核心存储部件,承载着大量的数据和文件。然而,有时因为误操作或其他原因,我们可能需要对硬盘进行格式化,这往往导致重要数据的丢失。 那么,格式化后的硬盘数据是否…...

亚信安全出席第五届国际反病毒大会 探究AI现代网络勒索治理
近日,第二届网络空间安全(天津)论坛正式开幕。本届论坛由天津市政府主办,国家计算机病毒应急处理中心、天津市公安局、天津市滨海新区政府承办,国家网络与信息安全信息通报中心协办,围绕“共建网络安全 共治…...

C语言从头学58——学习头文件math.h(一)
math.h 头文件提供了很多数学计算方面的函数。 一、使用数学函数前需要了解的两个类型、两个宏 1、float_t:当前系统能够有效执行float运算的类型,宽度不少于float。 2、double_t:当前系统能够有效执行double运算的类型,宽度不…...

前端JS常见面试题
数据双向绑定 Bug解决 集成工作涉及 版本node 依赖包报错 版本问题!!!ElementUI、Cesium、ant-design 配置、代码和其他 混入 在Vue中,混入(Mixins)是一种非常有用的功能,它允许你创建可复…...

利用深度学习实现验证码识别-4-ResNet18+imagecaptcha
在当今的数字化世界中,验证码(CAPTCHA)是保护网站免受自动化攻击的重要工具。然而,对于用户来说,验证码有时可能会成为一种烦恼。为了解决这个问题,我们可以利用深度学习技术来自动识别验证码,从…...

IDC基础学习笔记
一、数据中心介绍 1、数据中心级别划分: 2、数据中心结构: 3、IT系统组成 二、数据中心硬件知识 1、服务器组件 服务器的正面接口: 服务器的反面接口: (1)CPU CPU定义:中央处理器(…...

Mysql基础练习题 1527.患某种疾病的患者 (力扣)
查询患有 I 类糖尿病的患者 ID (patient_id)、患者姓名(patient_name)以及其患有的所有疾病代码(conditions)。I 类糖尿病的代码总是包含前缀 DIAB1 。 题目链接: https://leetcode.cn/proble…...

Mysql链接异常 | [08001] Public Key Retrieval is not allowed
Datagrid报错 [08001] Public Key Retrieval is not allowed 这个错误通常是由于 MySQL 8.0 中的新特性导致的。默认情况下,MySQL 8.0 使用 caching_sha2_password 作为认证插件,而你需要在连接 URL 中明确允许公钥检索或者使用老版本的认证方式 mysql…...

vue3项目中如何动态循环设置ref并获取使用
前言:vue2可通过ref来获取当前的dom,但是vue3有个问题,就是必须定义ref的变量名,才能使用;倘若有多个ref,一个个去定义未免过于繁琐,还有一种情况就是dom是使用v-for循环出来的,那么…...

stm32之SPI通信协议
文章目录 前言一、SPI通信协议1.1 SPI简介1.2 SPI通信特点1.3 SPI与I2C对比 二、SPI硬件电路三、SPI通信原理四、SPI时序单元4.1 起始和终止条件4.2 交换一个字节(模式1)4.3 交换一个字节(模式0)4.4 交换一个字节(模式2和3) 五、SPI时序5.1 发送指令5.2 指定地址写5.3 指定地址…...

Unity 摄像机(Camera)详解
文章目录 0.前言1.相机属性介绍2.Unity 中多个相机画面堆叠显示2.1 3D 摄像机2.2 UI 摄像机2.3 摄像机的Culling Mask设置 0.前言 本文介绍的是使用Unity默认的内置渲染管线下的Camera组件,使用URP或HDRP则不同。 1.相机属性介绍 Clear Flags: 清除标记…...

数学基础 -- 线性代数之LU分解
LU分解 LU分解(LU Decomposition)是线性代数中非常重要的一种矩阵分解方法。它将一个方阵分解为一个下三角矩阵(L矩阵)和一个上三角矩阵(U矩阵)的乘积。在数值线性代数中,LU分解广泛用于求解线…...

高职人工智能训练师边缘计算实训室解决方案
一、引言 随着物联网(IoT)、大数据、人工智能(AI)等技术的飞速发展,计算需求日益复杂和多样化。传统的云计算模式虽在一定程度上满足了这些需求,但在处理海量数据、保障实时性与安全性、提升计算效率等方面…...