今天小编要和大家分享的是模拟技术相关信息,接下来我将从了解协议栈的相关概念,这几个方面来介绍。
模拟技术相关技术文章了解协议栈的相关概念
1、网卡组件(netdev)
netdev 组件主要作用是解决设备多网卡连接时网络连接问题,用于统一管理各个网卡信息与网络连接状态,并且提供统一的网卡调试命令接口。其主要功能特点如下所示:
抽象网卡概念,每个网络连接设备可注册唯一网卡。
提供多种网络连接信息查询,方便用户实时获取当前网卡网络状态;
建立网卡列表和默认网卡,可用于网络连接的切换;
提供多种网卡操作接口(设置 IP、DNS 服务器地址,设置网卡状态等);
统一管理网卡调试命令(ping、ifconfig、netstat、dns 等命令);
网卡概念:
网卡概念介绍之前先了解协议栈相关概念,协议栈是指网络中各层协议的总和,每种协议栈反映了不同的网络数据交互方式,RT-Thread 系统中目前支持三种协议栈类型:lwIP 协议栈、AT Socket 协议栈、WIZnet TCP/IP硬件协议栈。每种协议栈对应一种协议簇类型(family),上述协议栈分别对应的协议簇类型为:AF_INET、AF_AT、AF_WIZ。
网卡的初始化和注册建立在协议簇类型上,所以每种网卡对应唯一的协议簇类型。Socket 套接字描述符的创建建立在 netdev 网卡基础上,所以每个创建的 Socket 对应唯一的网卡。协议簇、网卡和 socket 之间关系如下图所示:
1.1 netdev数据结构
每个网卡对应唯一的网卡结构体对象,其中包含该网卡的主要信息和实时状态,用于后面网卡信息的获取和设置。
网卡状态:
up/down:底层网卡初始化完成之后置为 up 状态,用于判断网卡开启还是禁用。
link_up/link_down:用于判断网卡设备是否具有有效的链路连接,连接后可以与其他网络设备进行通信。该状态一般由网卡底层驱动设置。
internet_up/internet_down:用于判断设备是否连接到因特网,接入后可以与外网设备进行通信。
dhcp_enable/dhcp_disable:用于判断当前网卡设备是否开启 DHCP 功能支持。
1.2 网卡列表和默认网卡