Thứ Bảy, 8 tháng 2, 2014

Ứng dụng của kiến trúc CQS trong vấn đề quản lý nghẽn trong mạng IP

Đồ án tốt nghiệp Đại học Lời nói đầu
LỜI NÓI ĐẦU
Ngày nay mạng lưới viễn thông đã và đang ngày càng phát triển mạnh mẽ và
rộng khắp trên thế giới. Điều đó đặt ra một bài toán đó là quản lý mạng viễn
thông như thế nào để nó hoạt động một cách hiệu quả và đảm bảo được chất
lượng dịch vụ của mạng. Đối với mạng Internet trước đây do nhu cầu khách
hàng chưa cao, chủ yếu là sử dụng các dịch vụ truyền thống như truyền file, thư
điện tử, dịch vụ telnet v.v Do vậy mà dịch vụ Best Effort là rất hiệu quả và
đảm bảo được chất lượng dịch vụ. Nhưng hiện nay với nhu cầu truyền đa
phương tiện đang ngày càng phát triển nhanh chóng, điều đó đã làm xuất hiện
các dịch vụ Intergrated Service và Differentiated Service. Khi các dịch vụ này ra
đời thì yêu cầu về vấn đề định tuyến và tốc độ các router cũng phải được nâng
cao. Điều đó cần thiết phải có một cơ chế quản lý mới và một kiến trúc mới để
quản lý router tốt hơn. Để đáp ứng yêu cầu đó, “Kiến trúc CQS” đã ra đời và
được ứng dụng trong mạng Internet ngày nay. Nội dung đồ án sẽ nghiên cứu đến
kiến trúc mới này và một số “Ứng dụng của kiến trúc CQS trong vấn đề
quản lý nghẽn trong mạng IP”. Đồ án cũng thực hiện lập trình mô phỏng xác
định lượng băng thông cung cấp cho các luồng lưu lượng IP ưu tiên sử dụng
thuật toán WFQ. Bố cục của Đồ án gồm năm chương như sau:
Chương I: Một số vấn đề tổng quan về mạng IP – Trình bày mô hình giao
thức TCP/IP và các dịch vụ Best Effort, Intergrated Service, Differentiated
Service.
Chương II: Chất lượng dịch vụ trong mạng IP – Trình bày các thông số
chất lượng dịch vụ như: trễ, nghẽn, jitter, mất gói.
Chương III: Kiến trúc CQS – Trình bày vấn đề định tuyến trong mạng IP và
kiến trúc CQS trong router.
Chương IV: Ứng dụng kiến trúc CQS cho quản lý nghẽn trong mạng IP –
Trình bày các phương pháp quản lý nghẽn có sử dụng kiến trúc CQS.
Ngoài ra Đồ án cũng thực hiện lập trình mô phỏng xác định lượng băng
thông cung cấp cho các luồng lưu lượng ưu tiên IP sử dụng thuật toán WFQ.
Phần này không được đưa vào nội dung Đồ án mà được đưa ra ở một phần
riêng.
Nguyễn Hữu Liêm, Lớp D2001VT
5
Đồ án tốt nghiệp Đại học Lời nói đầu
Trong quá trình thực hiện Đồ án, với năng lực có hạn nên chắc chắn không
tránh khỏi những thiếu sót. Rất mong được sự đóng góp ý kiến của các thầy cô
giáo, của các độc giả quan tâm tới vấn đề được trình bày trong Đồ án để Đồ án
được hoàn chỉnh hơn.
Tôi xin chân thành cảm ơn thầy giáo Thạc sỹ Nguyễn Văn Đát đã hết sức tận
tình giúp đỡ và hướng dẫn tôi trong quá trình thực hiện Đồ án.
Nguyễn Hữu Liêm, Lớp D2001VT
Hà nội 10/2005
Sinh viên Nguyễn Hữu Liêm
6

Đồ án tốt nghiệp Đại học Một số vấn đề tổng quan về mạng IP
CHƯƠNG I - MỘT SỐ VẤN ĐỀ TỔNG QUAN VỀ MẠNG IP
1.1 Khái niệm về mạng IP
Tiền thân của mạng Internet là mạng ARPANET của Bộ quốc phòng Mỹ.
Mạng ARPANET ra đời với mục đích là kết nối các trung tâm nghiên cứu của
một số Viện nghiên cứu và trường đại học nhằm chia sẻ, trao đổi tài nguyên
thông tin. Ban đầu giao thức truyền thông được sử dụng là NCP (Network
Control Protocol) nhưng sau đó được thay thế bởi bộ giao thức TCP/IP (Transfer
Control Protocol/ Internet Protocol). Bộ giao thức TCP/IP gồm một tập hợp các
chuẩn của mạng, đặc tả chi tiết cách thức cho các máy tính thông tin liên lạc với
nhau, cũng như quy ước cho đấu nối liên mạng và định tuyến cho mạng.
Trước đây, người ta định nghĩa “Internet là mạng của tất cả các mạng sử
dụng giao thức IP”. Nhưng hiện nay điều đó không còn chính xác nữa vì nhiều
mạng có kiến trúc khác nhau nhưng nhờ các cầu nối giao thức nên vẫn có thể kết
nối vào Internet và vẫn có thể sử dụng đầy đủ các dịch vụ Internet. Internet
không chỉ là một tập hợp các mạng được liên kết với nhau, Internetworking còn
có nghĩa là các mạng được liên kết với nhau trên cơ sở cùng đồng ý với nhau về
các quy ước mà cho phép các máy tính liên lạc với nhau, cho dù con đường liên
lạc sẽ đi qua những mạng mà chúng không được đấu nối trực tiếp tới. Như vậy,
kỹ thuật Internet che dấu chi tiết phần cứng của mạng, và cho phép các hệ thống
máy tính trao đổi thông tin độc lập với những liên kết mạng vật lý của chúng.
1.2 Mô hình phân lớp TCP/IP
TCP/IP là một bộ giao thức được phát triển bởi cục các dự án nghiên cứu cấp
cao (ARPA) của bộ quốc phòng Mỹ. Ban đầu nó được sử dụng trong mạng
ARPANET. Khi công nghệ mạng cục bộ phát triển, TCP/IP được tích hợp vào
môi trường điều hành UNIX và sử dụng chuẩn Ethernet để kết nối các trạm làm
việc với nhau. Đến khi xuất hiện các máy PC, TCP/IP lại được chuyển sang môi
trường PC, cho phép các máy PC chạy DOS và các trạm làm việc chạy UNIX có
thể liên tác trên cùng một mạng. Hiện nay TCP/IP được sử dụng rất phổ biến
trong mạng máy tính, mà điển hình là mạng Internet.
TCP/IP được phát triển trước mô hình OSI, do đó các tầng trong TCP/IP
không tương ứng hoàn toàn với các tầng trong mô hình OSI. Chồng giao thức
TCP/IP được chia thành bốn tầng: giao diện mạng (network interface), liên
mạng (internet), giao vận (transport) và ứng dụng (application) được cho như
hình vẽ 1.1:
Nguyễn Hữu Liêm, Lớp D2001VT
2
Đồ án tốt nghiệp Đại học Một số vấn đề tổng quan về mạng IP
Ứng dụng
Trình diễn
Phiên
Giao vận
Mạng
Vật lý
Liên kết dữ liệu
Mô hình OSI
Ứng dụng
Giao vận
Liên mạng
Giao diện mạng
Mô hình TCP/IP
Hình 1.1: Mô hình giao thức TCP/IP và mô hình OSI
• Tầng ứng dụng
Tầng ứng dụng cung cấp các dịch vụ dưới dạng các giao thức cho ứng dụng
của người dùng. Mộ số giao thức tiêu biểu tại tầng này gồm:
FTP (File Transfer Protocol): Đây là một dịch vụ hướng kết nối và tin cậy,
sử dụng TCP để cung cấp truyền tệp giữa các hệ thống hỗ trợ FTP.
Telnet (Terminal Network): Cho phép các phiên đăng nhập từ xa giữa các
máy tính. Do Telnet hỗ trợ chế độ văn bản nên giao diện người dùng thường ở
dạng dấu nhắc lệnh tương tác. Chúng ta có thể đánh lệnh và các thông báo trả lời
sẽ được hiển thị.
HTTP (Hyper Text Transfer Protocol): Trao đổi các tài liệu siêu văn bản để
hỗ trợ Web.
SMTP (Simple Mail Transfer Protocol): Truyền thư điện tử giữa các máy tính.
Đây là dạng đặc biệt của truyền tệp được sử dụng để gửi các thông báo tới một
máy chủ thư hoặc giữa các máy chủ với nhau.
POP3 (Post Office Protocol): Cho phép lấy thư điện tử từ hộp thư trên máy
chủ.
DNS (Domain Name System): Chuyển đổi tên miền thành địa chỉ IP. Giao
thức này thường được các ứng dụng sử dụng khi người dùng ứng dụng này dùng
tên chứ không dùng địa chỉ IP.
DHCP (Dynamic Host Configuration Protocol): Cung cấp các thông tin cấu
hình động cho các trạm, chẳng hạn như gán địa chỉ IP.
SNMP (Simple Network Managament Protocol): Được sử dụng để quản trị từ
xa các thiết bị chạy TCP/IP. SNMP thường được thực thi trên các trạm của
Nguyễn Hữu Liêm, Lớp D2001VT
3
Đồ án tốt nghiệp Đại học Một số vấn đề tổng quan về mạng IP
người quản lý, cho phép người quản lý tập trung nhiều chức năng giám sát và
điều khiển trong mạng.
• Tầng giao vận
Tầng giao vận chịu trách nhiệm chuyển phát toàn bộ thông báo từ tiến trình -
tới - tiến trình. Tại tầng này có hai giao thức là TCP và UDP, mỗi giao thức
cung cấp một loại dịch vụ giao vận: hướng kết nối và phi kết nối.
Giao thức TCP
TCP thực hiện một số chức năng như sau: Chức năng đầu tiên là nhận luồng
dữ liệu từ chương trình ứng dụng; dữ liệu này có thể là tệp văn bản hoặc là một
bức ảnh. Việc đầu tiên TCP làm là chia luồng dữ liệu nhận được thành các gói
nhỏ có thể quản lý. Sau đó gắn mào đầu vào trước mỗi gói. Phần mào đầu này
có chứa địa chỉ cổng nguồn và cổng đích. Ngoài ra nó còn chứa số trình tự để
chúng ta biết được gói này nằm ở vị trí nào trong luồng dữ liệu.
Sau khi nhận được một số lượng gói nhất định, TCP sẽ gửi xác nhận. Ví dụ,
nếu chúng ta ở phía nhận, và số lượng gói được quy định là 3 thì chúng ta sẽ gửi
xác nhận cho phía gửi sau khi đã nhận được 3 gói. Ưu điểm của việc làm này là
TCP có khả năng điều chỉnh việc gửi và nhận các gói tin.
Giao thức UDP
UDP (User Datagram Protocol) là một giao thức truyền thông phi kết nối và
không tin cậy, được dùng thay thế cho TCP trên IP theo yêu cầu của ứng dụng.
UDP có trách nhiệm truyền các thông báo từ tiến trình - tới - tiến trình, nhưng
không cung cấp cơ chế giám sát và quản lý.
UDP cũng cung cấp cơ chế gán và quản lý số cổng để định danh duy nhất
cho các ứng dụng chạy trên một trạm của mạng. Do ít chức năng phức tạp nên
UDP có xu thế hoạt động nhanh hơn TCP. Nó thường dùng cho các ứng dụng
không đòi hỏi độ tin cậy cao.
• Tầng liên mạng
Tầng liên mạng trong chồng giao thức TCP/IP tương ứng tầng mạng trong
mô hình OSI. Chức năng chính của tầng liên mạng là đánh địa chỉ logic và định
tuyến gói tới đích. Giao thức đáng chú ý nhất ở tầng liên mạng là giao thức liên
mạng IP (Internet Protocol). Ngoài ra còn có một số giao thức khác như ICMP,
ARP, RARP.
Giao thức IP
IP là một giao thức phi kết nối và không tin cậy. Nó cung cấp dịch vụ chuyển
gói nỗ lực tối đa. Nỗ lực tối đa ở đây có nghĩa IP không cung cấp chức năng
theo dõi và kiểm tra lỗi. Nó chỉ cố gắng chuyển gói tới đích chứ không có sự
đảm bảo. Nếu độ tin cậy là yếu tố quan trọng, IP phải hoạt động với một giao
thức tầng trên tin cậy, chẳng hạn TCP.
Nguyễn Hữu Liêm, Lớp D2001VT
4
Đồ án tốt nghiệp Đại học Một số vấn đề tổng quan về mạng IP
Giao thức ICMP
Như đã trình bày ở trên, IP là giao thức chuyển gói phi kết nối và không tin
cậy. Nó được thiết kế nhằm mục đích sử dụng hiệu quả tài nguyên mạng. IP
cung cấp dịch vụ chuyển gói nỗ lực tối đa. Tuy nhiên nó có hai thiếu hụt: thiếu
hụt điều khiển lỗi và thiết lập các cơ chế hỗ trợ; IP cũng thiết lập cơ chế truy
vấn. Một trạm đôi khi cần xác định xem router hoặc một trạm khác có hoạt động
không. Một người quản lý mạng đôi khi cần thông tin từ một trạm hoặc router
khác.
Giao thức thông báo điều khiển liên mạng ICMP (Internet Control Message
Protocol) được thiết kế để bù đắp hai thiếu hụt trên. Nó được đi kèm với giao
thức IP.
Giao thức ARP
Giao thức phân giải địa chỉ (ARP: Address Resolution Protocol) chuyển đổi
địa chỉ lôgic thành địa chỉ vật lý.
Khi một trạm hoặc router cần tìm địa chỉ vật lý của một trạm hoặc một router
khác trên mạng, nó gửi gói yêu cầu ARP. Gói này chứa địa chỉ vật lý và địa chỉ
lôgic của nguồn và địa chỉ IP của đích. Do nguồn không biết địa chỉ vật lý của
đích nên yêu cầu này được gửi quảng bá.
Mọi trạm và router trên mạng đều nhận và xử lý yêu cầu ARP này, nhưng chỉ
có trạm đích nhận ra địa chỉ IP của nó và gửi trả lời ARP lại cho nguồn. Gói trả
lời chứa địa chỉ lôgic và địa chỉ vật lý của đích. Gói trả lời này được gửi thẳng
(gửi unicast) tới trạm yêu cầu (nguồn) sử dụng địa chỉ vật lý có trong gói yêu
cầu ARP
Giao thức RARP
Giao thức phân giải địa chỉ ngược (RARP: Reverse Address Resolution
Protocol) chuyển đổi địa chỉ vật lý thành địa chỉ lôgic. Nó được sử dụng trong
trường hợp một máy biết địa chỉ vật lý của mình nhưng lại không biết địa chỉ IP.
Khi máy được bật, yêu cầu RARP được tạo ra và được gửi quảng bá trên mạng
cục bộ. Một máy khác trên mạng biết về mọi địa chỉ IP sẽ trả lời yêu cầu bằng
bản tin trả lời RARP. Máy yêu cầu RARP phải chạy chương trình RARP khách
và máy trả lời RARP phải chạy chương trình RARP chủ.
• Tầng giao diện mạng
Tầng giao diện mạng tương ứng với tầng liên kết dữ liệu và tầng vật lý trong
mô hình OSI. Tầng này cung cấp giao tiếp với mạng vật lý. Nó bao gồm tất cả
các thành phần phần cứng của cơ sở hạ tầng mạng, và thực hiện việc kiểm soát
lỗi dữ liệu phân bố trên mạng vật lý, tạo các kết nối vật lý đến hệ thống cáp
trong thời gian thích hợp, tạo khung thông tin. Tầng này không định nghĩa một
giao thức riêng nào cả mà hỗ trợ tất cả các giao thức chuẩn và độc quyền. Ví dụ
như: Ethernet, Token Ting, FDDI, X25, wireless, Async, ATM, SNA…
Nguyễn Hữu Liêm, Lớp D2001VT
5
Đồ án tốt nghiệp Đại học Một số vấn đề tổng quan về mạng IP
1.3 Cấu trúc tiêu đề IPv4 và IPv6
1.3.1 Cấu trúc tiêu đề gói tin IPv4
Tiêu đề IP được thêm vào sau khi nó nhận được thông tin của tầng chuyển
vận hoặc tầng ứng dụng, sau đó nó được đưa xuống tầng liên kết dữ liệu để
truyền đi trên một phương tiện nhất định. Chiều dài của tiêu đề IP có thể từ 20
bytes đến 60bytes trên các đường đi nếu những chức năng lưạ chọn được sử
dụng. Cấu trúc tiêu đề được chỉ ra trên hình 1.2 như sau :
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Version IHL ToS
Total Length
Fragment offset
Flags
Identification
TTL Protocol
Header Checksum
Source IP Address
Destination IP Address
Options and Padding
…………
Hình 1.2: Tiêu đề IPv4
Version: Chỉ ra phiên bản của giao thức hiện hành IPv4, được sử dụng để
máy gửi, máy nhận, các bộ định tuyến cùng thống nhất về định dạng lược đồ dữ
liệu.
IHL (Identifed Header Length): Trường xác nhận độ dài tiêu đề cung cấp
thông tin về độ dài tiêu đề của gói tin, thông thường tiêu đề có độ dài 20 octets.
TOS (Type Of Service): Trường kiểu phục vụ dài 8 bit nó gồm 2 phần.
Trường ưu tiên và kiểu phục vụ. Trường ưu tiên gồm 3 bit dùng để gán mức ưu
tiên cho các gói tin, cung cấp cơ chế cho phép điều khiển các gói tin qua mạng.
Các bit còn lại dùng xác định kiểu lưu lượng gói tin khi nó chuyển qua mạng,
như đặc tính trễ, độ thông qua và độ tin cậy. Vào khoảng cuối năm 1990, IETF
đã định nghĩa lại ý nghĩa của các bit trong trường TOS, để thể hiện một tập hợp
các dịch vụ khác biệt. Thông qua 6 bit đầu tiên thiết lập 64 điểm mã (codepoint)
để ánh xạ vào một số dịch vụ cơ sở, 2 bit còn lại để trống. Tuy nhiên trường dữ
Nguyễn Hữu Liêm, Lớp D2001VT
6
Đồ án tốt nghiệp Đại học Một số vấn đề tổng quan về mạng IP
liệu này được sử dụng như thế nào thì còn tuỳ thuộc rất nhiều vào kiến trúc
mạng, vì chính bản thân mạng Internet không đảm bảo chất lượng phục vụ QoS,
nên đây đơn thuần chỉ là tiêu chí yêu cầu chứ không phải là tiêu chí đòi hỏi đối
với các bộ định tuyến.
TL (Total length): trường hiển thị tổng độ dài gói tin dài 16 bit, nó sử dụng để
xác định chiều dài của toàn bộ gói IP. Chiều dài lớn nhất một gói IP cho phép là
65535 octets.
Identification: Trường dữ liệu nhận dạng này dài 16 bit. Trường này được
máy chủ dùng để phát hiện và nhóm các đoạn bị chia nhỏ ra của gói tin. Các bộ
định tuyến sẽ chia nhỏ các gói tin nếu như đơn vị truyền tin lớn nhất của gói tin
MTU (Maximum Transmission Unit) lớn hơn MTU của môi trường truyền (Môi
trường mà gói tin được truyền dẫn trên đó). MTU của môi trường truyền được
định nghĩa như là kích cỡ của gói IP lớn nhất mà nó có thể được mang đi trong
một khung liên kết dữ liệu (Tầng liên kết dữ liệu truyền các khung thông tin
được ghép kênh và thông tin này được chứa đựng trong các khe thời gian TS).
Việc hợp lại các đoạn tin được thực hiện tại máy chủ đích.
Sự chia cắt gói tin tạo thêm công việc cho các bộ định tuyến và các máy chủ
đầu cuối. Một kỹ thuật có tên là tìm tuyến đường cho đơn vị truyền gói tin lớn
nhất (Path MTU Discovery) được đưa ra, tạo khả năng cho một máy chủ gửi tin
có thể tìm ra một MTU rộng nhất có thể, theo con đường từ nguồn tới đích mà
không cần bất kỳ quá trình chia cắt gói tin nào khác.
Flags: Trường cờ chứa 3 bit được sử dụng cho quá trình điều khiển phân
đoạn, bit đầu tiên chỉ thị tới các bộ định tuyến cho phép hoặc không cho phép
phân đoạn gói tin, 2 bit giá trị thấp được sử dụng điều khiển phân đoạn, kết hợp
với trường nhận dạng, trường phân đoạn để xác định gói tin nhận được sau quá
trình phân đoạn.
Fragment Offset: Trường phân đoạn mang thông tin về số lần chia một gói
tin, kích thước của gói tin phụ thuộc vào mạng cơ sở truyền tin, tức là độ dài gói
tin không thể vượt quá MTU của môi trường truyền.
TTL (Time-to-live): Trường thời gian sống của gói tin được sử dụng để ngăn
các gói tin lặp vòng trên mạng. Nó có vai trò như một bộ đếm ngược, tránh hiện
tượng trễ gói tin quá lâu trên mạng. TTL cũng sử dụng để xác định phạm vi điều
khiển, qua việc xác định xem một gói có thể đi được bao xa trong mạng. Bất kỳ
gói tin nào có vùng TTL đạt giá trị bằng 0 thì gói tin đó sẽ bị bộ định tuyến huỷ
bỏ và thông báo lỗi sẽ được gửi về trạm phát gói tin.
Protocol : Trường này được dùng để xác nhận giao thức tầng kế tiếp mức cao
hơn đang sử dụng dịch vụ IP dưới dạng con số.
H-Check sum: trường kiểm tra tổng dài 16 bit, được tính toán trong tất cả các
trường của tiêu đề IPv4 (ToS, HL, TL ). Mỗi khi gói qua bộ định tuyến, các
trường lựa chọn có thể bị thay đổi và trường TTL sẽ bị thay đổi. Cho nên một
Nguyễn Hữu Liêm, Lớp D2001VT
7
Đồ án tốt nghiệp Đại học Một số vấn đề tổng quan về mạng IP
gói tin khi qua các bộ định tuyến thì trường kiểm tra tổng cần phải được tính
toán và cập nhật lại để đảm bảo độ tin cậy của thông tin định tuyến.
Source Address- Destination Address: Trường địa chỉ nguồn và địa chỉ đích
được các bộ định tuyến và các gateway sử dụng để định tuyến các đơn vị số liệu,
luôn luôn đi cùng với gói tin từ nguồn tới đích.
Options và Padding: Có độ dài thay đổi, dùng để thêm thông tin tuỳ chọn và
chèn đầy đảm bảo số liệu bắt đầu trong phạm vi 32 bit.
Ngoài ra, tiêu đề IP cũng có thể chứa các chức năng mà nó cần được xử lý
trên mỗi bộ định tuyến dọc theo đường truyền. Tuy nhiên, các chức năng này
không được sử dụng quá nhiều bởi vì bất kể cái gì thêm vào phần tiêu đề của gói
tin, đều yêu cầu một quá trình xử lý phụ đối với mỗi bộ định tuyến trung gian.
Thông thường, các bản ghi tuyến đường sẽ được thêm vào trong trường lựa
chọn.
1.3.2 Cấu trúc tiêu đề gói tin IPv6
Diễn đàn IP phiên bản 6 được bắt đầu vào tháng 7-1999 bởi 50 nhà cung cấp
Internet hàng đầu với mục đích phát triển giao thức IPv6, nó sẽ cải thiện chất
lượng và bảo mật của Internet, thiết lập một cơ cấu cho thế kỷ mới. IPv6 đặc
biệt quan trọng khi các thiết bị tính toán di động tiếp tục gia tăng trong thập kỷ
tới.
Do sự thay đổi về bản chất của Internet và mạng thương mại mà giao thức
liên mạng IP trở nên lỗi thời. Trước đây, Internet và hầu hết mạng TCP/IP cung
cấp sự hỗ trợ các ứng dụng phân tán khá đơn giản như truyền file, mail, truy
nhập từ xa qua TELNET, song ngày nay Internet ngày càng trở thành đa phương
tiện, môi trường giàu tính ứng dụng, dẫn đầu là dịch vụ WWW (World Wide
Web). Tất cả sự phát triển này đã bỏ xa khả năng đáp ứng các chức năng và dịch
vụ của mạng IP. Một môi trường liên mạng cần phải hỗ trợ lưu lượng thời gian
thực, kế hoạch điều khiển tắc nghẽn linh hoạt và các đặc điểm bảo mật mà IPv4
hiện không đáp ứng được đầy đủ. Cấu trúc tiêu đề gói tin IPv6 được cho như
hình vẽ 1.3:
Nguyễn Hữu Liêm, Lớp D2001VT
8

Không có nhận xét nào:

Đăng nhận xét