计算机网络基础及应用:网络体系结构的形成
发布时间: 2024-01-27 00:37:13 阅读量: 13 订阅数: 11
# 1. 计算机网络基础概述
## 1.1 什么是计算机网络
计算机网络是指利用通信设备和通信技术连接两台或多台计算机,使之能够互相传递数据和共享资源的系统。
## 1.2 计算机网络的发展历程
计算机网络起源于20世纪60年代,经过多年的发展,从最初的局域网发展到了如今的互联网。
## 1.3 计算机网络的基本组成和功能
计算机网络的基本组成包括硬件、协议、拓扑结构等,其功能主要包括数据通信、资源共享、信息检索等。
# 2. 网络体系结构的演变
### 2.1 分散式网络体系结构
在分散式网络体系结构中,网络中的所有节点都是平等的,没有一个节点承担特殊的角色。每个节点可以直接与其他节点通信,实现点对点的连接。这种体系结构在早期的计算机网络中比较常见,例如ARPANET,它采用了分散式的结构。
```python
# 示例代码:分散式网络体系结构的实现
# 定义一个节点类
class Node:
def __init__(self, name):
self.name = name
self.connections = [] # 与其他节点的连接
def add_connection(self, node):
self.connections.append(node)
def send_message(self, message):
for node in self.connections:
node.receive_message(self, message)
def receive_message(self, sender, message):
print(f'{self.name}收到来自{sender.name}的消息:{message} ')
# 创建节点
node1 = Node("节点1")
node2 = Node("节点2")
node3 = Node("节点3")
# 建立连接关系
node1.add_connection(node2)
node1.add_connection(node3)
node2.add_connection(node3)
# 节点1发送消息
node1.send_message("Hello World!")
```
运行结果:
```
节点2收到来自节点1的消息:Hello World!
节点3收到来自节点1的消息:Hello World!
```
### 2.2 中心化网络体系结构
中心化网络体系结构中,存在一个中心节点(服务器),其他节点(客户端)通过中心节点来进行通信。客户端向中心节点发送请求,中心节点进行处理并回复。这种体系结构常见于客户端-服务器模式的应用,如Web服务器。
```java
// 示例代码:中心化网络体系结构的实现
// 定义一个服务器类
class Server {
public void processRequest(String request) {
System.out.println("服务器处理请求:" + request);
}
}
// 定义一个客户端类
class Client {
private Server server;
public Client(Server server) {
this.server = server;
}
public void sendRequest(String request) {
server.processRequest(request);
}
}
// 创建一个服务器实例
Server server = new Server();
// 创建两个客户端实例
Client client1 = new Client(server);
Client client2 = new Client(server);
// 客户端发送请求
client1.sendRequest("Request 1");
client2.sendRequest("Request 2");
```
运行结果:
```
服务器处理请求:Request 1
服务器处理请求:Request 2
```
### 2.3 客户端-服务器网络体系结构
客户端-服务器网络体系结构是一种常见的网络体系结构,客户端发送请求,服务器进行处理并返回结果。客户端可以是一个或多个,服务器可以是一个或多个。
```javascript
// 示例代码:客户端-服务器网络体系结构的实现
// 定义一个服务器类
class Server {
processRequest(request) {
return `服务器处理请求:${request}`;
}
}
// 定义一个客户端类
class Client {
constructor(server) {
this.server = server;
}
sendRequest(request) {
return this.server.processRequest(request);
}
}
// 创建一个服务器实例
const server = new Server();
// 创建两个客户端实例
const client1 = new Client(server);
const client2 = new Client(server);
// 客户端发送请求
console.log(client1.sendRequest("Request 1"));
console.log(client2.sendRequest("Request 2"));
```
运行结果:
```
服务器处理请求:Request 1
服务器处理请求:Request 2
```
### 2.4 对等网络体系结构
对等网络体系结构,也称为P2P网络,每个节点(对等体)既可以作为客户端发送请求,又可以作为服务器响应请求。节点之间可以直接通信,无需通过中心节点。
```python
# 示例代码:对等网络体系结构的实现
# 定义一个节点类
class Node:
def __init__(self, name):
self.name = name
self.connections = [] # 与其他节点的连接
def add_connection(self, node):
self.connections.append(node)
def send_request(self, request):
for node in self.connections:
node.process_request(self, request)
def process_request(self, sender, request):
print(f'{self.name}收到来自{sender.name}的请求:{request} ')
# 创建节点
node1 = Node("节点1")
node2 = Node("节点2")
node3 = Node("节点3")
# 建立连接关系
node1.add_connection(node2)
node1.add_connection(node3)
node2.add_connection(node3)
# 节点1发送请求
node1.send_request("Request 1")
```
运行结果:
```
节点2收到来自节点1的请求:Request 1
节点3收到来自节
```
0
0