VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1764|回复: 12

比较难的问题,网卡负责哪一层数据接收?

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-29 01:20:01 | 显示全部楼层 |阅读模式
TCP/IP网络传输分为:链路层、网络层、传输层和应用层。网卡负责到哪一层?
链路上数据的传输,握手,完整性验证等这些任务是不是网卡负责,即cpu不参与(不消耗cpu指令)。
  我用完成端口编写了一个服务程序,只负责接收数据,很少处理。如果数据接收和发送主要由网卡负责,那么数据收发的瓶颈主要在网卡而不是cpu。这样理解对吗?
  请指点!谢谢!
回复

使用道具 举报

0

主题

70

帖子

42.00

积分

新手上路

Rank: 1

积分
42.00
发表于 2020-3-2 21:30:01 | 显示全部楼层
环境不同,实现不同,cpu 网卡、内存、磁盘等等都有可能成为瓶颈
回复

使用道具 举报

0

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-3-12 15:45:01 | 显示全部楼层
大哥,那当然了,在中断处理情况下DMA传送,cpu就像个门卫似的,过问一下就干别的事去了,但是如果网卡不是DMA方式的传送的(一般好像只有硬盘时DMA方式的,只有那种pci-e的网卡是的吧,得查查技术资料,忘了,发展太快),cpu就要负责搬数据了,这个就比较占周期了,还是网卡的是啊……还有问题,网卡只负责上MAC与LLC帧头,他是不上高层帧头的,不想路由器,这个问题还是看看资料比较仔细,我也忘的差不多了,完全讲明白是不太可能的,总之只接收数据的话,和处理数据是分开的,就算是最慢的现代cpu都比网卡的处理速度快(加帧头,脱帧头,分析)上很多倍,当然不是8086了,cpu会一直处于等待状态。
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-3-16 23:15:01 | 显示全部楼层
网卡以及驱动,我想都属于物理层吧
回复

使用道具 举报

0

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-4-19 01:15:01 | 显示全部楼层
驱动???????哪里的哪里。??
回复

使用道具 举报

3

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-4-25 17:30:02 | 显示全部楼层
TCP/IP网络传输分为:链路层、网络层、传输层和应用层
-------------------------
虽然网络这么分,但是到了我们实际开发,又压根不是这样分的,一般由下到上:
物理层:处理电气特性,接受RJ45来的电信号,转换数字信号,应该由它自己的单片机控制
|
miniport微端口层:NDIS体系的最下层,一般的网卡驱动属于这层
|
中间层:NDIS体系的中间层,一般的软件防火墙关于规则的调用(比如禁止IGMP,ICMP),都是在这层通过中间层驱动实现
|
协议层:NDIS体系的最上层,主要由什么处理忘记了,反正是很少用
|
应用层:当然按照等级高低分为(SPI,RawSocket,WinSocket)


大致层次应该是这样,不对的请纠正 :)
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-8-1 14:30:01 | 显示全部楼层
还是不清除啊!
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-8-3 15:00:01 | 显示全部楼层
网卡硬件本身属于物理层。而驱动程序属于数据链路层。 网卡工作时候,究竟是否需要cpu大规模参与,这要取决于不同的网络控制芯片的工作原理。有些稍微好点的芯片,支持收发数据包的“零拷贝”机制。 即在从协议层传数据包给驱动时候,和从驱动传数据包给协议层时候,不需要进行拷贝。她们共同使用一个缓冲池。对于网卡数据收发来说,耗时的是内存中数据的拷贝。---注意,是协议层和驱动之间的拷贝。dma是驱动层面的。不一样。
回复

使用道具 举报

0

主题

3

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-4 09:30:01 | 显示全部楼层
mac-链路-物理层三层
回复

使用道具 举报

2

主题

16

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-8-7 21:45:01 | 显示全部楼层
眼睛可以看到的和电流传送的部分都由物理层协议定义,比如定义芯片针脚,网线线序,板卡尺寸以及AC/DC,收发BIT标志等。
但是它同时参于了以太网协议(第二层:链路层)的工作,以太网协议包括了48位的源MAC地址和48位的目的MAC地址,所以它的MAC地址部分属于链路层。
一般在第二层以及之上的所有层,都需要CPU帮助运算,应用层完全只由CPU管。
这些是一般的网卡,特殊网卡有更复杂的功能:
TCP减负引擎(TCP Offload Engine :TOE)的技术:
http://www.it918.com/htm/jc/jcclbd/iptx/20040406C085439.shtml

现在使用一块好的网卡可以大大提高服务器的性能,前提是整体的性能平衡做好。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表