netinet/if_ether.h ether_arp的數(shù)據(jù)結(jié)構(gòu)
netinet/ether.h 以太禎的網(wǎng)絡(luò)字節(jié)和ascii字節(jié)的轉(zhuǎn)換,包括ether_ntoa(),ether_aton這樣的函數(shù)定義
netinet/ip.h 這個(gè)頭文件和linux/ip.h似乎很相似,也有iphdr的數(shù)據(jù)結(jié)構(gòu),同時(shí)還包括了timestamp結(jié)構(gòu),我的理解是,linux文件夾下的 ip.h是linux黑客編寫的ip頭文件,而這個(gè)則是gnu一開始就定義的頭文件,同時(shí)還包括了bsd中的ipheader結(jié)構(gòu)定義。同理的還有該目錄下的tcp.h等文件
linux/ip.h iphdr的數(shù)據(jù)結(jié)構(gòu),以及一些ip層的數(shù)據(jù)定義,同理的還有tcp.h,udp.h等等
linux/if.h 主要的socket頭文件,似乎修改自unix的if.h,定義了網(wǎng)卡的接口信息的宏,例如IFF_UP.另外有數(shù)個(gè)重要的interface的數(shù)據(jù)結(jié)構(gòu)定義,包括ifreq,ifconf,ifmap
linux/if_packet.h 原始數(shù)據(jù)包的數(shù)據(jù)結(jié)構(gòu)定義,包括sockaddr_pkt,sockaddr_ll,想接收原始數(shù)據(jù)包的不能錯(cuò)過這個(gè)文件。同理的還有if_ppp.h,if_tun.h等等
netinet/in.h 這個(gè)文件作的事情就多了。端口宏定義,著名ip(比如loopback),結(jié)構(gòu)sockaddr_in,網(wǎng)絡(luò)字節(jié)轉(zhuǎn)換(ntoh,hton。。。。)。。。反正太多了,沒事的話就把這個(gè)文件加到頭文件包含里吧
netdb.h 文件如其名,包括結(jié)構(gòu)hostent(主機(jī)環(huán)境),獲得主機(jī)的信息的幾個(gè)函數(shù)(gethostbyname)。似乎這個(gè)就是定義主機(jī)的各項(xiàng)環(huán)境,例如hostname等等
net/bpf.h berkeley的數(shù)據(jù)包過濾頭文件,想用bpf進(jìn)行包過濾的要重視一下這個(gè)文件
net/ethernet.h 包括幾個(gè)以太網(wǎng)的數(shù)據(jù)結(jié)構(gòu),ether_addr(mac幀結(jié)構(gòu)),ether_header(以太幀的頭部)
-------------------------------
------------------------------