当前位置: 首页 > news >正文

计算机网络基础入门

计算机网络基础入门

目录:

  1. 简介
  2. 网络分层模型
  3. 数据封装与解封装
  4. IP地址与子网掩码
  5. 网络协议
  6. 示例代码

1. 简介

计算机网络是指将地理位置不同的多台计算机及外部设备通过通信线路连接起来,实现信息资源共享和信息传递的系统。计算机网络是现代信息社会的基础,涉及到数据通信、网络协议、网络硬件等多个方面。

2. 网络分层模型

计算机网络通常采用分层模型来简化网络设计和管理。常见的分层模型有OSI七层模型和TCP/IP四层模型。

  • OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
  • TCP/IP四层模型:网络接口层、网络层、传输层、应用层

3. 数据封装与解封装

在网络中传输数据时,每层都会对数据进行封装,添加本层的控制信息,然后传递给下一层。接收方则进行相反的操作,称为解封装。

例如,应用层将数据传递给传输层,传输层添加端口号等控制信息后传递给网络层,网络层添加IP地址等控制信息后传递给数据链路层,数据链路层添加MAC地址等控制信息后传递给物理层,物理层将数据转换为电信号或光信号发送到网络上。

4. IP地址与子网掩码

IP地址是网络中设备的标识,由32位二进制数组成,分为A、B、C、D、E五类。子网掩码用于划分网络地址和主机地址,与IP地址结合使用。

例如,IP地址为192.168.1.1,子网掩码为255.255.255.0,表示该设备位于192.168.1.0网络,主机部分为1。

5. 网络协议

网络协议是计算机网络中设备之间进行通信的规则。常见的网络协议有TCP、UDP、HTTP、FTP等。

  • TCP(传输控制协议):面向连接的可靠传输协议,保证数据按顺序传输。
  • UDP(用户数据报协议):无连接的不可靠传输协议,传输速度快但不保证数据按顺序传输。
  • HTTP(超文本传输协议):用于传输网页数据的协议。
  • FTP(文件传输协议):用于传输文件的协议。

6. 示例代码

以下是一个简单的Python代码示例,使用socket库实现TCP客户端和服务器的通信:

服务器端代码:

import socketserver_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 12345))
server_socket.listen(5)print("服务器已启动,等待客户端连接...")client_socket, client_address = server_socket.accept()
print("客户端已连接,地址:", client_address)while True:data = client_socket.recv(1024)print("收到数据:", data.decode())client_socket.sendall(data)

客户端代码:

import socketclient_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 12345))client_socket.sendall(b'Hello, Server!')
data = client_socket.recv(1024)
print("收到回应:", data.decode())client_socket.close()

运行服务器端代码,然后运行客户端代码,可以看到服务器和客户端之间的通信。
文档下载

http://www.lryc.cn/news/388732.html

相关文章:

  • uniApp vue2 vue3配置代理
  • 运维锅总详解RocketMQ
  • 【Linux】使用ntp同步时间
  • 【FedMut】Generalized Federated Learning via Stochastic Mutation
  • 在线教育项目(一):如何防止一个账号多个地方登陆
  • 旋转变压器软件解码simulink仿真
  • LeetCode 1321, 209, 102
  • vant ( weapp ) - - - - - van-tabs组件选中下划线初始位置异常
  • 007 栈(lua)
  • SQL中Order by详解
  • 【git】存在git LFS文件时如何处理
  • 面向阿克曼移动机器人(自行车模型)的LQR(最优二次型调节器)路径跟踪方法
  • 【运维】在 Docker 容器中指定 UTF-8 编码:方法与技巧
  • primetime中cell和net的OCV
  • FlinkX学习
  • 新书速览|解密AI绘画与修图: Stable Diffusion+Photoshop
  • 1111111111111
  • 云原生概念
  • NoSQL之Redis高可用与优化
  • MySQL 常见存储引擎详解(一)
  • Leetcode 股票买卖
  • 小白学习手册:轻松理解MQ消息队列
  • electron线上更新
  • 谈谈检测浏览器类型
  • Django 和 Django REST framework 创建对外 API
  • 数据结构之“刷链表题”
  • 复分析——第9章——椭圆函数导论(E.M. Stein R. Shakarchi)
  • 使用kubeadm安装k8s并部署应用
  • springMVC学习
  • 深入探讨光刻技术:半导体制造的关键工艺