Tải bản đầy đủ (.pdf) (40 trang)

Giáo trình Mạng máy tính: Phần 2 - CĐ Kỹ Thuật Cao Thắng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.23 MB, 40 trang )

CHƯƠNG 4: ĐỊA CHỈ IP

CHƯƠNG 4
ĐỊA CHỈ IP
4.1. CẤU TRÚC ĐỊA CHỈ IP
Mỗi máy tính trên mạng TCP/IP phải được gán một địa chỉ luận lý có chiều dài
32 bits, gọi là địa chỉ IP.

H4.1 Cấu trúc địa chỉ IP
Trong đó 32 bits của địa chỉ IP được chia thành 2 phần : Phần nhận dạng mạng
(network id) và phần nhận dạng máy tính (Host id). Phần nhận dạng mạng được dùng để
nhận dạng một mạng và phải được gán bởi Trung tâm thông tin mạng Internet (InterNIC
- Internet Network Information Center) nếu muốn nối kết vào mạng Internet. Phần nhận
dạng máy tính dùng để nhận dạng một máy tính trong một mạng.

H4.2 Phân lớp địa chỉ IP
Để dễ dàng cho việc đọc và hiểu bởi con người, 32 bits của địa chỉ IP được
nhóm lại thành 4 bytes và được phân cách nhau bởi 3 dấu chấm (.). Giá trị của mỗi
bytes được viết lại dưới dạng thập phân, với giá trị hợp lệ nằm trong khoản từ 0 đến
255.
54


CHƯƠNG 4: ĐỊA CHỈ IP
Câu hỏi được đặt ra là bao nhiêu bits dành cho phần nhận dạng mạng và bao
nhiêu bits dành cho phần nhận dạng máy tính. Người ta phân các địa chỉ ra thành 5 lớp :
A, B, C, D và E. Trong đó, chỉ có lớp A, B và C được dùng cho các mục đích thương
mại. Các bits có trọng số cao nhất chỉ định lớp mạng của địa chỉ. Hình sau mô tả cách
phân chia lớp cho các địa chỉ IP.
4.2. PHÂN LỚP IP
4.2.1. Lớp A :


Dành một byte cho phần network_id và ba byte cho phần host_id.

Để nhận diện ra lớp A, bit đầu tiên của byte đầu tiên phải là bit 0. Dưới dạng nhị
phân, byte này có dạng 0xxxxxxx. Vì vậy, những địa chỉ IP có byte đầu tiên nằm trong
khoảng từ 0 (00000000) đến 127 (01111111) sẽ thuộc lớp A. Ví dụ địa chỉ 50.14.32.8 là
một địa chỉ lớp A (50 < 127).
Byte đầu tiên này cũng chính là network_id, trừ đi bit đầu tiên làm ID nhận
dạng lớp A, còn lại bảy bit để đánh thứ tự các mạng, ta được 128 (27) mạng lớp A khác
nhau. Bỏ đi hai trường hợp đặc biệt là 0 và 127. Kết quả là lớp A chỉ còn 126 (27-2) địa
chỉ mạng, 1.0.0.0 đến 126.0.0.0.
Phần host_id chiếm 24 bit, tức có thể đặt địa chỉ cho 16.777.216 (224) host khác
nhau trong mỗi mạng. Bỏ đi một địa chỉ mạng (phần host_id chứa toàn các bit 0) và một
địa chỉ broadcast (phần host_id chứa toàn các bit 1) như vậy có tất cả 16.777.214 (2242) host khác nhau trong mỗi mạng lớp A. Ví dụ, đối với mạng 10.0.0.0 thì những giá trị
host hợp lệ là 10.0.0.1 đến 10.255.255.254.

H4.3 – Mô tả các mạng lớp A kết nối với nhau
4.2.2. Lớp B :
Dành hai byte cho mỗi phần network_id và host_id.

Dấu hiệu để nhận dạng địa chỉ lớp B là byte đầu tiên luôn bắt đầu bằng hai bit
10. Dưới dạng nhị phân, octet có dạng 10xxxxxx. Vì vậy những địa chỉ nằm trong
khoảng từ 128 (10000000) đến 191 (10111111) sẽ thuộc về lớp B. Ví dụ 172.29.10.1 là
một địa chỉ lớp B (128 < 172 < 191).
Phần network_id chiếm 16 bit bỏ đi 2 bit làm ID cho lớp, còn lại 14 bit cho phép
ta đánh thứ tự 16.384 (214) mạng khác nhau (128.0.0.0 đến 191.255.0.0)

55


CHƯƠNG 4: ĐỊA CHỈ IP

Phần host_id dài 16 bit hay có 65536 (216) giá trị khác nhau. Trừ 2 trường hợp
đặc biệt còn lại 65534 host trong một mạng lớp B. Ví dụ, đối với mạng 172.29.0.0 thì
các địa chỉ host hợp lệ là từ 172.29.0.1 đến 172.29.255.254.

H4.4 – Mô tả các mạng lớp 4 kết nối với nhau
4.2.3. Lớp C
Dành ba byte cho phần network_id và một byte cho phần host_id.

Byte đầu tiên luôn bắt đầu bằng ba bit 110 và dạng nhị phân của octet này là
110xxxxx. Như vậy những địa chỉ nằm trong khoảng từ 192 (11000000) đến 223
(11011111) sẽ thuộc về lớp C. Ví dụ một địa chỉ lớp C là 203.162.41.235 (192 < 203 <
223).
Phần network_id dùng ba byte hay 24 bit, trừ đi 3 bit làm ID của lớp, còn lại 21
bit hay 2.097.152 (221) địa chỉ mạng (từ 192.0.0.0 đến 223.255.255.0).
Phần host_id dài một byte cho 256 (28) giá trị khác nhau. Trừ đi hai trường hợp
đặc biệt ta còn 254 host khác nhau trong một mạng lớp C. Ví dụ, đối với mạng
203.162.41.0, các địa chỉ host hợp lệ là từ 203.162.41.1 đến 203.162.41.254.
Thông tin chi tiết về các lớp được mô tả như bảng sau :

56


CHƯƠNG 4: ĐỊA CHỈ IP

4.3. Ý NGHĨA CÁC NETID, HOSTID, NETMASK, SUBNETMASK
Network_id: là giá trị để xác định đường mạng. Trong số 32 bit dùng địa chỉ IP, sẽ
có một số bit đầu tiên dùng để xác định network_id. Giá trị của các bit này được dùng
để xác định đường mạng.
Host_id: là giá trị để xác định host trong đường mạng. Trong số 32 bit dùng làm địa
chỉ IP, sẽ có một số bit cuối cùng dùng để xác định host_id. Host_id chính là giá trị của

các bit này.
Địa chỉ host: là địa chỉ IP, có thể dùng để đặt cho các interface của các host. Hai
host nằm thuộc cùng một mạng sẽ có network_id giống nhau và host_id khác nhau.
Mạng (network): một nhóm nhiều host kết nối trực tiếp với nhau. Giữa hai host bất
kỳ không bị phân cách bởi một thiết bị layer 3. Giữa mạng này với mạng khác phải kết
nối với nhau bằng thiết bị layer 3.
Địa chỉ mạng (network address): là địa chỉ IP dùng để đặt cho các mạng. Địa chỉ này
không thể dùng để đặt cho một interface. Phần host_id của địa chỉ chỉ chứa các bit 0. Ví
dụ 172.29.0.0 là một địa chỉ mạng.
Mạng con (subnet network): là mạng có được khi một địa chỉ mạng (thuộc lớp A, B,
C) được phân chia nhỏ hơn (để tận dụng số địa chỉ mạng được cấp phát). Địa chỉ mạng
con được xác định dựa vào địa chỉ IP và mặt nạ mạng con (subnet mask) đi kèm (sẽ đề
cập rõ hơn ở phần sau).
Địa chỉ broadcast: là địa chỉ IP được dùng để đại diện cho tất cả các host trong
mạng. Phần host_id chỉ chứa các bit 1. Địa chỉ này cũng không thể dùng để đặt cho một
host được. Ví dụ 172.29.255.255 là một địa chỉ broadcast.
+ Các phép toán làm việc trên bit:

57


CHƯƠNG 4: ĐỊA CHỈ IP

Ví dụ sau minh hoạ phép AND giữa địa chỉ 172.29.14.10 và mask 255.255.0.0

Mặt nạ mạng (network mask): là một con số dài 32 bit, là phương tiện giúp máy
xác định được địa chỉ mạng của một địa chỉ IP (bằng cách AND giữa địa chỉ IP với mặt
nạ mạng) để phục vụ cho công việc routing. Mặt nạ mạng cũng cho biết số bit nằm
trong phần host_id. Được xây dựng theo cách: bật các bit tương ứng với phần
network_id (chuyển thành bit 1) và tắt các bit tương ứng với phần host_id (chuyển

thành bit 0).
Mặt nạ mặc định của lớp A: sử dụng cho các địa chỉ lớp A khi không chia mạng
con, mặt nạ có giá trị 255.0.0.0.
Mặt nạ mặc định của lớp B: sử dụng cho các địa chỉ lớp B khi không chia mạng
con, mặt nạ có giá trị 255.255.0.0.
Mặt nạ mặc định của lớp C: sử dụng cho các địa chỉ lớp C khi không chia mạng
con, mặt nạ có giá trị 255.255.255.0.
 Lưu ý :
+ Địa chỉ mạng 127.0.0.0 là địa chỉ được dành riêng để đặt trong phạm vi một
máy tính. Nó chỉ có giá trị cục bộ ( trong phạm vi một máy tính). Thông thường
khi cài đặt giao thức IP thì máy tính sẽ được gián địa chỉ 127.0.0.1. Địa chỉ này
thông thường để kiểm tra xem giao thức IP trên máy hiện tại có hoạt động
không.
+ Địa chỉ dành riêng cho mạng cục bộ không nối kết trực tiếp Internet : Các
mạng cục bộ không nối kết trực tiếp vào mạng Internet có thể sử dụng các địa
chỉ mạng sau để đánh địa chỉ cho các máy tính trong mạng của mình :
o Lớp A : 10.0.0.0
o Lớp B : 172.16.0.0 đến 172.32.0.0
o Lớp C : 192.168.0.0

58


CHƯƠNG 4: ĐỊA CHỈ IP
4.4. PHÂN MẠNG CON
4.4.1. Tổng quát :
Phân mạng con là một kỹ thuật cho phép nhà quản trị mạng chia một mạng
thành những mạng con nhỏ, nhờ đó có được các tiện lợi sau :
+ Đơn giản hóa việc quản trị : Với sự trợ giúp của các router, các mạng có thể
được chia ra thành nhiều mạng con (subnet) mà chúng có thể được quản lý như những

mạng độc lập và hiệu quả hơn.
+ Có thể thay đổi cấu trúc bên trong của mạng mà không làm ảnh hướng đến các
mạng bên ngoài. Một tổ chức có thể tiếp tục sử dụng các địa chỉ IP đã được cấp mà
không cần phải lấy thêm khối địa chỉ mới.
+ Tăng cường tính bảo mật của hệ thống : Phân mạng con sẽ cho phép một tổ
chức phân tách mạng bên trong của họ thành một liên mạng nhưng các mạng bên ngoài
vẫn thấy đó là một mạng duy nhất.
+ Cô lập các luồng giao thông trên mạng : Với sự trợ giúp của các router, giao
thông trên mạng có thể được giữ ở mức thấp nhất có thể.

H
4
.
5
Đ

a
Hình trên mô tả một địa chỉ IP đã được phân mạng con xuất hiện với thế giới
Internet bên ngoài và với mạng Intranet bên trong. Internet chỉ đọc phần nhận dạng
mạng và các router trên Internet chỉ quan tâm tới việc vạch đường cho các gói tin đến
được router giao tiếp giữa mạng Intranet bên trong và mạng Internet bên ngoài. Thông
thường ta gọi router này là cửa khẩu của mạng (Gateway). Khi một gói tin IP từ mạng
bên ngoài đến router cửa khẩu, nó sẽ đọc phần nhận dạng máy tính để xác định xem gói
tin này thuộc về mạng con nào và sẽ chuyển gói tin đến mạng con đó, nơi mà gói tin sẽ
được phân phát đến máy tính nhận.
4.4.2. Cách tiến hành :
Nguyên tắc chung để thực hiện phân mạng con là :
+ Phần nhận dạng mạng (Network Id) của địa chỉ mạng ban đầu được giữ
nguyên.
+ Phần nhận dạng máy tính của địa chỉ mạng ban đầu được chia thành 2 phần :

59


CHƯƠNG 4: ĐỊA CHỈ IP
Phần nhận dạng mạng con (Subnet Id) và Phần nhận dạng máy tính trong mạng
con (Host Id).

H4.6 Cấu trúc địa chỉ IP khi phân mạng con
Để phân mạng con, người ta phải xác định mặt nạ mạng con (subnetmask). Mặt
nạ mạng con là một địa chỉ IP mà giá trị các bit ở phần nhận dạng mạng (Network Id)
và Phần nhận dạng mạng con (Subnet Id) đều là 1 trong khi giá trị của các bits ở Phần
nhận dạng máy tính (Host Id) đều là 0. Hình H6.34 mô tả mặt nạ phân mạng con cho
một mạng ở lớp C.

H4.7 Mặt nạ mạng con khi phân mạng con
Khi có được mặt nạ mạng con, ta có thể xác định địa chỉ mạng con (Subnetwork
Address) mà một địa chỉ IP được tính bằng công thức sau :
 Ví dụ : Hình sau mô tả cấu trúc địa chỉ IP lớp C khi thực hiện phân mạng con

H4.8 Địa chỉ IP phân mạng con theo chuẩn Phân lớp hoàn toàn
Số lượng bits thuộc phần nhận dạng mạng con xác định số lượng mạng con. Giả
sử phần nhận dạng mạng con chiếm 4 bits. Như vậy, về mặt lý thuyết ta có thể phân ra
thành 24=16 mạng con.Tuy nhiên phần nhận dạng mạng con gồm toàn bit 0 hoặc bit 1
không được dùng để đánh địa chỉ cho mạng con vì nó trùng với địa chỉ mạng và địa chỉ
60


CHƯƠNG 4: ĐỊA CHỈ IP
quảng bá của mạng ban đầu.
 Ví dụ : Cho địa chỉ mạng lớp C : 192.168.1.0 với mặt nạ mạng mặc định là

255.255.255.0.
Xét trường hợp phân mạng con cho mạng trên sử dụng 2 bits để làm phần nhận dạng
mạng con. Mặt nạ mạng trong trường hợp này là 255.255.255.192. Khi đó ta có các địa
chỉ mạng con như sau :

Ta nhận thấy rằng:
+ Địa chỉ mạng con thứ nhất 192.168.1.0 trùng với địa chỉ mạng ban đầu.
+ Địa chỉ mạng con thứ tư 192.168.1.192 có địa chỉ quảng bá trùng với
địa chỉ quảng bá của mạng ban đầu .
Chính vì thế mà hai địa chỉ này ( có phần nhận dạng mạng con toàn bit 0 hoặc
toàn bit 1) không được dùng để đánh địa chỉ cho mạng con.
Nói tóm lại, với n bits làm phần nhận dạng mạng con ta chỉ có thể phân ra được
2n-2 mạng con mà thôi. Mỗi mạng con cũng có địa chỉ quảng bá. Đó là địa chỉ mà các
bits ở phần nhận dạng máy tính đều có giá trị là 1.
Như vậy qui trình phân mạng con có thể được tóm tắt như sau :
+ Xác định số lượng mạng con cần phân, giả sử là N.
+ Biểu diễn (N+1) thành số nhị phân. số lượng bit cần thiết để biểu diễn
N+1)chính là số lượng bits cần dành cho phần nhận dạng mạng con. Ví dụ N=6, khi đó
biểu diễn của (6+1) dưới dạng nhị phân là 111. Như vậy cần dùng 3 bits để làm phần
nhận dạng mạng con.
+ Tạo mặt nạ mạng con.
+ Liệt kê tất cả các địa chỉ mạng con có thể, trừ hai địa chỉ mà ở đó phần nhận
dạng mạng con toàn các bits 0 và các bit 1.
+ Chọn ra N địa chỉ mạng con từ danh sách các mạng con đã liệt kê.

CÂU HỎI VÀ BÀI TẬP CHƯƠNG 4
Câu 1: Trình bày cấu trúc của địa chỉ IPv4.
Câu 2: Trình bày cách phân lớp địa chỉ IP.
Câu 3: Trình bày số lượng host trong các lớp : A, B, C
Câu 4: Trình bày phương pháp phân mạng con

Câu 5: Trình bày các khái niệm về IP, Net ID, Host ID, Net Mask.
Câu 6: Cho IP của 1 host như sau: 178.129.32.30/255.255.240.0 hỏi:
a.
Mạng chứa host trên có chia mạng con được hay không? Tại sao biết?
b.
Có bao nhiêu mạng con tương tự như vậy?
61


CHƯƠNG 4: ĐỊA CHỈ IP
c.
Có bao nhiêu Host trong mỗi mạng con?
d.
Cho biết địa chỉ Broadcast của mạng chứa Host trên?
e.
Cho biết địa chỉ mạng của mạng chứa Host trên?
f.
Liệt kê các Host nằm chung với mạng con nói trên?
Câu 7: Cho IP của 1 host như sau: 180.180.5.150/22 hỏi:
a.
Mạng chứa host trên có chia mạng con được hay không? Tại sao?
b.
Cho biết địa chỉ mạng con chứa host trên.
c.
Liệt kê các mạng con thuộc mạng 180.180.0.0 .Trình bày địa chỉ host
đầu tiên, host cuối cùng, địa chỉ broadcast trong mỗi mạng con.
Câu 8: Cho IP của 1 host như sau: 140.200.130.63/22 hỏi:
a.
Mạng chứa host trên có chia mạng con được hay không? Tại sao?
b.

Cho biết địa chỉ mạng con chứa host trên?
c.
Liệt kê các mạng con có thể có? Trình bày địa chỉ host đầu tiên, host
cuối cùng, địa chỉ broadcast trong mỗi mạng con.
Câu 9: 1 Host có địa chỉ IP 192.168.1.10/24 , hỏi :
-

Địa chỉ IP này là Private hay Public? Giải thích.

-

Xác định số bit NetID, số bit HostID.

-

Xác định địa chỉ mạng(network) chứa host trên.

-

Xác định địa chỉ Broadcast của mạng chứa host trên.

-

Mạng chứa host trên có tất cả bao nhiêu host?

Câu 10: Một Host có địa chỉ IP như sau : 172.29.32.30 / 255.255.240.0, hỏi :
-

Mạng chứa Host đó có chia mạng con không ? Nếu có thì cho biết có bao
nhiêu mạng con tương tự như vậy ? Có bao nhiêu Host trong mỗi mạng

con ?

-

Tìm địa chỉ mạng chứa host trên.

-

Tìm địa chỉ Broadcast của mạng chứa host trên.

62


CHƯƠNG 5: GIAO THỨC TCP/IP

CHƯƠNG 5
GIAO THỨC TCP/IP
5.1. GIỚI THIỆU CHUNG
Các giao thức liên mạng là bộ giao thức cho các hệ thống mở nổi tiếng nhất trên
thế giới bởi vì chúng có thể được sử dụng để giao tiếp qua bất kỳ các liên mạng nào
cũng như thích hợp cho các giao tiếp trong mạng LAN và mạng WAN. Các giao thức
liên mạng bao gồm một bộ các giao thức truyền thông, trong đó nổi tiếng nhất là Giao
thức điều khiển truyền tải (TCP – Transmission Control Protocol) và Giao thức liên
mạng (IP – Internet Protocol) hoạt động ở tầng 4 và tầng 3 trên mô hình OSI. Ngoài hai
giao thức này, bộ giao thức IP còn đặc tả nhiều giao thức cho tầng ứng dụng, ví dụ như
giao thức cho dịch vụ thư điện tử, giao thức mô phỏng thiết bị đầu cuối và giao thức
truyền tải tập tin.
Bộ giao thức liên mạng lần đầu tiên được phát triển vào giữa những năm của
thập niên 70 khi Văn phòng các dự án nghiên cứu chuyên sâu của bộ quốc phòng Mỹ
(DARPA-Defense Advanced Research Projects Agency ) quan tâm đến việc xây dựng

một mạng chuyển mạch gói (packet- switched network) cho phép việc trao đổi thông tin
giữa các hệ thống máy tính khác nhau của các viện nghiên cứu trở nên dễ dàng hơn. Với
ý tưởng nối các hệ thống máy tính không đồng nhất lại với nhau, DARPA đã cấp kinh
phí nghiên cứu cho đại học Stanford, Bolt, Beranek, and Newman (BBN) về vấn đề này.
Kết quả của những nổ lực phát triển của dự án này là bộ giao thức Liên mạng đã được
hoàn thành vào những năm cuối của thập niên bảy mươi.
Sau đó TCP/IP được tích hợp vào hệ điều hành UNIX phiên bản BSD (Berkeley
Software Distribution) trở thành nền tảng cho mạng Internet và dịch vụ WWW (World
Wide Web).
 Các lớp trong mô hình TCP/IP

H5.1 Mô hình tham chiếu TCP/IP
Mô hình tham chiếu TCP/IP tương tự như kiến trúc OSI, sau đây là một số tính
chất của các lớp trong mô hình tham chiếu TCP/IP :
+ Lớp Application: quản lý các giao thức, như hỗ trợ việc trình bay, mã hóa, và
quản lý cuộc gọi.Lớp này cũng hỗ trợ nhiều ứng dụng, như : FTP (File Transfer
63


CHƯƠNG 5: GIAO THỨC TCP/IP
Protocol), HTTP (Hypertext Transfer Protocol), SMTP (Simple Mail Transfer
Protocol), DNS (Domain Name System), TFTP (Trivial File Transfer Protocol).
+ Lớp Transport: đảm nhiệm việc vận chuyển từ nguồn đến đích.Lớp này đảm
nhiệm việc truyền dữ liệu thông qua hai nghi thức: TCP (Transmission Control
Protocol) và UDP (User Datagram Protocol).
+ Lớp Internet: đảm nhiệm việc chọn lựa đường đi tốt nhất cho các gói tin.Nghi
thức được sử dụng chính ở tầng này là nghi thức IP (Internet Protocol).
+ Lớp Network Access: có tính chất tương tự như hai lớp Data Link và Physical của
kiến trúc OSI.
 So sánh mô hình OSI và TCP/IP


H5.2 So sánh mô hình OSI và mô hình TCP/IP
Các điểm giống nhau :
+ Đều có kiến trúc phân lớp.
+ Đều có lớp Application, mặc dù các dịch vụ ở mỗi lớp khác nhau.
+ Đều có các lớp Transport và Network.
+ Sử dụng kỹ thuật chuyển packet.
Các điểm khác nhau :
+ Mô hình TCP/IP kết hợp lớp Presentation và lớp Session vào trong lớp Application.
+ Mô hình TCP/IP kết hợp lớp Data Link và lớp Physical vào trong một lớp.
+ Mô hình TCP/IP đơn giản hơn bới có ít lớp hơn.
+ Giao thức TCP/IP được chuẩn hóa và được sử dụng phổ biến.
5.2. GIAO THỨC IP
5.2.1. Tổng quát :
Giao thức liên mạng, thường gọi là giao thức IP (Internet Protocol) là một giao
64


CHƯƠNG 5: GIAO THỨC TCP/IP
thức mạng hoạt động ở tầng 3 của mô hình OSI, nó qui đị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 RFC (Request For Comments) mã số 791 và là giao thức
chủ yếu trong Bộ giao thức liên mạng. Cùng với giao thức TCP, IP trở thành trái tim
của bộ giao thức Internet. IP có hai chức năng chính : cung cấp dịch vụ truyền tải dạng
không kết nối,có nghĩa là không cần có giai đoạn thiết lập liên kết trước khi truyền dữ
liệu. để chuyển tải các gói tin qua một liên mạng ; và phân mãnh cũng như tập hợp lại
các gói tin để hỗ trợ cho tầng liên kết dữ liệu với kích thước đơn vị truyền dữ liệu là
khác nhau.
5.2.2. Cấu trúc gói tin IP :


H5.3 Cấu trúc gói tin IP
Ý nghĩa các trường như sau:
1.Version: (4 bits)
Version chỉ ra phiên bản của trình giao thức IP đang được dùng là Ipv4 (0100)
hoặc Ipv6 (0110), có 4 bit. 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.

2.IP Header
65


CHƯƠNG 5: GIAO THỨC TCP/IP
Length (HLEN): (4 bits)
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 Header Length có 4 bit => 2^4 -1= 15 word = 15 x 4byte = 60byte nên
chiều dài header tối đa là 60 byte(Đó là đã bao gồm chiều dài trường Options và
Padding, chiều dài tối đa khi không bao gồm chiều dài của trường Options và Padding
là 24 byte) . Giá trị bình thường của trường này khi không có Options được sử dụng là 5
(5 từ 32-bit = 5 * 4 = 20 byte). Đây là chiều dài của tất cảc các thông tin Header.
Trường này cũng giúp ta xác định byte đầu tiên của Data nằm ở đâu trong gói tin IP
datagram.
3.Type Of Services (TOS): (8bit)
Đặc tả các tham số về dịch vụ nhằm thông báo cho mạng biết dịch vụ nào mà
gói tin muốn được sử dụng, chẳng hạn ưu tiên, thời hạn chậm trễ, năng suất truyền và
độ tin cậy. Hình sau cho biết ý nghĩ của trường 8 bits này.

Precedence. 3 bits. chỉ thị về quyền ưu tiên gửi datagram, nó có giá trị từ 0 (gói tin bình
thường) đến 7 (gói tin kiểm soát mạng)

D. 1 bit: chỉ độ trễ yêu cầu trong đó


D=0: Độ trễ bình thường
D=1: Độ trễ thấp.

66


CHƯƠNG 5: GIAO THỨC TCP/IP
T (Throughput) (1 bit): chỉ độ thông lượng yêu cầu sử dụng để truyền gói tin với lựa
chọn truyền trên đường thông suất thấp hay đường thông suất cao.
T. 1 bit.Maximize throughput.

T = 0 thông lượng bình thường và
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
M. 1 bit. Chi phí tối thiểu

M = 0 chi phí bình thường
M = 1 chi phí tối thiểu
Bảng giá trị khuyến nghị của trường TOS

67


CHƯƠNG 5: GIAO THỨC TCP/IP


4.Total Length: (16 bits)
Chỉ ra chiều dài của toàn bộ gói tính theo byte, bao gồm dữ liệu và header. Vì
trường này rộng 16 bit, nên chiều dài gói tin dữ liệu IP là 65.535 byte, mặc dù hầu hết là
nhỏ hơn. Hiện nay giới hạn trên là rất lớn nhưng trong tương lai với những mạng
Gigabit thì các gói tin có kích thước lớn là cần thiết. Để biết chiều dài của dữ liệu chỉ
cầnlấy tổng chiều dài này trừ đi HLEN.
5.Identification: (16 bits)
Tham số này dùng để định danh duy nhất cho một IP datagram trong khoảng
thời gian nó vẫn còn trên liên mạng, 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 .Đây là chỉ số tuần tự. Nó gia tăng khi mỗi lần gói tin
dữ liệu gửi đi. Trường Identification rộng 16 byte, vì vậy sẽ có 65 535 định danh có thể
sử
dụng.
6.Flag: (3 bits)
Một field có 3 bit, trong đó có 2 bit có thứ tự thấp điều khiển sự phân mảnh. Một
bit cho biết gói có bị phân mảnh hay không và gói kia cho biết gói có phải là mảnh cuối
cùng của chuỗi gói bị phân mảnh hay không.
Flags. 3 bits.

R, reserved. 1 bit: Nên để giá trị là 0.
DF, Don't fragment. 1 bit: Quản lý việc phân mảnh của gói tin dữ liệu.

68


CHƯƠNG 5: GIAO THỨC TCP/IP

- DF = 0 : Phân mảnh, nếu cần thiết.
- DF=1 : Không được phân mảnh.

Bit DF được biểu thị chính là mệnh lệnh cho các router không được phân mảnh
datagram bởi gói tin đó biết chắc sẽ đủ nhỏ để đi qua các Router, và gói tin đó cần đi
nhanh hoặc sử dụng cho mục đích đặc biệt nào đó nên cần đặt DF = 0.Điều này có ý
nghĩa các datagram phải tránh mạng có kích thước packet nhỏ trên đường đi,nói cách
khác nó phải chọn được đường đi tối ưu. Các máy không yêu cầu nhận một gói tin dữ
liệu lớn hơn 576 byte.
MF, More fragments. 1 bit.

- MF= phân mảnh cuối
- MF = 1 có nhiều phân mảnh .
Bit này có ý nghĩa : 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 . Tất cả mảnh (trừ mảnh cuối ) phải có bit này thiết lập bằng
1 .Điều này cần thiết để xác định tất cả các mảnh của datagram đã đến đích hay chưa.
7. Fragment Offset: (13 bits)
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.
Ví Dụ : theo hình minh họa
- 1 gói tin IP datagram chiều dài là 4000 byte , có 20 byte header + 3980 byte dữ liệu.
- Mà trên đường truyền chỉ cho phép truyền tối đa là 1500 byte ,cho nên gói tin sẽ
phần thành 3 mảnh nhỏ . Mỗi mảnh đều có header là 20 byte , còn phần dữ liệu lần
lượng của 3 mảnh là 1480 byte , 1480 byte , 1020 byte . Nên offset của 3 mảnh lần
lượt là 0 , 1480 , 2960 . Dựa vào offset để ráp lại thành mảnh lớn ở bên nhận . Cuối
cùng là trường Flag bên nhận xác định được mảnh cuối cùng
-ID ở mỗi mảnh nhỏ = x , nghĩa là cùng thuộc 1 mảnh lớn

69


CHƯƠNG 5: GIAO THỨC TCP/IP


8.Time To Live (TTL) (8 bits)
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 một
khi một gói tin đi qua một router. Khi bộ đếm đạt tới 0 gói này sẽ bị loại. Trường TTL
rộng 8 bit do người gửi khởi tạo. Giá trị đề nghị khởi tạo được xác định trong Assigned
Numbers RFC và hiện tại là 64. Các hệ thống cũ hơn thường khởi tạo là từ 15-32.
Chúng ta có thể nhận thấy trong 1 số lệnh Ping, gói ICMP echo replies thường được gửi
với TTL được thiết lập với giá trị lớn nhất của nó là 255. Đối với máy tính cài
Windows, mặc định TTL = 124, máy Linux là 64, máy Sun Scolari là 256 ... Đâ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 nào đó.
9.Protocol: (8bit)
Chỉ ra giao thức nào của tầng trên (tầng Transport) sẽ nhận phần data ở trạm
đích, mỗi giao thức có 1 mã.
Ví dụ: TCP có giá trị trường Protocol là 6, UDP có giá trị trường Protocol là
17
10.Header CheckSum: (16 bits)
Giúp bảo dảm sự toàn vẹn của IP Header, có 16 bit.
11.Source Address: (32 bits)
Chỉ ra địa chỉ của node truyền IP diagram, có 32 bit. Chú ý rằng mặc dù các thiết
bị trung gian như Router có thể xử lý gói tin dữ liệu, nhưng chúng thường không đặt địa
chỉ của chúng vào trường này, mà trường này luôn là địa chỉ của thiết bị ban đầu gửi gói
tin dữ liệu.
12.Destination Address: (32 bits)
Chỉ ra địa chỉ IP của Node dự định được nhận IP diagram, có 32 bit. Một lần
nữa, mặc dù các thiết bị như router có thể là điểm tới trung gian của các gói dữ liệu này,
70


CHƯƠNG 5: GIAO THỨC TCP/IP
nhưng trường này luôn luôn là địa chỉ của điểm đến cuối cùng.
13.IP Option :

Khai báo các lựa chọn do người gửi yêu cầu (tuỳ theo từng chương trình)

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.
C, Copy flag. 1 bit.
Chỉ ra nếu tùy chọn này là để được sao chép vào tất cả các mảnh vỡ

Class. 2 bits.

Option. 5 bits.

71


CHƯƠNG 5: GIAO THỨC TCP/IP

72


CHƯƠNG 5: GIAO THỨC TCP/IP
13.Padding:
Vùng đệm,các số 0 được bổ sung vào field này để đảm bảo IP Header luôn la bội
số của 32 bit.
14.Data:
Chứa thông tin lớp trên, chiều dài thay đổi đến 64Kb. Là TCP hay UDP
Segment của tầng Transport gửi xuống cho tần Network , tầng Network sẽ thêm header

vào thành gói tin IP datagram .
5.3. NHIỄU TRONG BỘ THU QUANG
5.3.1 Giao thức phân giải địa chỉ (Address Resolution Protocol)
Nếu một máy tính muốn truyền một gói tin IP nó cần đặt gói tin này vào trong
một khung trên đường truyền vật lý mà nó đang nối kết vào. Để có thể truyền thành
công khung, máy tính gởi cần thiết phải biết được địa chỉ vật lý (MAC) của máy tính
nhận. Điều này có thể thực hiện được bằng cách sử dụng một bảng để ánh xạ các địa chỉ
IP về địa chỉ vật lý. Giao thức IP sử dụng giao thức ARP (Address Resolution Protocol)
để thực hiện ánh xạ từ một địa chỉ IP về một địa chỉ MAC.

H5.4 Giao thức ARP
Một máy tính xác định địa chỉ vật lý của nó vào lúc khởi động bằng cách đọc thiết bị
phần cứng và xác định địa chỉ IP của nó bằng cách đọc tập tin cấu hình, sau đó lưu
thông tin về mối tương ứng giữa địa chit IP và MAC của nó vào trong vùng nhớ tạm
(ARP cache). Khi nhận được một địa chỉ IP mà ARP không thể tìm ra được địa chỉ vật
lý tương ứng dựa vào vùng nhớ tạm hiện tại, nó sẽ thực hiện một khung quảng bá có
định dạng như sau
73


CHƯƠNG 5: GIAO THỨC TCP/IP

Nhờ vào việc gởi các yêu cầu này, một máy tính có thể bổ sung thông tin cho
vùng cache của giao thức ARP, nhờ đó cập nhật kịp thời mọi sự thay đổi của sơ đồ
mạng. Thông thường thời gian quá hạn (Time-out) cho một thông tin trong vùng cache
là 20 phút. Một yêu cầu ARP cho một máy tính không tồn tại trên nhánh mạng được lặp
lại một vài lần xác định nào đó.
Nếu một máy tính được nối kết vào nhiều hơn một mạng bằng giao diện mạng,
khi đó sẽ tồn tại những vùng cache ARP riêng cho từng giao diện mạng.
Lưu ý, ARP trên một máy tính chỉ thực hiện việc xác địa chỉ vật lý cho các địa

chỉ cùng địa chỉ mạng / mạng con với nó mà thôi. Đối với các gói tin gởi cho các máy
tính có địa chỉ IP không cùng một mạng / mạng con với máy gởi sẽ được chuyển hướng
cho một router nằm cùng mạng với máy gởi để chuyển đi tiếp.
Vì các yêu cầu ARP được quảng bá rộng rãi, cho nên bất kỳ một máy tính nào
đang duy trì một vùng cache đều có thể theo dõi tất cả các yều cầu được quảng bá này
để lấy thông tin về địa chỉ vật lý và địa chỉ IP của máy gởi yêu cầu và bổ sung vào vùng
cache của nó khi cần thiết. Khi một máy tính khởi động, nó gởi một yêu cầu ARP ( có
thể cho chính nó) như để thông báo với các máy tính khác về sự xuất hiện của nó trong
mạng cục bộ. Có thể gán nhiều hơn một địa chỉ IP cho một địa chỉ vật lý. Chú ý rằng,
định dạng của yêu cầu ARP thì được thiết kế để có thể hỗ trợ được cho các giao thức
khác ngoài IP và Ethernet.

74


CHƯƠNG 5: GIAO THỨC TCP/IP
5.3.2 Giao thức phân giải địa chỉ ngược RARP (Reverse Address Resolution
Protocol)
Ngày nay, các trạm làm việc không đĩa cứng (Diskless workstation) được sử
dụng rộng rãi. Mỗi máy tính chỉ cần bộ xử lý và bộ nhớ, tất cả không gian lưu trữ được
cung cấp từ một máy chủ (Server) sử dụng một hệ thống tập tin mạng theo một chuẩn
nào đó. Do không có các tập tin cấu hình, tiến trình khởi động của các máy tính này
thường sử dụng một giao thức truyền tải tập tin rất đơn giản như TFTP. Tuy nhiên,
trước khi có thể nối kết đến được server, các trạm làm việc cần phải biết được địa chỉ IP
của nó. Giao thức RARP được dùng trong trường hợp này. RARP sử dụng cùng định
dạng yêu cầu của ARP nhưng trường Operation có giá trị là 3 cho yêu cầu và 4 cho trả
lời. Trên server duy trì một bảng mô tả mối tương quan giữa địa chỉ vật lý và địa chỉ IP
của các máy trạm. Khi nhận được yêu cầu RARP, server tìm trong bảng địa chỉ và trả về
địa chỉ IP tương ứng cho máy trạm đã gởi yêu cầu.
5.3.3. Giao thức thông điệp điều khiển Internet ICMP (Internet Control Message

Protocol)
Giao thức ICMP được cài đặt trong hầu hết tất cả các máy tính TCP/IP. Các
thông điệp của giao thức được gởi đi trong các gói tin IP và được dùng để gởi đi các báo
lỗi hay các thông tin điều khiển.
ICMP tạo ra nhiều loại thông điệp hữu ích như :
+ Đích đến không tới được (Destination Unreachable),
+ Thăm hỏi và trả lời (Echo Request and Reply),
+ Chuyển hướng (Redirect),
+ Vượt quá thời gian (Time Exceeded),
+ Quảng bá bộ chọn đường (Router Advertisement)
+ Cô lập bộ chọn đường (Router Solicitation)
+ ....
Nếu một thông điệp không thể phân phát được thì nó sẽ không được gởi lại.
Điều này để tránh tình trạng di chuyển không bao giờ dừng của các thông điệp ICMP.
Nếu một thông điệp « Đích đến không tới được » được gởi đi bởi một router,
điều đó có nghĩa rằng router không thể gởi gói tin đến đích được. Khi đó router sẽ xóa
gói tin ra khỏi hàng đợi của nó. Có hai nguyên nhân làm cho một gói tin không thể đi
đến nơi được. Phần lớn là máy gởi mô tả một địa chỉ nhận mà nó không tồn tại trên thực
tế. Trường hợp ít hơn là router không biết đường đi đến nơi nhận gói tin.
Thông điệp Đích đến không tới được được chia thành bốn loại cơ bản là :
+ Mạng không đến được (Network unreachable) : Có nghĩa là có sự cố trong vấn
đề vạch đường hoặc địa chỉ nhận của gói tin.
+ Máy tính không đến được (Host unreachable) : Thông thường dùng để chỉ trục
trặc trong vấn đề phân phát, như là sai mặt nạ mạng con chẳng hạn.
+ Giao thức không đến được (Protocol unreachable) : Máy nhận không hỗ trợ
giao thức ở tầng cao hơn như gói tin đã mô tả.
+ Cổng không đến được (Port unreachable) : Socket của giao thức TCP hay cổng
không tồn tại.
Một thông điệp « Thăm hỏi và trả lời » được tạo ra bởi lệnh ping từ một máy
tính để kiểm tra tính liên thông trên liên mạng. Nếu có một thông điệp trả lời, điều đó

biểu hiện rằng giữa máy gởi và máy nhận có thể giao tiếp được với nhau.
Một thông điệp « Chuyển hướng » được gởi bởi một router đến máy đã gởi gói
75


CHƯƠNG 5: GIAO THỨC TCP/IP
tin để khuyến cáo về một đường đi tốt hơn. Router hiện tại vẫn chuyển tiếp gói tin mà
nó nhận được. Thông điệp chuyển hướng giữ cho bảng chọn đường của các máy tính
được nhỏ bởi vì chúng chỉ cần chứa địa chỉ của một router mà thôi, thậm chí router đó
cung cấp đường đi không phải là tốt nhất. Đôi khi sau khi nhận được thông điệp chuyển
hướng, thiết bị gởi vẫn sử dụng đường đi cũ.
Một thông điệp « Vượt quá thời hạn » được gởi bởi một router nếu thời gian
sống (Time–to-live) của gói tin, tính bằng số router hay giây, có giá trị là 0. Thời gian
sống của gói tin giúp phòng ngừa trường hợp gói tin được gởi đi lòng vòng trên mạng
và không bao giờ đến nơi nhận. Router sẽ bỏ đi các gói tin đã hết thời gian sống.
5.4. GIAO THỨC TCP
5.4.1. Tổng quát
TCP là giao thức hướng byte, nghĩa là bên gởi ghi các bytes lên nối kết TCP,
bên nhận đọc các bytes từ nối kết TCP đó. Mặc dù TCP mô tả dịch vụ mà nó cung cấp
cho tầng ứng dụng là theo kiểu “luồng các bytes”, nhưng tự thân TCP không truyền
từng byte một qua mạng Internet. Thay vào đó, thực thể TCP trên máy nguồn trữ tạm đủ
số bytes phát ra từ tiến trình gởi để tạo nên một gói tin có kích thước hợp lý rồi mới gởi
gói tin đó đến thực thể TCP ngang hàng bên máy đích. Thực thể TCP bên máy đích sẽ
bóc các bytes dữ liệu trong gói tin ra và đặt chúng vào buffer của nó. Tiến rình bên
nhận từ đó có thể đọc các bytes từ buffer này tùy thích. Quá trình truyền nhận trên được
mô phỏng trong Hình H5.5.

H5.5 Cách thức TCP quản lý luồng các bytes
TCP cung cấp kết nối tin cậy giữa hai máy tính, kết nối được thiết lập trước khi
dữ liệu bắt đầu truyền. TCP còn gọi là giao thức hướng kết noois, với giao thức TCP thì

quá trình hoạt động trải qua ba bước sau :
+ Thiết lập kết nối
+ Truyền dữ liệu
+ Kết thúc kết nối
 Giao thức TCP thiết lập kết nối bằng phương pháp bắt tay ba chiều:
+ Bước 1: Cient (bên chủ động) gởi đến server một segment yêu cầu nối kết,
trong đó chứa số thứ tự khởi đầu mà nó sẽ dùng (Flags = SYN, SequenceNum =
x).
76


CHƯƠNG 5: GIAO THỨC TCP/IP
+ Bước 2: Server trả lời cho client bằng một segment, trong đó báo nhận rằng nó
sẵn sàng nhận các byte dữ liệu bắt đầu từ số thứ tự x+1 (Flags = ACK, Ack = x + 1)
và cũng báo rằng số thứ tự khởi đầu của bên server là y (Flags = SYN,
SequenceNum = y).
+ Bước 3: Cuối cùng client báo cho server biết, nó đã biết số thứ tự khởi đầu
của server là y (Flags = ACK, Ack = y+1).

H5.6 Bắt tay 3 chiều trong TCP
 Hủy kết nối :
Việc hủy bắt tay trong TCP được thực hiện qua 4 bước:
+ Bước 1: Cient (bên chủ động) gởi đến server một segment yêu cầu hủy nối kết
(Flags =FIN).
+ Bước 2: Server nhận được một segment FIN, sẽ trả lời bằng một segment
ACK. Sau khi đã hoàn tất hết mọi thứ để đóng nối kết, server sẽ gởi cho client
tiếp một segment FIN.
+ Bước 3: Client nhận được FIN sẽ trả lời ACK sau đó nó sẽ chuyển sang trạng
thái chờ đợi có định hạn. Trong thời gian chờ đợi này, client sẽ trả lời ACK cho
mọi khung FIN. Hết thời gian chờ đợi, client sẽ thật sự đóng nối kết.

+ Bước 4: Server khi nhận được ACK sẽ thật sự đóng nối kết.
5.4.2. Cấu trúc gói tin TCP
Các gói tin được trao đổi bởi hai thực thể TCP trong Hình H5.5 được gọi là các
segment (đoạn), do mỗi gói tin mang theo một đoạn của cả một luồng các bytes. Mỗi
segment có một header như được chỉ ra trong Hình H5.7.

77


CHƯƠNG 5: GIAO THỨC TCP/IP
H5.7 Cấu trúc TCP header
Giải thích:
+ Các trường SrcPort và DstPort chỉ ra địa chỉ cổng nguồn và đích, giống như trong
UDP. Hai trường này cùng với hai địa chỉ IP nguồn và đích sẽ được kết hợp với nhau
để định danh duy nhất một kết nối TCP. Nghĩa là một kết nối TCP sẽ được định danh
bởi một bộ 4 trường (Cổng nguồn, Địa chỉ IP nguồn, Cổng đích, Địa chỉ IP đích)
+ Các trường Acknowledgement, SequenceNum và AdvertisedWindow tất cả được sử
dụng trong giải thuật cửa sổ trượt của TCP. Bởi vì TCP là giao thức hướng byte, nên
mỗi byte của dữ liệu sẽ có một số thứ tự; trường SequenceNum chứa số thứ tự của byte
đầu tiên của một dãy các bytes chứa trong một segment. Các trường Acknowledgement
và AdvertisedWindow được dùng để thông báo tiến độ nhận các bytes trong luồng dữ
liệu và khả năng tiếp nhận chúng. Để đơn giản hóa vấn đề, chúng ta bỏ qua sự thật là dữ
liệu có thể chạy theo hai chiều, ở đây ta đưa ra sơ đồ như sau: bên gởi sẽ gởi một
segment dữ liệu, byte dữ liệu đầu tiên trong segment đó sẽ có số thứ tự là
SequenceNum; bên nhận sẽ báo nhận bằng các trường Acknowledgement và
AdvertisedWindow.

H5.8 Gởi dữ liệu và báo nhận
Cách thức hai bên sử dụng các trường trên như thế nào sẽ được trình bày trong
phần điều khiển luồng dữ liệu.

+ Trường Flags dài 6 bits được sử dụng để chứa thông tin điều khiển giữa hai bên sử
dụng giao thức TCP. Một bit trong trường này là một cờ, cụ thể như sau: SYN, FIN,
RESET, PUSH, URG, ACK. Hai cờ SYN và FIN được dùng để thiết lập và giải phóng
nối kết. Cờ ACK được đặt mỗi khi trường Acknowledgement là hợp lệ. Cờ URG được
dùng để đánh dấu segment này chứa dữ liệu khẩn cấp. Khi cờ này được đặt, trường
UrgPtr sẽ chỉ ra nơi bắt đầu của dữ liệu không khẩn cấp (dữ liệu khẩn cấp luôn nằm ở
đầu của phần dữ liệu).
+ Cờ PUSH báo hiệu cho bên nhận rằng bên gởi đã dùng thao tác PUSH, tức là bên gởi
đã không chờ nhận đủ các bytes để lấp đầy một segment, trong buffer gởi dù có bao
nhiêu bytes dữ liệu cũng được bên gởi đóng vào segment và gởi đi. Cuối cùng, cờ
RESET được dùng để thông báo rằng bên nhận đã bị rối (ví dụ như nó đã nhận một
segment mà đáng lẽ ra không phải là segment đó), vì thế nó muốn hủy bỏ nối kết.
+ Trường Checksum được sử dụng chính xác giống như trong giao thức UDP.
+ Do header của TCP có độ dài thay đổi, nên trường HdrLen sẽ chỉ ra độ dài cụ thể của
phần header này.
5.5.

GIAO THỨC UDP

78


×