首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
linux1.2专题
linux1.2.13源码中,管理sock结构体的数据结构及操作函数
tcp和udp等协议在传输层都对应一个sock结构,该结构是实现协议的重要结构体,而传输层实现的就是对该结构体的管理。利用一个哈希链表根据端口号保存sock结构体。有了保存sock结构的数据结构后,还需要一系列的操作函数。代码如下。 /** See if a socket number is in use.*/// 看socket的端口是否在使用 static int sk_inuse(st
阅读更多...
通过源码理解rarp协议(基于linux1.2.13)
rarp是通过mac地址查询ip的协议,主要用于有mac的主机,但是没有ip的情况。我们先看看rarp协议的协议定义(来自网上的图)。 rarp协议的格式和arp协议是一样的,他们都是通过一种地址查询另外一种地址。操作系统内维护了一个转换表。定义如下。 struct rarp_table{struct rarp_table *next; /* Linked entr
阅读更多...
通过源码理解IGMP v1的实现(基于linux1.2.13)
IGMP是组成员管理协议,我们知道一般的通信是单播的,虽然主机发出的单播报文,局域网中的每个主机都会收到,但是默认情况下,主机只会处理目的ip是自己的报文。如果我想让多个主机都可以处理我发出的报文怎么办呢?这就是IGMP做的事情。他定义了组的概念,我们可以使用多播的方式,给一个组发送报文,属于这个组的主机都可以处理这个报文。下面我们看看多播是怎么实现的。首先我们看一下网络架构。 ip地址中给多播
阅读更多...