24、网络编程基础概念

发布于:2025-04-01 ⋅ 阅读:(16) ⋅ 点赞:(0)

网络结构模式
  • C/S结构,由客户机和服务器两部分组成,如QQ、英雄联盟

  • B/S结构,通过浏览器与服务器进程交互,如4399网页游戏

MAC地址
  • 网卡是计算机上用于通信的硬件,而MAC地址就是网卡的地址,每个网卡都有唯一一个MAC地址。MAC地址 由6个部分组成:每个部分 都是一个字节,包含两个16进制数,如 00-16-EA-AE-3C-40
  • 另外,MAC地址又称为 局域网地址、 以太网地址、物理地址或硬件地址
IP地址
  • IP地址是主机或网络的逻辑(虚拟)地址,它 由4个部分组成:每个部分都是一个字节,包含一个10进制数,如:100.4.5.6。它也可以转换为二进制形式:01100100.00000100.00000101.00000110
  • 编码方式
    • A类IP地址:1字节的网络地址,3字节的主机地址。可表示的主机数为256^3 - 2,常用于大型网络。网络地址的第一个位必须为0,因此A类最多表示126个网络(B、C类没有这个限制)
    • B类IP地址:2字节的网络地址,2字节的主机地址。可表示的主机数为256^2 - 2
    • C类IP地址:3字节的网络地址,1字节的主机地址。可表示的主机数为256 - 2=254
    • 特殊网址数字:
      • 0:表示自己,如0.0.0.0
      • 255:广播地址,如(A类)126.123.45.255、(B类)129.123.255.255;或者是用于子网掩码
      • 127:IP地址不能以127作为开头,因为这群IP地址专门用于回路测试,如:127.0.0.1可以代表本机IP地址
子网掩码
  • 作用:屏蔽IP地址的一部分,从而区分它的网络部分和主机部分
  • 分类:
    • 255一类,如255.255.255.0
    • 其他:192.126.130.66/24,表示 192.126.130.66的子网掩码有24个1即255.255.255.0;192.126.130.66/26,表示 192.126.130.66的子网掩码有26个1
  • 具体方法:
    • 求网络部分:对(C类)255.255.255.0 求交集(即&umask)
    • 求主机部分:对(C类)255.255.255.0 取反后求交集(即&~umask)
  • 子网掩码的大小与正常IP地址一样
端口
  • 一般指的是虚拟端口,是主机通信的进出口。由 端口号 来标记,范围是从 0 到 65535(2^16-1)
  • 端口本质上其实是 内存的一个缓冲区,里面运行一个进程。比如,在一个缓冲区(端口)内运行QQ进程,这个缓冲区有一个端口号,外界就可以通过这个端口号与QQ进行通信
  • 类型:
    • 周知端口:范围 从 0 到 1023,表示 已经绑定的端口,用户不能使用。也叫知名端口、公认端口或者常用端口
    • 注册端口:范围 从 1024 到 49151,是用户进程可以使用的端口
    • 动态端口:范围是从 49152 到 65535,它的端口号不是认为指定的,而是系统自动(动态)分配的
  • 注意,一个应用程序可以有多个端口,比如:QQ即可以打电环,也可以发消息,那么QQ就会有多个端口
网络模型
  • OSI七层参考模型(物数网传会表应)

  • TCP/IP四层模型(TCP/IP协议族)

在这里插入图片描述

  • 在 应用层写程序,然后直接调用 传输层和网络层API即可
协议
  • 本质上就是 封装数据的规则,也就是 传输的数据包的格式。双方遵守同一套规则,按相同的方法封装和拆解数据

  • 常见协议:

    • 应用层常见的协议有:

      • FTP协议(File Transfer Protocol 文件传输协议)
      • HTTP协议(Hyper Text Transfer Protocol 超文本传输协议,一般用从 浏览器 向 服务器 请求数据,数据类型包括文本、图片、音频等)
      • NFS(Network File System 网络文件系统)
      • SSH
    • 传输层常见协议有:

      • TCP协议(Transmission Control Protocol 传输控制协议)
      • UDP协议(User Datagram Protocol 用户数据报协议)
    • 网络层常见协议有:

      • IP 协议(Internet Protocol 因特网互联协议)

      • ICMP 协议(Internet Control Message Protocol 因特网控制报文协议,如 ping

        在网络层就使用ICMP)

    • 网络接口层常见协议有:

      • ARP协议(Address Resolution Protocol 地址解析协议,用于查找IP地址对应的MAC地址)
      • RARP协议 (Reverse Address Resolution Protocol 反向地址解析协议,与ARP相反)
  • UDP协议:

在这里插入图片描述

  1. 源端口号即发送数据的端口的端口号
  2. 目的端口号即接收方端口号
  3. 长度:UDP用户数据报的长度,单位是字节,最小值是8 (也就是只有首部)
  4. 校验和:用于检测UDP数据报传输之后是否有错,有错就丢弃
  • TCP协议:

在这里插入图片描述

  • IP协议:

在这里插入图片描述

  • 以太网帧协议

    在这里插入图片描述

    • 中间的数据可以是IP协议,也可以是ARP协议

    • 如果是ARP协议

      • ARP请求:目的物理地址是 广播地址,即ff-ff-ff-ff-ff-ff

      • ARP应答:目的地址就是 原来发出请求的地址

  • ARP协议

在这里插入图片描述

  • ARP协议还需要封装在以太网帧中,才能在以太网中传递
网络通信的过程(封装与解封装)
  • 封装的过程:

在这里插入图片描述

  • 分用(解封装)的过程:

在这里插入图片描述

  • 具体过程

在这里插入图片描述

  • 如何知道目的地的MAC地址?答:根据目的地的IP地址,利用ARP协议得出 目的地的MAC地址,并缓存在主机中,具体过程如图:

    在这里插入图片描述