第101集:网络基础概念

学习目标

  1. 理解计算机网络的基本概念和作用
  2. 掌握TCP/IP协议族的核心组成
  3. 了解IP地址和端口的概念及分类
  4. 理解OSI七层模型和TCP/IP四层模型
  5. 熟悉常见的网络协议及其应用场景
  6. 掌握客户端-服务器模型的基本原理

一、计算机网络概述

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 通信流程

  1. 服务器启动并监听指定端口
  2. 客户端向服务器发送连接请求
  3. 服务器接受请求并建立连接
  4. 客户端发送数据请求
  5. 服务器处理请求并返回响应数据
  6. 通信完成后关闭连接

6.3 示例:Web浏览过程

  1. 用户在浏览器(客户端)中输入网址(如www.baidu.com)
  2. 浏览器向DNS服务器请求解析域名,获取IP地址
  3. 浏览器向该IP地址的80端口发送HTTP请求
  4. Web服务器接收请求,处理并返回HTML页面
  5. 浏览器接收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攻击)
  • 性能优化:合理设计网络协议、优化数据传输
  • 错误处理:处理网络异常(如连接超时、断开连接)
  • 资源管理:及时关闭连接,释放网络资源
  • 跨平台兼容性:考虑不同操作系统的网络实现差异

九、总结

本集我们学习了计算机网络的基础知识,包括:

  1. 计算机网络的基本概念和功能
  2. OSI七层模型和TCP/IP四层模型
  3. TCP/IP协议族的核心协议(TCP、UDP、IP)
  4. IP地址和端口的概念及分类
  5. 常见的网络协议及其应用场景
  6. 客户端-服务器模型的基本原理
  7. Python网络编程的主要库

这些基础知识是学习Python网络编程的基础,为后续学习socket编程、Web开发、网络爬虫等内容打下了坚实的基础。

十、练习题

  1. 简述OSI七层模型和TCP/IP四层模型的区别与联系。
  2. 比较TCP和UDP协议的特点及应用场景。
  3. 什么是IP地址和端口?它们的作用是什么?
  4. 简述客户端-服务器模型的通信流程。
  5. 列举5种常见的网络协议及其端口号。
  6. 简述IPv4地址的分类及范围。
  7. 为什么需要DNS服务?它的作用是什么?
  8. 什么是HTTP和HTTPS?它们的区别是什么?

十一、扩展阅读

« 上一篇 标准库综合应用 下一篇 » socket编程基础