📌  相关文章
📜  半双工传输模式和全双工传输模式之间的差异(1)

📅  最后修改于: 2023-12-03 15:07:20.139000             🧑  作者: Mango

半双工传输模式和全双工传输模式之间的差异

在计算机网络中,数据的传输方式通常可以分为半双工传输模式和全双工传输模式。这两种模式的主要区别在于数据的传输方向和时间。

半双工传输模式

半双工传输模式,也称为半双工通信,是指数据的传输方向是单向的,并且同一个时间点只能进行发送或接收操作。简单来说,就是一条通信线路只能在某一时刻进行双方向的通信。

在半双工传输模式下,发送方必须等待对方接收完毕后才能继续发送下一段数据,因此传输效率相对较低。应用较多的通信设备如对讲机、广播电台等,都是基于半双工传输模式实现的。

全双工传输模式

全双工传输模式是指数据的传输方向是双向的,两端的设备都能同时发送和接收数据。也就是说,在同一个时间点,数据可以同时在两个方向上传输。

在全双工传输模式下,不同方向的数据流可以同时传输,因此传输效率相对较高。常见的应用如计算机网络和电话系统等都是采用全双工传输模式。

def full_duplex_transmission():
  """
  全双工传输模式
  """
  send_data = 'Hello, World!'
  recv_data = ''

  # 同时进行发送和接收
  while len(recv_data) < len(send_data):
    # 发送数据
    send_chunk = send_data[len(recv_data)]
    send(send_chunk)

    # 接收数据
    recv_chunk = recv()
    recv_data += recv_chunk


def half_duplex_transmission():
  """
  半双工传输模式
  """
  send_data = 'Hello, World!'
  recv_data = ''

  # 先发送数据
  for i in range(len(send_data)):
    send_chunk = send_data[i]
    send(send_chunk)

  # 发送完毕后再接收数据
  while len(recv_data) < len(send_data):
    recv_chunk = recv()
    recv_data += recv_chunk