Linux的网络协议中的网卡缓冲区

本文介绍了Linux系统中网卡的工作原理,包括网卡的组成、MAC层的功能,以及网卡在收包、发包过程中的处理。特别讨论了网卡的中断处理函数和缓冲区的作用,分析了如何避免网卡FIFO缓存溢出导致的丢包问题。此外,还提到了内核缓冲区和用户空间缓冲区的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程序员可能关心的基本网卡知识

网卡相关介绍:http://www.linuxidc.com/Linux/2012-12/77132.htm

一、什么是网卡?

它是主机的网络设备,本身是LAN(局域网)的设备,通过网关、路由器等设备就可以把这个局域网挂接到Internet上。网卡工作在物理层和数据链路层的MAC子层,数据链路层还有LLC层,它在MAC层之上。

网卡按照数据链路层控制来分有以太网卡,令牌环网卡,ATM网卡等;按照物理层来分类有无线网卡,RJ-45网卡,同轴电缆网卡,光线网卡等等。它们的数据链路控制、寻址、帧结构等不同;物理上的连接方式不同、数据的编码、信号传输的介质、电平等不同。普通程序员常用的应该是以太网网卡。

以太网采用的CSMA/CD(载波侦听多路访问/冲突检测)的控制技术。他主要定义了物理层和数据链路层的工作方式。数据链路层和物理层各自实现自己的功能,相互之间不关心对方如何操作。二者之间有标准的接口(例如MII,GMII等)来传递数据和控制。

以太网卡的物理层可以包含很多种技术,常见的有RJ45,光纤,无线等,它们的区别在于传送信号的物理介质和媒质不同。(这些不太是程序员所关心的)

二、网卡的组成

1.网卡的基本结构

以太网网卡包括OSI(开方系统互联)模型的两个层。物理层和数据链路层。物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。

2.什么是MAC?

以太网数据链路层其实包含MAC(介质访问控制)子层和LLC(逻辑链路控制)子层。MAC从PCI总线收到IP数据包(或者其他网络层协议的数据包)后,将之拆分并重新打包成最大1518Byte,最小64Byte

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值