Giao thức li n mạng IP hạt nhân c a bộ giao thức TCP/IP. Trong phạm vi đề tài chúng ta chỉ x t t i IP phi n bản 4 (IPv4). IP là một giao thức h ng dữ liệu đ ợc sử dụng trong mạng chuyển mạch gói (ví dụ nh Ethernet). IP là một giao thức hoạt động theo ph ơng thức không li n kết (connectionless) và không đảm bảo truyền (không có sự trao đổi thông tin điều khiển). Vai trò c a IP t ơng tự nh vài trò c a giao thức tầng mạng (network layer) trong mô hình OSI v i các chức năng nh sau:
Xác định l ợc đồ địa chỉ Internet.
Di chuyển dữ liệu giữa tầng giao vận và tầng li n kết.
D n đ ờng cho các đơn vị dữ liệu t i các trạm ở xa.
Thực hiện việc cắt và hợp các đơn vị dữ liệu.
Giao thức IP sẽ bổ sung phần header vào tr c segment đ ợc gửi từ tầng giao vận xuống và đơn vị dữ liệu này trong bộ giao thức TCP/IP đ ợc gọi là IP packet nh hình sau:
Đơn vị dữ liệu c a giao thức IP có cấu trúc nh sau:
Bit
offset 0–3 4–7 8–15 16–18 19–31
0 Version Header
length
Differentiated
Services Total Length
32 Identification Flags Fragment
Offset
64 Time to Live Protocol Header Checksum
96 Source Address
128 Destination Address
160 Options + Padding
160/19
2+ Data (max 65535 bytes)
Trong đó phần header bao gồm các thành phần:
Version: chỉ ra phi n bản hiện hành c a IP đ ợc cài đặt (có giá trị là 4 đối v i IPv4).
Internet Header Length (IHL) Chỉ độ dài phần đầu c a IP packet, tính theo đơn vị từ (word = 32 bit). Độ dài tối thiểu là 5 từ (20 byte).
Differentiated Services (DS): Tr c đây còn gọi là Type of Services đặc tả các tham số dịch vụ, có dạng cụ thể nh sau:
V i ý nghĩa các bit cụ thể:
Precedebce (3 bit): quyền u ti n cụ thể là 111 - Network Control, 110 - Internetwork Control, 101 - CRITIC/ECP, 100 - Flash Override, 011 - Flash, 010 - Immediate, 001 - Priority, 000 – Routine.
D (Delay) (1 bit): chỉ độ trễ y u cầu D = 0 nếu độ trễ bình th ờng, 1 nếu độ trễ thấp.
T (Throughput) (1 bit): chỉ thông l ợng y u cầu T = 0 thông l ợng bình th ờng, 1 nếu thông l ợng cao.
R (Reliability) (1bit) chỉ độ tin cậy y u cầu R = 0 độ tin cậy bình th ờng, 1 nếu độ tin cậy cao.
C (Cost) (1bit) chỉ hao phí C = 0 normal cost, 1 nếu minimize cost.
Reserved (1bit) để dành.
Total Length tr ờng 16 bit chỉ độ dài toàn bộ datagram bao gồm cả phần header và phần data tính theo byte và có giá trị l n nhất là 65535 và giá trị nhỏ nhất là 20 byte.
Identification (16 bit) định danh duy nhất cho 1 datagram khi nó v n còn tr n li n mạng.
Flags (3 bit) điều khiển sự phân mảnh. Theo thứ tự từ bit cao xuống bit thấp nh sau:
bit 0 – 2 3 5 5 6 7
o Reserved: có giá trị 0.
o DF: 0 (May Fragment); 1 (Don‟t Fragment).
o MF: 0 (Last Fragment); 1 (More Fragment).
Fragment Offset chỉ vị trí c a đoạn (fragment) trong datagram tính theo đơn vị 64 bit, có nghĩa mỗi đoạn (trừ đoạn cuối cùng) phải chứa một vùng dữ liệu có độ dài là bội số c a 64 bit.
Time To Live (TTL) (8 bit): quy định thời gian tồn tại (tính bằng giây) c a datagram trong li n mạng để tránh tình trạng một datagram bị lặp vô hạn tr n li n mạng. Thời gian này đ ợc cho bởi trạm gửi và đ ợc giảm đi (th ờng quy c là 1 đơn vị) khi datagram đi qua mỗi router c a li n mạng.
Protocol (8 bit): chỉ ra giao thức tầng tr n kế tiếp sẽ nhận vùng dữ liệu ở trạm đích (hiện tại th ờng là TCP hoặc UDP đ ợc cài đặt tr n IP).
Header Checksum (16 bit): mã kiểm soát lỗi 16 bit theo ph ơng pháp CRS, chỉ dành cho phần header.
Source address (32 bit): địa chỉ trạm nguồn.
Destination address (16 bit): địa chỉ trạm đích.
Options (độ dài thay đổi): khai báo các lựa chọn do ng ời dùng y u cầu (tùy theo từng ch ơng trình).
Padding (độ dài thay đổi): vùng đệm đ ợc dùng để đảm bảo cho phần header luôn kết thúc ở một mốc 32 bits.
Data (độ dài thay đổi): vùng dữ liệu có độ dài là bội số c a 8 bit và tối đa là 65535 byte.