1. Port nào sau đây thường được sử dụng cho dịch vụ HTTP?
2. Giao thức nào sau đây hoạt động ở tầng Ứng dụng (Application Layer) trong mô hình TCP/IP và được sử dụng để truyền tải email?
A. TCP
B. IP
C. SMTP
D. UDP
3. Giao thức nào sau đây KHÔNG phải là giao thức tầng Ứng dụng?
A. HTTP
B. FTP
C. TCP
D. SMTP
4. Trong mô hình OSI, tầng nào chịu trách nhiệm cho việc đảm bảo dữ liệu đến đích một cách tin cậy và theo đúng thứ tự?
A. Tầng Vật lý (Physical Layer)
B. Tầng Liên kết Dữ liệu (Data Link Layer)
C. Tầng Mạng (Network Layer)
D. Tầng Giao vận (Transport Layer)
5. Địa chỉ IP `192.168.1.100` thuộc lớp mạng nào?
A. Lớp A
B. Lớp B
C. Lớp C
D. Lớp D
6. Khi một client gửi yêu cầu HTTP GET đến server, phương thức GET được sử dụng để làm gì?
A. Gửi dữ liệu lên server
B. Yêu cầu server trả về tài nguyên được chỉ định
C. Cập nhật dữ liệu trên server
D. Xóa dữ liệu trên server
7. Trong lập trình mạng, `port scanning` được sử dụng để làm gì?
A. Tăng tốc độ mạng
B. Tìm kiếm các port đang mở trên một máy chủ
C. Mã hóa dữ liệu trên mạng
D. Kiểm tra kết nối mạng
8. Mục đích chính của việc sử dụng `đa luồng` (multithreading) trong lập trình mạng server là gì?
A. Tăng cường bảo mật
B. Xử lý đồng thời nhiều kết nối client
C. Giảm độ trễ mạng
D. Đơn giản hóa code
9. Khi lập trình socket, sự khác biệt chính giữa TCP và UDP là gì?
A. TCP nhanh hơn UDP
B. TCP hướng kết nối, tin cậy; UDP không kết nối, không tin cậy
C. UDP sử dụng port 80, TCP sử dụng port 21
D. TCP chỉ dùng cho truyền text, UDP cho multimedia
10. Trong lập trình mạng, thuật ngữ `Network Address Translation` (NAT) dùng để chỉ kỹ thuật nào?
A. Phân tích địa chỉ mạng
B. Dịch địa chỉ IP
C. Mã hóa địa chỉ mạng
D. Gán địa chỉ mạng tự động
11. Socket `raw socket` thường được sử dụng cho mục đích nào?
A. Truyền dữ liệu HTTP
B. Truyền file FTP
C. Phát triển các công cụ mạng cấp thấp (ví dụ: ping, traceroute)
D. Truyền video trực tuyến
12. Trong mô hình TCP/IP, tầng nào tương ứng với tầng Mạng (Network Layer) của mô hình OSI?
A. Tầng Liên kết (Link Layer)
B. Tầng Internet (Internet Layer)
C. Tầng Giao vận (Transport Layer)
D. Tầng Ứng dụng (Application Layer)
13. Giao thức UDP (User Datagram Protocol) thường được sử dụng trong trường hợp nào sau đây?
A. Truyền tải email
B. Duyệt web (HTTP)
C. Truyền video trực tuyến và game online
D. Truyền file lớn (FTP)
14. Nguyên tắc `client-server` mô tả mô hình giao tiếp nào?
A. Mạng ngang hàng (peer-to-peer)
B. Mạng quảng bá (broadcast)
C. Mạng điểm-đa điểm (point-to-multipoint)
D. Mô hình yêu cầu-phản hồi (request-response)
15. Kỹ thuật `load balancing` (cân bằng tải) trong mạng được sử dụng để làm gì?
A. Tăng cường bảo mật mạng
B. Phân phối tải công việc đến nhiều server
C. Nén dữ liệu truyền trên mạng
D. Mã hóa dữ liệu mạng
16. Giao thức nào sau đây được sử dụng để truyền file giữa client và server?
A. HTTP
B. SMTP
C. FTP
D. DNS
17. Chức năng chính của giao thức DNS (Domain Name System) là gì?
A. Gán địa chỉ IP cho thiết bị
B. Chuyển đổi tên miền thành địa chỉ IP
C. Định tuyến gói tin trên mạng
D. Kiểm soát luồng dữ liệu
18. Trong lập trình socket, hàm `bind()` được sử dụng để làm gì?
A. Thiết lập kết nối đến server
B. Gửi dữ liệu đi
C. Gán địa chỉ IP và port cho socket
D. Nghe kết nối từ client
19. Trong lập trình mạng, `ephemeral port` là gì?
A. Port cố định cho các dịch vụ hệ thống
B. Port động được cấp phát tạm thời cho client
C. Port dành riêng cho giao thức UDP
D. Port dùng để mã hóa dữ liệu
20. Trong lập trình mạng, `blocking socket` có đặc điểm gì?
A. Thực hiện các thao tác không đồng bộ
B. Chương trình tiếp tục thực thi ngay sau khi gọi hàm socket
C. Chương trình bị tạm dừng cho đến khi thao tác socket hoàn thành
D. Không thể nhận dữ liệu
21. Mục đích của việc sử dụng `checksum` trong giao thức truyền dữ liệu là gì?
A. Tăng tốc độ truyền dữ liệu
B. Kiểm tra lỗi dữ liệu trong quá trình truyền
C. Mã hóa dữ liệu
D. Nén dữ liệu
22. Phương thức HTTP POST thường được sử dụng khi nào?
A. Yêu cầu tải trang web
B. Gửi dữ liệu biểu mẫu (form data) lên server
C. Xóa dữ liệu trên server
D. Cập nhật tài nguyên hiện có trên server
23. Socket nào sau đây cung cấp kết nối hướng kết nối, tin cậy và theo thứ tự?
A. Datagram socket
B. Raw socket
C. Stream socket
D. Packet socket
24. Phương thức giao tiếp nào sau đây là `song công` (full-duplex)?
A. Simplex
B. Half-duplex
C. Full-duplex
D. Uni-duplex
25. Khi lập trình socket, hàm `accept()` trả về giá trị gì?
A. Socket server gốc
B. Socket client đã kết nối
C. Số byte đã nhận
D. Mã lỗi
26. Trong lập trình mạng, `socket timeout` được sử dụng để làm gì?
A. Tăng tốc độ truyền dữ liệu
B. Đặt thời gian chờ tối đa cho một thao tác socket
C. Kiểm tra lỗi kết nối
D. Mã hóa dữ liệu socket
27. Phương thức nào sau đây thường được sử dụng để mã hóa dữ liệu truyền trên mạng nhằm bảo mật thông tin?
A. Nén dữ liệu (Data compression)
B. Phân mảnh dữ liệu (Data fragmentation)
C. Mã hóa dữ liệu (Data encryption)
D. Kiểm tra lỗi (Error checking)
28. Khi lập trình socket, lỗi `connection refused` thường xảy ra khi nào?
A. Client gửi dữ liệu quá nhanh
B. Server không lắng nghe trên port được yêu cầu
C. Đường truyền mạng bị gián đoạn
D. Địa chỉ IP của server không tồn tại
29. Hàm `listen()` trong lập trình socket server có chức năng gì?
A. Gửi dữ liệu đến client
B. Chấp nhận kết nối từ client
C. Bắt đầu lắng nghe kết nối đến
D. Đóng kết nối
30. Khi sử dụng giao thức TCP, quá trình `bắt tay ba bước` (three-way handshake) được sử dụng để làm gì?
A. Mã hóa dữ liệu
B. Thiết lập kết nối
C. Giải phóng kết nối
D. Kiểm soát lỗi