Nếu bạn đã biết, các thiết bị trao đổi với nhau dựa trên địa chỉ IP nguồn và đích thì bạn tự hỏi rằng làm cách nào mà các thiết bị hay gói dữ liệu biết địa chỉ của dữ liệu. Câu trả lời đó là tiêu đề IP (hay IP Header). Nó chứa các thông tin chi tiết bao gồm cả địa chỉ IP nguồn và đích đến của dữ liệu. Ngoài ra nó còn chứa rất nhiều các trường thông tin khác.
Bài viết này sẽ hướng dẫn chi tiết để bạn hiểu được địa chỉ IP là gì? Vai trò của nó? Cấu trúc của IP Header như thế nào?
IP Header là gì?
IP Header là tiền tố của một gói tin, nó được thêm vào gói tin khi truyền dữ liệu truyền đi trong mạng hay Internet. IP header chứa rất nhiều trường thông tin khác nhau từ phiên bản IP, độ dài của gói tin, địa chỉ IP nguồn và đích,…
Tiêu đề IP đóng vai trò cực kỳ quan trọng trong việc truyền dữ liệu trong mạng. Nó không chỉ liên quan đến vấn đề định tuyến dữ liệu, cách phân chia dữ liệu truyền mà còn liên quan đến vấn đề như giao thức truyền dữ liệu, kiểm tra tính toàn vẹn của dữ liệu, hay cài dịch vụ kiểm tra chất lượng.
Cấu trúc của IP Header
IP Header bao gồm các trường dữ liệu mô tả các khía cạnh khác nhau của gói tin IP, bao gồm:
- Version (phiên bản): Xác định phiên bản của giao thức IP được sử dụng, thường là IPv4 hoặc IPv6.
- Header Length (độ dài header): Cho biết kích thước của header trong 32-bit words để có thể xác định vị trí bắt đầu của dữ liệu trong gói tin IP.
- Type of Service (Loại dịch vụ): Thường được sử dụng để chỉ định ưu tiên của gói tin trong mạng (nhưng hiện nay thường được bỏ qua hoặc thay thế bởi các công nghệ QoS khác).
- Total Length (Tổng độ dài): Độ dài tổng cộng của gói tin IP, bao gồm cả header và dữ liệu, được đo bằng số byte.
- Identification: Dùng để xác định gói tin cụ thể trong trường hợp các gói tin bị chia nhỏ để truyền qua các kênh có độ trễ hoặc chập chờn.
- Flags (Cờ): Chứa các cờ như “Don’t Fragment” (Không chia nhỏ), “More Fragments” (Còn nhiều phần chia nhỏ), dùng trong quá trình chia nhỏ và gom gói tin.
- Fragment Offset (Offset chia nhỏ): Xác định vị trí của phần dữ liệu trong gói tin IP khi nó đã được chia nhỏ thành các fragment.
- Time to Live (Thời gian tồn tại): Được sử dụng để giảm nguy cơ các gói tin vô hạn lặp lại trong mạng bằng cách giảm giá trị này mỗi khi gói tin đi qua một router, cuối cùng nếu giá trị này giảm xuống 0 thì gói tin sẽ bị loại bỏ.
- Protocol (Giao thức): Xác định giao thức của dữ liệu phần cứng trong gói tin IP, chẳng hạn như TCP, UDP hoặc ICMP.
- Header Checksum (Kiểm tra checksum của header): Được sử dụng để kiểm tra tính toàn vẹn của header IP.
- Source IP Address (Địa chỉ IP nguồn): Địa chỉ IP của máy gửi gói tin.
- Destination IP Address (Địa chỉ IP đích): Địa chỉ IP của máy nhận gói tin.
- Options (Tùy chọn): Một số trường tùy chọn có thể xuất hiện trong header IP, nhưng thường không được sử dụng do tăng kích thước header và làm giảm hiệu suất của mạng.
- Padding (Đệm): Sử dụng để đảm bảo rằng header có kích thước là một bội số của 32-bit word.
Ví dụ tiêu đề IP trong WireShark:
Các thiết bị mạng sử dụng IP Header như thế nào?
Với bộ định tuyến:
Trong mạng, IP header đóng vai trò quan trọng trong việc định tuyến gói tin từ nguồn đến đích. Khi một router nhận được một gói tin, trước tiên nó sẽ đọc thông tin trong IP header như địa chỉ nguồn và địa chỉ đích.
Sau đó, router sẽ so sánh địa chỉ đích với các mục trong bảng định tuyến của mình để xác định tiếp theo là địa chỉ nào.
Trong quá trình này, router cũng sẽ giảm giá trị của trường Time to Live (TTL) và kiểm tra xem gói tin có bị quá hạn hay không. Nếu TTL bằng 0, router sẽ loại bỏ gói tin và gửi một tin nhắn ICMP Time Exceeded trở lại nguồn. Ngược lại, nếu TTL không bằng 0, router sẽ tiếp tục chuyển tiếp gói tin đến đích tiếp theo.
Quá trình này lặp lại cho đến khi gói tin đến được đích cuối cùng. Đồng thời, router cũng có thể cập nhật bảng định tuyến của mình dựa trên thông tin từ các gói tin mà nó nhận được, giúp cải thiện hiệu suất và độ tin cậy của mạng.
Với thiết bị khác:
Switch hoạt động ở tầng 2 (tầng liên kết dữ liệu) của mô hình OSI, chủ yếu là dựa vào địa chỉ MAC để chuyển tiếp gói tin trong mạng LAN. Tuy nhiên, trong một số trường hợp, switch cũng có thể sử dụng thông tin trong IP header như địa chỉ IP đích để xác định cổng nào sẽ chuyển tiếp gói tin đến thiết bị cuối cùng trong mạng.
Firewall là thiết bị chủ chốt trong mạng, kiểm soát luồng dữ liệu dựa trên các quy tắc được xác định trước. Firewall có thể sử dụng thông tin trong IP header như địa chỉ nguồn và địa chỉ đích để xác định liệu gói tin có được chấp nhận hay không. Nếu gói tin không tuân thủ các quy tắc được xác định, firewall có thể quyết định loại bỏ hoặc chặn gói tin đó.
Load balancer thường được sử dụng để phân phối tải và cân bằng tải cho các server trong cụm server. Thông tin trong IP header như địa chỉ đích có thể được load balancer sử dụng để xác định server nào sẽ nhận và xử lý gói tin đó. Load balancer cũng có thể sử dụng thông tin này để quyết định xem liệu gói tin cần được chuyển tiếp đến server nào trong cụm.
Thông tin trong IP header, như địa chỉ đích, có thể được proxy server sử dụng để xác định server nào sẽ nhận yêu cầu từ người dùng. Ngoài ra, proxy server cũng có thể sử dụng thông tin trong IP header để kiểm soát và lọc các yêu cầu từ người dùng, giúp bảo vệ mạng khỏi các mối đe dọa bảo mật.
Thông Tin Về Tác Giả
Nguyễn Thành Hợp là một chuyên gia về lĩnh vực thiết bị mạng, viễn thông gần 10 năm kinh nghiệm với nhiều chứng chỉ chất lượng như CCNA 200-301, CCNP, CCDA, CCDP,... do Cisco cung cấp. Sở thích cá nhân là khám phá những kiến thức mới mẻ về công nghệ nói chung và đặc biệt là liên quan đến lĩnh vực mạng!