8.2 IPv4 Packet Header: Cấu trúc và Chức năng
8.2 IPv4 Packet
8.2.1 IPv4 Packet Header
IPv4 là một trong những giao thức truyền thông lớp network chính. IPv4 packet header được sử dụng để đảm bảo rằng packet này được chuyển đến điểm dừng tiếp theo trên đường đến thiết bị đầu cuối đích của nó.
IPv4 packet header bao gồm các trường chứa thông tin quan trọng về packet. Các trường này chứa số nhị phân được kiểm tra bởi quá trình Layer 3.
💡: IPv4 header giống như "tem thông tin" dán trên kiện hàng. Nó chứa tất cả thông tin cần thiết để "bưu tá" (router) biết gửi kiện hàng đi đâu, qua đường nào, và kiểm tra xem kiện hàng có bị hỏng không.
8.2.2 Các trường IPv4 Packet Header
Giá trị nhị phân của mỗi trường xác định các cài đặt khác nhau của IP packet. Sơ đồ protocol header, được đọc từ trái sang phải và từ trên xuống dưới, cung cấp hình ảnh trực quan để tham khảo khi thảo luận về các trường giao thức. Sơ đồ IP protocol header trong hình xác định các trường của IPv4 packet.
Các trường trong IPv4 Packet Header
💡 cho các trường quan trọng:
- Source/Destination IP: Địa chỉ người gửi và người nhận (như địa chỉ nhà)
- TTL (Time to Live): Số "trạm dừng" tối đa packet được phép đi qua (tránh lạc đường mãi mãi)
- Protocol: Cho biết bên trong chứa gì (TCP=6, UDP=17, ICMP=1)
- Header Checksum: Mã kiểm tra xem header có bị hỏng không
Các trường quan trọng trong IPv4 header bao gồm:
- Version - Chứa giá trị nhị phân 4-bit được đặt thành 0100 xác định đây là IPv4 packet.
- Differentiated Services hoặc DiffServ (DS) - Trước đây được gọi là trường type of service (ToS), trường DS là trường 8-bit được sử dụng để xác định mức ưu tiên của mỗi packet. Sáu bit quan trọng nhất của trường DiffServ là các bit differentiated services code point (DSCP) và hai bit cuối cùng là các bit explicit congestion notification (ECN).
- Time to Live (TTL) - TTL chứa giá trị nhị phân 8-bit được sử dụng để giới hạn thời gian tồn tại của packet. Thiết bị nguồn của IPv4 packet đặt giá trị TTL ban đầu. Nó giảm đi một mỗi khi packet được xử lý bởi router. Nếu trường TTL giảm xuống 0, router loại bỏ packet và gửi thông báo Internet Control Message Protocol (ICMP) Time Exceeded đến địa chỉ IP nguồn. Vì router giảm TTL của mỗi packet, router cũng phải tính toán lại Header Checksum.
💡 về TTL: Hãy tưởng tượng TTL như "tem xe buýt" - mỗi lần qua một trạm (router), bị đục lỗ một lần. Khi hết lỗ (TTL=0), packet bị "đuổi xuống xe" để tránh đi lòng vòng mãi mãi.
- Protocol - Trường này được sử dụng để xác định giao thức cấp tiếp theo. Giá trị nhị phân 8-bit này chỉ ra loại data payload mà packet đang mang, cho phép lớp network chuyển dữ liệu đến giao thức lớp trên thích hợp. Các giá trị phổ biến bao gồm ICMP (1), TCP (6), và UDP (17).
- Header Checksum - Được sử dụng để phát hiện lỗi trong IPv4 header.
- Source IPv4 Address - Chứa giá trị nhị phân 32-bit đại diện cho địa chỉ IPv4 nguồn của packet. Địa chỉ IPv4 nguồn luôn là địa chỉ unicast.
- Destination IPv4 Address - Chứa giá trị nhị phân 32-bit đại diện cho địa chỉ IPv4 đích của packet. Địa chỉ IPv4 đích là địa chỉ unicast, multicast, hoặc broadcast.
Hai trường được tham chiếu phổ biến nhất là địa chỉ IP nguồn và đích. Các trường này xác định packet đến từ đâu và sẽ đi đến đâu. Thông thường, các địa chỉ này không thay đổi khi di chuyển từ nguồn đến đích.
Các trường Internet Header Length (IHL), Total Length, và Header Checksum được sử dụng để xác định và xác thực packet.
Các trường khác được sử dụng để sắp xếp lại packet bị phân mảnh. Cụ thể, IPv4 packet sử dụng các trường Identification, Flags, và Fragment Offset để theo dõi các mảnh. Router có thể phải phân mảnh IPv4 packet khi chuyển tiếp nó từ một phương tiện này sang phương tiện khác có MTU nhỏ hơn.
Các trường Options và Padding hiếm khi được sử dụng và nằm ngoài phạm vi của module này.