学习笔记之TCP/IP协议的传输方式
- 面向有连接型
面向有连接型中,在发送数据之前,需要在收发主机之间连接一条通信线路
面向有连接型就好比人们平常打电话,输入完对方电话号码拨出之后,只有 对端拿起电话才能真正通话,通话结束后将电话机扣上就如同切断电源。因此在 面向有连接的方式下,必须在通信传输前后,专门进行建立和断开连接的处理。如果与对端之间无法通信,就可以避免发送无谓的数据。
- 面向无连接型
面向无连接型则不要求建立和断开连接。发送端可于任何时候自由发送数据,反之,接收端也永远不知道自己会在何时从哪里收到数据。因此,在面向无连接的情况下,接收端需要时常确认是否收到了数据。
这就如同人们去邮局寄包裹一样。负责处理邮递业务的营业员,不需要确认 收件人的详细地址是否真的存在,也不需要确认收件人是否能收到包裹,只要发 件人有一个寄件地址就可以办理邮寄包裹的业务。面向无连接通信与电话通信不同,它不需要拨打电话、挂掉电话之类的处理,而是全凭发送端自由地发送自己想要传递出去的数据。因此,在面向无连接的通信中,不需要确认对端是否存在。即使接收端不存在或无法接收数据,发送端也能将数据发送出去。
目前,网络通信方式大致分为两种一电路交换和分组交换。电路交换技术的历史相对久远,主要用于过去的电话网。而分组交换技术则是一种较新的通信 方式,从20世纪60年代后半叶才开始逐渐被人们认可。本书着力介绍的TCP/ IP,正是采用了分组交换技术。
在电路交换中,交换机主要负责数据的中转处理。计算机首先被连接到交换机 上,而交换机与交换机之间则由众多通信线路再继续连接。因此计算机之间在发送 数据时,需要通过交换机与目标主机建立通信电路。我们将连接电路称为建立连 接。建立好连接以后,用户就可以一直使用这条电路,直到该连接被断开为止。
如果某条电路只是用来连接两台计算机的通信线路,就意味着只需在这两台 计算机之间实现通信,因此这两台计算机是可以独占线路进行数据传输的。但是, 如果一条电路上连接了多台计算机,而这些计算机之间需要相互传递数据,就会 出现新的问题。鉴于一台计算机在收发信息时会独占整个电路,其他计算机只能 等待这台计算机处理结束以后才有机会使用这条电路收发数据。并且在此过程中,谁也无法预测某一台计算机的数据传输从何时开始又在何时结束。如果并发用户数超过交换机之间的通信线路数,就意味着通信根本无法实现。为此,人们想到了一个新的方法,即让连接到通信电路的计算机将所要发送的数据分成多个数据包,按照一定的顺序排列之后分别发送。这就是分组交换。 有了分组交换,数据被细分后,所有的计算机就可以一齐收发数据,这样也就提高了通信线路的利用率。由于在分组的过程中,已经在每个分组的首部写入了发 送端和接收端的地址,所以即使同一条线路同时为多个用户提供服务,也可以明确区分每个分组数据发往的目的地,以及它是与哪台计算机进行的通信。
在分组交换中,由分组交换机(路由器)连接通信线路。分组交换的大致处 理过程是:发送端计算机将数据分组发送给路由器,路由器收到这些分组数据以 后,缓存到自己的缓冲区,然后再转发给目标计算机。因此,分组交换也有另一 个名称:蓄积交换。
路由器接收到数据以后会按照顺序缓存到相应的队列当中,再以先进先出的 顺序将它们逐一发送出去
在分组交换中,计算机与路由器之间以及路由器与路由器之间通常只有一条通信线路。因此,这条线路其实是一条共享线路。在电路交换中,计算机之间的传输速度不变。然而在分组交换中,通信线路的速度可能会有所不同。根据网络拥堵的情况,数据达到目标地址的时间有长有短。另外,路由器的缓存饱和或溢出时,甚至可能会发生分组数据丢失、无法发送到对端的情况。