



















Preview text:
lOMoAR cPSD| 61601435 slide3.md 2025-06-28
Chào bạn, tôi rất sẵn lòng trình bày và giải thích chi tiết bài giảng này cho bạn. Chúng ta sẽ đi qua từng phần
một. Sau mỗi phần, tôi sẽ dừng lại và hỏi để đảm bảo bạn đã nắm rõ nội dung trước khi chúng ta tiếp tục.
Bây giờ, chúng ta hãy bắt đầu với phần đầu tiên: Giới thiệu tổng quan và Kiến trúc phân tầng.
Phần 1: Giới thiệu tổng quan và Kiến trúc phân tầng (Slides 1-3)
Slide 1: Trang bìa - Internet Services
Nội dung: Đây là slide mở đầu, giới thiệu chủ đề của bài giảng là "Internet Services" (Các Dịch vụ Internet).
Giải thích chi tiết:
Slide này cho chúng ta biết bài giảng được biên soạn bởi giảng viên Phạm Huy Hoàng, thuộc
Viện Công nghệ Thông tin và Truyền thông (SoICT) của Đại học Bách Khoa Hà Nội (HUST).
Logo "25 năm SoICT" cho thấy bối cảnh bài giảng nằm trong chuỗi sự kiện hoặc tài liệu kỷ niệm của viện.
Chủ đề "Internet Services" ám chỉ rằng chúng ta sẽ học về các dịch vụ nền tảng và phổ biến nhất
mà mạng Internet cung cấp, chẳng hạn như duyệt web, gửi email, phân giải tên miền, v.v. Đây là
những dịch vụ mà người dùng cuối tương tác hàng ngày. Slide 2: Nội dung
Nội dung: Slide này trình bày bố cục, hay mục lục, của toàn bộ bài giảng.
Giải thích chi tiết:
Kết nối tầng giao vận (Transport Layer): Giới thiệu về tầng chịu trách nhiệm truyền dữ liệu giữa
các ứng dụng trên các máy tính khác nhau.
Kết nối tầng ứng dụng (Application Layer): Tập trung vào tầng cao nhất, nơi các ứng dụng
mạng như trình duyệt web, email client hoạt động.
Dịch vụ IP cơ bản: DNS, Mail, Web: Đây là phần trọng tâm của bài giảng, đi sâu vào ba dịch vụ cốt lõi:
DNS (Domain Name System): Hệ thống phân giải tên miền, dịch từ tên web (ví dụ:
google.com) sang địa chỉ IP.
Mail: Dịch vụ thư điện tử (email).
Web: Dịch vụ duyệt web qua giao thức HTTP/HTTPS.
Kết nối dịch vụ mạng riêng và mạng public Internet: Đề cập đến cách các mạng nội bộ
(như mạng công ty, gia đình) kết nối và tương tác với mạng Internet toàn cầu.
Slide 3: Vị trí trong kiến trúc phân tầng
Nội dung: Slide này trực quan hóa vị trí và vai trò của các tầng trong mô hình mạng máy tính (cụ thể là mô hình TCP/IP).
Giải thích chi tiết:
Mô hình này chia nhỏ quá trình giao tiếp mạng thành các "tầng" (layers), mỗi tầng có một chức
năng chuyên biệt. Dữ liệu đi từ trên xuống ở máy gửi và từ dưới lên ở máy nhận. lOMoAR cPSD| 61601435 slide3.md 2025-06-28
Application (Tầng Ứng dụng): Tầng cao nhất, gần với người dùng nhất. Nó hỗ trợ các ứng
dụng trên mạng như trình duyệt web (HTTP), email (SMTP), v.v. Các dịch vụ chúng ta sẽ học (Web,
Mail, DNS) đều nằm ở tầng này.
Transport (Tầng Giao vận): Nhiệm vụ của nó là truyền dữ liệu giữa các ứng dụng (processes)
đang chạy trên các máy tính khác nhau. Nó cung cấp hai giao thức chính là TCP (tin cậy) và UDP (không tin cậy).
Network (Tầng Mạng): Chịu trách nhiệm chọn đường và chuyển tiếp các gói tin (packets)
giữa các mạng khác nhau. Giao thức chính ở đây là IP (Internet Protocol).
Datalink (Tầng Liên kết dữ liệu): Hỗ trợ việc truyền thông cho các thiết bị trên cùng một mạng
vật lý (ví dụ: trong cùng một mạng LAN).
Physical (Tầng Vật lý): Tầng cuối cùng, chịu trách nhiệm truyền và nhận dòng bit (0 và 1) trên
đường truyền vật lý (cáp đồng, cáp quang, sóng vô tuyến).
Slide này rất quan trọng vì nó đặt nền móng kiến thức, giúp chúng ta hiểu các dịch vụ như Web, DNS không
hoạt động một mình mà dựa trên sự hỗ trợ của các tầng bên dưới.
Phần 1 (Giới thiệu tổng quan và Kiến trúc phân tầng) đã kết thúc. Bạn đã hiểu rõ và hài lòng với phần giải thích
này chưa? Chúng ta có thể tiếp tục với phần tiếp theo không?
Phần 2: Kết nối Tầng Giao vận (Slides 4-6)
Khi bạn đã sẵn sàng, chúng ta sẽ tiếp tục với phần giải thích về vai trò và đặc điểm của Tầng Giao vận (Transport Layer).
Slide 4: Kết nối tầng giao vận (1)
Nội dung: Slide này đi sâu vào chức năng chính và cách hoạt động của tầng giao vận.
Giải thích chi tiết:
Chức năng cốt lõi: Tầng giao vận cung cấp một phương tiện truyền thông logic giữa các ứng
dụng cuối (end applications). "Logic" có nghĩa là các ứng dụng trên hai máy tính khác nhau có
thể gửi dữ liệu cho nhau như thể có một đường ống kết nối trực tiếp, mặc dù trên thực tế dữ liệu
phải đi qua nhiều thiết bị mạng trung gian (routers) như trong hình.
Ứng dụng là các tiến trình: Điều quan trọng cần nhớ là tầng giao vận không kết nối máy tính với
máy tính, mà là tiến trình (process) với tiến trình. Ví dụ, trên máy tính của bạn có thể đang chạy
cả trình duyệt Chrome và ứng dụng Skype. Tầng giao vận đảm bảo dữ liệu từ máy chủ web sẽ đến
đúng trình duyệt Chrome, và dữ liệu cuộc gọi sẽ đến đúng ứng dụng Skype.
Hoạt động ở Bên gửi (Sender):
1. Nhận dữ liệu từ một ứng dụng (ví dụ: trình duyệt web gửi yêu cầu HTTP).
2. "Đóng gói" dữ liệu này vào các đơn vị gọi là đoạn tin (segments).
3. Nếu dữ liệu từ ứng dụng quá lớn, nó sẽ được chia nhỏ (segmentation) thành nhiều đoạn tin.
4. Chuyển các đoạn tin này xuống cho tầng mạng (Network Layer) để gửi đi.
Hoạt động ở Bên nhận (Receiver):
1. Nhận các đoạn tin từ tầng mạng.
2. Tập hợp (reassembly) lại dữ liệu từ các đoạn tin này.
3. Chuyển dữ liệu đã hoàn chỉnh lên cho ứng dụng tương ứng. lOMoAR cPSD| 61601435 slide3.md 2025-06-28
Slide 5: Kết nối tầng giao vận (2)
Nội dung: Slide này làm rõ hơn về phạm vi hoạt động và các loại dịch vụ của tầng giao vận.
Giải thích chi tiết:
Cài đặt trên các hệ thống cuối (End Systems): Như hình minh họa, tầng giao vận (màu cam) chỉ
tồn tại trên các thiết bị đầu cuối như máy tính của người dùng và máy chủ. Các thiết bị trung gian
như routers và switches không có tầng này. Chúng chỉ cần xử lý đến tầng mạng (Network Layer) để
quyết định đường đi cho gói tin. Đây là lý do nó được gọi là "end-to-end transport". Hai
dạng dịch vụ giao vận: Tầng giao vận cung cấp hai loại dịch vụ chính, tương ứng với hai giao thức phổ biến:
1. TCP (Transmission Control Protocol): Dịch vụ tin cậy, hướng liên kết (connectionoriented).
Tin cậy: Đảm bảo mọi dữ liệu gửi đi sẽ đến nơi một cách nguyên vẹn và đúng thứ
tự. Nếu có mất mát, nó sẽ tự động gửi lại.
Hướng liên kết: Trước khi truyền dữ liệu, hai bên phải thiết lập một kết nối (giống
như một cuộc gọi điện thoại, bạn phải "bắt tay" trước khi nói chuyện).
Ví dụ sử dụng: duyệt web (HTTP), tải file (FTP), gửi email (SMTP).
2. UDP (User Datagram Protocol): Dịch vụ không tin cậy, không liên kết (connectionless).
Không tin cậy: Gửi dữ liệu đi mà không đảm bảo nó có đến nơi hay không, và cũng
không đảm bảo thứ tự. Nó hoạt động theo kiểu "gửi và quên". Không liên kết: Không
cần thiết lập kết nối trước, cứ có dữ liệu là gửi.
Ví dụ sử dụng: Streaming video/audio, game online, DNS (thường là vậy). Các ứng
dụng này ưu tiên tốc độ và chấp nhận mất mát một vài gói tin nhỏ.
Slide 6: Ứng dụng IP cơ bản và dịch vụ giao vận
Nội dung: Slide này là một bảng tổng kết, liên kết các ứng dụng phổ biến ở tầng ứng dụng với giao
thức ở tầng giao vận mà chúng sử dụng.
Giải thích chi tiết:
Domain Name (DNS): Dùng UDP. Lý do: Các truy vấn và phản hồi DNS thường rất nhỏ, chỉ gồm
một gói tin. Dùng UDP nhanh hơn vì không cần chi phí thiết lập và duy trì kết nối như TCP. E-mail
(SMTP): Dùng TCP. Lý do: Việc gửi email đòi hỏi độ tin cậy tuyệt đối. Chúng ta không thể chấp
nhận việc email bị mất hoặc sai thứ tự nội dung.
Remote terminal access (Telnet): Dùng TCP. Lý do: Khi bạn điều khiển một máy tính từ xa, mỗi
ký tự bạn gõ đều phải được gửi đi một cách tin cậy.
Web (HTTP): Dùng TCP. Lý do: Để một trang web hiển thị chính xác, toàn bộ mã HTML, CSS, ảnh...
phải được tải về đầy đủ và đúng đắn.
File transfer (FTP): Dùng TCP. Lý do: Tương tự như Web, việc truyền file cần đảm bảo file ở đích
giống hệt file ở nguồn.
Streaming multimedia: Dùng TCP hoặc UDP. Lý do:
Một số dịch vụ streaming (như YouTube) ngày nay dùng TCP để đảm bảo chất lượng và
tránh giật lag do phải chờ gói tin gửi lại.
Các dịch vụ yêu cầu thời gian thực cao (live streaming, video call) thường dùng UDP (hoặc
các giao thức xây dựng trên nó như RTP) vì việc chờ đợi một gói tin bị mất sẽ gây ra độ trễ
lớn, thà bỏ qua gói tin đó còn hơn. lOMoAR cPSD| 61601435 slide3.md 2025-06-28
Internet telephony (VoIP): Thường dùng UDP. Lý do: Tương tự streaming thời gian thực, trong
một cuộc gọi thoại, tốc độ là tối quan trọng. Trễ một vài mili giây có thể chấp nhận được, nhưng
dừng cả cuộc hội thoại để chờ một gói tin bị mất thì không.
Phần 2 (Kết nối Tầng Giao vận) đã kết thúc. Phần này đã giải thích vai trò, đặc điểm và các giao thức chính của
tầng giao vận. Bạn đã hiểu rõ và hài lòng chưa? Chúng ta có thể tiếp tục với phần "DNS" không?
Phần 3: Hệ thống phân giải tên miền (DNS) (Slides 7-20)
Khi bạn sẵn sàng, chúng ta sẽ đi sâu vào một trong những dịch vụ nền tảng quan trọng nhất của Internet: DNS.
Slide 7 & 8: Giới thiệu chung
(Slide 7 chỉ là slide trống, nội dung chính nằm ở slide 8)
Nội dung: Slide này giới thiệu các khái niệm cơ bản về tên miền và DNS.
Giải thích chi tiết:
Tên miền (Domain Name):
Đây là một định danh (tên) trên tầng ứng dụng, giúp con người dễ dàng ghi nhớ và truy
cập các máy chủ (nút mạng) trên Internet. Thay vì phải nhớ một dãy số khó nhớ như
142.250.204.78, chúng ta chỉ cần nhớ google.com.
Việc quản lý tên miền được tổ chức tập trung theo một hệ thống phân cấp.
Quốc tế: ICANN (Internet Corporation for Assigned Names and Numbers) là tổ chức quản lý cao nhất.
Việt Nam: VNNIC (Vietnam Internet Network Information Center) là cơ quan quản
lý tên miền cấp quốc gia .vn.
DNS (Domain Name System):
Là một hệ thống phân tán toàn cầu, bao gồm các máy chủ DNS có nhiệm vụ quản lý thông
tin tên miền và cung cấp dịch vụ phân giải tên miền, tức là dịch từ tên miền sang địa chỉ IP.
Vấn đề cần giải quyết:
Người dùng sử dụng tên miền để truy cập dịch vụ.
Máy tính và thiết bị mạng lại giao tiếp với nhau bằng địa chỉ IP.
Câu hỏi cốt lõi là: Làm thế nào để chuyển đổi (ánh xạ) từ một tên miền sang địa chỉ IP
tương ứng? DNS chính là câu trả lời.
Slide 9: Chuyển đổi địa chỉ và ví dụ
Nội dung: Slide này minh họa một cách trực quan quá trình phân giải tên miền cơ bản.
Giải thích chi tiết:
1. Người dùng (NSD - Người sử dụng): Gõ tên miền www.soict.hust.edu.vn vào trình duyệt và nhấn Enter.
2. Máy tính của người dùng: Nhận ra rằng nó cần địa chỉ IP của web server này để kết nối. Nó
không biết địa chỉ IP là gì. lOMoAR cPSD| 61601435 slide3.md 2025-06-28
3. Hành động: Máy tính gửi một truy vấn đến "Máy chủ tên miền" (DNS Server). Truy vấn có nội
dung: "Xin cho biết địa chỉ IP của www.soict.hust.edu.vn là gì?"
4. Máy chủ tên miền: Tra cứu trong cơ sở dữ liệu của nó và tìm thấy bản ghi tương ứng.
5. Phản hồi: Máy chủ tên miền trả lời lại cho máy tính của người dùng: "Địa chỉ IP của
www.soict.hust.edu.vn là 202.191.56.65".
6. Kết nối: Bây giờ máy tính của người dùng đã có địa chỉ IP, nó có thể gửi yêu cầu trực tiếp đến
"Máy chủ web" tại địa chỉ 202.191.56.65 để tải trang web về.
Slide 10: Không gian tên miền (Domain Name Space)
Nội dung: Mô tả kiến trúc của hệ thống tên miền.
Giải thích chi tiết:
Kiến trúc hình cây (Tree Structure): Không gian tên miền được tổ chức theo một cấu trúc phân cấp hình cây.
Root (Nút gốc): Là đỉnh của cây, được biểu diễn bằng một dấu chấm (.). Ví dụ,
google.com. thực chất là tên miền đầy đủ.
Bên dưới gốc là các tên miền cấp cao nhất (Top-Level Domains - TLDs) như .com, .org,
.net, và các tên miền quốc gia như .vn, .jp.
Bên dưới TLDs là các tên miền cấp hai (ví dụ hust.edu.vn), và cứ thế tiếp tục.
Zone (Vùng): Một "zone" là một phần của cây tên miền được một máy chủ DNS cụ thể
quản lý. Ví dụ, VNNIC quản lý zone .vn, còn HUST quản lý zone hust.edu.vn. Việc này cho phép quản lý phân tán.
Bản ghi (Resource Records - RRs): Mỗi nút trên cây (tương ứng với một tên miền) được mô tả
bởi một tập hợp các bản ghi. Các loại bản ghi quan trọng bao gồm:
A (Address): Ánh xạ một tên miền sang một địa chỉ IPv4. Đây là bản ghi phổ biến nhất. (Ví
dụ: soict.hust.edu.vn -> 202.191.56.65).
NS (Name Server): Cho biết máy chủ DNS nào chịu trách nhiệm (authoritative) cho một zone.
SOA (Start of Authority): Chứa thông tin quản trị về một zone, như máy chủ DNS chính,
email của người quản trị, v.v.
Slide 11 & 12: Hệ thống máy chủ DNS
Nội dung: Các slide này mô tả hệ thống phân cấp của các máy chủ DNS trên toàn thế giới.
Giải thích chi tiết: Hệ thống DNS được chia thành nhiều cấp bậc:
1. Máy chủ tên miền gốc (Root DNS Server):
Có 13 hệ thống máy chủ gốc trên toàn thế giới (được đặt tên từ A đến M). Tuy nhiên,
mỗi hệ thống này thực chất là một cụm gồm rất nhiều máy chủ vật lý được đặt ở nhiều vị trí
địa lý khác nhau (sử dụng công nghệ Anycast) để đảm bảo tính sẵn sàng và giảm độ trễ.
Nhiệm vụ: Chúng không biết địa chỉ IP của google.com, nhưng chúng biết máy chủ
nào quản lý tên miền .com. Chúng sẽ chỉ cho người hỏi đến đúng nơi để hỏi tiếp.
2. Máy chủ tên miền cấp 1 (Top Level Domain - TLD Server):
Quản lý các tên miền cấp cao nhất như .com, .org, .vn. lOMoAR cPSD| 61601435 slide3.md 2025-06-28
Nhiệm vụ: Ví dụ, máy chủ TLD của .com không biết địa chỉ IP của google.com, nhưng nó biết
máy chủ DNS nào của Google chịu trách nhiệm cho google.com. Nó sẽ chỉ đường đến đó.
3. Máy chủ được ủy quyền (Authoritative DNS Server):
Đây là máy chủ cuối cùng trong chuỗi truy vấn, chứa thông tin chính xác và cuối cùng về
một tên miền. Ví dụ, máy chủ DNS của HUST là authoritative cho tên miền hust.edu.vn.
Nhiệm vụ: Khi được hỏi, nó sẽ trả về câu trả lời chính xác (ví dụ: địa chỉ IP trong bản ghi A).
4. Máy chủ cục bộ (Local DNS Server):
Đây là máy chủ không thuộc hệ thống phân cấp chính thức trên. Thường là máy chủ DNS
của nhà cung cấp dịch vụ Internet (ISP) của bạn (VNPT, FPT, Viettel) hoặc các dịch vụ công
cộng như 8.8.8.8 (Google DNS), 1.1.1.1 (Cloudflare).
Nhiệm vụ: Khi máy tính của bạn cần phân giải một tên miền, nó sẽ hỏi máy chủ này đầu
tiên. Máy chủ cục bộ sẽ thay mặt bạn thực hiện toàn bộ quá trình truy vấn đến các máy chủ
Root, TLD, và Authoritative để tìm ra câu trả lời, sau đó trả về cho bạn và lưu vào bộ nhớ
đệm (cache) để tăng tốc cho các lần hỏi sau.
Slide 13: Phân giải tên miền
Nội dung: Liệt kê các phương pháp và cơ chế để phân giải tên miền.
Giải thích chi tiết:
Tự phân giải (trên máy local):
File HOSTS: Một file văn bản đơn giản trên máy tính để ánh xạ thủ công IP với tên miền.
Windows: C:\WINDOWS\system32\drivers\etc\hosts Linux: /etc/hosts
Hệ điều hành sẽ kiểm tra file này trước khi gửi truy vấn DNS ra ngoài.
Bộ đệm của ứng dụng/hệ điều hành (Cache): Cả trình duyệt và hệ điều hành đều lưu lại
kết quả của các lần phân giải gần đây để không phải hỏi lại, giúp tăng tốc độ.
Dịch vụ phân giải tên miền (Client/Server):
Đây là phương pháp chính, sử dụng giao thức DNS.
Giao thức: DNS là một giao thức tầng ứng dụng.
Cổng dịch vụ: Hoạt động trên cổng 53. Thường dùng UDP cho các truy vấn nhanh, nhưng
có thể dùng TCP cho các tác vụ cần độ tin cậy cao hơn như truyền dữ liệu zone (zone
transfer) giữa các máy chủ.
Các loại truy vấn:
Phân giải đệ quy (Recursive Query): Máy tính của bạn "ủy thác" hoàn toàn cho máy
chủ DNS cục bộ. Nó chỉ hỏi: "Tìm cho tôi IP của X", và chờ câu trả lời cuối cùng.
Phân giải tương tác (Iterative Query): Máy chủ DNS cục bộ sẽ hỏi "từng bước".
Nó hỏi Root, Root chỉ đến TLD. Nó hỏi TLD, TLD chỉ đến Authoritative. Nó hỏi
Authoritative và nhận được câu trả lời. Đây là cách các máy chủ DNS "nói chuyện" với nhau.
Slide 14 & 15: Thông điệp DNS
Nội dung: Mô tả cấu trúc của một gói tin DNS.
Giải thích chi tiết: lOMoAR cPSD| 61601435 slide3.md 2025-06-28
Cả truy vấn (Query) và phản hồi (Reply) đều có chung một khuôn dạng (format). Khuôn dạng này
được chia thành các phần:
Header (Phần đầu):
Identification: Một số ngẫu nhiên để khớp một phản hồi với truy vấn của nó.
Flags: Các cờ điều khiển cho biết đây là truy vấn hay phản hồi, có phải là phản hồi từ máy
chủ authoritative không, có hỗ trợ đệ quy không, v.v.
Question (Phần câu hỏi):
#Question: Số lượng câu hỏi (thường là 1).
QUESTION: Nội dung câu hỏi, bao gồm tên miền cần truy vấn và loại bản ghi (ví dụ: A, NS, MX).
Answer (Phần trả lời):
#Answer RRs: Số lượng bản ghi trong phần trả lời.
ANSWER: Chứa các bản ghi (Resource Records - RRs) trả lời trực tiếp cho câu hỏi. Ví dụ: bản ghi A chứa địa chỉ IP.
Authority (Phần ủy quyền):
#Authority RRs: Số lượng bản ghi.
AUTHORITY: Chứa các bản ghi NS trỏ đến các máy chủ DNS authoritative cho tên miền đó.
Phần này hữu ích khi câu trả lời không có trong phần Answer.
Additional (Phần bổ sung):
#Additional RRs: Số lượng bản ghi.
ADDITIONAL: Chứa các thông tin bổ sung hữu ích. Ví dụ, nếu phần Authority trả về tên của
một máy chủ NS, phần Additional thường sẽ chứa luôn địa chỉ IP (bản ghi A) của máy chủ
NS đó, giúp client không phải thực hiện thêm một truy vấn DNS nữa.
Slide 16, 17, 18: Ví dụ: dig linux.com
Nội dung: Phân tích kết quả trả về từ lệnh dig, một công cụ dòng lệnh mạnh mẽ để truy vấn DNS.
Giải thích chi tiết:
QUESTION SECTION: Câu hỏi là tìm bản ghi A (địa chỉ IP) cho linux.com. ANSWER SECTION:
Phần này trả lời trực tiếp câu hỏi. Ta thấy linux.com có 2 địa chỉ IP là 140.211.167.51 và 140.211.167.50.
1786 là TTL (Time-to-Live), tính bằng giây. Nó cho biết máy chủ DNS cục bộ có thể lưu kết
quả này trong cache trong 1786 giây. Trong khoảng thời gian này, nếu có ai hỏi lại, nó sẽ
trả lời từ cache mà không cần truy vấn lại từ đầu. AUTHORITY SECTION:
Phần này cho biết các máy chủ DNS được ủy quyền (authoritative) cho tên miền linux.com
là ns1.linux-foundation.org. và ns2.linux-foundation.org..
Như slide 17 giải thích, nếu phần ANSWER rỗng (tức là máy chủ hiện tại không biết câu trả
lời), thì client sẽ phải gửi truy vấn tới các máy chủ được liệt kê trong phần AUTHORITY này. ADDITIONAL SECTION:
Phần này cung cấp thông tin "giúp sức". Nó cung cấp luôn địa chỉ IP (bản ghi A) của
ns1.linux-foundation.org. và ns2.linux-foundation.org..
Như slide 18 giải thích, đây là địa chỉ IP của các máy chủ trả lời truy vấn. Việc cung cấp sẵn
thông tin này giúp client không phải tốn thêm một vòng lặp DNS để tìm IP của ns1.linux-
foundation.org. trước khi có thể hỏi nó. lOMoAR cPSD| 61601435 slide3.md 2025-06-28
Slide 19: Phân giải tương tác (Iterative Query)
Nội dung: Minh họa cơ chế phân giải mà các máy chủ DNS sử dụng để nói chuyện với nhau.
Giải thích chi tiết:
Đây là cơ chế mặc định giữa các máy chủ DNS. "Tương tác" có nghĩa là hỏi từng bước một.
Giả sử máy chủ Default server (máy chủ cục bộ của ISP) cần tìm soict.hust.edu.vn.
1. Nó không biết, nên nó hỏi Root server.
2. Root server trả lời: "Tôi không biết, nhưng tôi biết máy chủ quản lý .vn. Cậu hãy đi hỏi dns.vn (TLD server)".
3. Default server hỏi máy chủ dns.vn.
4. dns.vn trả lời: "Tôi không biết, nhưng tôi biết máy chủ quản lý hust.edu.vn. Cậu hãy đi hỏi
dns.hust.edu.vn (Authoritative server)".
5. Default server hỏi máy chủ dns.hust.edu.vn.
6. dns.hust.edu.vn là máy chủ authoritative, nó biết câu trả lời và trả về địa chỉ IP 202.191.56.65.
7. Default server nhận được IP cuối cùng và trả về cho client.
Slide 20: Phân giải đệ quy (Recursive Query)
Nội dung: Minh họa cơ chế truy vấn mà máy tính người dùng thường sử dụng.
Giải thích chi tiết:
"Đệ quy" có nghĩa là "ủy thác". Client chỉ hỏi một lần và chờ câu trả lời cuối cùng.
1. Máy tính người dùng (202.191.56.65) hỏi Default server: "Hãy tìm cho tôi địa chỉ IP của
soict.hust.edu.vn." Đây là một yêu cầu đệ quy.
2. Default server chấp nhận yêu cầu này và có trách nhiệm tìm ra câu trả lời cuối cùng. Nó bắt đầu
quá trình phân giải tương tác như đã mô tả ở slide 19 (hỏi Root -> hỏi TLD -> hỏi Authoritative).
3. Sau khi nhận được câu trả lời cuối cùng từ Authoritative DNS server, Default server sẽ trả kết
quả này về cho máy tính người dùng.
Sự kết hợp giữa truy vấn đệ quy (client -> local server) và truy vấn tương tác (local server -> các server
khác) tạo nên hiệu quả cho toàn bộ hệ thống DNS.
Phần 3 (Hệ thống phân giải tên miền - DNS) đã kết thúc. Đây là một phần khá dài và chi tiết về một dịch vụ
nền tảng rất quan trọng. Bạn đã hiểu rõ và hài lòng với phần giải thích này chưa? Chúng ta có thể tiếp tục với phần "HTTP và Web" không?
Tuyệt vời! Chúng ta sẽ tiếp tục với phần tiếp theo, một dịch vụ mà chúng ta sử dụng hàng ngày: HTTP và Web.
Phần 4: HTTP và Web (Slides 21-36)
Phần này sẽ giải thích cách World Wide Web ra đời, giao thức HTTP hoạt động như thế nào, và các khái niệm
liên quan như URL, cookie, và các chế độ của HTTP. lOMoAR cPSD| 61601435 slide3.md 2025-06-28
Slide 21 & 22: HTTP và Web
(Slide 21 chỉ là slide trống, nội dung chính nằm ở slide 22)
Nội dung: Slide này cung cấp bối cảnh lịch sử về sự ra đời của World Wide Web (WWW).
Giải thích chi tiết:
Internet trước thập kỷ 1990s:
Internet lúc này chủ yếu được sử dụng trong môi trường học thuật, chính phủ và nghiên
cứu. Nó không thân thiện với người dùng phổ thông.
Các dịch vụ chính là email và truyền file (FTP). Tuy nhiên, các dịch vụ này không có cách nào
hiệu quả để liên kết các tài liệu với nhau một cách dễ dàng. Nếu bạn đọc một tài liệu và
muốn tham khảo một tài liệu khác, bạn phải tự tìm và mở nó.
Năm 1990, Tim Berners-Lee giới thiệu World Wide Web: Đây là một cuộc cách mạng. WWW
đề xuất một hệ thống mới dựa trên các khái niệm:
1. Siêu văn bản (Hypertext): Các tài liệu không còn là những văn bản tĩnh. Chúng có thể
chứa các liên kết (hyperlinks), cho phép người dùng nhảy từ tài liệu này sang tài liệu khác
chỉ bằng một cú click chuột.
2. HTML (Hypertext Markup Language): Là ngôn ngữ được sử dụng để tạo ra các trang siêu
văn bản này. Nó định nghĩa cấu trúc và nội dung của một trang web (tiêu đề, đoạn văn, hình ảnh, liên kết...).
3. URL (Uniform Resource Locator): Là một cơ chế để định vị (địa chỉ) cho mỗi tài nguyên
(trang web, hình ảnh, video) trên Internet, giúp các liên kết biết phải trỏ đến đâu.
Ý tưởng cốt lõi là các đối tượng (hình ảnh, văn bản) không cần phải đóng gói "tất cả trong một" nữa.
Một trang web có thể được tạo thành từ nhiều tài nguyên nằm ở nhiều nơi khác nhau trên thế giới, được
liên kết với nhau bằng URL và hiển thị trên trình duyệt của người dùng.
Slide 23: Uniform Resource Locator (URL)
Nội dung: Phân tích cấu trúc của một URL.
Giải thích chi tiết:
URL là địa chỉ duy nhất của một tài nguyên trên mạng. Nó cho trình duyệt biết tài nguyên đó là
gì và cách để lấy nó về .
Cấu trúc chung: protocol://hostname[:port]/directory-path/resource
protocol : Giao thức sẽ được sử dụng để truy cập tài nguyên. Ví dụ :
http , https (để truy cập web) ftp (để truyền file) smtp (để gửi mail)
hostname : Tên miền (ví dụ: www.google.com ) hoặc địa chỉ IP của máy chủ chứa tài nguyên.
port (tùy chọn): Cổng dịch vụ trên máy chủ. Mỗi giao thức có một cổng mặc định (HTTP
là 80, HTTPS là 443). Nếu URL không chỉ định cổng, trình duyệt sẽ sử dụng cổng mặc định.
directory-path : Đường dẫn đến tài nguyên trên máy chủ, giống như cấu trúc thư mục trên máy tính của bạn.
resource : Tên của tài nguyên cụ thể (ví dụ: index.html , logo.png ).
Slide 24: HTTP và Web - Mô hình Client/Server lOMoAR cPSD| 61601435 slide3.md 2025-06-28
Nội dung: Mô tả kiến trúc cơ bản của Web và vai trò của giao thức HTTP.
Giải thích chi tiết:
WWW (World Wide Web): Là một hệ thống thông tin toàn cầu nơi người dùng có thể truy cập
các tài nguyên siêu văn bản (HTML).
HTTP (HyperText Transfer Protocol): Là giao thức ở tầng ứng dụng, định ra các quy tắc để trình
duyệt web và máy chủ web "nói chuyện" với nhau. Nó là "ngôn ngữ" của Web.
Mô hình Client/Server:
Client (Khách): Là trình duyệt web (Firefox, Chrome, Safari) chạy trên máy tính hoặc điện thoại của người dùng.
Nhiệm vụ: Gửi yêu cầu (HTTP Request) đến máy chủ để xin một tài nguyên (ví dụ:
một trang web). Sau khi nhận được tài nguyên, nó sẽ hiển thị (render) nội dung đó cho người dùng.
Server (Chủ): Là phần mềm máy chủ web (Apache, Nginx, IIS) chạy trên một máy tính mạnh mẽ.
Nhiệm vụ: Lắng nghe các yêu cầu từ client, tìm tài nguyên được yêu cầu và gửi phản
hồi (HTTP Response) chứa tài nguyên đó trở lại cho client.
Slide 25: Hoạt động của HTTP
Nội dung: Tóm tắt các bước trong một phiên giao dịch HTTP điển hình.
Giải thích chi tiết:
1. Thiết lập liên kết TCP: Trước khi có thể trao đổi bất cứ điều gì, client và server phải thiết lập một kết nối tin cậy.
Server mở một TCP socket và lắng nghe các yêu cầu kết nối trên cổng 80 (cổng mặc định cho HTTP).
Client (trình duyệt) khởi tạo một kết nối TCP đến địa chỉ IP và cổng 80 của server.
Server chấp nhận yêu cầu, và một kết nối TCP được thiết lập.
2. Trao đổi thông điệp HTTP: Bây giờ, client và server có thể gửi dữ liệu cho nhau qua kết nối TCP vừa tạo.
Client gửi một thông điệp HTTP Request (ví dụ: "GET /index.html HTTP/1.1").
Server xử lý yêu cầu và gửi lại một thông điệp HTTP Response (chứa nội dung của file
index.html và mã trạng thái, ví dụ: "200 OK").
3. Đóng liên kết TCP: Sau khi giao dịch hoàn tất, kết nối TCP có thể được đóng lại. (Điều này đúng
với HTTP/1.0, còn HTTP/1.1 có thể giữ kết nối mở để dùng lại).
Slide 26: Khuôn dạng HTTP Request
Nội dung: Phân tích cấu trúc chi tiết của một thông điệp yêu cầu HTTP.
Giải thích chi tiết:
Đây là một thông điệp văn bản (ASCII), con người có thể đọc hiểu được.
Dòng yêu cầu (Request Line): Dòng đầu tiên, quan trọng nhất.
GET: Phương thức yêu cầu (sẽ nói ở slide sau).
/~tungbt/index.htm: Đường dẫn tới tài nguyên trên server.
HTTP/1.1: Phiên bản HTTP đang sử dụng. lOMoAR cPSD| 61601435 slide3.md 2025-06-28
Các dòng tiêu đề (Header Lines): Cung cấp thêm thông tin cho server.
Host: soict.hust.edu.vn: Tên miền của server. Đây là tiêu đề bắt buộc trong HTTP/1.1,
cho phép một server vật lý có thể host nhiều website khác nhau.
User-Agent: Thông tin về trình duyệt và hệ điều hành của client.
Accept: Các loại nội dung mà client có thể chấp nhận (ví dụ: text/html, ảnh...).
Connection: keep-alive: Yêu cầu server giữ kết nối TCP mở sau khi gửi xong response
để có thể dùng lại cho các request tiếp theo.
Dòng trống (Báo kết thúc tiêu đề): Một dòng trống (\r\n) để phân tách phần header và phần thân (body).
Phần thân (Entity Body - không có trong ví dụ này): Chứa dữ liệu gửi lên server. Phần này chỉ
có với các request như POST.
Slide 27: Các phương thức yêu cầu (Request Methods)
Nội dung: Liệt kê các phương thức chính trong HTTP.
Giải thích chi tiết: HTTP/1.0:
GET: Yêu cầu lấy về một tài nguyên. Dữ liệu (tham số) được gửi đi như một phần của URL (ví
dụ: ...search?q=computer+network).
POST: Yêu cầu gửi dữ liệu lên server để xử lý (ví dụ: điền form đăng nhập, đăng bài viết).
Dữ liệu được gửi trong phần thân (body) của request, không hiển thị trên URL.
HEAD: Giống hệt GET, nhưng server chỉ trả về phần header của response, không trả về nội
dung. Hữu ích để kiểm tra xem tài nguyên có tồn tại hay không, hoặc lấy thông tin về tài
nguyên (ngày cập nhật cuối, kích thước...) mà không cần tải nó về.
HTTP/1.1 (bổ sung thêm):
PUT: Tải một file lên server tại một đường dẫn URL cụ thể. Nếu tài nguyên đã tồn tại, nó sẽ bị ghi đè.
DELETE: Xóa một tài nguyên trên server tại một URL cụ thể.
Lưu ý: Sự khác biệt chính giữa GET và POST là GET gửi tham số qua URL, còn POST gửi qua
body. Do đó, POST an toàn hơn cho việc gửi thông tin nhạy cảm (như mật khẩu) vì nó không bị
lưu lại trong lịch sử trình duyệt hay log của server một cách rõ ràng như URL.
Slide 28: Khuôn dạng HTTP Response
Nội dung: Phân tích cấu trúc của một thông điệp phản hồi từ server.
Giải thích chi tiết:
Cũng là một thông điệp văn bản.
Dòng trạng thái (Status Line): HTTP/1.1: Phiên bản HTTP.
200: Mã trạng thái (status code). 200 có nghĩa là "OK" (thành công).
OK: Mô tả ngắn gọn về mã trạng thái.
Các dòng tiêu đề (Header Lines): Cung cấp thông tin về response và server.
Date: Thời gian server gửi response.
Server: Thông tin về phần mềm web server (ví dụ: Apache/2.2.15 trên CentOS). lOMoAR cPSD| 61601435 slide3.md 2025-06-28
Last-Modified: Thời gian tài nguyên được sửa đổi lần cuối.
Content-Length: Kích thước của nội dung (dữ liệu) trả về, tính bằng byte.
Content-Type: Loại của dữ liệu trả về (ví dụ: text/html). Điều này giúp trình duyệt biết
phải xử lý dữ liệu như thế nào (hiển thị như HTML, mở như ảnh, v.v.).
Dòng trống: Phân tách header và body.
Phần thân (Dữ liệu đáp ứng yêu cầu): Đây là nội dung thực sự của tài nguyên mà client yêu cầu
(ví dụ: mã HTML của trang web).
Slide 29: Mã trạng thái trả lời (Status Codes)
Nội dung: Giới thiệu một số mã trạng thái HTTP phổ biến.
Giải thích chi tiết:
Các mã trạng thái được nhóm theo chữ số đầu tiên:
2xx (Success): Yêu cầu đã được xử lý thành công.
200 OK: Thành công. Tài nguyên được trả về trong body.
3xx (Redirection): Cần hành động thêm để hoàn thành yêu cầu (thường là chuyển hướng).
301 Moved Permanently: Tài nguyên đã được chuyển vĩnh viễn đến một URL mới.
URL mới được chỉ định trong header Location:. Trình duyệt sẽ tự động truy cập URL mới.
4xx (Client Error): Yêu cầu có lỗi từ phía client.
400 Bad Request: Server không hiểu được cú pháp của request.
404 Not Found: Server không tìm thấy tài nguyên được yêu cầu. Đây là một trong
những lỗi phổ biến nhất.
5xx (Server Error): Server gặp lỗi khi xử lý một yêu cầu hợp lệ.
505 HTTP Version Not Supported: Server không hỗ trợ phiên bản HTTP mà client yêu cầu.
Slide 30: Hiển thị (rendering) nội dung trang web
Nội dung: Mô tả quy trình cơ bản mà trình duyệt thực hiện sau khi nhận được HTTP Response.
Giải thích chi tiết:
1. Nhận thông điệp HTTP Response.
2. Phân tích và hiển thị (Parse & Render):
Trình duyệt đọc mã HTML để xây dựng cấu trúc của trang (DOM Tree).
Khi gặp các thẻ tham chiếu đến các tài nguyên khác (như ảnh , file CSS , file Javascript