Bit đầu tiên: không sử dụng

Một phần của tài liệu ATMEGA32 GIAO TIẾP VỚI ENC28J60 QUA SPI – AVR WEBSERVER (Trang 26 - 28)

. Bit 2: DF (Don’t Fragment) = 1 có nghĩa là không phân đoạn gói này. Bit 3: MF (More Fragment) = 0 => đây là phân đoạn cuối cùng . Bit 3: MF (More Fragment) = 0 => đây là phân đoạn cuối cùng

+ Fragmented offset (13 bit): độ dời (đơn vị 8 byte) tính từ điểm bắt đầu của Header tới điểm bắt đầu của phân đoạn đầu của phân đoạn

(3 trường trên: Identification, Flags, Fragmented offset dùng cho trường hợp đặc biệt khi ta cần chia đoạn dữ liệu ban đầu thành nhiều phân đoạn, đóng gói trong các gói tin nhỏ hơn, khi đó ta chia đoạn dữ liệu ban đầu thành nhiều phân đoạn, đóng gói trong các gói tin nhỏ hơn, khi đó ta cần dùng các trường này cho mục đích ráp lại các phân đoạn để khôi phục lại đoạn dữ liệu ban đầu, trong project của chúng ta sẽ không có xử lý trường hợp này).

+ TTL (Time to Live) (8 bit): thời gian tồn tại trên mạng hoặc số chặng trên mạng mà gói đi qua trước khi bị hủy bỏ trước khi bị hủy bỏ

+ Protocol (8 bit): nhận diện Protocol trên lớp IP+ Header checksum (16 bit): sửa sai cho phần Header + Header checksum (16 bit): sửa sai cho phần Header + Các vùng địa chỉ nguồn, địa chỉ đích: địa chỉ IP 32 bit

+ Option: các tùy chọn dùng cho việc kiểm tra: Loose source routing, Strict source routing, Record route và Timestamp Record route và Timestamp

+ Pađing: Gồm các số zero được thêm vào sao cho chiều dài của vùng Header là bội số của 32 bit bit

(Trong phạm vi project của chúng ta, sẽ không có phần option và pađing)Vậy ta khai báo trong file “packet.h” nội dung như sau: Vậy ta khai báo trong file “packet.h” nội dung như sau:

Code:

//--- ---

//Cau truc IP header struct ntIPHeader {

unsigned char verHdrLen; unsigned char ToS;

unsigned int Len; unsigned int IDNumber; unsigned int Offset; unsigned char TTL; unsigned char Protocol; unsigned int Checksum; unsigned long srcIPAđr; unsigned long desIPAđr; unsigned char Option[4]; };

#define IP_HEADER_LEN 20 #define IP_PROTO_ICMP 1 #define IP_PROTO_TCP 6 #define IP_PROTO_UDP 17

Còn đây là cấu trúc gói ARP:

Một phần của tài liệu ATMEGA32 GIAO TIẾP VỚI ENC28J60 QUA SPI – AVR WEBSERVER (Trang 26 - 28)