TCP/IP详解---接口层(1)

目前在读卷二,中文版为主,英文版作为参考。也不知道读完之后效果如何。

第三章 接口层(这章我准备分两次看完)


根据卷一的说明,这层称为数据链路层或网络接口层。是Tcp/IP协议的最底层。

它提供以下支持:

接口函数;

统计与控制标志;

与设备无关的存储协议地址方法;

一个标准的输出分组的排队方法;


SNMP(简单的网络管理协议)

ifnet结构:结构ifnet中包括所有接口的通用信息,在系统初始化期间,分别为每个网络设备分配一个独立的ifnet结构。每个ifnet结构有一个列表,它包含这个设备一个或多个协议地址。

ifnet结构比较复杂,可将其分为下面五个部分:

实现信息;

硬件信息;

接口统计;

函数指针;

输出队列;

ifaddr结构:每个接口维护一个ifaddr结构的链表,因为一些数据链路支持多于1个的协议,一个单独的ifaddr结构描述每一个分配给接口的地址,通常是每个协议一个地址。(例如知名的ip协议的协议地址就是ip地址)

ifaddr结构的定义如下

-------------------------------------------------------------------if.h

struct ifaddr

{

struct ifaddr *ifa_next;

struct ifnet *ifa_ifp;

struct sockaddr *ifa_addr;

struct sockaddr *ifa_dstaddr;

#define ifa_broadaddr ifa_dstaddr

struct sockaddr *ifa_netmask;

void (*ifa_rtrequest) ();

u_short ifa_flags;

short ifa_refcnt;

int ifa_metric;

}

-----------------------------------------------------------------------if.h


sockaddr结构

一个接口的地址信息不仅仅是一个主机地址,

struct sockaddr{

u_char sa_len;

u_char sa-family;

char sa_data[14];

};

一共是十六个字节。sa_data定义为14字节的数组,但是当sockaddr结构覆盖更大的内存空间时,sa_data 可能会扩展到更大253字节。(这是C语言的一种通用技术,它允许程序员将结构中的最后一个成员看成是可变长的。??其实这句话我还是不是很理解,sockaddr结构什么时候覆盖更大的空间??)


存储在sa_data中的地址是一个传输地址,它包含足够信息来标识同一台主机的多个通信端点。


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值