192
Trong hình 8.1.9 là cấu trúc của thông
đ
i
ệ
p
“Parameter Problem”.Trong
đ
ó
có
phần Pointer .Khi giá trị Code là 0 ,phần Pointer cho biết octet nào trong gói dữ
liệu bị lỗi .
Hình 8.1.9
8.2.Thông điệp điều khiển của TCP/IP
8.2.1.Giới thiệu về thông điệp điều khiển
ICMP là một phần của bộ giao thức TCP/IP .Thực tế là tất cả các hệ thống IP
đ
ề
u
phải bao gồm ICMP .Lý do của vi
ệ
c này hết sức
đơ
n
giản .Trước hết là IP
không có cơ chế nào
đ
ể
đ
ả
m
bảo là dữ liệu
đ
ã
đư
ợ
c
chuyển tới
đ
ích
,hoàn toàn
không thông báo gì cho host biết khi sự cố xảy ra .IP không có cơ chế cung cấp
thông
đ
i
ệ
p
thông báo hoặc
đ
i
ề
u
khiển cho host .Và ICMP
đ
ã
thực hiện việc này
cho IP .
Hình 8.2.1
Không giống như thông
đ
i
ệ
p
báo lỗi ,thông
đ
i
ệ
p
đ
i
ề
u
khiển không phải
đư
ợ
c
tạo ra là do mất gói dữ liệu hay do lỗi của quá trình truyền dữ liệu .Mà các
thông
đ
i
ệ
p
đ
i
ề
u
khiển
đư
ợ
c
dùng
đ
ể
thông báo cho host biết về tình trạng nghẽn
193
mạch trên mạng hay thông báo cho host biết là có một gateway tốt hơn dẫn
đ
ế
n
mạng
đ
ích
…Cũng giống như tất cả các gói ICMP khác ,thông
đ
i
ệ
p
đ
i
ề
u
khiển
đư
ợ
c
đ
óng
gói trong gói IP .ICMD sử dụng gói IP
đ
ể
truyền thông
đ
i
ệ
p
trên
mạng .
ICMP có rất nhiều loại thông
đ
i
ệ
p
đ
i
ề
u
khiển khác nhau .Một số loại thường
gặp nhất
đư
ợ
c
thể hiện
ở
hình 8.2.1.
8.2.2.Thông điệp ICMP redirect/change request
Thông
đ
i
ệ
p
đ
i
ề
u
khiển ICMP thường gặp nhất là redirect/change request.Loại
thông
đ
i
ệ
p
này
đư
ợ
c
tạo ra bởi gateway mà thông thường
đ
ó
chính là router .Tất
cả các host khi muốn thông tin liên lạc với các mạng IP
đ
ề
u
phải
đư
ợ
c
cấu hình
default gateway. Default gateway là
đ
ị
a
chỉ của một cổng trên router kết nối vào
cùng một mạng với host .Như trong hình 8.2.2a ,một host
đư
ợ
c
nối vào router
và router này có kết nối ra Internet.Host B
đư
ợ
c
cấu hình default gateway là
đ
ị
a
chỉ IP của cổng Fa0/0trên router.Host B sẽ sử d
ụ
ng
đ
ị
a
chỉ IP này
đ
ể
đ
ế
n
các
mạng khác .Bình thường host B chỉ kết nối
đ
ế
n
một gateway.Tuy nhiên cũng
có trường hợp một host kết nối vào mạng 2 hay nhiều router.Trong trường hợp
đ
ó
, default gateway của host sẽ cần dùng redirect/change request
đ
ể
thông báo
cho host biết về một gateway khác tốt hơn
đ
ể
đ
ế
n
một mạng
đ
ích
nào
đ
ó.
Hình 8.2.2a
194
Trong hình 8.2.2b là một ví dụ cho trường hợp cần sử dụng ICMP redirect.Host
H gửi dữ liệu cho Host C trong mạng 10.0.0.0/8 .Vì mạng
đ
ích
không kết nối
trực tiếp vào Host H nên Host H gửi gói
đ
ế
n
default gateway của nó là Router
R1 .Router R1 tìm trên bảng
đ
ị
nh
tuyến
đ
ể
tìm
đư
ờ
ng
đ
ế
n
m
ạ
ng
10.0.0.0/8 thì
thấy rằng
đ
ể
chuyển gói tới
đ
ích
router phải gửi gói này ngược trở ra cổng mà
nó vừa mới nhận gói dữ liệu vào .Khi
đ
ó
router R1 sẽ chuyển gói dữ liệu
đ
i
và
đ
ồ
ng
thời gửi thông
đ
i
ệ
p
ICMP redirect/change request tới Host H
đ
ể
thông báo
là Host H nên sử dụng Router R2 làm gateway cho tất cả các gói dữliệu
đ
ế
n
mạng 10.0.0.0/8 .
Hình 8.2.2b
Default gateway chỉ gửi thông
đ
i
ệ
p
ICMD redirect/change request khi gặp các
đ
i
ề
u
kiện sau :
•
Cổng mà router nhận gói dữ liệu vào cũng chính là cổng mà router sẽ
chuyển gói dữ liệu
đ
i.
•
Đ
ị
a
chỉ IP của máy nguồn là cùng một mạng /subnet với
đ
ị
a
chỉ IP của
trạm kế tiếp .
•
Gói dữ liệu nhận
đư
ợ
c
không phải gửi ng
ư
ợ
c
lại máy nguồn .
•
Con
đư
ờ
ng
mà router thực hiện thông báo cho host không phải là
đư
ờ
ng
mặc
đ
ị
n
h của router và cũng không phải là của một ICMP redirect nào
khác.
•
Router phải
đư
ợ
c
cấu hình
đ
ể
thực hiện redirect.(Mặc
đ
ị
nh
là Cisco
router thực hiện gửi ICMP redirect.Bạn có thể dùng lệnh no ip redirect
đ
ể
tắt chức năng này trên một cổng nào
đ
ó
của router ).
195
Thông
đ
i
ệ
p
ICMP redirect /change request có cấu trúc như hình 8.2.2c.Trong
đ
ó
phần Type có giá trị là 5 ,phần Code có giá trị là 0,1,2 hoặc 3.
Phần Router Internet Address chứa
đ
ị
a
chỉ IP của gateway mới .Ví dụ như trên
: trong thông
đ
i
ệ
p
redirect của Router R1 gửi cho Host H ,phần Router Internet
Address sẽ có giá trị là 172.16.1.200,đây là
đ
ị
a
chỉ IP của cổng E0 trên Router
R2 .
Hình 8.2.2c
Hình 8.2.2d
8.2.3.Đồng bộ đồng hồ và ước tính thời gian truyền dữ liệu
Bộ giao thức TCP/IP cho phép hệ thống mạng này kết nối với hệ thống mạng
khác
ở
cách nhau rất xa thông qua nhiều hệ thống mạng trung gian .Mỗi một hệ
thống mạng có một cơ chế
đ
ồ
ng
bộ
đ
ồ
ng
hồ riêng .Do
đ
ó
khi một host
ở
mạng
khác sử dụng phần mềm cần
đ
ồ
ng
bộ thời gian
đ
ể
thực hiện liên lạc thì có thể
sẽ gặp rắc rối .Thông
đ
iệp ICMP Timestamp
đư
ợ
c
thiết kế
đ
ể
giải quyết vấn
đ
ề
này .
Thông
đ
i
ệ
p
ICMP timestamp request cho phép một host hỏi giờ hiện tại trên
một máy khác .Máy
đư
ợ
c
hỏi sẽ dùng thông
đ
i
ệ
p
ICMP timestamp reply
đ
ể
trả
lời .
196
Phần Type trong thông
đ
i
ệ
p
ICMP timestamp có giá trị là 13 (timestamp
request )hoặc 14(timestamp reply ) .Ph
ầ
n
Code luôn có giá tr
ị
là 0 vì loại thông
đ
i
ệ
p
này không có gì khác hơn. Phần Originate timestamp là thông tin về giờ
hiện tại trên máy gửi ngay trước khi thông
đ
i
ệ
p
ICMP timestamp request
đư
ợ
c
gửi
đ
i
.Phần Recive timestamp là thời
đ
i
ể
m
mà máy
đ
ích
nhận
đư
ợ
c
yêu cầu
request .Phần Transmit timestamp là th
ờ
i
đ
i
ể
m
trên máy trả lời ngay trước khi
máy này gửi thông
đ
i
ệ
p
ICMP timestamp reply.
Tất cả 3 thống số về thời gian trên
đ
ề
u
đư
ợ
c
tính bằng số mili giây tính từ thời
đ
i
ể
m
nửa
đ
êm
theo giờ Quốc tế (Univesal Time -UT).
Hình 8.2.3
Tất cả các thông tin ICMP timestamp reply
đ
ề
u
có
đ
ầ
y
đ
ủ
3 thông số :thời
đ
i
ể
m
gửi gói request ,thời
đ
i
ể
m
nhận
đư
ợ
c
request và thời
đ
i
ể
m
gửi gói reply .Dựa
vào 3 thông số này host có thể
ư
ớ
c
lượng
đư
ợ
c
khoảng thời gian dữ liệu truyền
trên mạng từ máy nguồn
đ
ế
n
máy
đ
ích
bằng cách lấy giá trị của phần Originate
Timestamp trừ cho giá trị của phần Transmit timestamp.Kết quả này cũng chỉ
mang tính chất
ư
ớ
c
lượng thôi vì thời gian truyền thật sự còn phụ thuộc vào lưu
lượng truyền thực tế trên mạng lúc
đ
ó
.Ngoài ra ,host còn có thể
ư
ớ
c
tính
đư
ợ
c
giờ hiện t
ạ
i
trên máy
đ
ích
.
Thông
đ
i
ệ
p
ICMP timestamp là một cách
đơ
n
giản
đ
ể
uớc
đ
oán
giờ trên máy
đ
ích
và
ư
ớ
c
tính tổng thời gian truyền trên mạng nhưng
đ
ây
chưa phải là cách
tốt nhất .Giao thức Network Time Protocol (NTP)
ở
lớp trên của giao thức
TCP/IP thực hiện
đ
ồ
ng
bộ
đ
ồ
ng
hồ theo cách tin cậy và chính xác hơn.
8.2.4.Thông
đ
i
ệ
p
Information request và reply
Thông
đ
iệp ICMP information request và reply cho phép host xác
đ
ị
nh
đ
ị
a
chỉ
mạng của nó .Hình 8.2.4 là cấu trúc của loại thông
đ
i
ệ
p
này.
197
Hình 8.2.4
Phần Type có 2 giá trị :giá tr
ị
15 tương
ứ
ng
với thông
đ
i
ệ
p
Information reply
.Loại thông
đ
i
ệ
p
này của ICMP
đư
ợ
c
xem là
đ
ã
quá lỗi thời .Hiện nay ,các giao
thức BOOTP và DHCP
đư
ợ
c
sử dụng nhiều
đ
ể
cung cấp
đ
ị
a
chỉ mạng cho host
.
8.2.5 Thông điệp Address Mask
Khi người quản trị mạng dùng một
đ
ị
a
chỉ IP lớn chia ra thành nhiều subnet
,các subnet sẽ có subnet mask tương
ứ
ng
.Subnet mask
đư
ợ
c
sử dụng
đ
ể
xác
nhận các bit của phần Network .Subnet và các bit của thành phần Host trong
đ
ị
a
chỉ IP .Nếu một host biết
đ
ị
a
chỉ IP của router thì nó gửi yêu cầu tới trực
tiếp của router ,còn nếu không thì nó sẽ quảng bá yêu cầu của nó .Khi router
nhận
đư
ợ
c
yêu cầu này ,router sẽ dùng thông
đ
i
ệ
p
Address mask reply
đ
ể
trả
lời .Trong thông
đ
i
ệ
p
Address mask reply sẽ có subnet mask chính xác cho
host.Ví dụ : môt host trong mạng lớp B có
đ
ị
a
chỉ IP là 172.16.5.2 .Host này
không biết subnet mask của mình nên nó broadcast thông
đ
iệp Address mask
request như sau :
Source address:172.16.5.2
Destination address:255.255.255.255
Protocol :ICMP =1
Type :Address Mask Request =AM1
Code :0
Mask:255.255.255.0
Router 172.16.5.2 nhận
đư
ợ
c
thông
đ
i
ệ
p
trên và trả l
ờ
i
bằng thông
đ
i
ệ
p
Address mask reply như sau :