网口定义详解(接口介绍与定义)

一、网口介绍

网口全称为网络接口,也叫网络接口卡,英文缩写为NIC。每个网络接口卡都有一个网口,网口是计算机与外部网络通信的接口。

在计算机中,网口分为两种,一种是有线网口,一种是无线网口。有线网口通常连接到局域网或广域网,而无线网口通常连接到无线路由器,以获得无线网络连接。

二、网口类型

在计算机中,网口可以分为很多种类型,下面我们来介绍几种常见的网口类型:

1. 以太网口

以太网口是最常用的网口类型之一,它使用以太网技术进行数据传输。以太网口工作在OSI模型的第二层(数据链路层),通常连接到局域网或广域网的路由器或交换机。在以太网口之间的通信中,数据被封装进以太网帧中,然后通过物理媒介(如网线)传输。

//以太网口定义示例代码:
typedef struct ether_header {
    uint8_t  ether_dhost[ETH_ALEN];  // 目的MAC地址
    uint8_t  ether_shost[ETH_ALEN];  // 源MAC地址
    uint16_t ether_type;             // 以太网帧类型
} __attribute__ ((__packed__)) ether_header_t; 

2. 无线网口

无线网口是建立在Wi-Fi技术上的网口类型,它使用无线电波进行数据传输。无线网口通常连接到无线路由器,以获取无线网络连接。无线网口可以连接到非固定位置的设备,比如笔记本电脑,智能手机和平板电脑。

//无线网口定义示例代码:
typedef struct wifi_header{
    uint8_t     subtype : 4, type : 2;
    uint8_t     ver : 2, order : 1, wds : 1, more_data : 1, power : 1, retry : 1;
    uint16_t    duration;
    uint8_t     addr1[6];
    uint8_t     addr2[6];
    uint8_t     addr3[6];
    uint16_t    seq_ctrl;
    uint8_t     addr4[6];
    uint8_t     payload[];
}wifi_header_t;

3. 蓝牙网口

蓝牙网口是一种短距离无线技术,它通常用于连接手机,耳机,鼠标和键盘等智能设备。蓝牙网口工作在OSI模型的第二层(数据链路层),它使用蓝牙协议进行数据传输。

//蓝牙网口定义示例代码:
typedef struct {
    uint8_t     type;
    uint16_t    handle;
    uint8_t     l2cap_length[2];
} bt_l2cap_hdr_t;

typedef struct {
    uint16_t    cid;
    uint16_t    len;
} bt_l2cap_coc_hdr_t;

三、网口属性

网口除了类型之外,还有很多属性可以设置,下面我们来介绍几种常见的网口属性:

1. MAC地址

MAC地址是一个全球唯一的地址,它是一个六字节的16进制数字。MAC地址通常被硬件制造商编程到网络接口卡中。MAC地址被用于标识网络中的每个计算机。

2. IP地址

IP地址是一个32位的数字,它由网络管理员分配给计算机。IP地址被用于标识网络上的每个设备,并且可以进行路由和寻址。

3. 子网掩码

子网掩码是一个32位的数字,它用于将IP地址分成网络地址和主机地址两部分。子网掩码决定了网络号的位数和主机号的位数。

4. 默认网关

默认网关是一个IP地址,它用于指定数据包离开本地网络时要使用的下一跳路由器。默认网关通常被设置为本地网络的第一个可路由设备的IP地址。

5. DNS服务器

DNS服务器是一个IP地址,它用于将主机名转换为IP地址。当计算机需要访问Internet上的其他计算机时,它可能需要使用DNS服务器进行名称解析。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平