Apakah iphdr dalam linux

WBOY
Lepaskan: 2022-07-15 15:35:07
asal
2708 orang telah melayarinya

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.

Apakah iphdr dalam linux

Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.

Apakah iphdr dalam linux?

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地址
};
Salin selepas log masuk

Apakah iphdr dalam linux

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan