# 网络协议原理

# 七层模型

七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型七层模型

它是一个七层的、抽象模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。

七层模型

# TCP五层模型

TCP五层模型

在Linux系统上演示一下Http应用层协议

  1. 建立连接

    # 进入当前进程下的文件描述符目录中
    cd /proc/$$/fd
    # 文件重定向 将文件描述符8 输入输出指向设备目录tcp协议簇下的 与百度服务器建立连接
    exec 8<> /dev/tcp/www.baidu.com/80
    
    1
    2
    3
    4
  2. 传送数据(http协议:规范标准)

    # echo打印数据再重定向到8号文件描述符(输入)
    echo -e 'GET / HTTP/1.0\n' >& 8
    # 注意:&符号后边跟着文件描述符 意思是取文件描述符代表的文件
    
    1
    2
    3
  3. 查看返回的数据

    cat <& 8
    
    1
  4. 演示截图

    演示截图

传输控制层:

  • 查看指令

    netstat -natp
    
    1

    netstat

  • 指令详解

    netstat -natp
    -n: IP地址不要用逻辑名称显示 
    -a: 所有
    -t:TCP
    -p:PID显示进程的ID号
    Local Address      本地地址
    Foreign Address    远程地址
    State              状态 监听、连接、关闭等待
    PID/Program name   进程号/进程名称
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
  • 该层特点

    • 三次握手>数据传输>四次分手

    • 成为一个最小粒度

    • 不可被分割

    • 拆包拆到端口,用端口识别进程

网络层:

  • 查看指令

    • 查看网卡信息

      查看网卡信息

    • 查看路由条目

      查看路由条目

  • 指令详解

    route -n
    Gateway:
    0.0.0.0:代表目标IP与该设备在同一个局域网内
    192.168.8.2:代表目标IP不在一个局域网,需要下一跳
    
    1
    2
    3
    4
  • 该层特点

    • 拆包获取目标IP地址,根据路由条目的掩码做按位与运算,获取下一跳
    • 只拆到IP地址这个层次

链路层:

  • 查看指令

  • 激活网卡通告

  • 该层特点

    • 居于下一跳在原有数据包上包一层物理网卡信息
    • 节点到节点之间的,每次跳转前,会撕毁物理网卡层,然后重新包上下一跳的物理网卡信息,最后跳转

组网演示图解:

  • 数据包封装

    数据包封装

  • 图解

    前置:第一次发送数据包之前,会先发送arp包获取路由器的MAC地址

    网络协议原理