一、网口介绍
网口全称为网络接口,也叫网络接口卡,英文缩写为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服务器进行名称解析。