第101集:网络基础概念
学习目标
- 理解计算机网络的基本概念和作用
- 掌握TCP/IP协议族的核心组成
- 了解IP地址和端口的概念及分类
- 理解OSI七层模型和TCP/IP四层模型
- 熟悉常见的网络协议及其应用场景
- 掌握客户端-服务器模型的基本原理
一、计算机网络概述
1.1 什么是计算机网络
计算机网络是指将分布在不同地理位置的多台计算机及外部设备,通过通信线路和网络设备连接起来,实现资源共享和信息传递的系统。
1.2 网络的主要功能
- 资源共享:共享硬件(如打印机)、软件(如应用程序)和数据(如数据库)
- 信息传递:实现计算机之间的数据传输和通信
- 分布式处理:将任务分配给多台计算机协同完成
- 提高可靠性:通过冗余设计提高系统的可靠性
- 负载均衡:将工作负载分配到多台计算机上
二、网络模型
2.1 OSI七层参考模型
OSI(Open Systems Interconnection)七层模型是国际标准化组织(ISO)提出的网络通信参考模型,从下到上分为七层:
| 层次 | 名称 | 主要功能 | 典型协议 |
|---|---|---|---|
| 7 | 应用层 | 为应用程序提供服务 | HTTP, FTP, SMTP, DNS |
| 6 | 表示层 | 数据格式转换、加密解密 | JPEG, MP3, SSL/TLS |
| 5 | 会话层 | 建立、维护和终止会话 | NetBIOS, RPC |
| 4 | 传输层 | 端到端的数据传输控制 | TCP, UDP |
| 3 | 网络层 | 路径选择和数据包转发 | IP, ICMP, ARP |
| 2 | 数据链路层 | 物理地址寻址和差错检测 | Ethernet, Wi-Fi |
| 1 | 物理层 | 物理连接和比特流传输 | 网线, 光纤, 无线电波 |
2.2 TCP/IP四层模型
TCP/IP协议族是实际应用中最广泛的网络协议,它将OSI七层模型简化为四层:
| 层次 | 名称 | 对应OSI层次 | 主要功能 |
|---|---|---|---|
| 4 | 应用层 | 应用层、表示层、会话层 | 为应用程序提供网络服务 |
| 3 | 传输层 | 传输层 | 端到端的数据传输控制 |
| 2 | 网络层 | 网络层 | 路径选择和数据包转发 |
| 1 | 网络接口层 | 数据链路层、物理层 | 物理连接和数据帧传输 |
三、TCP/IP协议族
TCP/IP协议族是一系列网络协议的集合,核心协议包括:
3.1 IP协议(Internet Protocol)
- 功能:负责将数据包从源主机发送到目标主机
- 特点:无连接、不可靠、尽最大努力交付
- 版本:IPv4(32位地址)和IPv6(128位地址)
3.2 TCP协议(Transmission Control Protocol)
- 功能:提供可靠的、面向连接的数据流传输服务
- 特点:面向连接、可靠传输、流量控制、拥塞控制
- 核心机制:三次握手建立连接、四次挥手关闭连接、确认重传机制
3.3 UDP协议(User Datagram Protocol)
- 功能:提供无连接的、不可靠的数据报传输服务
- 特点:无连接、不可靠、低延迟、开销小
- 应用场景:实时音视频传输、在线游戏、DNS查询
四、IP地址与端口
4.1 IP地址
IP地址是网络中计算机的唯一标识,用于确定网络中的设备位置。
IPv4地址
- 32位二进制数,通常表示为点分十进制格式(如192.168.1.1)
- 分为网络部分和主机部分,由子网掩码决定
- 分类:
- A类地址:1.0.0.0 - 126.255.255.255,默认子网掩码255.0.0.0
- B类地址:128.0.0.0 - 191.255.255.255,默认子网掩码255.255.0.0
- C类地址:192.0.0.0 - 223.255.255.255,默认子网掩码255.255.255.0
- D类地址:224.0.0.0 - 239.255.255.255(组播地址)
- E类地址:240.0.0.0 - 255.255.255.255(保留地址)
IPv6地址
- 128位二进制数,通常表示为8组十六进制数(如2001:0db8:85a3:0000:0000:8a2e:0370:7334)
- 支持自动配置和更高级的安全性
4.2 端口
端口是应用程序在主机上的唯一标识,用于区分同一主机上的不同应用程序。
- 范围:0 - 65535
- 分类:
- 公认端口(0 - 1023):由IANA分配,如HTTP(80)、HTTPS(443)、FTP(21)
- 注册端口(1024 - 49151):可由应用程序注册使用
- 动态端口(49152 - 65535):临时使用的端口
五、常见网络协议
5.1 HTTP/HTTPS
- HTTP(HyperText Transfer Protocol):超文本传输协议,用于传输网页内容
- HTTPS(HTTP Secure):安全的HTTP,通过SSL/TLS加密通信
- 端口:HTTP使用80端口,HTTPS使用443端口
5.2 DNS
- DNS(Domain Name System):域名系统,将域名解析为IP地址
- 端口:53端口
- 作用:方便用户记忆和访问网站,如将www.baidu.com解析为180.101.49.11
5.3 FTP
- FTP(File Transfer Protocol):文件传输协议,用于在网络上传输文件
- 端口:21端口(控制连接)和20端口(数据连接)
5.4 SMTP/POP3/IMAP
- SMTP(Simple Mail Transfer Protocol):简单邮件传输协议,用于发送邮件
- POP3(Post Office Protocol 3):邮局协议第3版,用于接收邮件
- IMAP(Internet Message Access Protocol):互联网消息访问协议,用于访问邮件服务器上的邮件
- 端口:SMTP使用25端口,POP3使用110端口,IMAP使用143端口
六、客户端-服务器模型
客户端-服务器(Client-Server)模型是网络应用中最常见的通信模型:
6.1 基本概念
- 客户端:主动发起请求的程序,如浏览器、邮件客户端
- 服务器:被动接收请求并提供服务的程序,如Web服务器、邮件服务器
6.2 通信流程
- 服务器启动并监听指定端口
- 客户端向服务器发送连接请求
- 服务器接受请求并建立连接
- 客户端发送数据请求
- 服务器处理请求并返回响应数据
- 通信完成后关闭连接
6.3 示例:Web浏览过程
- 用户在浏览器(客户端)中输入网址(如www.baidu.com)
- 浏览器向DNS服务器请求解析域名,获取IP地址
- 浏览器向该IP地址的80端口发送HTTP请求
- Web服务器接收请求,处理并返回HTML页面
- 浏览器接收HTML页面并渲染显示给用户
七、Python网络编程概述
Python提供了丰富的网络编程库,用于开发各种网络应用:
- socket模块:提供底层的网络通信接口,支持TCP和UDP协议
- urllib模块:用于访问Web资源,支持HTTP、HTTPS等协议
- http模块:提供HTTP服务器和客户端的实现
- smtplib/imaplib/poplib:用于邮件发送和接收
- socketServer模块:简化服务器端网络编程
- 第三方库:如requests、flask、django等
八、应用场景与注意事项
8.1 应用场景
- 网站开发:如电商网站、博客系统
- 网络爬虫:抓取网页数据
- 实时通信:如聊天软件、视频会议
- 分布式系统:如大数据处理、云计算
- 物联网应用:如智能设备通信
8.2 注意事项
- 网络安全:注意数据加密、防止网络攻击(如SQL注入、XSS攻击)
- 性能优化:合理设计网络协议、优化数据传输
- 错误处理:处理网络异常(如连接超时、断开连接)
- 资源管理:及时关闭连接,释放网络资源
- 跨平台兼容性:考虑不同操作系统的网络实现差异
九、总结
本集我们学习了计算机网络的基础知识,包括:
- 计算机网络的基本概念和功能
- OSI七层模型和TCP/IP四层模型
- TCP/IP协议族的核心协议(TCP、UDP、IP)
- IP地址和端口的概念及分类
- 常见的网络协议及其应用场景
- 客户端-服务器模型的基本原理
- Python网络编程的主要库
这些基础知识是学习Python网络编程的基础,为后续学习socket编程、Web开发、网络爬虫等内容打下了坚实的基础。
十、练习题
- 简述OSI七层模型和TCP/IP四层模型的区别与联系。
- 比较TCP和UDP协议的特点及应用场景。
- 什么是IP地址和端口?它们的作用是什么?
- 简述客户端-服务器模型的通信流程。
- 列举5种常见的网络协议及其端口号。
- 简述IPv4地址的分类及范围。
- 为什么需要DNS服务?它的作用是什么?
- 什么是HTTP和HTTPS?它们的区别是什么?