Di Linux, iphdr ialah struktur perihalan paket data ip; fail pengepala tempat iphdr terletak ialah "/usr/src/linux/include/linux/ip.h", dan strukturnya terdiri daripada sekumpulan data Data berstruktur gabungan Setiap data yang membentuk data berstruktur dipanggil ahli data berstruktur, yang menerangkan saiz dan makna tafsiran selang memori.
Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.
iphdr ialah istilah komputer. Ia adalah struktur perihalan paket data IP di bawah Linux. Fail pengepala di mana
terletak ialah /usr/src/linux/include/linux/ip.h, dan strukturnya adalah seperti berikut:
struct iphdr { #if defined(__LITTLE_ENDIAN_BITFIELD) //小端模式下 __u8 ihl:4,//首部长度(4位) version:4;//ip协议版本IPv4 #elif defined (__BIG_ENDIAN_BITFIELD) //大端模式下 __u8 version:4, ihl:4; #else #error "Please fix <asm/byteorder.h>" #endif __u8 tos;//服务类型字段(8位) __be16 tot_len;//16位IP数据报总长度 __be16 id;//16位标识字段(唯一表示主机发送的每一分数据报) __be16 frag_off;//(3位分段标志+13位分段偏移数) __u8 ttl;//8位数据报生存时间 __u8 protocol;//协议字段(8位) __be16 check;//16位首部校验 __be32 saddr; //源IP地址 __be32 daddr; //目的IP地址 };
Pengetahuan sambungan
iphdr->versi
versi (4 digit), nombor versi protokol semasa ialah 4, jadi IP kadangkala dipanggil IPv4.
iphdr->ihl
Panjang pengepala (4 bit): Panjang pengepala merujuk kepada bilangan perkataan 32-bit dalam pengepala lapisan IP (iaitu, berapa banyak 4 yang disertakan dalam pengepala lapisan IP Bytes – 32 bit), termasuk sebarang pilihan. Oleh kerana ia adalah medan 4-bit, panjang maksimum pengepala ialah 60 bait. Nilai medan datagram IP biasa (tanpa sebarang pilihan) ialah 5
iphdr->tos
Medan jenis perkhidmatan (8 bit): Medan jenis perkhidmatan (TOS) termasuk submedan keutamaan 3-bit (kini diabaikan), submedan TOS 4-bit dan 1 bit tidak digunakan tetapi mesti ditetapkan kepada 0. Subbidang TOS 4-bit mewakili: kelewatan minimum, daya pemprosesan maksimum, kebolehpercayaan maksimum dan kos minimum masing-masing. Hanya 1 bit antara 4 bit boleh ditetapkan. Jika semua 4 bit adalah 0, ia bermakna perkhidmatan biasa.
iphdr->tot_len
Jumlah medan panjang (16 bit) merujuk kepada panjang keseluruhan datagram IP, dalam bait. Menggunakan medan panjang pengepala dan medan jumlah panjang, anda boleh mengetahui kedudukan permulaan dan panjang kandungan data dalam datagram IP. Memandangkan medan ini adalah 16 bit panjang, datagram IP boleh sehingga 65535 bait panjang Jumlah medan adalah kandungan yang diperlukan dalam pengepala IP kerana beberapa pautan data (seperti Ethernet) perlu mengisi beberapa data untuk mencapai minimum. panjang. Walaupun panjang bingkai minimum Ethernet ialah 46 bait, data IP mungkin lebih pendek. Jika tiada medan jumlah panjang, maka lapisan IP tidak tahu berapa banyak daripada 46 bait adalah kandungan datagram IP.
iphdr->id
Medan pengenalan (16 bit) secara unik mengenal pasti setiap datagram yang dihantar oleh hos. Biasanya nilainya dinaikkan sebanyak 1 setiap kali mesej dihantar.
Pembelajaran yang disyorkan: Tutorial video Linux
Atas ialah kandungan terperinci Apakah iphdr dalam linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!