【计算机网络】设备网卡NIC的工作内容有哪些呢?

devtools/2024/11/17 4:11:08/

我们平时上网,都需要经过设备网卡的处理,网络接口卡(Network Interface Card,简称 NIC)是计算机与网络之间的物理连接设备,负责处理网络数据的发送和接收。NIC 的功能涵盖了从物理层到数据链路层的多个方面。以下是 NIC 的具体工作内容:

1. 物理层(Physical Layer)工作

  • 信号转换

    • NIC 将计算机的数字信号转换为网络传输所需的电信号、光信号或无线电信号。例如,以太网 NIC 将数字信号转换为电信号,通过双绞线或光纤传输。
  • 物理连接

    • NIC 提供物理接口,用于连接网络介质,如 RJ-45 接口(用于以太网)、光纤接口(用于光纤网络)或无线天线(用于 Wi-Fi)。
  • 调制与解调

    • 在无线网络中,NIC 负责将数字信号调制到载波频率上发送,并在接收时解调信号。
  • 物理层协议处理

    • NIC 处理物理层协议,如以太网(IEEE 802.3)、Wi-Fi(IEEE 802.11)等,确保数据以正确的物理格式传输。

2. 数据链路层(Data Link Layer)工作

  • MAC 地址管理

    • 每个 NIC 都有一个唯一的 MAC 地址(Media Access Control Address),用于在局域网内唯一标识设备。NIC 使用 MAC 地址进行数据帧的发送和接收。
  • 帧的封装与解封装

    • NIC 负责将网络层的数据包封装成数据链路层的帧(Ethernet Frame),并在接收时将帧解封装为数据包。
    • 帧的格式包括目标 MAC 地址、源 MAC 地址、数据类型和数据字段。
  • 错误检测与纠正

    • NIC 使用错误检测机制(如 CRC 校验)来检测帧在传输过程中是否损坏。如果检测到错误,NIC 可以请求重传或丢弃损坏的帧。
  • 介质访问控制(MAC)

    • NIC 实现介质访问控制协议(如 CSMA/CD 用于以太网,CSMA/CA 用于 Wi-Fi),以管理多个设备在共享介质上的访问,避免冲突和数据碰撞。
  • 流量控制

    • NIC 可以实现流量控制机制,如以太网中的 PAUSE 帧,用于在网络拥塞时暂停数据传输。

3. 网络层(Network Layer)工作

  • 数据包过滤

    • NIC 可以根据目标 MAC 地址过滤接收到的数据包。如果目标 MAC 地址不是本机的 MAC 地址或广播地址,NIC 会丢弃该数据包。
  • ARP 处理

    • NIC 参与 ARP(地址解析协议)过程,处理 ARP 请求和响应,将 IP 地址解析为 MAC 地址。

4. 操作系统与驱动交互

  • 驱动程序

    • NIC 需要驱动程序与操作系统交互。驱动程序负责将操作系统的网络请求转换为 NIC 可以理解的指令,并处理 NIC 接收到的数据。
  • 中断处理

    • NIC 通过中断机制通知操作系统有数据到达。驱动程序处理中断,将数据传递给操作系统的网络协议栈。
  • DMA(直接内存访问)

    • NIC 使用 DMA 技术直接将数据从网络传输到计算机内存,或从内存传输到网络,减少 CPU 的负担。

5. 高级功能

  • 虚拟化支持

    • 现代 NIC 支持虚拟化技术,如 SR-IOV(Single Root I/O Virtualization),允许多个虚拟机共享物理 NIC 资源。
  • 硬件卸载

    • NIC 可以实现硬件卸载功能,如 TCP 卸载(TCP Offload Engine, TOE),将 TCP/IP 协议处理任务从 CPU 转移到 NIC,提高网络性能。
  • 网络安全

    • NIC 可以支持硬件加速的网络安全功能,如 IPsec 加密/解密、SSL/TLS 加速等。

6. 电源管理

  • 节能功能
    • NIC 支持多种电源管理功能,如网络唤醒(Wake-on-LAN, WOL),允许计算机在关闭或休眠状态下通过网络唤醒。

http://www.ppmy.cn/devtools/134614.html

相关文章

leetcode21. Merge Two Sorted Lists

You are given the heads of two sorted linked lists list1 and list2. Merge the two lists into one sorted list. The list should be made by splicing together the nodes of the first two lists. Return the head of the merged linked list. 将两个升序链表合并为一…

ffmpeg视频编码

一、视频编码流程 使用ffmpeg解码视频帧主要可分为两大步骤:初始化编码器和编码视频帧,以下代码以h264为例 1. 初始化编码器 初始化编码器包含以下步骤: (1)查找编码器 videoCodec avcodec_find_encoder_by_name…

千益畅行,共享旅游新时代的璀璨之星与未来前景展望

在当今数字化和共享经济蓬勃发展的时代,旅游业也正经历着前所未有的变革。千益畅行共享旅游卡作为旅游行业创新模式的代表,正逐渐崭露头角。在这篇文章中,我们将深入剖析共享旅游卡的未来发展前景,并对未来旅游市场进行深度解读&a…

Elasticsearch 查看磁盘占用 查看指定索引磁盘占用

Elasticsearch 查看磁盘占用 查看指定索引磁盘占用 查看磁盘占用查看指定索引磁盘占用查看节点线程情况查询异步任务执行情况其他操作 考虑到既然数据要放在 es 中,那么相应的数据量往往都不会小,那么在对这些数据进行大批量的变动时,带来的磁…

matlab学习笔记:第三章课后习题

练习题1. (1) 生成一个6行3列的随机矩阵A,矩阵中每个元素都是位于区间[50,100]之间的随 机整数,下面我们假设矩阵A的每一行代表一名学生,这六名同学的三门科目的 成绩对应着三列; (2&#x…

HTML的浮动与定位

1. 浮动 浮动可以使一个元素脱离自己原本的位置,并在父元素的内容区中向左或向右移动,直到碰到父元素内容区的边界或者其它浮动元素为止。 值描述left元素向左浮动right元素向右浮动 普通文档流:浏览器在默认情况下规定一个块元素在父元素…

C++的版本

C是一种高效、灵活和强大的编程语言,自1983年由Bjarne Stroustrup在贝尔实验室创立以来,经历了多个版本的更新。以下是C的主要版本及其特点: C98: 1998年发布,是C的第一个国际标准。引入了类、继承、模板、异常处理等…

【Goland】——Gin 框架简介与安装

文章目录 1. Gin 框架概述1.1 什么是 Gin 框架?1.2 为什么选择 Gin?1.3 使用场景 2. 安装 Go 与 Gin 框架2.1 安装 Go 语言环境2.2 初始化 Go 项目2.3 安装 Gin 框架 3. 编写第一个 Gin 应用3.1 Gin 最小化示例代码代码解读3.2 运行程序3.3 测试服务 4. …