



















Preview text:
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
Internet).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ụ 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.
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.
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
Githứải thích chi tic ở tầng giao vết:ậ n mà chúng sử dụng.
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. Email
(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.
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ì.
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.
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:
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 tiQUESTION SECTION:ết: 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ó.
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.
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.
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Đây là mộết thông đit: ệ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.
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 tiGETế: Yêu ct: ầ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 HTTP/1.0:(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íc C h ũn chi g l ti ế à m t:
ộ 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).
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íchCác mã trchi iếạng thái đưt: ợ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