【网络】网络通信的传输方式

news2024/9/21 13:01:35

目录

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.电路交换

  •  在电路交换中,交换机主要负责数据的中转处理。
  • 计算机首先被连接到交换机上,而交换机与交换机之间则由众多通信线路再继续连接。
  • 因此计算机之间在发送数据时,需要通过交换机与目标主机建立通信电路。
  • 我们将连接电路称为建立连接。建立好连接以后,用户就可以一直使用这条电路,直到该连接被断开为止。 

        如果某条电路只是用来连接两台计算机的通信线路,就意味着只需在这两台计算机之间实现通信,因此这两台计算机是可以独占线路进行数据传输的。

        但是,如果一条电路上连接了多台计算机,而这些计算机之间需要相互传递数据,就会出现新的问题。

  1. 鉴于一台计算机在收发信息时会独占整个电路,其他计算机只能等待这台计算机处理结束以后才有机会使用这条电路收发数据。
  2. 并且在此过程中,谁也无法预测某一台计算机的数据传输从何时开始又在何时结束。如果并发用户数超过交换机之间的通信线路数,就意味着通信根本无法实现。

为此,人们想到了一个新的方法,即让连接到通信电路的计算机将所要发送的数据分成多个数据包,按照一定的顺序排列之后分别发送。这就是分组交换。有了分组交换,数据被细分后,所有的计算机就可以一齐收发数据,这样也就提高了通信线路的利用率。由于在分组的过程中,已经在每个分组的首部写入了发送端和接收端的地址,所以即使同一条线路同时为多个用户提供服务,也可以明确区分每个分组数据发往的目的地,以及它是与哪台计算机进行的通信。

2.2.分组交换

        在分组交换中,由分组交换机(路由器)连接通信线路。分组交换的大致处理过程是:发送端计算机将数据分组发送给路由器,路由器收到这些分组数据以后,缓存到自己的缓冲区,然后再转发给目标计算机。因此,分组交换也有另一个名称:蓄积交换。

        路由器接收到数据以后会按照顺序缓存到相应的队列当中,再以先进先出的顺序将它们逐一发送出去(有时,也会优先发送目标地址比较特殊的数据。) 。

        在分组交换中,计算机与路由器之间以及路由器与路由器之间通常只有一条通信线路。因此,这条线路其实是一条共享线路。在电路交换中,计算机之间的传输速度不变。然而在分组交换中,通信线路的速度可能会有所不同。根据网络拥堵的情况,数据达到目标地址的时间有长有短。另外,路由器的缓存饱和或溢出时,甚至可能会发生分组数据丢失、无法发送到对端的情况。

  

 

3.根据接收端数量分类

        网络通信当中,也可以根据目标地址的个数及其后续的行为对通信进行分类。如广播、多播等就是这种分类的产物。

单播(Unicast)

        字面上,“Uni”表示“1”,“Cast”意为“投掷”。组合起来就是指1对1通信。早先的固定电话就是单播通信的一个典型例子。

广播(Broadcast)

        字面上具有“播放”之意。因此它指是将消息从1台主机发送给与之相连的所有其他主机。广播通信的一个典型例子就是电视播放,它将电视信号一齐发送给非特定的多个接收对象。

        此外,我们知道电视信号一般都有自己的频段。只有在相应频段的可接收范围内才能收到电视信号。

        与之类似,进行广播通信的计算机也有它们的广播范围。只有在这个范围之内的计算机才能收到相应的广播消息。这个范围叫做广播域。

多播(Multicast)

        多播与广播类似,也是将消息发给多个接收主机。不同之处在于多播要限定某一组主机作为接收端。多播通信 最典型的例子就是电视会议,这是由多组人在不同的地方参加的一种远程会议。在这种形式下,会由一台主机发送消息给特定的多台主机。电视会议通常不能使用广播方式。否则将无从掌握是谁在哪儿参与电视会议。

任播(Anycast)

        任播是指在特定的多台主机中选出一台作为接收端的一种通信方式。虽然,这种方式与多播有相似之处,都是面向特定的一群主机,但是它的行为却与多播不同。任播通信从目标主机群中选择一台最符合网络条件的主机作为目标主机发送消息。通常,所被选中的那台特定主机将返回一个单播信号,随后发送端主机会只跟这台主机进行通信。    

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

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

相关文章

8、值、指针、引用作为参数或返回值

一、作为参数 1、值传递 #include <iostream> using namespace std;void swap(int a, int b) {cout << __FUNCTION__ << "交换前a:" << a << " b:" << b << endl;int tmp a;a b;b tmp;cout << __FUN…

98.游戏的启动与多开-分析与实现多开器

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;易道云信息技术研究院 上一个内容&#xff1a;97.游戏的启动与多开-共享内存多开检测 以 97.游戏的启动与多开-共享内存多开检测 它的…

若依框架开发

若依环境 介绍 ‌若依是一款快速开发平台(低代码)&#xff0c;用于快速构建企业级后台管理系统&#xff0c;它提供了许多常用的功能模块和组件&#xff0c;包括权限管理、代码生成、工作流、消息中心等 官方地址: https://www.ruoyi.vip/ ‌基于Spring Boot和Spring Cloud‌…

vscode配置C/C++环境(保姆级详细教程)

一. 引言 VSCode&#xff0c;全称为Visual Studio Code&#xff0c;是一款由微软开发的免费、开源的轻量级代码编辑器&#xff0c;它支持多种编程语言和平台&#xff0c;并提供丰富的扩展功能&#xff0c;让开发者能够更高效地编写代码。 大家能来搜用如何在VSCode配置C/C环境…

Linxu系统:kill命令

1、命令详解&#xff1a; kill命令是用于向进程发送信号&#xff0c;通常用来终止某个指定PID服务进程&#xff0c;kill命令可以发送不同的信号给目标进程&#xff0c;来实现不同的操作&#xff0c;如果不指定信号&#xff0c;默认会发送 TERM 信号&#xff08;15&#xff09;&…

1. 初识LLM API:环境配置与多轮对话演示

其实AI应用并不是一个什么很高大上的东西&#xff0c;你可以将它当作一个文字的“调库”行为&#xff0c;“调库”只需要知道库名就行了&#xff0c;这里实际也是如此。甚至你只需要知道你想问什么&#xff0c;将你的消息作为输入&#xff0c;就能从大模型得到输出。而这个“库…

CSS学习17--CSS3 过渡、2D变形、3D变形、动画

CSS3 过渡、2D变形、3D变形、动画 一、过渡二、2D变形 transform1.移动 translate2.缩放 scale3. 旋转 rotate4. 倾斜 skew 三、3D变形1. rotateX&#xff08;&#xff09;rotateY&#xff08;&#xff09; rotateZ&#xff08;&#xff09;2. 体会透视 perspective3. translat…

直播电商系统卷轴模式源码开发的发展前景

随着互联网技术的飞速发展和直播电商的日益兴起&#xff0c;直播电商系统已成为数字经济的重要组成部分。其中&#xff0c;卷轴模式作为一种结合了积分奖励和任务兑换机制的商业模式&#xff0c;正逐渐在直播电商领域崭露头角&#xff0c;并展现出广阔的发展前景。本文将从卷轴…

【腾讯云】AI驱动的数据库TDSQL-C如何是从0到1体验电商可视化分析小助手得统计功能,一句话就能输出目标统计图

欢迎来到《小5讲堂》 这是《腾讯云》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 背景效果图流程图创建数据库基本信息数据库配置设置密码控制台开启…

学工控必须知道的变频器字母符号

#变频器##变频器故障##伺服电机##电工##电工#工控人加入PLC工业自动化精英社群 工控人加入PLC工业自动化精英社群

windows软件应该安装在哪里

100%原创动力 文章目录 前言一、安装路径二、数据文件夹1.用户文件夹2.AppData 三、为什么需要管理员权限四、绿色软件 前言 windows软件应该安装在哪里 一、安装路径 windows系统安装软件应该安装在哪里&#xff0c;根据windows规范应该安装在某个盘的 Program Files 目录…

ICP备案办理的流程中股东附件不显示如何解决

ICP备案办理的流程中股东附件不显示如何解决 问题解决方案注意吐槽 问题 问题弹窗&#xff1a; 部分一级股东没有上传证照附件,请检查并上传。 问题内容&#xff1a; 在【股东追溯及其相关证明材料】这一页中无法保存&#xff0c;提示要上传证照附件&#xff0c;但这边找不到任…

dwg2text抽取dwg文件文字不完整分析

libdxfrw项目中dxf2text命令可以抽取dwg文件中的文字部分&#xff0c;编译完工程后对手头上的dwg文件提取时发现抽取不完整&#xff0c;对源码进行分析时发现该命令只处理了text部分&#xff0c;不处理mtext部分 bool dx_iface::printText(const std::string& fileI, dx_da…

Cross-Encoder实现文本匹配(重排序模型)

引言 前面几篇文章都是基于表示型的方法训练BERT进行文本匹配&#xff0c;而本文是以交互型的方法。具体来说&#xff0c;将待匹配的两个句子拼接成一个输入喂给BERT模型&#xff0c;最后让其输出一个相似性得分。 文本匹配系列文章先更新到此&#xff0c;目前为止都是基于监督…

AI大模型行业专题报告:大模型发展迈入爆发期,开启AI新纪元

大规模语言模型&#xff08;Large Language Models&#xff0c;LLM&#xff09;泛指具有超大规模参数或者经过超大规模数据训练所得到的语言模型。与传统语言模型相比&#xff0c;大语言模型的构建过程涉及到更为复杂的训练方法&#xff0c;进而展现出了强大的自然语言理解能力…

网络药理学:1、文章基本思路、推荐参考文献、推荐视频

文章基本思路 选择一味中药或者中药复方&#xff08;常见的都是选择一味中药&#xff0c;如&#xff1a;大黄、银柴胡等&#xff09;&#xff0c;同时选择一个要研究的疾病&#xff08;如食管癌等&#xff09;获得中药的主要化学成分或者说活性成分&#xff08;有时候也以化合…

一款专为网络专业人士设计的多功能扫描工具,支持主机存活探测、端口扫描、服务爆破、漏洞扫描等功能

前言 在网络维护和安全检测中&#xff0c;有效的工具对于提高-效率至关重要。传统的网络扫描工具往往功能单一&#xff0c;需要多个工具配合使用&#xff0c;这不仅增加了工作的复杂度&#xff0c;还可能因为工具间的兼容性问题导致工作效率下降。面对这样的挑战&#xff0c;我…

深度解析 | 二元Logistic回归模型(单因素筛查、软件操作及结果解读)

一、Logistic回归的类型 Logistic回归&#xff08;又称逻辑回归&#xff09;是一种广义的线性回归分析模型&#xff0c;用于研究分类型因变量与自变量之间影响关系。Logistic回归分析根据因变量的不同可分为二元Logistic回归、多分类Logistic回归&#xff0c;有序Logistic回归…

大牛直播SDK最经典的一句

搜索引擎搜大牛直播SDK&#xff0c;居然提示我搜“大牛直播SDK最经典的一句”&#xff0c;闲来无事&#xff0c;点开看看&#xff0c;AI智能问答&#xff0c;给出了答案&#xff1a; ‌大牛直播SDK最经典的一句是&#xff1a;"我们只做最擅长的部分,我们不做的,提供对接接…

《向量数据库指南》——解锁AI新篇章:高效处理非结构化数据的五大策略

在探讨如何有效处理非结构化数据这一AI发展的核心挑战时,我们首先需要深入理解非结构化数据的本质特性及其带来的技术难题,进而探讨当前技术生态中的不足与机遇,并提出一系列专业且可操作的解决方案。 非结构化数据的四大挑战 1. 数量庞大: 非结构化数据,如文本、图像、…