实际实现OSI层中的代码

Practical Implementation of OSI layers into code

本文关键字:代码 OSI 实现      更新时间:2023-10-16

知道七层如何相互作用和操纵数据的理论是一回事,但是一个人如何在现实世界中使用实际代码实现这一点。

我想知道如何在实践中实现这些层(PC作为示例,因为它使用了与路由器不同的所有层等) - 每个层都是一个具有标准化API的单独过程(因此有许多可以一起工作的软件的PEICES)或类似于使用共享库等负责特定的HW/SW设置的网络驱动程序?还是其他一些完全不同的方法?

我要问这个问题的原因是因为我想在868MHz频段上创建自己的网络,并且我想使用一些现有代码(对于ex。Datalink错误校正和此类代码 - 因为这是一种方式除了我的技能之外),还可以编写自己的网络层代码来自定义设备交互的方式。

是针对所有这些负责的特定HW/SW设置的网络驱动程序

是。在大多数所有现代操作系统中,出于性能和安全原因,内核都实现了网络堆栈。

性能:处理数据包进行了许多工作,因此在将应用程序层数据派遣到绑定到给定套接字的应用程序之前,在内核中进行工作更有效。

安全性:内核可以防止无特点的用户做"不良"的事情,例如欺骗其IP地址或用ICMP消息淹没另一个主机。

值得一提的是Linux内核源代码。

  • net-在这里,您将找到所有核心设备和协议实现(IP,TCP,UDP等)
    • dev.c-设备管理
    • ipv4 -IPv4和UDP,TCP V4
    • ipv6 -IPv6和UDP,TCP V6
  • drivers/net-网络设备驱动程序