11.网络编程的基础知识

时间:2025-02-01 07:01:29

11.网络编程的基础知识

      • **1. OSI模型与TCP/IP模型**
      • **2. IP地址分类**
      • **3. Socket编程**
      • **4. TCP三次握手与四次挥手**
      • **5. 常用网络测试工具**
      • **6. 练习与作业**
      • **7. 总结**


1. OSI模型与TCP/IP模型

  • OSI模型(开放系统互联模型):
    • 7层结构
      1. 应用层:为网络用户提供各种服务(如HTTP、FTP)。
      2. 表示层:数据加密解密、压缩解压缩。
      3. 会话层:管理进程会话过程(如连接状态)。
      4. 传输层:提供可靠或不可靠的传输服务(如TCP、UDP)。
      5. 网络层:负责数据传输的路由选择和网际互连(如IP)。
      6. 数据链路层:负责物理相邻主机间的数据传输(如MAC地址)。
      7. 物理层:负责将数据转换成电信号并通过网络介质传输。
  • TCP/IP模型(网际互联模型):
    • 4层结构
      1. 应用层:应用程序(如HTTP、FTP)。
      2. 传输层:端口号(如TCP、UDP)。
      3. 网络层:IP地址(如IP、ICMP)。
      4. 接口层:网卡、驱动(如ARP、RARP)。

2. IP地址分类

  • IP地址:由网络位和主机位组成。
  • 分类
    • A类:1.0.0.0 - 126.255.255.255,用于超大规模网络。
    • B类:128.0.0.0 - 191.255.255.255,用于大中规模网络。
    • C类:192.0.0.0 - 223.255.255.255,用于中小规模网络。
    • D类:224.0.0.0 - 239.255.255.255,用于组播和广播。
    • E类:240.0.0.0 - 255.255.255.255,用于实验。

3. Socket编程

  • Socket:用于网络通信的一组接口函数。
  • TCP编程流程
    • 服务器端
      1. 创建Socketsocket()
      2. 绑定地址bind()
      3. 监听连接listen()
      4. 接受连接accept()
      5. 接收数据recv()
      6. 关闭连接close()
    • 客户端
      1. 创建Socketsocket()
      2. 连接服务器connect()
      3. 发送数据send()
      4. 关闭连接close()

4. TCP三次握手与四次挥手

  • 三次握手
    1. 客户端发送SYN到服务器。
    2. 服务器回复SYN-ACK
    3. 客户端发送ACK
  • 四次挥手
    1. 客户端发送FIN到服务器。
    2. 服务器回复ACK
    3. 服务器发送FIN到客户端。
    4. 客户端回复ACK

5. 常用网络测试工具

  • telnet:远程登录工具。
    • 用法:telnet IP地址 端口
  • netstat:查看网络端口使用情况。
    • 用法:netstat -anp
  • ping:测试网络连通性。
    • 用法:ping IP地址
  • arp:地址解析命令。
    • 用法:arp -an
  • wireshark:抓包工具。
    • 过滤规则:ip.src == x.x.x.xtcp.port == xx
  • tcpdump:命令行抓包工具。
    • 用法:tcpdump -n -i eth0

6. 练习与作业

  • 练习1:编写TCP服务器和客户端程序,实现简单的字符串传输。
  • 练习2:使用wireshark抓包验证TCP三次握手和四次挥手。
  • 作业1:优化聊天程序,支持实时双向通信。
  • 作业2:设计通用的客户端和服务器测试工具。
  • 作业3:实现客户端向服务器发送结构体数据、文件内容等功能。

7. 总结

  • OSI模型TCP/IP模型是网络通信的基础框架。
  • IP地址分类决定了网络的规模和用途。
  • Socket编程是实现网络通信的核心技术。
  • TCP三次握手与四次挥手确保了连接的可靠性和有序性。
  • 网络测试工具(如telnetnetstatwireshark)是调试和排查网络问题的重要工具。