linux内核
文章平均质量分 94
@Finish_all
一切都要慢慢习惯
展开
-
网络子系统学习3:网络访问层
如果在分组等待处理时接收到新的IRQ,内核不会收到新的信息:在分组进入处理过程之前,内核是可以接收IRQ的,在分组的处理结束后,内核也可以接收IRQ,这些不过是“旧闻”而已。虽然对设备驱动程序(和一般意义上的内核代码)来说轮询通常是一个很差的方法,但在这里该方法没有什么不利之处:在没有分组还需要处理时,将停止轮询,设备将回复到通常的IRQ驱动的运行方式。在分组可以发送到下一个正确的计算机之前(通常不同于目标计算机,因为除非存在直接的硬件链路,否则IP分组通常通过网关发送),必须确定接收方网卡的硬件地址。原创 2023-07-20 11:36:45 · 367 阅读 · 0 评论 -
网络子系统学习2:套接字缓冲区
由于在此类体系结构上,整型变量占用的内存只有指针变量的一半(前者是4字节,后者是8字节),该结构的长度缩减了20字节。data 和head 仍然是常规的指针,而所有sk_buff_data_t 类型的成员现在都解释为相对于前两者的偏移量。由于网络子系统必须保证较低的内存占用和较高的处理速度,因而对struct sk_buff 来说,我们需要保持该结构的长度尽可能小。由于假定套接字缓冲区的内部表示对通用网络代码是不可见的,所以提供了如下几个辅助函数来访问struct sk_buff 的成员。原创 2023-07-19 11:18:50 · 530 阅读 · 0 评论 -
网络子系统学习1:网络模型
国际标准化组织)设计了一种参考模型,定义了组成网络的各个层。该模型由7层组成,称为OSI(Open Systems Interconnection,开放系统互连)模型,如图所示。其中将ISO/OSI模型的一些层合并为新层。该模型只有4层,因此其结构更为简单。这种模型称为TCP/IP**参考模型**,IP表示Internet Protocol(网际协议),而TCP表示Transmission Control Protocol(传输控制协议)。原创 2023-07-07 09:53:51 · 257 阅读 · 0 评论