lOMoARcPSD| 58504431
1. Tổng quan và Vai trò của Tầng Mạng
Mục đích: Chương này giới thiệu về vai trò của router trong việc xây dựng các liên mạng
rộng lớn và không đồng nhất. Tầng mạng cung cấp dịch vụ cho tầng vận chuyển, cơ chế
hoạt động của router, các thuật toán định tuyến và bộ giao thức liên mạng IP.
Hạn chế của Tầng Liên kết dữ liệu: Tầng này chỉ đảm bảo truyền thông tin giữa các
máy tính có đường truyền trực tiếp. Nó bị giới hạn về số lượng máy tính và kích thước
mạng, đồng thời gặp khó khăn trong việc nối kết các mạng không đồng nhất.
Vai trò của Tầng Mạng:
o Cung cấp dịch vụ kết nối host-host trên một hệ thống mạng diện rộng, không
đồng nhất.
o Đưa các gói tin từ máy gửi đến máy nhận thông qua các chặng đường.
o Định tuyến cho gói tin để tránh tình trạng tắc nghẽn.
Kỹ thuật hoán chuyển lưu và chuyển tiếp (Store-and-Forward Switching): Router
nhận một gói tin, lưu trữ nó, sau đó chuyển tiếp gói tin đó tới đích tiếp theo.
2. Các Dịch vụ của Tầng Mạng
Tầng mạng cung cấp hai dịch vụ cơ bản cho tầng vận chuyển:
Dịch vụ không nối kết (Connectionless Service):
o Các gói tin được gọi là Datagram và được đưa vào mạng con một cách riêng lẻ,
định tuyến độc lập.
o Không cần thiết lập nối kết trước khi truyền tin.
o Ưu điểm: Linh hoạt, không bị ảnh hưởng khi một router bị hỏng (ngoại trừ gói
tin đang trên đường truyền).
o Nhược điểm: Khó đảm bảo chất lượng dịch vụ và điều khiển tắc nghẽn.
Dịch vụ định hướng nối kết (Connection-Oriented Service):
o Một đường nối kết, gọi là Mạch ảo (Virtual Circuit), phải được thiết lập trước
khi các gói tin có thể được gửi.
lOMoARcPSD| 58504431
o
o Tất cả các gói tin sẽ đi trên cùng một đường đã được thiết lập. o Ưu điểm: Dễ
dàng đảm bảo chất lượng dịch vụ và điều khiển tắc nghẽn.
Nhược điểm: Nếu một router trên đường đi bị hỏng, tất cả các mạch ảo đi qua đó
đều bị kết thúc.
3. Giải thuật Định tuyến (Routing Algorithms)
Mục tiêu: Xác định một đường đi tốt nhất (chuỗi các router) xuyên qua mạng từ máy gửi
đến máy nhận thông tin.
Phân loại:
o Định tuyến tập trung (Centralized routing): Có một trung tâm điều khiển mạng
chịu trách nhiệm tính toán và cập nhật thông tin đường đi.
o Định tuyến phân tán (Distributed routing): Mỗi router tự tính toán tìm kiếm
thông tin và trao đổi với các router khác.
o Định tuyến tĩnh (Static routing): Các router không tự cập nhật thông tin đường
đi, người quản trị mạng sẽ thực hiện.
o Định tuyến động (Dynamic routing): Các router tự động cập nhật lại thông tin
đường đi khi mạng thay đổi.
Các giải thuật định tuyến phổ biến
1. Giải thuật Dijkstra:
o Mục đích: Tìm đường đi ngắn nhất từ một nút nguồn cho trước đến tất cả các nút
còn lại. o Cách thức:
Bước 1 (Khởi tạo): Thiết lập tập hợp các nút đã biết đường đi ngắn nhất
N={S} và chi phí ban đầu.
Bước 2 (Tìm nút gần nhất): Tìm nút i chưa thuộc N có chi phí nhỏ nhất
và thêm i vào N.
Bước 3 (Tính lại chi phí): Với các nút j chưa thuộc N, tính lại chi phí Dj=
min{Dj, Di + lij}.
Lặp lại: Trở lại bước 2 cho đến khi tất cả các nút đều thuộc N.
lOMoARcPSD| 58504431
o
o * **Ví dụ:** Bảng ví dụ trong tài liệu minh họa các lần lặp của giải thuật Dijkstra
để tìm đường đi ngắn nhất từ một nút nguồn[cite: 23, 316]. o
2. Giải thuật Ford-Fulkerson (Distance Vector):
Mục đích: Tìm đường đi ngắn nhất từ tất cả các nút đến một nút đích cho
trước trên mạng. o Cách thức:
Bước 1 (Khởi tạo): Gán chi phí từ nút đích đến chính nó Dd = 0 và chi
phí đến các nút khác là vô cùng.
Bước 2 (Cập nhật): Với mỗi nút i, cập nhật chi phí Di = min{lij + Dj}
với mọi láng giềng j.
Lặp lại: Lặp lại cho đến khi không còn chi phí nào thay đổi.
o * **Ví dụ:** Tài liệu có bảng minh họa các lần lặp của giải thuật Ford-Fulkerson
để tìm đường đi ngắn nhất đến nút đích[cite: 323]. o
3. Giải pháp định tuyến Link State:
o Mỗi nút tìm ra trạng thái đường nối của nó đến các nút láng giềng và chi phí trên
mỗi đường nối.
o Thông tin này được phân phối (flooding) đến tất cả các nút để mỗi nút có thể xây
dựng một bản đồ hoàn chỉnh của mạng.
o Mỗi nút sau đó sẽ chạy các giải thuật tìm đường đi trên bản đồ này (ví dụ
Dijkstra).
4. Bộ Giao thức Liên mạng IP
Liên mạng (Internetwork): Mạng được hình thành từ việc nối kết nhiều mạng con
không đồng nhất lại với nhau.
Giao thức IP: Giao thức liên mạng phổ biến nhất, hoạt động ở tầng 3 của mô hình OSI.
Phân mạng con (Subnetting):
o Là kỹ thuật chia một mạng lớn thành các mạng con nhỏ hơn.
o Mục đích: Đơn giản hóa quản trị, tăng tính bảo mật, và cô lập luồng giao thông
trên mạng.
lOMoARcPSD| 58504431
o
o Có hai phương pháp chính: Phân lớp hoàn toàn (Classfull Standard) và Định
tuyến liên miền không phân lớp (CIDR).
Các giao thức liên quan:
ARP (Address Resolution Protocol): Giao thức phân giải địa chỉ, chuyển đổi từ
địa chỉ IP sang địa chỉ MAC.
o RARP (Reverse Address Resolution Protocol): Giao thức phân giải địa chỉ
ngược, chuyển đổi từ địa chỉ MAC sang địa chỉ IP.
o ICMP (Internet Control Message Protocol): Giao thức dùng để gửi các thông
điệp điều khiển và báo lỗi trên Internet.
Dưới đây là số lượng địa chỉ, subnet mask mặc định và các giá trị thập phân của các lớp địa chỉ
IP (A, B, C).
lOMoARcPSD| 58504431
Lớp A
Dải địa chỉ: 1.0.0.0 đến 126.255.255.255
Số lượng mạng: 126 mạng
Số lượng host tối đa trên mỗi mạng: 224−2=16,777,214 host
Subnet mask mặc định: 255.0.0.0
Lớp B
Dải địa chỉ: 128.0.0.0 đến 191.255.255.255
Số lượng mạng: 214=16,384 mạng
Số lượng host tối đa trên mỗi mạng: 216−2=65,534 host
Subnet mask mặc định: 255.255.0.0
Lớp C
lOMoARcPSD| 58504431
Dải địa chỉ: 192.0.0.0 đến 223.255.255.255
Số lượng mạng: 221=2,097,152 mạng
Số lượng host tối đa trên mỗi mạng: 28−2=254 host
Subnet mask mặc định: 255.255.255.0
Lưu ý:
Lớp D (224.0.0.0 đến 239.255.255.255): Dành cho các địa chỉ multicast, không có subnet
mask mặc định.
Lớp E (240.0.0.0 đến 255.255.255.255): Dành cho mục đích thử nghiệm và nghiên cứu,
không có subnet mask mặc định.
Dưới đây là giá trị và đặc điểm của các lớp địa chỉ IP A, B, C:
Lớp A
Dải địa chỉ: 1.0.0.0 đến 126.255.255.255
Bit đầu tiên: Luôn là 0
Phần Net ID: 8 bit đầu (1 byte)
Phần Host ID: 24 bit còn lại (3 byte)
Đặc điểm: Thích hợp cho các mạng rất lớn, với hơn 16 triệu máy tính. Lớp B
Dải địa chỉ: 128.0.0.0 đến 191.255.255.255
Hai bit đầu tiên: Luôn là 10
Phần Net ID: 16 bit đầu (2 byte)
Phần Host ID: 16 bit còn lại (2 byte)
Đặc điểm: Thích hợp cho các mạng cỡ trung bình và lớn, với số lượng máy tính từ 256
đến 65536. Lớp C
Dải địa chỉ: 192.0.0.0 đến 223.255.255.255
lOMoARcPSD| 58504431
Ba bit đầu tiên: Luôn là 110
Phần Net ID: 24 bit đầu (3 byte)
Phần Host ID: 8 bit còn lại (1 byte)
Đặc điểm: Thích hợp cho các mạng nhỏ, với tối đa 254 máy tính.
Lưu ý:
Lớp D (224.0.0.0 đến 239.255.255.255): Dành cho các địa chỉ multicast.
Lớp E (240.0.0.0 đến 255.255.255.255): Dành cho mục đích thử nghiệm và nghiên cứu.
Các địa chỉ ip đặc biệt
. Địa chỉ mạng (Network Address)
Đây là địa chỉ đầu tiên của một mạng con (subnet).
Tất cả các bit của phần Host ID đều bằng 0.
Địa chỉ này dùng để định danh cho toàn bộ mạng, không thể gán cho một thiết bị cụ thể.
Ví dụ: Với mạng 192.168.1.0/24, địa chỉ mạng là 192.168.1.0.
2. Địa chỉ quảng bá (Broadcast Address) Đây là địa chỉ cuối cùng của
một mạng con.
Tất cả các bit của phần Host ID đều bằng 1.
Khi một gói tin được gửi tới địa chỉ này, nó sẽ được truyền tới tất cả các thiết bị trong
mạng con đó.
Ví dụ: Với mạng 192.168.1.0/24, địa chỉ broadcast là 192.168.1.255.
3. Địa chỉ Loopback
Dải địa chỉ: 127.0.0.0 đến 127.255.255.255.
Địa chỉ phổ biến nhất: 127.0.0.1.
Địa chỉ này được sử dụng để kiểm tra chức năng của card mạng và các giao thức TCP/IP
trên máy tính. Khi một gói tin được gửi đến 127.0.0.1, nó sẽ được hệ điều hành xử lý và
quay trở lại chính máy gửi mà không đi ra ngoài mạng.
lOMoARcPSD| 58504431
4. Địa chỉ riêng tư (Private Address)
Đây là các dải địa chỉ được dành riêng để sử dụng trong các mạng nội bộ (LAN) và
không được định tuyến trên Internet.
Các dải địa chỉ này được sử dụng để giải quyết vấn đề cạn kiệt địa chỉ IPv4 công cộng.
Các dải địa chỉ riêng tư:
o Lớp A: 10.0.0.0 đến 10.255.255.255 o
Lớp B: 172.16.0.0 đến 172.31.255.255 o
Lớp C: 192.168.0.0 đến 192.168.255.255
Để các thiết bị trong mạng riêng có thể truy cập Internet, chúng phải sử dụng kỹ thuật
NAT (Network Address Translation) để chuyển đổi địa chỉ riêng thành địa chỉ công
cộng.
5. Địa chỉ APIPA (Automatic Private IP Addressing) Dải địa chỉ:
169.254.0.0 đến 169.254.255.255.
Hệ điều hành Windows gán địa chỉ này cho một thiết bị nếu nó không thể lấy được địa
chỉ IP từ máy chủ DHCP (Dynamic Host Configuration Protocol).
Địa chỉ này chỉ cho phép các thiết bị trong cùng một phân đoạn mạng giao tiếp với nhau.
phương pháp phân lớp
Phân lớp là một cách để chia một địa chỉ mạng thành các mạng con nhỏ hơn để dễ quản lý hơn.
Dưới đây là các phương pháp phân lớp chính:
1. Phân lớp hoàn toàn (Classfull Standard)
Phương pháp này dựa trên các lớp địa chỉ mặc định (A, B, C) để xác định ranh giới giữa phần
mạng (Net ID) và phần máy chủ (Host ID).
Lớp A: Gồm 8 bit phần mạng và 24 bit phần host. o Subnet mask mặc định: 255.0.0.0
Lớp B: Gồm 16 bit phần mạng và 16 bit phần host. o Subnet mask mặc định:
255.255.0.0
Lớp C: Gồm 24 bit phần mạng và 8 bit phần host.
o Subnet mask mặc định: 255.255.255.0
lOMoARcPSD| 58504431
Nhược điểm của phương pháp này là lãng phí tài nguyên địa chỉ IP, đặc biệt là với các mạng lớn
không sử dụng hết số host được phân bổ.
lOMoARcPSD| 58504431
2. Phân mạng con (Subnetting)
Phương pháp này cho phép chia một mạng lớn thành các mạng con nhỏ hơn bằng cách mượn bit
từ phần Host ID để tạo thành phần Subnet ID. Điều này giúp tối ưu hóa việc sử dụng địa chỉ IP
và quản lý mạng hiệu quả hơn.
Cách thức hoạt động:
o Xác định số bit cần mượn để tạo ra số lượng mạng con mong muốn. o Cập nhật
Subnet Mask bằng cách bật các bit đã mượn thành 1.
o Tính toán địa chỉ của từng mạng con, dải địa chỉ host hợp lệ và địa chỉ broadcast.
Ví dụ: Chia một mạng lớp C (192.168.1.0/24) thành 2 mạng con.
o Mượn 1 bit: Subnet Mask sẽ là 255.255.255.128 (/25).
o Mạng con 1: 192.168.1.0/25 o Mạng con 2: 192.168.1.128/25
3. Định tuyến liên miền không phân lớp (CIDR)
CIDR (Classless Inter-Domain Routing) là một cải tiến so với phương pháp phân lớp truyền
thống. Thay vì dựa vào các lớp địa chỉ cố định, CIDR sử dụng ký hiệu tiền tố (dấu gạch chéo /)
để chỉ ra số bit dành cho phần mạng.
Cách thức hoạt động:
o Thay thế Subnet Mask bằng một số, ví dụ /24, để chỉ ra 24 bit đầu tiên là phần
mạng.
o Điều này cho phép gộp nhiều mạng nhỏ thành một siêu mạng (Supernetting) hoặc
chia một mạng lớn thành các mạng con nhỏ hơn một cách linh hoạt, không bị
ràng buộc bởi các lớp A, B, C.
Ví dụ:
o Địa chỉ 192.168.1.0/24 cho biết 24 bit đầu là phần mạng, tương đương với Subnet
Mask 255.255.255.0.
o Địa chỉ 10.1.2.0/22 cho biết 22 bit đầu là phần mạng, cho phép tạo ra một mạng
lớn hơn so với một mạng lớp C.
lOMoARcPSD| 58504431
CIDR là phương pháp được sử dụng rộng rãi nhất hiện nay trên Internet, giúp tiết kiệm và quản
lý địa chỉ IP hiệu quả hơn.
Chương 7 vận chuyển
Đây là bản tổng hợp chi tiết về Tầng Vận Chuyển dựa trên các tệp bạn đã cung cấp, được định
dạng để bạn có thể dễ dàng sao chép và ôn tập.
1. Tổng quan và Vai trò của Tầng Vận Chuyển
Tầng Vận Chuyển (Transport Layer) có vai trò quan trọng trong việc đảm bảo kết nối giữa các
ứng dụng trên các máy tính khác nhau.
Mục đích: Giới thiệu về vai trò và chức năng của tầng vận chuyển, cơ chế thiết lập/giải
phóng kết nối, và chi tiết về hai giao thức chính là TCPUDP.
Nhiệm vụ: Trong khi tầng mạng đảm bảo truyền tải ở cấp Host-to-host , tầng vận
chuyển đảm bảo truyền tải ở cấp
End point-to-End point. "End point" ở đây chính là các chương trình ứng dụng đang chạy trên
các máy tính.
Vị trí: Tầng vận chuyển nằm giữa tầng ứng dụng và tầng mạng. Giao diện giữa hai tầng
này được gọi là "Giao diện vận chuyển / ứng dụng" và "Giao diện mạng / vận chuyển".
TPDU (Transport Protocol Data Unit): Là đơn vị dữ liệu của giao thức vận chuyển.
2. Các Dịch vụ của Tầng Vận Chuyển
Tầng vận chuyển cung cấp hai kiểu dịch vụ cơ bản:
a) Dịch vụ có nối kết (Connection-Oriented Service)
Yêu cầu phải thiết lập một nối kết giữa hai tiến trình trước khi truyền dữ liệu.
Các hàm dịch vụ cơ sở:
o LISTEN: Nghe và chờ đợi một tiến trình khác kết nối tới. o CONNECT: Chủ
động yêu cầu thiết lập nối kết đến một tiến trình khác. o SEND: Gửi thông tin đi.
o RECEIVE: Chờ cho đến khi một gói tin đến và nhận nó. o DISCONNECT:
Muốn hủy kết nối với bên đối tác.
lOMoARcPSD| 58504431
b) Dịch vụ không nối kết (Connectionless Service) Không cần thiết
lập nối kết trước khi truyền dữ liệu.
Các hàm dịch vụ cơ sở:
o SEND: Gửi thông tin đi.
o RECEIVE: Chờ cho đến khi một gói tin đến và nhận nó.
3. Các Vấn đề và Giải thuật Quan trọng
a) Định địa chỉ
Tầng mạng sử dụng địa chỉ NSAP để định danh các host.
Tầng vận chuyển sử dụng địa chỉ TSAP (Transport Service Access Point) để định danh
các tiến trình trên các host.
Trong mạng Internet, TSAP chính là số hiệu cổng (port).
b) Thiết lập và Giải phóng Nối kết
Thiết lập nối kết (Three-way hand-shake): Là cơ chế bắt tay ba chiều để cả hai bên
đảm bảo đã sẵn sàng.
o Bên 1 gửi gói tin CR (yêu cầu kết nối). o Bên 2 gửi gói tin ACK (xác nhận).
o Bên 1 gửi gói tin DATA để bắt đầu truyền dữ liệu.
Giải phóng nối kết:
o Kiểu dị bộ: Khi một bên cắt nối kết, kết nối sẽ bị hủy bỏ ngay lập tức.
o Kiểu đồng bộ: Cả hai bên phải đồng ý hủy bỏ thì nối kết mới thực sự bị hủy. Một
nút phải tiếp tục nhận dữ liệu sau khi đã gởi yêu cầu giải phóng nối kết cho đến
khi nhận được chấp thuận.
c) Điều khiển thông lượng
Sử dụng giao thức cửa sổ trượt (sliding window).
Bên nhận sẽ thông báo cho bên gởi biết lượng buffer còn trống để bên gởi không làm tràn
buffer của bên nhận.
4. Giao thức TCP và UDP trong Mạng Internet
lOMoARcPSD| 58504431
a) Giao thức UDP (User Datagram Protocol)
Là dịch vụ truyền dữ liệu không nối kếtkhông đáng tin cậy.
Gói tin UDP (segment) có thể xuất hiện tại nút đích bất kỳ lúc nào.
Checksum: Phần kiểm tra lỗi trên header, dữ liệu và cả header ảo. Header ảo chứa địa
chỉ IP nguồn, địa chỉ IP đích và chiều dài của UDP.
b) Giao thức TCP (Transmission Control Protocol) Là giao thức
nối kết, tin cậyhướng byte.
Sử dụng cơ chế đa hợp và truyền song công.
Điều khiển thông lượng: Sử dụng giao thức cửa sổ trượt để điều chỉnh lượng dữ liệu
được gửi đi, tránh làm tràn bộ đệm của bên nhận.
Bắt tay ba chiều (Three-way hand-shake): Dùng để thiết lập kết nối.
Hủy bắt tay: Dùng để giải phóng nối kết.
Cấu trúc TCP Header: Chứa các trường quan trọng như SrcPort, DstPort,
SequenceNum, Acknowledgment, Flags, Checksum,....
Flags bao gồm: SYN, FIN, RESET, PUSH, URG, ACK
Chương 8 Tầng ứng dụng
Yêu cầu thành công
Dựa trên nội dung của tệp "CHUONG 8 TANG UNG DUNG.pdf", tôi đã tổng hợp chi tiết các
phần quan trọng và các ví dụ minh họa.
1. Giới thiệu về Tầng Ứng dụng
Tầng Ứng dụng (Application layer): Đây là nơi các ứng dụng phân tán và giao tiếp với
nhau. Các ứng dụng này chạy ở không gian người dùng (user space) trên các máy tính
trong mạng.
Giao thức Tầng Ứng dụng: Là một thành phần của ứng dụng, định nghĩa các thông điệp
được trao đổi và các tác vụ được thực hiện. Chúng sử dụng các dịch vụ của tầng vận
chuyển (TCP/UDP).
Một số dịch vụ tiêu biểu: Hệ thống tên miền (DNS), Dịch vụ thư điện tử (Email), Dịch
vụ Web, và Dịch vụ truyền tải tập tin (FTP).
lOMoARcPSD| 58504431
2. Mô hình ứng dụng Client - Server
Mô hình: Các ứng dụng được thiết kế gồm hai phần: client và server.
Client: o Khởi tạo cuộc giao tiếp với server. o Yêu cầu các dịch vụ từ server.
o Ví dụ: Trình duyệt web (web browser), chương trình gửi nhận mail.
Server: o Cung cấp các dịch vụ được client yêu cầu.
o Ví dụ: Web server gửi các trang web về client, Mail server phân phát mail.
3. Hệ thống Tên miền (DNS - Domain Name System) Tại sao cần DNS? o Địa chỉ IP (ví
dụ:
203.162.36.145) rất khó nhớ đối với người dùng.
o Cần một cơ chế đặt tên dễ nhớ hơn (tên miền) để truy cập các dịch vụ.
DNS là gì? o DNS là giải pháp sử dụng tên luận lý (tên miền) thay cho địa chỉ IP.
o Ví dụ: www.cit.ctu.edu.vn dễ nhớ hơn 203.162.36.146. Tên này có cấu trúc phân
cấp:
vn (Việt Nam) -> edu (giáo dục) -> ctu (đại học Cần Thơ) -> cit (khoa CNTT) -> www (tên máy
tính web).
Các Khái niệm trong DNS:
o Không gian tên (Name Space): Tập hợp tất cả các tên theo một quy ước. Có hai
loại:
Không gian tên phẳng (Flat name space):n là một chuỗi ký tự không
cấu trúc (ví dụ: MS-DOS).
Không gian tên phân cấp (Partitioned Name Space): Chia thành các
lớp gọi là miền (Domain), thường có cấu trúc cây (ví dụ: hệ thống tên
miền trên Internet).
o Tên máy tính (Computer Host name): Tên luận lý được gắn với một địa chỉ IP
duy nhất.
o DNS Server (Name Server): Máy tính chạy dịch vụ giải đáp tên miền, duy trì
một bảng chứa tên và địa chỉ IP tương ứng của các máy tính.
o Phân tích tên (Resolving Names):
lOMoARcPSD| 58504431
Phân giải xuôi (forward lookup): Ánh xạ tên miền sang địa chỉ IP.
Phân giải ngược (reverse lookup): Ánh xạ địa chỉ IP sang tên máy
tính.
o Vùng có thẩm quyền (ZOA - Zones of Authority): Một phần không gian tên mà
một Name Server nào đó chịu trách nhiệm phân tích tên và địa chỉ.
1. 1xx - Thông tin (Informational)
Mã này chỉ ra rằng yêu cầu đã được chấp nhận và quá trình tiếp tục.
100 Continue: Máy chủ đã nhận được các tiêu đề yêu cầu và client nên tiếp tục gửi phần
thân yêu cầu.
101 Switching Protocols: Máy chủ đang chuyển sang một giao thức khác theo yêu cầu
của client.
2. 2xx - Thành công (Success)
Mã này chỉ ra rằng yêu cầu đã được máy chủ tiếp nhận, xử lý thành công.
200 OK: Yêu cầu đã thành công.
201 Created: Yêu cầu đã thành công và một tài nguyên mới đã được tạo.
204 No Content: Yêu cầu đã thành công nhưng không có nội dung nào để trả về.
206 Partial Content: Máy chủ chỉ gửi một phần tài nguyên do client yêu cầu.
3. 3xx - Chuyển hướng (Redirection)
Mã này chỉ ra rằng client cần thực hiện thêm hành động để hoàn thành yêu cầu, thường là
chuyển hướng đến một URL khác.
301 Moved Permanently: Tài nguyên đã được chuyển vĩnh viễn đến một URL mới.
Trình duyệt nên sử dụng URL mới này cho các yêu cầu sau.
302 Found: Tài nguyên tạm thời được tìm thấy ở một URL khác.
lOMoARcPSD| 58504431
304 Not Modified: Tài nguyên chưa được thay đổi kể từ lần yêu cầu cuối cùng, client có
thể sử dụng bản sao đã lưu trong cache.
4. 4xx - Lỗi phía Client (Client Error)
Mã này chỉ ra rằng yêu cầu có vấn đề và client cần phải sửa lỗi.
400 Bad Request: Yêu cầu không thể hiểu được do cú pháp không hợp lệ.
401 Unauthorized: Yêu cầu cần xác thực để truy cập.
403 Forbidden: Máy chủ từ chối cấp quyền truy cập, ngay cả khi client đã xác thực.
404 Not Found: Tài nguyên được yêu cầu không tồn tại trên máy chủ.
408 Request Timeout: Máy chủ đã hết thời gian chờ đợi để nhận toàn bộ yêu cầu từ
client.
5. 5xx - Lỗi phía Server (Server Error)
Mã này chỉ ra rằng máy chủ gặp sự cố khi xử lý yêu cầu, mặc dù yêu cầu có thể hợp lệ.
500 Internal Server Error: Lỗi chung chung của máy chủ.
502 Bad Gateway: Máy chủ hoạt động như một gateway hoặc proxy đã nhận được phản
hồi không hợp lệ từ server upstream.
503 Service Unavailable: Máy chủ hiện tại không thể xử lý yêu cầu do quá tải hoặc đang
bảo trì.
504 Gateway Timeout: Máy chủ hoạt động như một gateway hoặc proxy đã hết thời gian
chờ đợi phản hồi từ server upstream.
Hành động mô tả request chính là phương thức HTTP (HTTP method), nó xác định hành động
mà client muốn thực hiện trên một tài nguyên. Các phương thức này là một phần quan trọng
trong cấu trúc của một HTTP request.
Dưới đây là các phương thức HTTP phổ biến nhất:
Các Phương Thức HTTP Chính
1. GET
lOMoARcPSD| 58504431
Mục đích: Yêu cầu lấy dữ liệu từ một tài nguyên cụ thể trên máy chủ.
Đặc điểm:
o An toàn (safe): Không thay đổi trạng thái của server.
o Idempotent: Thực hiện nhiều lần vẫn cho kết quả như một lần.
Ví dụ: Khi bạn nhập một URL vào trình duyệt và nhấn Enter, trình duyệt sẽ gửi một
request GET để lấy nội dung trang web.
2. POST
Mục đích: Gửi dữ liệu để tạo một tài nguyên mới trên máy chủ.
Đặc điểm: o Không an toàn (unsafe): Có thể thay đổi trạng thái của server.
o Không idempotent: Gửi nhiều lần có thể tạo ra nhiều tài nguyên khác nhau.
Ví dụ: Khi bạn điền vào một biểu mẫu đăng ký và nhấn nút "Đăng ký", trình duyệt sẽ gửi
một request POST chứa dữ liệu của bạn đến server.
3. PUT
Mục đích: Cập nhật hoặc thay thế toàn bộ dữ liệu của một tài nguyên hiện có trên máy
chủ.
Đặc điểm: o Không an toàn (unsafe): Thay đổi trạng thái của server.
o Idempotent: Thực hiện nhiều lần vẫn cho kết quả như một lần (tài nguyên sẽ được
thay thế bởi cùng một dữ liệu).
Ví dụ: Cập nhật thông tin hồ sơ của một người dùng bằng cách gửi toàn bộ dữ liệu hồ sơ
mới.
4. DELETE
Mục đích: Yêu cầu xóa một tài nguyên cụ thể trên máy chủ.
Đặc điểm: o Không an toàn (unsafe): Thay đổi trạng thái của server.
o Idempotent: Xóa nhiều lần một tài nguyên không tồn tại vẫn cho kết quả tương tự.
Ví dụ: Nhấn vào nút "Xóa" một bài viết trên blog để gửi request DELETE đến server. 5.
PATCH
Mục đích: Cập nhật một phần của dữ liệu tài nguyên, không phải toàn bộ.
Đặc điểm:
lOMoARcPSD| 58504431
o Không an toàn (unsafe): Thay đổi trạng thái của server.
o Không idempotent: Gửi nhiều lần có thể tạo ra nhiều kết quả khác nhau.
Ví dụ: Cập nhật tên của một người dùng mà không thay đổi các thông tin khác của họ.
6. HEAD
Mục đích: Yêu cầu lấy các tiêu đề (headers) của một tài nguyên mà không cần lấy phần
thân (body) của phản hồi.
Đặc điểm: Tương tự như GET nhưng chỉ nhận về tiêu đề.
Ví dụ: Kiểm tra xem một tệp có tồn tại trên server hay không hoặc lấy các thông tin
metadata mà không cần tải toàn bộ tệp.

Preview text:

lOMoAR cPSD| 58504431
1. Tổng quan và Vai trò của Tầng Mạng
Mục đích: Chương này giới thiệu về vai trò của router trong việc xây dựng các liên mạng
rộng lớn và không đồng nhất. Tầng mạng cung cấp dịch vụ cho tầng vận chuyển, cơ chế
hoạt động của router, các thuật toán định tuyến và bộ giao thức liên mạng IP. •
Hạn chế của Tầng Liên kết dữ liệu: Tầng này chỉ đảm bảo truyền thông tin giữa các
máy tính có đường truyền trực tiếp. Nó bị giới hạn về số lượng máy tính và kích thước
mạng, đồng thời gặp khó khăn trong việc nối kết các mạng không đồng nhất. •
Vai trò của Tầng Mạng:
o Cung cấp dịch vụ kết nối host-host trên một hệ thống mạng diện rộng, không đồng nhất.
o Đưa các gói tin từ máy gửi đến máy nhận thông qua các chặng đường.
o Định tuyến cho gói tin để tránh tình trạng tắc nghẽn. •
Kỹ thuật hoán chuyển lưu và chuyển tiếp (Store-and-Forward Switching): Router
nhận một gói tin, lưu trữ nó, sau đó chuyển tiếp gói tin đó tới đích tiếp theo.
2. Các Dịch vụ của Tầng Mạng
Tầng mạng cung cấp hai dịch vụ cơ bản cho tầng vận chuyển: •
Dịch vụ không nối kết (Connectionless Service):
o Các gói tin được gọi là Datagram và được đưa vào mạng con một cách riêng lẻ, định tuyến độc lập.
o Không cần thiết lập nối kết trước khi truyền tin.
o Ưu điểm: Linh hoạt, không bị ảnh hưởng khi một router bị hỏng (ngoại trừ gói
tin đang trên đường truyền).
o Nhược điểm: Khó đảm bảo chất lượng dịch vụ và điều khiển tắc nghẽn. •
Dịch vụ định hướng nối kết (Connection-Oriented Service):
o Một đường nối kết, gọi là Mạch ảo (Virtual Circuit), phải được thiết lập trước
khi các gói tin có thể được gửi. lOMoAR cPSD| 58504431 o
o Tất cả các gói tin sẽ đi trên cùng một đường đã được thiết lập. o Ưu điểm: Dễ
dàng đảm bảo chất lượng dịch vụ và điều khiển tắc nghẽn.
Nhược điểm: Nếu một router trên đường đi bị hỏng, tất cả các mạch ảo đi qua đó đều bị kết thúc.
3. Giải thuật Định tuyến (Routing Algorithms)
Mục tiêu: Xác định một đường đi tốt nhất (chuỗi các router) xuyên qua mạng từ máy gửi
đến máy nhận thông tin. • Phân loại:
o Định tuyến tập trung (Centralized routing): Có một trung tâm điều khiển mạng
chịu trách nhiệm tính toán và cập nhật thông tin đường đi.
o Định tuyến phân tán (Distributed routing): Mỗi router tự tính toán tìm kiếm
thông tin và trao đổi với các router khác.
o Định tuyến tĩnh (Static routing): Các router không tự cập nhật thông tin đường
đi, người quản trị mạng sẽ thực hiện.
o Định tuyến động (Dynamic routing): Các router tự động cập nhật lại thông tin
đường đi khi mạng thay đổi.
Các giải thuật định tuyến phổ biến
1. Giải thuật Dijkstra:
o Mục đích: Tìm đường đi ngắn nhất từ một nút nguồn cho trước đến tất cả các nút
còn lại. o Cách thức:
Bước 1 (Khởi tạo): Thiết lập tập hợp các nút đã biết đường đi ngắn nhất
N={S} và chi phí ban đầu.
Bước 2 (Tìm nút gần nhất): Tìm nút i chưa thuộc N có chi phí nhỏ nhất và thêm i vào N.
Bước 3 (Tính lại chi phí): Với các nút j chưa thuộc N, tính lại chi phí Dj= min{Dj, Di + lij}.
Lặp lại: Trở lại bước 2 cho đến khi tất cả các nút đều thuộc N. lOMoAR cPSD| 58504431 o
o * **Ví dụ:** Bảng ví dụ trong tài liệu minh họa các lần lặp của giải thuật Dijkstra
để tìm đường đi ngắn nhất từ một nút nguồn[cite: 23, 316]. o
2. Giải thuật Ford-Fulkerson (Distance Vector):
Mục đích: Tìm đường đi ngắn nhất từ tất cả các nút đến một nút đích cho
trước trên mạng. o Cách thức:
Bước 1 (Khởi tạo): Gán chi phí từ nút đích đến chính nó Dd = 0 và chi
phí đến các nút khác là vô cùng.
Bước 2 (Cập nhật): Với mỗi nút i, cập nhật chi phí Di = min{lij + Dj} với mọi láng giềng j.
Lặp lại: Lặp lại cho đến khi không còn chi phí nào thay đổi.
o * **Ví dụ:** Tài liệu có bảng minh họa các lần lặp của giải thuật Ford-Fulkerson
để tìm đường đi ngắn nhất đến nút đích[cite: 323]. o
3. Giải pháp định tuyến Link State:
o Mỗi nút tìm ra trạng thái đường nối của nó đến các nút láng giềng và chi phí trên mỗi đường nối.
o Thông tin này được phân phối (flooding) đến tất cả các nút để mỗi nút có thể xây
dựng một bản đồ hoàn chỉnh của mạng.
o Mỗi nút sau đó sẽ chạy các giải thuật tìm đường đi trên bản đồ này (ví dụ Dijkstra).
4. Bộ Giao thức Liên mạng IP
Liên mạng (Internetwork): Mạng được hình thành từ việc nối kết nhiều mạng con
không đồng nhất lại với nhau. •
Giao thức IP: Giao thức liên mạng phổ biến nhất, hoạt động ở tầng 3 của mô hình OSI. •
Phân mạng con (Subnetting):
o Là kỹ thuật chia một mạng lớn thành các mạng con nhỏ hơn.
o Mục đích: Đơn giản hóa quản trị, tăng tính bảo mật, và cô lập luồng giao thông trên mạng. lOMoAR cPSD| 58504431 o
o Có hai phương pháp chính: Phân lớp hoàn toàn (Classfull Standard) và Định
tuyến liên miền không phân lớp (CIDR). •
Các giao thức liên quan:
ARP (Address Resolution Protocol): Giao thức phân giải địa chỉ, chuyển đổi từ
địa chỉ IP sang địa chỉ MAC.
o RARP (Reverse Address Resolution Protocol): Giao thức phân giải địa chỉ
ngược, chuyển đổi từ địa chỉ MAC sang địa chỉ IP.
o ICMP (Internet Control Message Protocol): Giao thức dùng để gửi các thông
điệp điều khiển và báo lỗi trên Internet.
Dưới đây là số lượng địa chỉ, subnet mask mặc định và các giá trị thập phân của các lớp địa chỉ IP (A, B, C). lOMoAR cPSD| 58504431 Lớp A
Dải địa chỉ: 1.0.0.0 đến 126.255.255.255 •
Số lượng mạng: 126 mạng •
Số lượng host tối đa trên mỗi mạng: 224−2=16,777,214 host •
Subnet mask mặc định: 255.0.0.0 Lớp B
Dải địa chỉ: 128.0.0.0 đến 191.255.255.255 •
Số lượng mạng: 214=16,384 mạng •
Số lượng host tối đa trên mỗi mạng: 216−2=65,534 host •
Subnet mask mặc định: 255.255.0.0 Lớp C lOMoAR cPSD| 58504431
Dải địa chỉ: 192.0.0.0 đến 223.255.255.255 •
Số lượng mạng: 221=2,097,152 mạng •
Số lượng host tối đa trên mỗi mạng: 28−2=254 host •
Subnet mask mặc định: 255.255.255.0 Lưu ý:
Lớp D (224.0.0.0 đến 239.255.255.255): Dành cho các địa chỉ multicast, không có subnet mask mặc định. •
Lớp E (240.0.0.0 đến 255.255.255.255): Dành cho mục đích thử nghiệm và nghiên cứu,
không có subnet mask mặc định.
Dưới đây là giá trị và đặc điểm của các lớp địa chỉ IP A, B, C: Lớp A
Dải địa chỉ: 1.0.0.0 đến 126.255.255.255 •
Bit đầu tiên: Luôn là 0
Phần Net ID: 8 bit đầu (1 byte) •
Phần Host ID: 24 bit còn lại (3 byte) •
Đặc điểm: Thích hợp cho các mạng rất lớn, với hơn 16 triệu máy tính. Lớp B
Dải địa chỉ: 128.0.0.0 đến 191.255.255.255 •
Hai bit đầu tiên: Luôn là 10
Phần Net ID: 16 bit đầu (2 byte) •
Phần Host ID: 16 bit còn lại (2 byte) •
Đặc điểm: Thích hợp cho các mạng cỡ trung bình và lớn, với số lượng máy tính từ 256 đến 65536. Lớp C
Dải địa chỉ: 192.0.0.0 đến 223.255.255.255 lOMoAR cPSD| 58504431
Ba bit đầu tiên: Luôn là 110
Phần Net ID: 24 bit đầu (3 byte) •
Phần Host ID: 8 bit còn lại (1 byte) •
Đặc điểm: Thích hợp cho các mạng nhỏ, với tối đa 254 máy tính. Lưu ý:
Lớp D (224.0.0.0 đến 239.255.255.255): Dành cho các địa chỉ multicast. •
Lớp E (240.0.0.0 đến 255.255.255.255): Dành cho mục đích thử nghiệm và nghiên cứu.
Các địa chỉ ip đặc biệt
. Địa chỉ mạng (Network Address)
Đây là địa chỉ đầu tiên của một mạng con (subnet). •
Tất cả các bit của phần Host ID đều bằng 0. •
Địa chỉ này dùng để định danh cho toàn bộ mạng, không thể gán cho một thiết bị cụ thể. •
Ví dụ: Với mạng 192.168.1.0/24, địa chỉ mạng là 192.168.1.0.
2. Địa chỉ quảng bá (Broadcast Address) Đây là địa chỉ cuối cùng của một mạng con. •
Tất cả các bit của phần Host ID đều bằng 1. •
Khi một gói tin được gửi tới địa chỉ này, nó sẽ được truyền tới tất cả các thiết bị trong mạng con đó. •
Ví dụ: Với mạng 192.168.1.0/24, địa chỉ broadcast là 192.168.1.255.
3. Địa chỉ Loopback
Dải địa chỉ: 127.0.0.0 đến 127.255.255.255. •
Địa chỉ phổ biến nhất: 127.0.0.1. •
Địa chỉ này được sử dụng để kiểm tra chức năng của card mạng và các giao thức TCP/IP
trên máy tính. Khi một gói tin được gửi đến 127.0.0.1, nó sẽ được hệ điều hành xử lý và
quay trở lại chính máy gửi mà không đi ra ngoài mạng. lOMoAR cPSD| 58504431
4. Địa chỉ riêng tư (Private Address)
Đây là các dải địa chỉ được dành riêng để sử dụng trong các mạng nội bộ (LAN) và
không được định tuyến trên Internet. •
Các dải địa chỉ này được sử dụng để giải quyết vấn đề cạn kiệt địa chỉ IPv4 công cộng. •
Các dải địa chỉ riêng tư:
o Lớp A: 10.0.0.0 đến 10.255.255.255 o
Lớp B: 172.16.0.0 đến 172.31.255.255 o
Lớp C: 192.168.0.0 đến 192.168.255.255 •
Để các thiết bị trong mạng riêng có thể truy cập Internet, chúng phải sử dụng kỹ thuật
NAT (Network Address Translation) để chuyển đổi địa chỉ riêng thành địa chỉ công cộng.
5. Địa chỉ APIPA (Automatic Private IP Addressing) Dải địa chỉ:
169.254.0.0 đến 169.254.255.255. •
Hệ điều hành Windows gán địa chỉ này cho một thiết bị nếu nó không thể lấy được địa
chỉ IP từ máy chủ DHCP (Dynamic Host Configuration Protocol). •
Địa chỉ này chỉ cho phép các thiết bị trong cùng một phân đoạn mạng giao tiếp với nhau. phương pháp phân lớp
Phân lớp là một cách để chia một địa chỉ mạng thành các mạng con nhỏ hơn để dễ quản lý hơn.
Dưới đây là các phương pháp phân lớp chính:
1. Phân lớp hoàn toàn (Classfull Standard)
Phương pháp này dựa trên các lớp địa chỉ mặc định (A, B, C) để xác định ranh giới giữa phần
mạng (Net ID) và phần máy chủ (Host ID). •
Lớp A: Gồm 8 bit phần mạng và 24 bit phần host. o Subnet mask mặc định: 255.0.0.0 •
Lớp B: Gồm 16 bit phần mạng và 16 bit phần host. o Subnet mask mặc định: 255.255.0.0 •
Lớp C: Gồm 24 bit phần mạng và 8 bit phần host.
o Subnet mask mặc định: 255.255.255.0 lOMoAR cPSD| 58504431
Nhược điểm của phương pháp này là lãng phí tài nguyên địa chỉ IP, đặc biệt là với các mạng lớn
không sử dụng hết số host được phân bổ. lOMoAR cPSD| 58504431
2. Phân mạng con (Subnetting)
Phương pháp này cho phép chia một mạng lớn thành các mạng con nhỏ hơn bằng cách mượn bit
từ phần Host ID để tạo thành phần Subnet ID. Điều này giúp tối ưu hóa việc sử dụng địa chỉ IP
và quản lý mạng hiệu quả hơn. •
Cách thức hoạt động:
o Xác định số bit cần mượn để tạo ra số lượng mạng con mong muốn. o Cập nhật
Subnet Mask bằng cách bật các bit đã mượn thành 1.
o Tính toán địa chỉ của từng mạng con, dải địa chỉ host hợp lệ và địa chỉ broadcast. •
Ví dụ: Chia một mạng lớp C (192.168.1.0/24) thành 2 mạng con.
o Mượn 1 bit: Subnet Mask sẽ là 255.255.255.128 (/25).
o Mạng con 1: 192.168.1.0/25 o Mạng con 2: 192.168.1.128/25
3. Định tuyến liên miền không phân lớp (CIDR)
CIDR (Classless Inter-Domain Routing) là một cải tiến so với phương pháp phân lớp truyền
thống. Thay vì dựa vào các lớp địa chỉ cố định, CIDR sử dụng ký hiệu tiền tố (dấu gạch chéo /)
để chỉ ra số bit dành cho phần mạng. •
Cách thức hoạt động:
o Thay thế Subnet Mask bằng một số, ví dụ /24, để chỉ ra 24 bit đầu tiên là phần mạng.
o Điều này cho phép gộp nhiều mạng nhỏ thành một siêu mạng (Supernetting) hoặc
chia một mạng lớn thành các mạng con nhỏ hơn một cách linh hoạt, không bị
ràng buộc bởi các lớp A, B, C. • Ví dụ:
o Địa chỉ 192.168.1.0/24 cho biết 24 bit đầu là phần mạng, tương đương với Subnet Mask 255.255.255.0.
o Địa chỉ 10.1.2.0/22 cho biết 22 bit đầu là phần mạng, cho phép tạo ra một mạng
lớn hơn so với một mạng lớp C. lOMoAR cPSD| 58504431
CIDR là phương pháp được sử dụng rộng rãi nhất hiện nay trên Internet, giúp tiết kiệm và quản
lý địa chỉ IP hiệu quả hơn. Chương 7 vận chuyển
Đây là bản tổng hợp chi tiết về Tầng Vận Chuyển dựa trên các tệp bạn đã cung cấp, được định
dạng để bạn có thể dễ dàng sao chép và ôn tập.
1. Tổng quan và Vai trò của Tầng Vận Chuyển
Tầng Vận Chuyển (Transport Layer) có vai trò quan trọng trong việc đảm bảo kết nối giữa các
ứng dụng trên các máy tính khác nhau. •
Mục đích: Giới thiệu về vai trò và chức năng của tầng vận chuyển, cơ chế thiết lập/giải
phóng kết nối, và chi tiết về hai giao thức chính là TCPUDP. •
Nhiệm vụ: Trong khi tầng mạng đảm bảo truyền tải ở cấp Host-to-host , tầng vận
chuyển đảm bảo truyền tải ở cấp
End point-to-End point. "End point" ở đây chính là các chương trình ứng dụng đang chạy trên các máy tính. •
Vị trí: Tầng vận chuyển nằm giữa tầng ứng dụng và tầng mạng. Giao diện giữa hai tầng
này được gọi là "Giao diện vận chuyển / ứng dụng" và "Giao diện mạng / vận chuyển". •
TPDU (Transport Protocol Data Unit): Là đơn vị dữ liệu của giao thức vận chuyển.
2. Các Dịch vụ của Tầng Vận Chuyển
Tầng vận chuyển cung cấp hai kiểu dịch vụ cơ bản:
a) Dịch vụ có nối kết (Connection-Oriented Service)
Yêu cầu phải thiết lập một nối kết giữa hai tiến trình trước khi truyền dữ liệu. •
Các hàm dịch vụ cơ sở:
o LISTEN: Nghe và chờ đợi một tiến trình khác kết nối tới. o CONNECT: Chủ
động yêu cầu thiết lập nối kết đến một tiến trình khác. o SEND: Gửi thông tin đi.
o RECEIVE: Chờ cho đến khi một gói tin đến và nhận nó. o DISCONNECT:
Muốn hủy kết nối với bên đối tác. lOMoAR cPSD| 58504431
b) Dịch vụ không nối kết (Connectionless Service) Không cần thiết
lập nối kết trước khi truyền dữ liệu. •
Các hàm dịch vụ cơ sở:
o SEND: Gửi thông tin đi.
o RECEIVE: Chờ cho đến khi một gói tin đến và nhận nó.
3. Các Vấn đề và Giải thuật Quan trọng
a) Định địa chỉ
Tầng mạng sử dụng địa chỉ NSAP để định danh các host. •
Tầng vận chuyển sử dụng địa chỉ TSAP (Transport Service Access Point) để định danh
các tiến trình trên các host. •
Trong mạng Internet, TSAP chính là số hiệu cổng (port).
b) Thiết lập và Giải phóng Nối kết
Thiết lập nối kết (Three-way hand-shake): Là cơ chế bắt tay ba chiều để cả hai bên
đảm bảo đã sẵn sàng.
o Bên 1 gửi gói tin CR (yêu cầu kết nối). o Bên 2 gửi gói tin ACK (xác nhận).
o Bên 1 gửi gói tin DATA để bắt đầu truyền dữ liệu. •
Giải phóng nối kết:
o Kiểu dị bộ: Khi một bên cắt nối kết, kết nối sẽ bị hủy bỏ ngay lập tức.
o Kiểu đồng bộ: Cả hai bên phải đồng ý hủy bỏ thì nối kết mới thực sự bị hủy. Một
nút phải tiếp tục nhận dữ liệu sau khi đã gởi yêu cầu giải phóng nối kết cho đến
khi nhận được chấp thuận.
c) Điều khiển thông lượng
Sử dụng giao thức cửa sổ trượt (sliding window). •
Bên nhận sẽ thông báo cho bên gởi biết lượng buffer còn trống để bên gởi không làm tràn buffer của bên nhận.
4. Giao thức TCP và UDP trong Mạng Internet lOMoAR cPSD| 58504431
a) Giao thức UDP (User Datagram Protocol)
Là dịch vụ truyền dữ liệu không nối kếtkhông đáng tin cậy. •
Gói tin UDP (segment) có thể xuất hiện tại nút đích bất kỳ lúc nào. •
Checksum: Phần kiểm tra lỗi trên header, dữ liệu và cả header ảo. Header ảo chứa địa
chỉ IP nguồn, địa chỉ IP đích và chiều dài của UDP.
b) Giao thức TCP (Transmission Control Protocol) Là giao thức
nối kết, tin cậyhướng byte. •
Sử dụng cơ chế đa hợp và truyền song công. •
Điều khiển thông lượng: Sử dụng giao thức cửa sổ trượt để điều chỉnh lượng dữ liệu
được gửi đi, tránh làm tràn bộ đệm của bên nhận. •
Bắt tay ba chiều (Three-way hand-shake): Dùng để thiết lập kết nối. •
Hủy bắt tay: Dùng để giải phóng nối kết. •
Cấu trúc TCP Header: Chứa các trường quan trọng như SrcPort, DstPort,
SequenceNum, Acknowledgment, Flags, Checksum,....
Flags bao gồm: SYN, FIN, RESET, PUSH, URG, ACK
Chương 8 Tầng ứng dụng • Yêu cầu thành công
Dựa trên nội dung của tệp "CHUONG 8 TANG UNG DUNG.pdf", tôi đã tổng hợp chi tiết các
phần quan trọng và các ví dụ minh họa.
1. Giới thiệu về Tầng Ứng dụng
Tầng Ứng dụng (Application layer): Đây là nơi các ứng dụng phân tán và giao tiếp với
nhau. Các ứng dụng này chạy ở không gian người dùng (user space) trên các máy tính trong mạng. •
Giao thức Tầng Ứng dụng: Là một thành phần của ứng dụng, định nghĩa các thông điệp
được trao đổi và các tác vụ được thực hiện. Chúng sử dụng các dịch vụ của tầng vận chuyển (TCP/UDP). •
Một số dịch vụ tiêu biểu: Hệ thống tên miền (DNS), Dịch vụ thư điện tử (Email), Dịch
vụ Web, và Dịch vụ truyền tải tập tin (FTP). lOMoAR cPSD| 58504431
2. Mô hình ứng dụng Client - Server
Mô hình: Các ứng dụng được thiết kế gồm hai phần: client và server. •
Client: o Khởi tạo cuộc giao tiếp với server. o Yêu cầu các dịch vụ từ server.
o Ví dụ: Trình duyệt web (web browser), chương trình gửi nhận mail. •
Server: o Cung cấp các dịch vụ được client yêu cầu.
o Ví dụ: Web server gửi các trang web về client, Mail server phân phát mail.
3. Hệ thống Tên miền (DNS - Domain Name System) Tại sao cần DNS? o Địa chỉ IP (ví dụ:
203.162.36.145) rất khó nhớ đối với người dùng.
o Cần một cơ chế đặt tên dễ nhớ hơn (tên miền) để truy cập các dịch vụ. •
DNS là gì? o DNS là giải pháp sử dụng tên luận lý (tên miền) thay cho địa chỉ IP.
o Ví dụ: www.cit.ctu.edu.vn dễ nhớ hơn 203.162.36.146. Tên này có cấu trúc phân cấp:
vn (Việt Nam) -> edu (giáo dục) -> ctu (đại học Cần Thơ) -> cit (khoa CNTT) -> www (tên máy tính web). •
Các Khái niệm trong DNS:
o Không gian tên (Name Space): Tập hợp tất cả các tên theo một quy ước. Có hai loại:
Không gian tên phẳng (Flat name space): Tên là một chuỗi ký tự không
cấu trúc (ví dụ: MS-DOS).
Không gian tên phân cấp (Partitioned Name Space): Chia thành các
lớp gọi là miền (Domain), thường có cấu trúc cây (ví dụ: hệ thống tên miền trên Internet).
o Tên máy tính (Computer Host name): Tên luận lý được gắn với một địa chỉ IP duy nhất.
o DNS Server (Name Server): Máy tính chạy dịch vụ giải đáp tên miền, duy trì
một bảng chứa tên và địa chỉ IP tương ứng của các máy tính.
o Phân tích tên (Resolving Names): lOMoAR cPSD| 58504431
Phân giải xuôi (forward lookup): Ánh xạ tên miền sang địa chỉ IP.
Phân giải ngược (reverse lookup): Ánh xạ địa chỉ IP sang tên máy tính.
o Vùng có thẩm quyền (ZOA - Zones of Authority): Một phần không gian tên mà
một Name Server nào đó chịu trách nhiệm phân tích tên và địa chỉ.
1. 1xx - Thông tin (Informational)
Mã này chỉ ra rằng yêu cầu đã được chấp nhận và quá trình tiếp tục. •
100 Continue: Máy chủ đã nhận được các tiêu đề yêu cầu và client nên tiếp tục gửi phần thân yêu cầu. •
101 Switching Protocols: Máy chủ đang chuyển sang một giao thức khác theo yêu cầu của client.
2. 2xx - Thành công (Success)
Mã này chỉ ra rằng yêu cầu đã được máy chủ tiếp nhận, xử lý thành công. •
200 OK: Yêu cầu đã thành công. •
201 Created: Yêu cầu đã thành công và một tài nguyên mới đã được tạo. •
204 No Content: Yêu cầu đã thành công nhưng không có nội dung nào để trả về. •
206 Partial Content: Máy chủ chỉ gửi một phần tài nguyên do client yêu cầu.
3. 3xx - Chuyển hướng (Redirection)
Mã này chỉ ra rằng client cần thực hiện thêm hành động để hoàn thành yêu cầu, thường là
chuyển hướng đến một URL khác. •
301 Moved Permanently: Tài nguyên đã được chuyển vĩnh viễn đến một URL mới.
Trình duyệt nên sử dụng URL mới này cho các yêu cầu sau. •
302 Found: Tài nguyên tạm thời được tìm thấy ở một URL khác. lOMoAR cPSD| 58504431
304 Not Modified: Tài nguyên chưa được thay đổi kể từ lần yêu cầu cuối cùng, client có
thể sử dụng bản sao đã lưu trong cache.
4. 4xx - Lỗi phía Client (Client Error)
Mã này chỉ ra rằng yêu cầu có vấn đề và client cần phải sửa lỗi. •
400 Bad Request: Yêu cầu không thể hiểu được do cú pháp không hợp lệ. •
401 Unauthorized: Yêu cầu cần xác thực để truy cập. •
403 Forbidden: Máy chủ từ chối cấp quyền truy cập, ngay cả khi client đã xác thực. •
404 Not Found: Tài nguyên được yêu cầu không tồn tại trên máy chủ. •
408 Request Timeout: Máy chủ đã hết thời gian chờ đợi để nhận toàn bộ yêu cầu từ client.
5. 5xx - Lỗi phía Server (Server Error)
Mã này chỉ ra rằng máy chủ gặp sự cố khi xử lý yêu cầu, mặc dù yêu cầu có thể hợp lệ. •
500 Internal Server Error: Lỗi chung chung của máy chủ. •
502 Bad Gateway: Máy chủ hoạt động như một gateway hoặc proxy đã nhận được phản
hồi không hợp lệ từ server upstream. •
503 Service Unavailable: Máy chủ hiện tại không thể xử lý yêu cầu do quá tải hoặc đang bảo trì. •
504 Gateway Timeout: Máy chủ hoạt động như một gateway hoặc proxy đã hết thời gian
chờ đợi phản hồi từ server upstream.
Hành động mô tả request chính là phương thức HTTP (HTTP method), nó xác định hành động
mà client muốn thực hiện trên một tài nguyên. Các phương thức này là một phần quan trọng
trong cấu trúc của một HTTP request.
Dưới đây là các phương thức HTTP phổ biến nhất:
Các Phương Thức HTTP Chính 1. GET lOMoAR cPSD| 58504431 •
Mục đích: Yêu cầu lấy dữ liệu từ một tài nguyên cụ thể trên máy chủ. Đặc điểm:
o An toàn (safe): Không thay đổi trạng thái của server.
o Idempotent: Thực hiện nhiều lần vẫn cho kết quả như một lần. •
Ví dụ: Khi bạn nhập một URL vào trình duyệt và nhấn Enter, trình duyệt sẽ gửi một
request GET để lấy nội dung trang web. 2. POST
Mục đích: Gửi dữ liệu để tạo một tài nguyên mới trên máy chủ. •
Đặc điểm: o Không an toàn (unsafe): Có thể thay đổi trạng thái của server.
o Không idempotent: Gửi nhiều lần có thể tạo ra nhiều tài nguyên khác nhau. •
Ví dụ: Khi bạn điền vào một biểu mẫu đăng ký và nhấn nút "Đăng ký", trình duyệt sẽ gửi
một request POST chứa dữ liệu của bạn đến server. 3. PUT
Mục đích: Cập nhật hoặc thay thế toàn bộ dữ liệu của một tài nguyên hiện có trên máy chủ. •
Đặc điểm: o Không an toàn (unsafe): Thay đổi trạng thái của server.
o Idempotent: Thực hiện nhiều lần vẫn cho kết quả như một lần (tài nguyên sẽ được
thay thế bởi cùng một dữ liệu). •
Ví dụ: Cập nhật thông tin hồ sơ của một người dùng bằng cách gửi toàn bộ dữ liệu hồ sơ mới. 4. DELETE
Mục đích: Yêu cầu xóa một tài nguyên cụ thể trên máy chủ. •
Đặc điểm: o Không an toàn (unsafe): Thay đổi trạng thái của server.
o Idempotent: Xóa nhiều lần một tài nguyên không tồn tại vẫn cho kết quả tương tự. •
Ví dụ: Nhấn vào nút "Xóa" một bài viết trên blog để gửi request DELETE đến server. 5. PATCH
Mục đích: Cập nhật một phần của dữ liệu tài nguyên, không phải toàn bộ. Đặc điểm: lOMoAR cPSD| 58504431
o Không an toàn (unsafe): Thay đổi trạng thái của server.
o Không idempotent: Gửi nhiều lần có thể tạo ra nhiều kết quả khác nhau. •
Ví dụ: Cập nhật tên của một người dùng mà không thay đổi các thông tin khác của họ. 6. HEAD
Mục đích: Yêu cầu lấy các tiêu đề (headers) của một tài nguyên mà không cần lấy phần
thân (body) của phản hồi. •
Đặc điểm: Tương tự như GET nhưng chỉ nhận về tiêu đề. •
Ví dụ: Kiểm tra xem một tệp có tồn tại trên server hay không hoặc lấy các thông tin
metadata mà không cần tải toàn bộ tệp.