Ví dụ: 176.10.0.0 là một địa chỉ mạng Địa chỉ Broadcast Broadcast address: là địa chỉ IP được dùng để đại diện cho tất cả các host trong mạng, phần hostID của địa chỉ chỉ chứa các bit
Trang 1Chương 6: TCP/IP VÀ CÁC ỨNG DỤNG 6.1 Tổng quan về TCP/ IP:
Mô hình TCP/IP ra đời trong những năm 1970, được phát triển dựa trên mô hình OSI Giao thức TCP/IP cung cấp các phương tiện truyền thông liên mạng giúp cho các hệ thống mạng khác nhau có thể làm việc với nhau TCP/IP được sử dụng như giao thức mạng và vận chuyển trên mạng Internet TCP (Transmission Control Protocol) là giao thức thuộc tầng vận chuyển và IP (Internet Protocol) là giao thức thuộc tầng mạng của mô hình OSI Cấu trúc của mô hình TCP/IP và sự liên quan giữa các lớp của mô hình TCP/IP với OSI như sau :
OSI TCP/IP
Application Presentation Session
Application
Transport Transport Network Internet Data Link
Physical Network Interface
6.1.1 Lớp ứng dụng (Application Layer):
Gồm nhiều giao thức cung cấp ứng dụng cho người dùng, được sử dụng để định
dạng và trao đổi thông tin người dùng Một số giao thức thông dụng của lớp này là:
+ DHCP (Dynamic Host Configuration Protocol)
+ DNS (Domain Name System)
+ SNMP (Simple Network Management Protocol)
+ FTP (File Transfer Protocol)
+ TFTP (Trivial File Transfer Protocol)
+ SMTP (Simple Mail Transfer Protocol)
+ TELNET
+ IMAP (Internet Message Access Protocol)
+ POP3 (Post Office Protocol) 6.1.2 Lớp vận chuyển (Transport Layer):
Lớp vận chuyển thực hiện chức năng quản lý và kiểm tra truyền thông giữa các máy tính cũng như chuyển tiếp dữ liệu nhận được lên lớp trên hoặc xuống lớp dưới, có chức năng như lớp vận chuyển của mô hình OSI Lớp vận chuyển sử dụng cổng (port) để xác định ứng dụng nào của tầng trên sẽ nhận dữ liệu Lớp vận chuyển có hai giao thức chính là :
Trang 2+ •TCP (Transmission Control Protocol) : cung cấp dịch vụ truyền thông tin cậy và hướng kết nối cho các ứng dụng cần truyền dữ liệu lớn tại một thời điểm hoặc cho ứng dụng cần cơ chế xác nhận dữ liệu Hướng kết nối có nghĩa truyền thông gồm ba giai đoạn : thiết lập kết nối, truyền dữ liệu, giải phóng kết nối
+ •UDP (User Datagram Protocol) : cung cấp dịch vụ truyền thông không kết nối và không đảm bảo truyền dữ liệu thành công Không kết nối có nghĩa là quá trình truyền dữ liệu không chia thành ba giai đoạn như trên và dữ liệu được truyền đi trong các gói độc lập Các ứng dụng sử dụng UDP thường chỉ truyền một lượng dữ liệu nhỏ tại một thời điểm và trách
nhiệm cho độ tin cậy được giao cho tầng trên
6.1.3 Lớp liên kết mạng (Internet Layer):
Lớp liên mạng có nhiệm vụ đánh địa chỉ, đóng gói và định tuyến dữ liệu Lớp này
có chức năng giống với chức năng của lớp liên mạng (Network) của mô hình OSI
Router sử dụng lớp liên mạng để xác định đường đi cho các gói dữ liệu từ mạng này
tới mạng khác Bốn giao thức quan trọng thuộc lớp này gồm :
+ IP (Internet Protocol) : đánh địa chỉ cho dữ liệu trước khi truyền và định tuyến chúng tới đích
+ ARP (Address Resolution Protocol): có chức năng biên dịch địa chỉ IP của máy đích thành địa chỉ MAC
+ ICMP (Internet Control Message Protocol): có chức năng gửi các thông báo điều khiển (báo cáo về tình trạng lỗi xảy ra trên mạng) Các tình trạng lỗi có thể là: một gói tin IP không tới đích, một router không đủ bộ nhớ, bộ đệm để lưu và chuyển một gói tin…
+ IGMP (Internet Group Management Protocol): thực hiện điều khiển
truyền dẫn đa hướng hay multicast trong TCP/IP
6.1.4 Lớp giao diện mạng (Network Interface layer):
Lớp giao diện mạng có trách nhiệm nhận và truyền dữ liệu giữa các thiết bị mạng,
đồng thời xác nhận loại thiết bị cho quá trình truyền Tầng này gồm có các thiết bị
phần cứng vật lý như card mạng, cáp mạng … Các giao thức thuộc lớp này gồm : ATM,
Ethernet, Token Ring, Frame Relay … Lớp giao diện mạng của mô hình TCP/IP có
nhiệm vụ tương đương như lớp vật lý của giao hình OSI
6.2 Địa chỉ IP (IP address):
- Địa chỉ IP có chức năng đánh địa chỉ gói dữ liệu và định tuyến chúng đến đích Để
thực hiện được việc này thì thiết bị nguồn và đích phải xác định được vị trí của nhau
Trong cuộc sống hằng ngày, chúng ta sử dụng tên, địa chỉ nhà … để phân biệt người
này người kia, nhà này nhà khác Trong mạng TCP/IP, mỗi máy, mỗi nút mạng sử
dụng một địa chỉ để phân biệt và xác định vị trí lẫn nhau Địa chỉ này gọi là địa chỉ IP
- Địa chỉ IP của mỗi thiết bị mạng là duy nhất Trong trường hợp một thiết bị nối với
nhiều mạng khác nhau thì các interface của thiết bị này phải có địa chỉ IP khác nhau
- Địa chỉ IP (version 4) là một địa chỉ nhị phân dài 32 bit và gồm hai phần :
Trang 3+ Định danh mạng (network ID) + •Định danh host (host ID) Và được chia làm 4 octets, mỗi octet gồm 1 byte Để dễ sử dụng và dễ nhớ, địa chỉ IP
được viết dưới dạng X.Y.Z.W, trong đó: X, Y, Z, W là một số thập phân từ 0 ÷ 255
Ví dụ: ta có địa chỉ như sau:
- Mục đích của địa chỉ IP là để định danh duy nhất cho một host trên liên mạng Do
tổ chức và độ lớn của các mạng con của liên mạng có thể khác nhau, người ta chia địa
chỉ IP thành 5 lớp, ký hiệu là: A, B, C, D, E Trong đó, các lớp A, B, C được triển khai
để đặt cho các host trên mạng Internet, lớp D dùng cho các nhóm Multicast, lớp E
phục vụ cho mục đích nghiên cứu
6.2.1 Các lớp địa chỉ IP:
0 1 7 8 15 16 23 24 31 Lớp A 0 NetID HostID
Lớp B 1 0 NetID HostID
32 bits
Trang 4Lớp C 1 1 0 NetID HostID
Lớp D 1 1 1 0 address
Lớp E 1 1 1 1 address
Lớp A :
+ Bit đầu tiên của địa chỉ lớp A là bit nhận dạng luôn là 0 và 7 bit còn lại trong
octet thứ nhất dành cho định danh mạng Như vậy, số nhỏ nhất có giá trị là:
00000000 (giá trị thập phân là 0), và số lớn nhất là 01111111 (giá trị thập phân
là 127) Tuy nhiên, 2 giá trị đặc biệt này, 0 và 127 không được sử dụng để đánh
địa chỉ mạng Kết quả là lớp A chỉ còn 126 địa chỉ mạng:1.0.0.0 đến 126.0.0.0
+ 3 Octet còn lại có 24 bit dành cho địa chỉ của máy => có 224 = 16777216 địa
chỉ host trong mỗi mạng Tuy nhiên, phần hostID có tất cả các bit bằng 0
hoặc tất cả các bit bằng 1 thì không được dùng để gán địa chỉ cho host Do
vậy , tổng số host hợp lệ được dùng trong mạng lớp A là: 224 – 2 = 16777214
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
• Lớp B:
+ Sử dụng 2 byte đầu cho phần netID, 2 byte còn lại cho hostID
+ Địa chỉ lớp B có hai bit đầu tiên là bit nhận dạng luôn làø 10, và 6 bit còn lại là
tùy ý Như vậy, số nhỏ nhất có giá trị là: 10000000 (giá trị thập phân là 128),
và số lớn nhất là 10111111 (giá trị thập phân là 191) Kết quả là những địa chỉ
nằm trong khỏang 128 ÷ 191 là địa chỉ lớp B và có tất cả 214 = 16384 mạng lớp
B (128.0.0.0 ÷ 191.255.0.0)
+ Phần hostID dài 16 bit => tổng số host có trong mạng lớp B là: 216 -2 = 65534
host (bỏ đi 2 trường hợp tất cả các bit bằng 0 hoặc tất cả các bit bằng 1)
Ví dụ: đối với mạng 172.29.0.0 thì những giá trị host hợp lệ là:
172.29.0.1 ÷ 172.29.255.254
• Lớp C:
+ Sử dụng 3 byte cho netID, 1 byte cho hostID
+ Địa chỉ lớp C có 3 bit đầu tiên là bit nhận dạng luôn làø 110 => những địa chỉ
nằm trong khỏang 11000000 ( giá trị thập phân là 192) ÷ 11011111 (giá trị thập
phân là 223) là địa chỉ lớp C và có tất cả 221 = 2097152 mạng lớp C (192.0.0.0
÷ 223.255.255.0)
+ Phần hostID dài 8 bit => tổng số host có trong mạng lớp C là: 28 -2 = 254 host
(bỏ đi 2 trường hợp tất cả các bit bằng 0 hoặc tất cả các bit bằng 1)
Ví dụ: đối với mạng 203.162.41.0 thì những giá trị host hợp lệ là:
203.162.41.1 ÷ 203.162.41.254
•Lớp D và E :sử dụng cho mục đích đặc biệt Lớp D được sử dụng cho mục đích
multicast, lớp E được sử dụng cho mục đích mở rộng
Trang 5Các lớp địa chỉ IP Khỏang địa chỉ IP
Lớp A 1÷126 (00000001 ÷01111111) Lớp B 128÷191 (10000000 ÷10111111) Lớp C 192÷223 (11000000 ÷11011111) Lớp D 224÷239 (11100000 ÷11101111) Lớp E 240÷255 (11110000 ÷11111111)
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 hostID Được xây dựng theo cách: bật các bit
tương ứng với phần netwID và tắt các bit tương ứng với phần hostID
Mặt nạ mặc định của các lớp địa chỉ khi không phân chia mạng con là:
Lớp A: 255.0.0.0
Lớp B: 255.255.0.0
Lớp C: 255.255.255.0
6.2.2 Các địa chỉ dành riêng:
Địa chỉ mạng (Network address): là địa chỉ IP được dùng để đặt cho chính
mạng đó Địa chỉ này không thể dùng để đặt cho một interface, phần hostID của địa chỉ chỉ chứa các bit 0
Ví dụ: 176.10.0.0 là một địa chỉ mạng
Địa chỉ Broadcast (Broadcast address): là địa chỉ IP được dùng để đại
diện cho tất cả các host trong mạng, phần hostID của địa chỉ chỉ chứa các bit
1 Địa chỉ này không thể dùng để đặt cho một interface
Trang 6Ví dụ: 176.10.255.255 là một địa chỉ broadcast
Các địa chỉ bắt đầu với 127 là các địa chỉ sử dụng cho chức năng loopback
Một thông điệp được đánh địa chỉ loopback được gởi bởi phần mềm TCP/IP cục bộ đến chính nó Địa chỉ loopback được dùng để kiểm tra xem phần mềm TCP/IP có hoạt động không Địa chỉ 127.0.0.1 thuờng được sử dụng nhất
6.2.3 Địa chỉ chung và địa chỉ riêng:
- Tất cả các IP host khi kết nối vào mạng Internet đều phải có một địa chỉ IP
do tổ chức IANA (Internet Assigned Numbers Authority) cấp phát – gọi là địa chỉ
hợp lệ (hay là được đăng ký) Tuy nhiên, số lượng host kết nối vào mạng ngày
càng gia tăng dẫn đến tình trạng khan hiếm địa chỉ IP Một giải pháp đưa ra là
dùng cơ chế NAT kèm theo là RFC 1918 quy định danh sách địa chỉ riêng
- RFC 1918 dành riêng một vài dãy địa chỉ IP cho các mạng riêng Với giả
định là các dãy địa chỉ riêng này không được kết nối vào Internet, vì thế các địa
chỉ này không là duy nhất Trên thế giới hiện nay, các dãy địa chỉ ẩn này thường
được sử dụng cho mạng được bảo vệ, nằm sau các thiết bị chuyển đổi mạng:
• 10.0.0.0 ÷ 10.255.255.255
• 172.16.0.0 ÷ 172.31.255.255
• 192.168.0.0 ÷192.168.255.255
- Bởi vì các dãy địa chỉ riêng này tách biệt với phần địa chỉ còn lại, toàn bộ dãy
địa chỉ này có thể được sử dụng trong bất cứ mạng nào mà không sợ trùng lắp
địa chỉ giữa các mạng Một nhà quản lý mạng sử dụng các địa chỉ riêng này sẽ
có nhiều không gian địa chỉ để phân chia mạng con hơn, và nhiều địa chỉ có thể
gán hơn
6.2.4 Cơ chế NAT:
NAT được sử dụng trong thực tế là tại một thời điểm, tất cả các host trong
một mạng LAN thường không truy xuất vào internet đồng thời Chính vì vậy, ta
không cần phải sử dụng một số lượng tương ứng địa chỉ IP hợp lệ NAT được sử
dụng trên các router đóng vai trò là gateway kết nối các máy tính trong mạng cục
bộ với Internet, thực hiện chức năng chuyển đổi địa chỉ mạng Một thiết bị NAT sẽ
làm ẩn đi những chi tiết của mạng cục bộ và che dấu sự tồn tại của mạng cục bộ
Các host bên trong mạng LAN sẽ sử dụng một lớp địa chỉ IP riêng thích hợp Còn
danh sách các địa chỉ IP hợp lệ sẽ được cấu hình trên router NAT Tất cả các gói
tin của các host bên trong mạng LAN khi gởi đến một host trên internet đều được
router NAT phân tích và chuyển đổi các địa chỉ riêng có trong gói tin thành một
địa chỉ hợp lệ trong danh sách rồi mới chuyển đến host đích nằm trên mạng
internet Sau đó, nếu có một gói tin gởi cho một host bên trong mạng LAN thì
router NAT cũng chuyển đổi địa chỉ đích thành địa chỉ riêng của host đó rồi mới
chuyển đi
Một thiết bị NAT sẽ làm tăng tính bảo mật của mạng bởi vì nó có thể ngăn chặn sự tấn công từ bên ngoài vào mạng cục bộ Đối với mạng bên ngoài, thiết bị
Trang 7NAT giống như một máy đơn được kết nối Internet Nếu kẻ tấn công biết được địa
chỉ của một máy trong mạng cục bộ, hắn cũng không thể mở một kết nối đến mạng
cục bộ vì sơ đồ gán địa chỉ cục bộ độc lập với không gian địa chỉ của Internet Một
thiết bị NAT cũng sẽ tiết kiệm được số lượng địa chỉ Internet cần thiết cho một tổ
chức Chỉ có thiết bị NAT mới được truy cập từ Internet Tính kinh tế của việc tiết
kiệm được ít địa chỉ Internet và khả năng bảo mật của mạng riêng đã làm cho thiết
bị NAT trở nên rất phổ biến trong các mạng cục bộ
Hình 6.1: Một thiết bị chuyển đổi địa chỉ mạng
6.2.5 Phân chia mạng con (subneting)
Người quản trị mạng đôi khi cần phân chia một mạng thành những mạng con
nhỏ hơn, nhằm mục đích:
– Giảm kích thứơc broadcast domain, tối ưu việc thực hiện mạng
– Bảo mật mạng tốt hơn
– Quản lý đơn giản hơn và nếu có sự cố thì cũng dễ kiểm tra và xác định đựơc
nguyên nhân gây lỗi hơn là trong một mạng lớn
Lấy ví dụ, xét một mạng lớp A như hình 6.1:
Trang 8Hình 6.2: Phân phối dữ liệu đến một mạng lớp A Vấn đề là làm thế nào để phân phối datagram khi nó đi vào không gian địa chỉ
99.0.0.0 Một mạng lớp A có phạm vi trên 16 triệu định danh host Mạng này
có thể bao gồm hàng triệu host, đường đi – đây là một con số rất lớn trong
phạm vi một mạng con đơn lẻ
Để phân phối hiệu quả trên một mạng lớn, không gian địa chỉ có thể được
phân nhỏ thành các đoạn mạng nhỏ hơn (xem hình 6 -2)
Trang 9Hình 6.3: Tổ chức mạng để phân phối hiệu quả Việc phân đoạn thành các mạng vật lý riêng biệt làm tăng dung lượng toàn
bộ của mạng và do đó làm cho mạng có thể sử dụng phần không gian địa chỉ nhiều
hơn Trong trường hợp thông thường, các router phân tách các đoạn trong không
gian địa chỉ cần một số chỉ định về nơi phân phối dữ liệu Chúng không thể dùng
định danh mạng vì mỗi datagram gởi đến mạng có cùng định danh mạng (99.0.0.0)
Mặc dù có thể tổ chức không gian địa chỉ bằng định danh host, nhưng một giải
pháp như vậy sẽ rất cồng kềnh, không mềm dẻo và hoàn toàn không thực tế trên
một mạng với 16 triệu host Giải pháp thực tế duy nhất là phân chia không gian địa
chỉ nào đó bên dưới định danh mạng để các host và các router có thể dựa trên địa
chỉ IP để cho biết đoạn mạng nào có thể nhận phân phối
Giả sử ta phải tiến hành đặt địa chỉ IP cho hệ thống có cấu trúc như hình 6.4:
Theo hình 6.4, ta bắt buộc phải dùng đến tất cả là 3 đường mạng riêng biệt để
đặt cho hệ thống mạng của mình, mặc dù trong mỗi mạng chỉ dùng đến vài địa chỉ
trong tổng số 65534 địa chỉ hợp lệ => một sự phí phạm to lớn
Trang 10Hình 6.4: Mô hình không phân chia mạng con
Thay vì vậy, khi sử dụng kỹ thuật chia mạng con, ta chỉ cần sử dụng một đường
mạng 131.108.0.0 và chia đường này thành 3 mạng con như hình 6.5
Hình 6.5: Mô hình có phân chia mạng con
Rõ ràng khi tiến hành cấp phát địa chỉ cho các hệ thống mạng lớn, người ta
phải sử dụng kỹ thuật chia mạng con trong tình hình địa chỉ IP ngày càng khan
hiếm Ví dụ trong hình trên hòan tòan chưa phải là chiến lược chia mạng con tối
ưu Thật sự người ta còn có thể chia mạng con nhỏ hơn nữa, đến một mức độ không
bỏ phí một địa chỉ IP nào khác
Xét về khía cạnh kỹ thuật, chia mạng con là việc dùng một số bit trong phần
hostID ban đầu để đặt cho cac mạng con Lúc này, địa chỉ gồm 3 phần: NetID,
subnetID, và hostID
Trang 11Số bit dùng cho phần subnetID bao nhiêu là tùy thuộc vào chiến lược chia
mạng con của người quản trị Tuy nhiên, subnetID không thể chiếm trọn số bit
trong phần hostID ban đầu, cụ thể là: subnetID ≤ hostID – 2
8 24 - x x Lớp A NetID subnetID HostID
16 16 - x x Lớp B NetID subnetID HostID
24 8 - x x Lớp C NetID SubnetID HostID
Ví dụ:
Số bit trong phần subnetID xác định số lượng mạng con, giả sử số bit là n thì
2n là số lượng mạng con có được Tuy nhiên, các luật phân chia mạng con chính
thức không cho phép các dạng tòan bit 1 hoặc tòan bit 0 trong các định danh
subnet Như vậy, số subnet hợp lệ chỉ còn là: 2n – 2 (với n là số bit mượn để chia
subnet)
Vậy: Số bit tối thiểu có thể mượn để chia subnet là: 2 bit
Số bit tối đa có thể mượn để chia subnet là:
Lớp A: 22 bits ~ 222 - 2 = 4.194.302 subnet
Lớp B: 14 bits ~ 214 - 2 = 16.382 subnet
Lớp C: 06 bits ~ 206 - 2 = 62 subnet