1. IP
Header
Internet
Protocol (IP) là một giao thức liên mạng hoạt động ở tầng Network trong mô hình
OSI. IP quy định cách thức định địa chỉ các máy tính và cách thức chuyển tải
các gói tin qua một liên mạng. IP được đặc tả trong bảng báo cáo kỹ thuật có
tên Request For Comments (RFC). IP có hai chức năng chính: cung cấp dịch vụ
truyền tải các gói tin qua một liên mạng, phân mảnh và hợp lại các gói tin. Các
gói dữ liệu xuất phát từ tầng Application, đến tầng Network được thêm vào một cấu
trúc IP Header. Gói dữ liệu sau khi được thêm vào cấu trúc IP Header thì được gọi
là IP Diagram
(Packet). Hiện nay, có hai phiên bản IP là IP Version 4 (IPv4) và IP Version 6
(IPv6), do đó có 2 cấu trúc tương ứng là IP Header Version 4 và IP header
Version 6.
a. Cấu trúc IP Header Version 4
IP Header Version 4 (tiêu
đề gói tin IPv4) gồm 12 trường bắt buộc với tổng chiều dài là
20 byte (không tính các trường Options và Data). Cấu trúc của IP
Header Version 4 như hình sau:
Hình 1 cấu trúc IP Header Version 4
Theo cấu trúc trên:
-
Version (4
bit): Chỉ ra
phiên bản IP đang được dùng là IPv4 (0100). Nếu trường này khác với phiên bản
IP của thiết bị nhận, thiết bị nhận sẽ từ chối và loại bỏ các gói tin này. Bằng
cách nhìn vào số phiên bản, Router có thể xác định
phần còn lại của IP Datagram.
-
IP
Header Length (IHL) (4 bit): Chỉ
ra chiều dài của header, mỗi đơn vị là 1 word, mỗi word = 32 bit = 4 byte. Ở
đây trường IP Header Length có 4 bit nên có 2^4 = 16 word = 16 x 4byte = 64
byte nên chiều dài header tối đa là 64 byte. Bình thường Hearder dài 20 byte.
Đây là chiều dài của tất cả các thông tin Header.
-
Type
Of Services (TOS) (8 bit): Chỉ
ra cách thức xử lý gói dữ liệu, có độ ưu tiên hay không, độ trễ cho phép của
gói dữ liệu. Trường này thường được dùng để thực hiện quản lý chất lượng dịch vụ
mạng.
-
Total
Length (16 bit): Chỉ ra chiều
dài của toàn bộ IP Datagram tính theo byte, bao gồm data và phần header. Do có
16 bit nên tối đa là 2^16 = 65536 byte = 64 Kb nên chiều dài tối đa của 1 IP Datagram
là 64 Kb.
-
Identification
(16 bit): Chỉ mã số của
1 IP Datagram , giúp bên nhận có thể ghép các mảnh của 1 IP Datagram lại
với nhau vì IP Datagram phân thành các mảnh và các mảnh thuộc cùng
1 IP Datagram sẽ có cùng Identification.
-
Flag
(3 bit): Bit 0:
không dùng, Bit 1: cho biết gói có phân
mảnh hay không, Bit 2: nếu gói IP Datagram bị phân mảnh thì mảnh này cho biết mảnh
này có phải là mảnh cuối không. Bao gồm 6 cờ: URG – cờ cho trường
Urgent pointer, ACK – cờ cho trường Acknowledgement, PSH – hàm Push, RST – thiết
lập lại đường truyền, SYN – đồng bộ lại số thứ tự, FIN – không gửi thêm dữ liệu.
-
Fragment
Offset (13 bit): Báo
bên nhận vị trí offset của các mảnh so với gói IP datagram gốc để có thể
ghép lại thành IP datagram gốc.
-
Time
To Live (TTL) (8
bit): Chỉ ra số bước nhảy (hop) mà một gói có thể đi qua. Con số này sẽ giảm đi
1, khi gói tin đi qua 1 router. Khi router nào nhận gói tin thấy TTL đạt
tới 0 gói này sẽ bị loại. Đây là giải pháp nhằm ngăn chặn tình trạng lặp vòng
vô hạn của gói tin trên mạng.
-
Protocol
(8 bit): Chỉ ra giao thức
nào của tầng trên (tầng Transport) sẽ nhận phần data sau khi công đoạn xử lí IP
diagram ở tầng Network hoàn tất hoặc chỉ ra giao thức nào của tầng trên gởi
segment xuống cho tầng Network đóng gói thành IP Diagram, mỗi giao thức có 1 mã
(06: TCP, 17: UDP, 01: ICMP…).
- Header CheckSum (16
bit):
Hỗ
trợ cho Router
phát hiện lỗi bit trong khi nhận IP datagram. Giúp bảo đảm sự toàn vẹn của IP
Header.
-
Source
IP Address (32 bit): Chỉ ra địa
chỉ của thiết bị truyền IP diagram (Xem cấu trúc của địa chỉ IPv4).
-
Destination
IP Address (32 bit): Chỉ ra địa
chỉ IP của thiết bị sẽ nhận IP diagram (Xem cấu trúc của địa chỉ IPv4).
-
IP
Option: kích thước không
cố định, chứa các thông tin tùy chọn như: Time stamp – thời điểm đã đi qua Router, Security
– cho phép Router nhận gói dữ liệu không, nếu
không thì gói sẽ bị hủy, Record Router – lưu danh sách địa
chỉ IP của Router mà gói phải đi qua, Source Route – bắt buộc đi qua Router
nào đó. Lúc này sẽ không cần dùng bảng định tuyến ở mỗi Router nữa.
-
Padding: Các số 0 được bổ sung vào trường này để đảm bảo
IP Header luôn là bội số của 32 bit.
b. Cấu trúc IP Header Version 6
Cấu trúc
của IP Header Version 6 (tiêu đề gói tin IPv6) bao gồm vài trường có chức năng giống
như IP Header Version 4 (nhưng tên các trường đã thay đổi) kết hợp thêm trường
mới. Trường mới thể hiện được hiệu quả hoạt động của IPv6 hơn so với IPv4.
Hình 2 Cấu trúc của IP Header Version 4 thay đổi so với IP Header version 6
Theo hình 5.2, các trường đã xóa bỏ
trong hình (IHL, Identification, Flags, Fragment Offset, Header Checksum, IP
Options, Padding) đã bị bỏ hoàn toàn trong cấu trúc của IP Header Version 4. Các
trường được tô xám (Type of Service, Total Length, Time to Live, Protocol) chức
năng vẫn được giữ trong IP Header Version 6 nhưng tên và vị trí đặt các trường
này đã bị thay đổi.
Hình 3 Cấu trúc của IP Header Version 6
Theo cấu trúc trên, các trường Traffic
Class, Playload Length, Next Header, Hop Limit được đổi tên và vị trì trong IP
Header Version 6. IP Header Version 6 có xuất hiện một trường mới hoàn toàn là Flow
Label.
-
Version (4bit): Chỉ ra phiên bản IP đang được dùng là IPv6 (0110).
-
Traffice Class (8
bit): Chức năng giống với trường Type of Service trong IP Header Version 4.
-
Playload Header
(16 bit): Chức năng giống với trường Total Length trong IP Header Version 4.
-
Next Header (8 bit): Chức năng giống với trường Protocol trong IP Header
Version 4.
-
Hop Limit (8
bit): Chức năng giống với trường Time to Live trong IP Header Version 4.
-
Source IP
Address (128 bit): Chỉ ra địa chỉ của thiết bị truyền IP diagram (xem cấu trúc
của địa chỉ IPv6).
-
Destination IP
Address (128 bit): Chỉ ra địa chỉ của thiết bị nhận IP diagram (xem cấu trúc của
địa chỉ IPv6).
-
Flow Label (20 bit): Trường này cho
phép một luồng cụ thể của lưu lượng phải được dán nhãn. Do đó, trường này hỗ trợ
tính năng quản trị chất lượng dịch vụ mạng. Nó còn được sử dụng cho kỹ thuật
chuyển mạch đa lớp.
Định tuyến
Hoạt động
định tuyến được thực hiện bởi các thiết bị định tuyến (Router) tại tầng Network
trong mô hình OSI.
a. Tổng quan định tuyến
Xét một
ví dụ cụ thể như sau: sinh viên A đang đứng tại trường Đại Học Công Nghê TP.HCM
đang muốn đi đến chợ Bến Thành. A
có thể đi đến chợ Bến Thành bằng 1 trong 3 đường sau đây:
-
Đường 1: Đi Điện Biên Phủ à Võ Thị Sáu à Nam Kỳ khởi
Nghĩa à Bến Thành.
-
Đường 2: Đi Điện
Biên Phủ à Bạch Đằng à Phan Đăng Lưu à
Hoàng Văn Thụ à Cách Mạng Tháng Tám à
Bến Thành.
-
Đường 3: Qua cầu
Sài Gòn à ngã tư Thủ Đức à
Kha Vạn Cân à Bến Thành.
Chắc chắn A sẽ chọn Đường 1 vì đây là đường tối ưu nhất (ngắn
nhất và tốt nhất). Để đi được bằng Đường 1 đến Bến Thành, A cũng cần biết được
điểm kế tiếp khi đang đi trên Điện Biên Phủ là Võ Thị Sáu chứ không phải Bạch Đằng.
Nhưng A cũng phải biết 2 đường đi còn lại. Vì nếu như Đường 1 bị hư hỏng
thì A cũng biết đi con đường thứ 2.
Ví
dụ trên cũng tương tự như hoạt động định tuyến. Hoạt động định tuyến đầy đủ được
thể hiện bằng 4 điều sau:
-
Định tuyến là việc
Router xác định đường đi tối ưu nhất từ một điểm này đến một điểm khác trên mạng.
-
Router cần phải
xác định được Router kế tiếp mà gói tin cần phải đi qua.
-
Router cũng cần
biết tất cả đường có thể đến điểm đích.
-
Router tiến hành
phân tích IP Header của gói tin và đọc trường Destination IP Address để xác định
tuyến đường đi cho gói tin.
b. Bảng định tuyến và hoạt động định tuyến
Khi Router tính toán xong và chọn
được đường đi tối ưu nhất bằng các giao thức định tuyến (Routing Protocol).
Router cần lưu lại thông tin những đường đi tối ưu này trong một bảng gọi là
bảng định tuyến. Router sẽ sử dụng bảng định tuyến này trong việc quyết định
đường đi của các gói tin từ nguồn đến đích.
Xét một ví dụ cụ thể như sau:
Hình 3 Ví dụ cụ thể về định tuyến
Theo ví dụ trong hình 5.4 thì Router
R2 kết nối với Router R3 bằng địa chỉ mạng 192.168.23.0/24. Router R2 còn kết nối
với hệ thống mạng nội bộ bằng địa chỉ mạng 192.168.1.0/24. Câu hỏi đặt ra ở đây
là: Các máy tính (có địa chỉ IP lần lượt là 192.168.1.1 và 192.168.1.2) có ping
(một ứng dụng phổ biến nhất của giao thức Internet
Control Message Protocol – ICMP) thành công đến các địa
chỉ 192.168.23.2 và 192.168.23.3 không.
Để trả lời được câu hỏi trên thì
chỉ cần giải quyết được vấn đề bảng định tuyến trên các Router R2 và R3 được
hình thành khi nào. Bảng định tuyến trên Router được hình thành khi và chỉ khi:
các giao diện của Router được đặt địa chỉ IP và đảm bảo cổng này ở trạng thái
up/up (thực hiện bằng các câu lệnh cấu hình). Cần chú ý một vấn đề là không cần
phải chạy các giao thức định tuyến trên Router thì Router mới có bảng định
tuyến. Lúc này bảng định tuyến của Router sẽ bao gồm các địa chỉa mạng kết nối
trực tiếp. Xét lại ví dụ trên, bảng định tuyến trên Router R2 và Router R3 sẽ gồm
các thông tin như sau (cổng của các router này phải được đặt IP và trạng thái
cổng là up/up):
Hình 5 Bảng định tuyến của Router R3
Một dòng thông tin trong bảng
định tuyến như trên gọi là 1 route (1 entry). Hiện tại, Router R2 có 2 route và
Router R3 có 1 route. Dựa vào bào định tuyến trong Hình 5.5 và Hình 5.6 có thể trả
lời cho câu hỏi trên như sau:
-
Trường hợp 1: Lấy
máy tính có IP 192.168.1.1 ping đến 192.168.23.2. Trong trường hợp này, gói tin
sẽ có cấu trúc (Source IP Address: 192.168.1.1, Destination IP Address:
192.168.23.2) xuất phát từ máy tính. Khi gói tin này đến Router R2, R2 sẽ kiểm
tra gói tin, tìm ra Destination IP Address có trong gói tin là 192.168.23.2. Router
nhận ra gói tin này cần đến mạng 192.168.23.0/24 (vì 192.168.23.2 thuộc
192.168.23.0). Sau đó Router R2 quan sát bảng định tuyến của mình có 1 entry là
192.168.23.0. Do đó, Router R2 quyết định sẽ đẩy gói tin này ra giao diện s0/0.
Chú ý, trong trường hợp này thì Destination IP Address 192.168.23.2 cũng chính
là địa chỉ của s0/0 của R2. Vì vậy, chính Router R2 sẽ hình thành gói tin trả lời
với cấu trúc (Source IP Address: 192.168.23.2, Destination IP Address: 192.168.1.1).
Tương tự, Router R2 tiếp tục quan sát bảng định tuyến của mình và quyết định đẩy
gói tin trả lời này ra khỏi giao diện f0/1. Do đó, kết quả của ping từ
192.168.1.1 đến 192.168.23.2 là thành công.
-
Trường hợp 2: Lấy
máy tính có IP 192.168.1.1 ping đến 192.168.23.3. Trong trường hợp này, gói tin
sẽ có cấu trúc (Source IP Address: 192.168.1.1, Destination IP Address:
192.168.23.3) xuất phát từ máy tính. Khi gói tin này đến Router R2, R2 sẽ kiểm
tra gói tin, tìm ra Destination IP Address có trong gói tin là 192.168.23.3. Sau
đó Router R2 quan sát bảng định tuyến của mình có 1 entry là 192.168.23.0. Do
đó, Router R2 quyết định sẽ đẩy gói tin này ra giao diện s0/0. Nhưng trong trường
hợp này 192.168.23.3 lại là địa chỉ của giao diện s0/1 của Router R3. Gói tin được
đẩy ra khỏi giao diện s0/0 của R2 đến được với Router R3. Do đó, Router R3 sẽ hình
thành gói tin trả lời với cấu trúc (Source IP Address: 192.168.23.3,
Destination IP Address: 192.168.1.1). Tương tự, Router R3, quan sát bảng định
tuyến của mình. Nhưng lúc này, bảng định tuyến của R3 lại không có thông tin gì
về 192.168.1.0. Cuối cùng, Router R3 quyết định đánh rớt gói tin. Trong trường
hợp này gói tin biết đường đi nhưng không biết đường về. Kết quả của ping từ
192.168.1.1 đến 192.168.23.3 là không thành công.
Qua ví dụ cụ
thể trên, có thể rút ra được hoạt động định tuyến của Router là như sau: Router
thực hiện việc định tuyến dựa vào một công cụ gọi là bảng định tuyến (routing
table). Nguyên tắc là mọi gói tin IP khi đi đến router sẽ đều được tra bảng
định tuyến, nếu đích đến của gói tin thuộc về một entry có trong bảng định
tuyến thì gói tin sẽ được chuyển đi tiếp, nếu không, gói tin sẽ bị loại bỏ.
Bảng định tuyến trên Router thể hiện ra rằng Router biết được hiện nay có những
địa chỉ mạng nào đang tồn tại trên mạng mà nó tham gia và muốn đến được những địa
chỉ mạng ấy thì phải đi theo đường nào.
Để các máy tính có ping thành
công đến 192.168.23.3 thì trong bảng định tuyến của R3 cần có entry
192.168.1.0/24. Để đạt được mục đích này thì Router R2 và Router R3 phải sử
dụng đến các giao thức định tuyến.
Chú ý phân biệt fast switching và
process switching. Fast switching thì chỉ thực hiện xem bảng định tuyến đối với
gói đầu tiên, Router sau đó lưu kết quả vào bộ nhớ cache tốc độ cao và dùng
thông tin trong cache để chuyển tiếp các gói tin sau đến đích. Process
switching thì yêu cầu Router xem xét mạng cần tới trong mỗi gói và đối chiếu
với bảng định tuyến để chọn đường phù hợp.
c. Sơ đồ các giao thức định tuyến
Định tuyến
được chia thành 2 loại: Static Route và Dynamic Route. Static Routing và
Dynamic Routing được thể hiện qua sơ đồ sau:
Hình 6 Sơ đồ các giao thức định tuyến
Giữa Static Route với Dynamic Route và
giữa các giao thức định tuyến trong cùng nhóm Dynamic Route khác nhau rất lớn về
bản chất hoạt động, cách cấu hình và khả năng ứng dụng tùy thuộc vào các mô
hình mạng khác nhau. Để nắm rõ được vấn đề này, cần đi sâu vào tìm hiểu các cơ
chế hoạt động, cách tính toán để tìm ra đường đi tốt ưu nhất dựa trên các thuật
toán định tuyến. Mỗi giao thức định tuyến sẽ có một thuật toán định tuyến
riêng.
d. Các khái niệm trong định tuyến
Các khái
niệm trong định tuyến rất quan trọng khi khảo sát một giao thức định tuyến cụ
thể. Các khái niệm được quan tâm nhiều nhất bao gồm: số Autonomous System (AS), Administrative
Distance (AD), Metric và Convergence.
Autonomous System (AS) là một hệ
thống tự trị. Ý nghĩa của hệ thống tự trị ở đầy là tập hợp
các thiết bị định tuyến thuộc cùng một sự quản lý về kỹ thuật và sở hữu của một
doanh nghiệp nào đó, cùng chịu chung một chính sách về định tuyến. Các AS
thường được sử dụng cho là các nhà cung cấp dịch vụ. Như vậy định tuyến với số
AS thường được dùng cho mạng Internet toàn cầu, trao đổi số lượng thông tin
định tuyến rất lớn giữa các nhà cung cấp dịch vụ với nhau và hình thức định
tuyến mang nặng hình thức chính sách. Giao thức định tuyến thể hiện rõ nhất số
AS là Border Gateway Protocol – BGP (quan sát lại sơ đồ các giao thức định
tuyến).
Administrative
Distance (AD), mỗi giao thức định tuyến có một giá trị AD mặc định cụ thể. AD
càng nhỏ thì giao thức định tuyến đó được xem là tốt hơn. Router sẽ chọn đường
đi theo giao thức định tuyến nào có giá trị AD nhỏ hơn khi mô hình có sử dụng
nhiều giao thức định tuyến. Những giá trị này được cấu hình tùy chỉnh theo
chính sách của người quản trị. Điều này rất quan trọng khi thực hiện điều chỉnh
đường đi của gói tin trên mạng. Theo mặc định thì giá trị AD của các giao thức
sẽ được thể hiện trong bảng sau:
Connected
|
0
|
Static
|
0 hoặc 1
|
RIP
|
120
|
OSPF
|
110
|
EIGRP
|
90
|
Bảng 1. Giá trị AD mặc định của
các giao thức định tuyến
Metric, trong
cùng một giao thức định tuyến, metric là giá trị giúp Router xét tất cả các
đường đi và kết luận đường đi này là tốt hay xấu. Mỗi giao thức định tuyến có
cách tính metric khác nhau. Vậy để xem xét định tuyến tối ưu cần chú ý đến AD
nhỏ và Metric nhỏ.
Convergence, còn
gọi là sự hội tụ mạng. Mạng hội tụ là mạng mà đứng tại 1 điểm có thể liên lạc
đến tất cả các điểm còn lại. Mạng đang hội tụ thì có một hoặc một vài thiết bị
định tuyến bị hư hỏng (ví dụ như mất cấu hình) sẽ dẫn đến mạng mất sự hội tụ.
Thời gian mà mạng mất đi sự hội tụ đến khi hội tụ trở lại nhờ các giao thức
định tuyến gọi là độ hội tụ. Sự hội tụ nhanh hay chậm là tùy thuộc vào giao
thức định tuyến được sử dụng.
Static
|
Không hội tụ
|
RIP
|
Chậm
|
OSPF
|
Nhanh
|
EIGRP
|
Rất nhanh
|
Bảng 2. Độ hội tụ của các giao
thức định tuyến
Một thiết bị
định tuyến có thể chạy nhiều giao thức định tuyến cùng một lúc, tùy thuộc vào
mô hình và chính sách của người quản trị đưa ra. Do định tuyến dựa trên IP nên
tương ứng với IPv4 và IPv6 thì các giao thức định tuyến cũng có các phiên bản
khác nhau.
IPv4
|
IPv6
|
RIP Version 1 và Version 2
|
RIPng
|
OSPF
|
OSPF Version 3
|
EIGRP Version 2
|
EIGRP For IPv6
|
Bảng 3 Phiên bản của các giao
thức định tuyến
Bài viết rất chi tiết và hữu ích, thanks a :D
ReplyDelete