1. Trong lập trình mạng, thuật ngữ `blocking socket` có nghĩa là gì?
A. Socket chỉ có thể gửi dữ liệu
B. Socket chỉ có thể nhận dữ liệu
C. Các thao tác socket (ví dụ: recv()) sẽ chặn chương trình cho đến khi hoàn thành
D. Socket không thể kết nối tới máy chủ khác
2. Lỗi `Connection refused` thường xảy ra khi nào trong lập trình socket?
A. Máy khách gửi dữ liệu quá nhanh
B. Máy chủ không lắng nghe trên cổng được yêu cầu
C. Kết nối mạng bị gián đoạn
D. Địa chỉ IP của máy chủ không đúng
3. Socket trong lập trình mạng được hiểu như thế nào?
A. Một loại địa chỉ IP đặc biệt
B. Một điểm cuối giao tiếp mạng
C. Một thiết bị phần cứng mạng
D. Một giao thức truyền dữ liệu
4. Giao thức TCP thuộc tầng nào trong mô hình TCP/IP?
A. Tầng Liên kết
B. Tầng Mạng
C. Tầng Giao vận
D. Tầng Ứng dụng
5. Khi một máy khách (client) muốn kết nối tới máy chủ (server) sử dụng TCP, hàm nào được gọi ở phía máy khách?
A. accept()
B. bind()
C. listen()
D. connect()
6. Trong lập trình socket, hàm `bind()` có chức năng chính là gì?
A. Gửi dữ liệu
B. Nhận dữ liệu
C. Gán địa chỉ IP và số cổng cho socket
D. Tạo một socket mới
7. Giả sử bạn muốn xây dựng một dịch vụ truyền file tin cậy, đảm bảo dữ liệu không bị mất và đến đúng thứ tự. Giao thức nào bạn nên sử dụng?
A. UDP
B. TCP
C. ICMP
D. ARP
8. Trong mô hình client-server, máy chủ (server) thường đóng vai trò gì?
A. Khởi tạo kết nối
B. Yêu cầu dịch vụ
C. Cung cấp dịch vụ và tài nguyên
D. Hiển thị giao diện người dùng
9. Phương thức `listen()` được sử dụng trong lập trình socket phía máy chủ (server) để làm gì?
A. Gửi dữ liệu đến máy khách
B. Chấp nhận kết nối từ máy khách
C. Đóng kết nối socket
D. Lắng nghe các kết nối đến
10. Khái niệm `non-blocking socket` (socket không chặn) có nghĩa là gì?
A. Socket chỉ có thể gửi dữ liệu nhanh
B. Socket chỉ có thể nhận dữ liệu nhanh
C. Các thao tác socket không chặn chương trình, trả về ngay lập tức (có thể báo lỗi nếu chưa sẵn sàng)
D. Socket không thể kết nối tới máy chủ khác
11. Địa chỉ IP phiên bản IPv6 có độ dài bao nhiêu bit?
A. 32 bit
B. 64 bit
C. 128 bit
D. 256 bit
12. Số cổng nào thường được sử dụng cho dịch vụ HTTP (web)?
13. DNS (Domain Name System) có vai trò gì trong mạng?
A. Cấp phát địa chỉ IP
B. Chuyển đổi tên miền thành địa chỉ IP
C. Đảm bảo an ninh mạng
D. Tăng tốc độ truy cập website
14. Để xây dựng một ứng dụng chat trực tuyến thời gian thực, giao thức nào có thể phù hợp hơn: TCP hay UDP?
A. TCP
B. UDP
C. Cả TCP và UDP đều phù hợp như nhau
D. Không giao thức nào phù hợp
15. Trong lập trình socket, khi sử dụng TCP, luồng dữ liệu là:
A. Datagram
B. Byte stream
C. Packet
D. Message
16. NAT (Network Address Translation) được sử dụng để làm gì?
A. Tăng băng thông mạng
B. Chia sẻ một địa chỉ IP công cộng cho nhiều thiết bị trong mạng riêng
C. Mã hóa dữ liệu mạng
D. Phân tích lưu lượng mạng
17. Phương thức `send()` và `recv()` trong socket thường được sử dụng để làm gì?
A. Thiết lập kết nối
B. Đóng kết nối
C. Truyền và nhận dữ liệu
D. Lắng nghe kết nối
18. Ưu điểm chính của việc sử dụng UDP so với TCP trong một số ứng dụng là gì?
A. Đảm bảo dữ liệu đến đúng thứ tự
B. Độ tin cậy cao hơn
C. Tốc độ truyền dữ liệu nhanh hơn
D. Dễ dàng quản lý kết nối hơn
19. Số cổng nào thường được sử dụng cho dịch vụ FTP (truyền file)?
A. 20 và 21
B. 22 và 23
C. 25 và 26
D. 80 và 81
20. Khái niệm `port forwarding` (chuyển tiếp cổng) thường được sử dụng trong ngữ cảnh nào?
A. Tăng tốc độ mạng
B. Vượt qua firewall để truy cập dịch vụ bên trong mạng LAN từ bên ngoài
C. Mã hóa dữ liệu mạng
D. Phân tích lưu lượng mạng
21. Điểm khác biệt chính giữa giao thức TCP và UDP là gì?
A. TCP nhanh hơn UDP
B. TCP hướng kết nối, UDP không kết nối
C. UDP đảm bảo dữ liệu đến đúng thứ tự, TCP thì không
D. UDP sử dụng số cổng ít hơn TCP
22. Mục đích chính của giao thức HTTPS là gì?
A. Tăng tốc độ truyền tải web
B. Mã hóa dữ liệu truyền tải web để bảo mật
C. Nén dữ liệu web
D. Quản lý phiên làm việc web
23. Mô hình OSI (Mô hình tham chiếu hệ thống mở) gồm bao nhiêu tầng?
24. Trong lập trình socket, khi sử dụng UDP, dữ liệu được gửi đi dưới dạng:
A. Byte stream
B. Datagram
C. Packet stream
D. Connection stream
25. SSL/TLS handshake là quá trình gì trong giao thức HTTPS?
A. Truyền tải dữ liệu web
B. Thiết lập kết nối TCP
C. Thỏa thuận khóa mã hóa và xác thực máy chủ
D. Giải mã dữ liệu web
26. Một ứng dụng mạng cần gửi dữ liệu liên tục và yêu cầu độ trễ thấp, nhưng có thể chấp nhận mất một vài gói tin. Giao thức nào phù hợp hơn?
A. TCP
B. UDP
C. Cả TCP và UDP đều phù hợp như nhau
D. Không giao thức nào phù hợp
27. Thư viện `socket` trong Python chủ yếu hỗ trợ lập trình mạng ở tầng nào trong mô hình OSI?
A. Tầng Vật lý
B. Tầng Liên kết dữ liệu
C. Tầng Mạng và Tầng Giao vận
D. Tầng Ứng dụng
28. Trong lập trình mạng, lỗi `Address already in use` thường xảy ra khi nào?
A. Địa chỉ IP không hợp lệ
B. Cổng đã được sử dụng bởi một ứng dụng khác
C. Kết nối mạng bị gián đoạn
D. Máy chủ quá tải
29. Phương thức `shutdown()` trong socket được sử dụng để làm gì?
A. Khởi tạo kết nối
B. Đóng hoàn toàn socket và giải phóng tài nguyên
C. Ngừng một phần quá trình gửi hoặc nhận dữ liệu trên socket
D. Lắng nghe kết nối mới
30. Firewall (tường lửa) trong mạng máy tính có chức năng chính là gì?
A. Tăng tốc độ truyền dữ liệu
B. Ngăn chặn truy cập trái phép vào mạng
C. Mã hóa dữ liệu truyền trên mạng
D. Phân tích lưu lượng mạng