Cấu trúc gói dữ liệu IP

Một phần của tài liệu Các giao thức định tuyến cổng nội trong mạng IP (Trang 35 - 39)

IP là giao thức cung cấp dịch vụ truyền thông theo kiểu “không liên kết” (Connectionless). Phơng thức không liên kết cho phép cặp trạm truyền nhận không cần phải thiết lập liên kết trớc khi truyền dữ liệu và do đó không cần phải giải phóng liên kết khi không còn nhu cầu truyền dữ liệu nữa. Phơng thức kết nối "không liên kết" cho phép thiết kế và thực hiện giao thức trao đổi dữ liệu đơn giản (không có cơ chế phát hiện và khắc phục lỗi truyền). Cũng chính vì vậy độ tin cậy trao đổi dữ liệu của loại giao thức này không cao.

Các gói dữ liệu IP đợc gọi là các Datagram.Nh một frame mạng vật lý, một datagram đợc chia thành vùng header và vùng dữ liệu. Phần header cũng tơng tự frame, nó chứa địa chỉ nguồn cùng địa chỉ đích và một trờng type dùng định danh nội dung của datagram. Sự khác nhau là header của datagram chứa địa chỉ IP còn header của frame chứa địa chỉ vật lý. Hình sau mô tả dạng tổng quát của một datagram.

Hình 1.17 Datagram

Nếu địa chỉ IP đích là địa chỉ của một trạm nằm trên cùng một mạng IP với trạm nguồn thì các gói dữ liệu sẽ đợc chuyển thẳng tới đích, nếu địa chỉ IP đích không nằm trên cùng một mạng IP với máy nguồn thì các gói dữ liệu sẽ đợc gửi đến một máy trung chuyển, IP Gateway để chuyển tiếp. IP Gateway là một thiết bị mạng IP đảm nhận việc lu chuyển các gói dữ liệu IP giữa hai mạng IP khác nhau. Hình 1.18 mô tả cấu trúc gói dữ liệu IP.

Hình 1.18 Cấu trúc gói dữ liệu IP

♦ VERS (4 bits): Version hiện hành của IP đợc cài đặt.Gồm 4 bít, chứa đựng phiên bản của giao thức IP đợc dùng trong gói tin. Trờng này đợc dùng để kiểm tra xem bên nhận, bên gửi, gateway trung gian có chấp nhận cấu trúc của gói tin hay không. Tất cả các phần mềm IP đều phải kiểm tra trờng này để xem nó có khả năng xử lý đợc phiên bản này hay không. Nếu nh phiên bản của gói tin khác với phiên bản mà nó có thể xử lý thì chơng trình sẽ không xử lý và báo lỗi.

♦ IHL (4 bits): Độ dài phần tiêu đề (Internet Header Length) của Datagram, tính theo đơn vị từ (32 bits). Nếu không có trờng này thì độ dài mặc định của phần tiêu đề là 5 từ.

♦ Type of service (8 bits): Trờng kiểu dịch vụ cho biết các thông tin về loại dịch vụ và mức u tiên của gói IP, có dạng cụ thể nh sau:

Precedence D T R Unused

Trong đó:

Precedence (3 bits): chỉ thị về quyền u tiên gửi Datagram, cụ thể là:

 111 Network Control (cao nhất) 011- flash

 110 Internetwork Control 010 Immediate

 101 CRITIC/ECP 001 Priority

 100 Flas Override 000 Routine (thấp nhất)

D (Delay) (1 bit) : chỉ độ trễ yêu cầu.

 D=0 độ trễ bình thờng.

 D=1 độ trễ thấp.

T (Throughput) (1 bit): chỉ số thông lợng yêu cầu.

 T=1 thông lợng bình thờng.

 T=1 thông lợng cao.

R (Reliability) (1 bit): chỉ độ tin cậy yêu cầu.

 R=0 độ tin cậy bình thờng.

 R=1 độ tin cậy cao.

♦ Total Length (16 bits): Trờng tổng độ dài chỉ độ dài toàn bộ Datagram, kể cả phần Header (tính theo đơn vị bytes), vùng dữ liệu của Datagram có thể dài tới 65535 bytes. Trờng này gồm 4 bít chỉ ra độ dài của phần header của gói tin tính theo đơn vị số từ 32 bít. Thông thờng độ dài của phần header là 20 bytes. Phần header có độ dài tối thiểu là 5 từ 32 bít.

♦ Identification (16 bits) : Trờng nhận dạng cùng với các tham số khác nh (Source Address và Destination Address) tham số này dùng để định danh duy nhất cho một Datagram trong khoảng thời gian nó vẫn còn trên liên mạng.

♦ Flags (3 bits) : liên quan đến sự phân đoạn (Fragment) các Datagram. Cụ thể là:

 Bit 0 : Reserved, cha sử dụng luôn lấy giá trị 0

 Bit 1 : (DF)= 0 (May Fragment)

1 (Don’t Fragment)

 Bit 2 : (MF)= 0 (Last Fragment) (adsbygoogle = window.adsbygoogle || []).push({});

1 (More Fragment)

♦ Fragment Offset (13 bits) : chỉ vị trí của đoạn (Fragment) ở trong Datagram, tính theo đơn vị 64 bits, có nghĩa là 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 của 64 bits.

♦ Time To Live (TTL-8 bits) : quy định thời gian tồn tại của một gói dữ liệu trên liên mạng để tránh tình trạng một Datagram bị quẩn trên mạng. Giá trị này đợc đặt lúc bắt đầu gửi đi và sẽ giảm dần mỗi khi gói dữ liệu đợc xử lý tại những điểm trên đờng đi của gói dữ liệu (thực chất là tại các Router). Nếu giá trị này bằng 0 trớc khi đến đợc đích, gói dữ liệu sẽ bị huỷ bỏ.

Trờng TTL chỉ ra số đơn vị tính bằng giây một gói tin có thể tồn tại trong mạng. Khi gửi một gói tin đi, bên gửi sẽ gán giá trị này trong mỗi gói tin. Gateway và các trạm xử lý gói tin sẽ giảm trờng TTL đi một số thời gian và sẽ loại bỏ gói tin khi giá trị của trờng này bằng 0.

Việc tính toán thời gian cần giảm là tơng đối khó khăn. Để đơn giản hóa gateway sẽ giảm trờng TTL đi 1 đơn vị mỗi khi nó xử lý một header của gói tin. Ngoài ra để xử lý trờng hợp có sự trễ tại gateway, khi nhận một gói tin nó sẽ ghi lại thời điểm nhận và khi chuyển gói tin đi nó sẽ ghi lại thời điểm gửi. Gateway sẽ trừ trờng TTL đi một giá trị bằng thời gian mà gói tin này ở lại trong gateway.

Khi trờng TTL bằng không, gateway sẽ loại bỏ gói tin và gửi thông báo lỗi về cho bên gửi. Việc dùng TTL cho phép loại trừ khả năng một gói tin có thể tồn tại nội trong mạng ngay cả khi bảng chọn đờng của gateway gặp sự cố và gateway gửi gói tin bị lặp trong mạng.

♦ Protocol (8 bits): chỉ giao thức tầng 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 bits): mã kiểm soát lỗi sử dụng phơng pháp CRC (Cycle Redundancy Check) dùng để đảm bảo thông tin về gói dữ liệu đợc truyền đi một cách chính xác (mặc dù dữ liệu có thể bị lỗi). Nếu nh việc kiểm tra này thất bại, gói dữ liệu sẽ bị huỷ bỏ tại nơi xác định đợc lỗi. Cần chú ý là IP không cung cấp một phơng tiện truyền tin cậy bởi nó không cung cấp cho ta một cơ chế để xác nhận dữ liệu truyền tại điểm nhận hoặc tại những điểm trung gian. Giao thức IP

không có cơ chế kiểm soát lỗi (Error Control) cho dữ liệu truyền đi, không có cơ chế kiểm soát luồng dữ liệu (Flow Control).

♦ Source Address (32 bits): địa chỉ của trạm nguồn. ♦ Destination Address (32 bits): địa chỉ của trạm đích.

♦ Option (có độ dài thay đổi) sử dụng trong một số trờng hợp, nhng thực tế chúng rất ít dùng. Option bao gồm chức năng bảo mật, chức năng định tuyến đặc biệt

♦ 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 của 8 bits, tối đa là 65535 bytes.

Một phần của tài liệu Các giao thức định tuyến cổng nội trong mạng IP (Trang 35 - 39)