网络通信中可以根据数据发送方式进行多种分类。最常见的分类方式分为:面向有连接型和面向无连接型。
面向有连接型:
在通信传输之前,先打开一个连接。连接被关闭时无法发送数据。
主要有:
- ATM
- 帧中继
- TCP等
在面对有连接型中,发送数据之前。需要在收发主机之间建立一条通信线路。
面向有连接型就好比人们平常打电话,输入完对方号码拔出之后,只有对端拿起电话才能真正通话,通话结束后将电话机扣上就如同切断电源。因此,在面向有连接的方式下,必须在通信传输前后,专门进行建立和断开连接的处理。如果对端之间无法通信,就可以避免发送无谓的数据。
- 在面向有连接型的情况下,发送端的数据不一定要分组发送。TCP使以面向连接的方式分组发送数据的,然而电路交换虽然与属于面向有连接一种方式,但是数据却并不仅限于分组发送。
面向无连接型:
无需确认对端是否存在,发送端可以随时发送数据。
主要包括:
- 以太网
- IP协议
- UDP协议
面向无连接型则不要求建立和断开连接。发送端可于任何时候自由发送数据。反之,接受端也永远不知道自己会在何时从哪里收到数据。因此,在面向无连接的情况,接收端需要时常是否收到了数据。
这就如同人们去邮局寄包裹一样。负责处理邮递业务的营业员,不需要确认收件人的详细地址是否真的存在,也不需要确认收件人是否能收到包裹,只要发件人有一个寄件地址就可以办理邮寄包裹的业务。面向无连接通信与电话通信相同。它不需要拨打电话,挂掉电话之间的处理,而是全凭发送端自由地发送自己想要传输的数据。
因此,在面向无连接的通信中,不需要确认对端是否真的存在。即使接收端不存在或无法接受数据,发送端也能将数据发送出去。
| “连接”这个词在人类社会中,相当于“人脉”的意思。此时,它指熟人或有一定关系的人与人之间的联系。而面向无连接,其实就是指没有任何关系的意思。
| 在棒球和高尔夫比赛中,我们经常听到“要到哪里去得问球!”这其实就是一个典型的面向无连接通信的发送端处理方式。或许有些时候,有些人认为面向无连接方式的通信有点不靠谱,实际上,对于某些特定的情况或设备来说,面向无连接型是一种非常高效率的通信方式,比如视频通话,电视会议中。
电路交换与分组交换:
目前,网络通信方式主要分为两种——电路交换和分组交换。
电路交换技术的历史相对久远,主要用于过去的电话网。
而分组交换技术则是一种较新的通信方式,从20世纪60年代后半叶才开始逐渐使用,TCP/IP技术正是采用了分组交换技术。
- 在电路交换中,交换机主要负责数据的中转处理。计算机首先被连接在叫交换机上,而交换机与交换机之间则由众多通信线路再继续连接。因此,计算机之间在发送数据时,需要通过交换机与目标主机建立通信电路。建立好连接之后,用户就可以一直使用这条电路,直到该连接被断开位置。
- 如果某条电路只是用来连接两台计算机的通信线路,就意味着只需要在这两台计算机之间实现通信,因此这两台计算机是可以独占这条线路进行数据传输的。但是如果这条电路上连接了多台计算机,而这些计算机之间需要相互传递数据,就会出现新的问题。
- 当一台计算机在收发信息时,会独占整个电路,其他计算机就只能等待这台计算机处理结束之后才有机会使用这条电路收发数据。并且在此过程中,谁也无法预测某一台计算机的数据传输从何时开始又从何时结束。如果并发用户数量超过交换机之间的通信线路数量,就意味着通信根本无法实现。
- 于是为了解决这个问题,人们就发明了分组交换。
- 即让连接到通信电路的计算机将所要发送的数据分成多个数据包,按照一定的顺序排列之后分别发送。
- 有了分组交换之后,数据被细分后,所有的计算机就可以一齐收发数据,这样也就提高了通信线路的利用率,由于在分组的过程中,已经在每个分组的首部写入了发送端和接收端的地址,所以即使同一条线路同时为多个用户提供服务买也可以明确区分每个分组数据发送那个一个目的地,以及他是与哪台计算机进行的通信。
分组交换:
在分组交换中,由分组交换机(路由器)连接通信线路。分组交换的的大致过程是:
- 发送端计算机将数据分组发送给路由器
- 路由器收到这些分组数据后,缓存到自己的缓冲区。
- 路由器将根据数据首部的目的地址,转发给目标计算机。
因此,分组交换又有了另一个名字:蓄积交换。
路由器在接收到数据以后会按照顺序缓存到相应的队列当中,再以先进先出的顺序将他们逐一发送出去。【有时候,也会有先发送目的地址比较特殊的数据】
在分组交换中,计算机与路由器之间以及路由器与路由器之间通常只有一条通信线路。因此,这条线路其实是一条共享线路。
在电路交换中,计算机之间的传输速度不变,然而在分组交换之中,通信线路的速度可能有所不同。根据网络拥堵的情况,数据到达目的地址的时间有长有短。另外,路由器的缓存饱和或溢出时,甚至会发生分组数据丢失,无法发送到对端的情况。
根据接收端数量分类:
在网络通信当中,也可也根据目标地址的个数和其后续的行为对通信进行分类。比如,广播,单播等就是这种分类的产物。
单播(Unicast)
指一对一的通信,最早的固定电话就是单播通信的一个例子。
广播(Broadcast)
字面上具有“播放”之意。因此,它是指消息从1太主机发送给与之相连的所有其他主机。广播通信的一个典型例子就是电视播放,它将电视信号一齐发送给非特定的多个接收对象。
此外,电视信号一般都有自己的频段。只有在相应的频段的可接受范围内才能接收到电视信号。与之相似的是进行广播通信的计算机也有它们的广播范围,只有在这个范围之内的计算机才能收到相应的广播消息。这个范围叫做广播域。
多播(Muliticast)
多播与广播类似,也是将消息发送给多个主机。不同之处在于多播要限定某一组主机作为接收端。多播通信对电信的例子就是电视会议,这是由不同的地方参加的一种远程会议。在这种形式下,会由一台主机发送消息给特定的多台主机。电视会议一般不能使用广播型是,否则无法掌握是谁在哪儿参与的电视会议。
任播(Anycast)
任播是指特定的多台主机中选出一台做为接收端的一种通信方式,虽然这个方式与多播有着类似的方式,都是面向特定的一群主机。但是它的行为却与多播不同,任播通信是从目标主机群中选择一台最符合网络条件的主机作为i目标主机发送信息。通常,所被选中的那台特定主机会返回一个单播信号,随后发送端主机知会和这台主机进行通信。
任播在网络中的实际应用有DNS根域名解析服务器。
本文来自博客园,作者:kevin的ICT菜鸟之路,转载请注明原文链接:https://www.cnblogs.com/kevinwen25/articles/17913463.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!