网络的关键知识及linux上的ip配置


Table of Contents

  1. 网络模型
    1. OSI 七层模型
      1. 七层的基本原则
      2. 不同层的功能
    2. TCP/IP 五层模型
      1. 不同层的功能
  2. ip 地址
    1. ip 地址的分类
    2. 子网掩码
  3. 传输层协议
    1. TCP
    2. UDP
  4. linux 上 IP 配置方法
    1. 命令即时生效
    2. 命令保存配置:仅 centos7 以后
    3. 更改配置文件

网络模型

OSI 七层模型

+----------+                                                             +----------+
|  应用层   |<----------------------------------------------------------->|  应用层   |
+----+-----+                                                             +----+-----+
     |                                                                        |
+----+-----+                                                             +----+-----+
|  表示层   |<----------------------------------------------------------->|  表示层   |
+----+-----+                                                             +----+-----+
     |                                                                        |
+----+-----+                                                             +----+-----+
|  会话层   |<----------------------------------------------------------->|  会话层   |
+----+-----+                                                             +----+-----+
     |                                                                        |
+----+-----+                                                             +----+-----+
|  传输层   |<----------------------------------------------------------->|  传输层   |
+----+-----+                                                             +----+-----+
     |            +------------------------------------------+                |
+----+-----+      |   +----------+           +----------+    |           +----+-----+
|  网络层   |<-----+-->|  网络层   |<--------->|  网络层   |<---+---------->|  网络层   |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
     |            |        |                      |          |                |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
| 数据链路  |<-----+-->| 数据链路   |<--------->| 数据链路  |<---+---------->| 数据链路  |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
     |            |        |        内部子网       |          |                |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
|  物理层   |<-----+-->|  物理层   |<--------->|  物理层   |<---+---------->|  物理层   |
+----------+      |   +----------+           +----------+    |           +----------+
                  +------------------------------------------+

七层的基本原则

  1. 应该在需要一个不同抽象体的地方创建一层
  2. 每一层都应该执行一个明确定义的功能
  3. 每一层功能的选择应该向定义国际标准化协议的目标看齐
  4. 层与层边界的选择应该使跨越接口的信息流最小
  5. 层数应该足够多,保证不同的功能不会被混杂在同一层中,但同时层数不能太多,以免体系变得过于庞大

不同层的功能

  1. 物理层 :关注于信道上传输的原始比特,问题集中在如何通信,物理接口,以及传输介质等.实现传输方法.
  2. 数据链路层 :关注差错检测,流量控制,介质访问控制等.实现数据的传递.
  3. 网络层 :主要控制子网运行,将数据包从源端路由到接收方,处理拥塞,关注服务质量.实现主机间的通信.
  4. 传输层 :必要时将上层数据分成小单元,高效实现上下隔离以防止下层变化导致上层协议不可用,实现主机间进程与进程的通信.
  5. 会话层 :允许用户建立会话,并提供各种服务.
  6. 表示层 :将下层的数据转化为信息.
  7. 应用层 :最高层应用之间交换数据的标准,

TCP/IP 五层模型

+----------+                                                             +----------+
|  应用层   |<----------------------------------------------------------->|  应用层  |
+----+-----+                                                             +----+-----+
     |                                                                        |
+----+-----+                                                             +----+-----+
|  传输层   |<----------------------------------------------------------->|  传输层   |
+----+-----+                                                             +----+-----+
     |            +------------------------------------------+                |
+----+-----+      |   +----------+           +----------+    |           +----+-----+
|internet层|<-----+-->|internet层 |<--------->|internet层|<---+---------->|internet层 |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
     |            |        |        内部子网      |          |                |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
|  链路层   |<-----+-->|  链路层   |<--------->|  链路层   |<---+---------->|  链路层   |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
     |            |        |                      |          |                |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
|  物理层   |<-----+-->|  物理层   |<--------->|  物理层   |<---+---------->|  物理层   |
+----------+      |   +----------+           +----------+    |           +----------+
                  +------------------------------------------+

不同层的功能

  1. 物理层 :和 OSI 中相同
  2. 链路层 :对应 OSI 数据链路层,模型选择数据包交换网络,是主机与传输线路的接口.传输单位为帧.
  3. internet 层 :对应 OSI 网络层,允许主机将数据包注入任何网络,并让数据包独立到达接收方,同时还要考虑拥塞控制.
    传输单位为包.
  4. 传输层 :对应 OSI 传输层,有两个协议,TCP 与 UDP,前者是一个可靠的面向连接的协议,后者是一个不可靠无连接的协议.
  5. 应用层 :对应 OSI 应用层,会话层与表示层对大多数应用来说并没有太大用处.

ip 地址

ip 协议采用"网络号.主机号"的形式编址.ip 地址总长 32 位,当网络号占的位数多时,可存在的子网也会变多,相应的每个子网所能拥
有的主机数就少.

ip 地址的分类

通常根据网络号,我们将网络地址分为 5 类.
将地址转为 2 进制:

以 0 开头的地址 从 1.0.0.0 到 127.255.255.255 A 类地址 前 8 位代表网络号,可以有 28 个网络 后 24 位代表主机号,最大支持 224-2 台主机
以 10 开头的地址 从 128.0.0.0 到 191.255.255.255 B 类地址 前 16 位代表网络号,可以有 216 个网络 后 16 位代表主机号,最大支持 216-2 台主机
以 110 开头的地址 从 191.0.0.0 到 223.255.255.255 C 类地址 前 24 位代表网络号,可以有 224 个网络 后 8 位代表主机号,最大支持 28-2 台主机
以 1110 开头的地址 从 224.0.0.0 到 239.255.255.255 D 类地址 广播地址  
以 11110 开头的地址 从 240.0.0.0 到 255.255.255.255 E 类地址 保留的地址  

子网掩码

  • 根据 ip 地址的分类,我们可看出,A 类地址的一个网段的主机数最多为 16777214 个,而 C 类地址的主机只能有 254 个.
    而现实情况是 A 类地址,很少有要用到一个网段这么多主机的情况,而 C 类地址一个网段能容纳的主机太少了.
  • 所以出现了 VLSM 的编址方案:
    • 将大的网段地址拆分成小的网段,这种小的网段叫子网
    • 将小的网段地址合并为大的网段,这种城合并的网段叫超网

传输层协议

主要分为 TCP 和 UDP:

  • TCP 可靠,但存在头部开销,有 3 次握手
  • UDP 不可靠,TCP 实时性不如 UDP

TCP

  • 全称:Transmission Control Protocol,传输控制协议

  • TCP 提供面向连接的,可靠的传输服务

  • TCP 头部中较重要的字段:

    • 源端口,目的端口 :用于明确两边的服务访问点
    • 顺序号 :TCP 在发送数据时,通常会将数据分段,顺序号可以让接收方正确组合数据
    • 偏置值 :明确 TCP 头的大小
    • 标志字段 :用于表示控制信息
    • 窗口 :用于流控
    • 校验和 :判断传输是否有误
  • TCP 的三次握手和四次挥手

      +----------+                                          +-----------+
      |  Client  |                                          |   Server  |
      +----+-----+                                          +----+------+
           |             SYN,seq=x                               | listen
      syn- |---------------------------------------------------->|         
     sent  |                                                     |         
           |             SYN,ACK,ack=x+1,seq=y                   | syn-  
           |<----------------------------------------------------| rcvd  
     estab-|                                                     |       
     lished|             ACK,DATA,ack=y+1,seq=x+1                |       
           |---------------------------------------------------->|
           |                                                     | estab-
           |                     ...                             | lished
           |                     ...                             |
           |                     ...                             |
           |                                                     |
     fin-  |             FIN,ack=n,seq=z                         |
    wait-1 |---------------------------------------------------->|
           |                                                     |
           |                                                     | close-
           |             DATA,ACK.......                         | wait
      fin- |<----------------------------------------------------|
     wait-2|                .......                              |
           |                                                     |
           |               FIN                                   |
           |<----------------------------------------------------|
           |                                                     |
           |                                                     | last-
     time- |                ACK                                  | ack
     wait  |---------------------------------------------------->|      
           |                                                     |
           |                                                     | close
           |                                                     |
    

UDP

  • 全称:User Datagram Protocol,用户数据报协议
  • UDP,面向无连接
  • UDP 头部中较重要的字段:
    • 源端口,目的端口 :用于明确两边的服务访问点
    • 段长 :表示整个 UDP 的大小
    • 校验和 :判断传输是否有误

linux 上 IP 配置方法

命令即时生效

  1. ifconfig

    ifconfig 网络设备名 IP/掩码
    ifconfig 网络设备名 IP netmask 点分掩码
    

    例如:

    # centos7
    ifconfig enp0s3 192.168.0.50/24
    ifconfig enp0s3 192.168.0.50 netmask 255.255.255.0
    
    # centos6
    ifconfig eth0 192.168.0.51/24
    ifconfig eth0 192.168.0.51 netmask 255.255.255.0
    
  2. ip
    这个命令可以为网卡分配多个 ip

    # 增加IP
    ip address add IP/掩码 dev 设备名
    
    # 删除IP
    ip address del IP/掩码 dev 设备名
    

    例子:

    # 增加IP
    ip address add 192.168.0.58/24 dev enp0s3 # centos7
    ip address add 192.168.0.59/24 dev eht1 # centos6
    
    # 删除IP
    ip address del 192.168.0.20 dev enp0s3
    ip address del 192.168.0.22 dev eth1
    

命令保存配置:仅 centos7 以后

可用 nmcli 命令,这个命令可以直接将更改内容保存为配置.
nmcli connection modify DEV ipv4.addresses IP/MASK

nmcli connection modify enp0s3 ipv4.addresses 192.168.10.5/24 ipv4.method manual

更改配置文件

/etc/sysconfig/network-script/ifcfg-设备名
将文件中的两个字段更改:

BOOTPROTO=static
IPADDR=192.168.10.7
PREFIX=255.255.255.0

其中 BOOTPROTO 代表 IP 的获取方法,这里用手动,IPADDR 后面跟 IP 地址,PREFIX后面接掩码.


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM