Skip to content

计算机网络基础

可以参考这个,这是我当时刷题的发现,有一些东西在后续没有去讲解就找了一系列的视频去看了一下。 【计算机网络基础——协议的本质(数据在网络中的传输)】 https://www.bilibili.com/video/BV1a846efEbC/?share_source=copy_web&vd_source=3d92aa9d33df3e75ad29563ed567d683### 网络预备知识

网络通信

通信/通讯需要具备两个基本条件:

  • 传输介质:(物理层面)
    • 网线,光纤
  • 协议:(软件层面)
    • 网络通信协议

网络协议层次模型

层次:把不同的功能封装成不同功能模块。
为什么叫做层次
因为被封装的模块只能按照已有顺序进行调用,不能越级调用:

A 模块(用户层)  
---  
B 模块(OS层)  
---  
C 模块(硬件层)

A模块不能直接调用C模块,只能通过先调用B模块的接口,通过B模块的接口来调用C模块。


OSI 七层模型

  1. 应用层
  2. 表示层
  3. 会话层
  4. 传输层
  5. 网络层
  6. 数据链路层
  7. 硬件层
应用层  
应用层协议  
应用层  
PDU  
接口  
表示层  
表示层协议  
表示层  
接口  
会话层  
会话层  
传输层  
传输层  
传输层  
数据段  
接口  
网络层  
网络层协议  
网络层  
数据包  
接口  
数据链路层  
数据链路层协议  
数据链路层  

接口  
物理层  
物理层协议  
物理层  
比特  

主机A  
主机B  
数据单元

TCP/IP 四层模型

  • 应用层
    • 应用协议:http,https,tftp,ftp,DNS,QQ协议,BT
  • 传输层
    • 主要作用:解决数据如何传输的问题
    • 协议:
      • TCP:Transmission Control protocol 传输层控制协议
        • 是一种面向连接的传输层协议,它可以提供高可靠的通信。
        • 高可靠的通信:即数据无误、数据无丢失、数据无失序、数据无重复到达的一种通信。
        • 建立连接/断开连接:三次握手和四次挥手
          ADATA  
          STN报文  
          SYN报文  
          ACK报文  
          ACK报文  
          三次握手  
          B  
          A  
          四次挥手  
          B  
          重发机制  
          "面向连接"
      • UDP:User Datagram Protocol 用户数据报协议
        • 它是不可靠的无连接协议。
        • 在数据发送之前,因为不需要进行连接就可以直接发送数据。
        • "实时应用"
  • 网络层
    • IP:IP地址(网卡的逻辑上的编号)
    • ICMP
  • 设备驱动与硬件层
    • 硬件:
      • 网卡
      • 网络
    • MAC协议:
      • MAC地址(网卡的物理地址 48bits)

网络数据传输

分层传输

  • 封包过程
  • 拆包过程
A端    封包过程    拆包过程    B端  
data(123)    123  
应用层    /app(data)    app(data)    应用层  
传输层    /tra(app(data))    tra(app(data))    传输层  
网络层    /net(tar(data))    net(tar(data))    网络层  
设备驱动和硬件    /hard(net(data))    hard(net(data))    设备驱动和硬件

网络设备功能

  • 路由器:主要功能“路由”
    • 选择网络数据包的下一站。
  • 网关:连接两个或以上网络。
  • 交换机(switch)
    • 扩展端口
    • 有源:增强信号
  • 猫(modern):调制解调器
    • ads1猫
    • 光纤猫

互联网地址(IP地址)

互联网:internet
互联网上的每一个接口(网卡)都必须有一个唯一的 internet 地址(也叫:IP地址)。协议上的逻辑地址。
进行通信的时候,用到这个 IP 地址唯一标识一台主机(一个网卡)。

  • IPv4 地址

    • 32bits IP 地址(42亿)
    • 表示方式:
      • 点分十进制:每8个 bit 位为一组,中间用.分割
        • 示例:11010010 01001001 10001100 00000010210.73.140.2
  • IPv6 地址

    • 128bits IP 地址

IPv4 地址分类

IPv4 地址的 32bits 分为两部分:

  • 网段号:标识某个网段(连续高位表示)
  • 主机号:标识特定网段中的特定主机(连续低位表示)
类型最高位网络号主机号地址范围
A类07bits24bits0.0.0.0 ~ 127.255.255.255
B类1014bits16bits128.0.0.0 ~ 191.255.255.255
C类11021bits8bits192.0.0.0 ~ 223.255.255.255
D类1110-多播组号 28bits224.0.0.0 ~ 239.255.255.255
E类11110-保留240.0.0.0 ~ 247.255.255.255
  • 私有地址范围192.168.0.0~192.168.255.255

子网掩码(netmask)

用于指定 IP 地址中哪些 bits 是网段号,哪些是主机号:

  • 子网掩码为 1 的 bit 位表示网段号
  • 子网掩码为 0 的 bit 位表示主机号
  • 示例:
    • 子网掩码 255.255.254.011111111 11111111 11111110 00000000
    • 192.168.1.4192.168.2.5 是否同一网段?
      xxxxxxxx xxxxxxxx 00000001 xxxxxxxx → 192.168.1.4  
      xxxxxxxx xxxxxxxx 00000010 xxxxxxxx → 192.168.2.5
      网段号不同 → 不是同一网段

端口号

TCP 和 UDP 采用 16bits 的端口标识应用程序:

  • IP 地址唯一标识网络中的主机
  • 端口号标识主机上的特定网络应用
  • 完整网络应用标识:IP地址 + 传输层协议(TCP/UDP) + 端口号

端口号分类(由 IANA 管理):

  • 知名端口:1~1023
    • ftp:21
    • http:80
    • MySQL:3306
  • 注册端口:1024~49151
  • 动态/私有端口:49152~65535

知识如风,常伴吾身