📜  节点和集线器 (1)

📅  最后修改于: 2023-12-03 14:57:10.379000             🧑  作者: Mango

节点和集线器

在计算机网络中,节点和集线器是两个重要的概念。它们是计算机网络中数据通信的基本单元。

节点

一个节点是指连接在网络中并可以进行通信的设备,如计算机、路由器、交换机等。

节点可以是客户端也可以是服务器,它们之间通过网络进行通信。每个节点都有一个唯一的网络地址,用于在网络中进行标识和通信。

节点通过网络互相通信时,需要遵循一定的通信协议和规则,如TCP/IP等。

以下是一个示例代码,展示如何在Python中使用socket库创建一个简单的网络节点:

import socket

# 创建一个TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 绑定到本地地址和端口
server_address = ('localhost', 10000)
sock.bind(server_address)

# 监听连接
sock.listen(1)

while True:
    # 等待连接
    connection, client_address = sock.accept()
    try:
        print('连接来自', client_address)

        # 接收数据
        data = connection.recv(1024)
        print('收到: {!r}'.format(data))

        # 发送数据
        connection.sendall(data)

    finally:
        # 关闭连接
        connection.close()
集线器

集线器是一个物理层设备,用于将多个计算机连接成一个网络。它的作用类似于电线的集线盒,它把不同的电线连接在一起,使其能够电力通信。

集线器主要有两个作用:信号放大和信号转发。当集线器收到信号时,它会将信号放大并通过所有端口发送出去,让所有连接在集线器上的计算机都能够收到这个信号。同时,集线器还会将通过不同端口连接的计算机之间的信号相互转发。

由于集线器只是物理层设备,所以它无法智能地选择转发的目标设备,会占用大量的网络带宽,所以在现代计算机网络中被替代为交换机。

以下是一个示例代码,展示如何在Python中使用socket库创建一个简单的集线器:

import socket

# 创建一个UDP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 绑定到本地地址和端口
server_address = ('localhost', 10000)
sock.bind(server_address)

while True:
    # 接收数据
    data, client_address = sock.recvfrom(1024)
    print('收到: {!r} 来自 {}'.format(data, client_address))

    # 广播数据
    sock.sendto(data, ('<broadcast>', 10000))

以上就是关于节点和集线器的介绍,节点是网络中的数据通信基本单元,集线器是一个物理层设备,用于将多个计算机连接成一个网络。在现代计算机网络中,集线器已被交换机所取代,不再被广泛使用。