1. Trong lập trình mạng, thuật ngữ `non-blocking I/O` có nghĩa là gì?
A. Hoạt động I/O luôn trả về ngay lập tức, ngay cả khi không có dữ liệu
B. Hoạt động I/O không bao giờ trả về
C. Hoạt động I/O sẽ chặn tiến trình cho đến khi hoàn thành
D. Hoạt động I/O được thực hiện song song
2. Trong lập trình mạng, sự khác biệt chính giữa TCP và UDP là gì?
A. TCP nhanh hơn UDP
B. TCP cung cấp truyền tải đáng tin cậy, có thứ tự, trong khi UDP thì không
C. UDP sử dụng kết nối, trong khi TCP thì không
D. TCP được sử dụng cho các ứng dụng thời gian thực, trong khi UDP thì không
3. Phương pháp nào sau đây được sử dụng để tạo một kết nối an toàn giữa hai mạng riêng qua Internet?
A. Firewall
B. Virtual Private Network (VPN)
C. Proxy server
D. Network Address Translation (NAT)
4. Phương pháp nào sau đây được sử dụng để xác định địa chỉ MAC của một thiết bị mạng từ địa chỉ IP của nó?
A. DNS
B. ARP
C. DHCP
D. ICMP
5. Trong lập trình mạng, thuật ngữ `blocking I/O` có nghĩa là gì?
A. Hoạt động I/O không bao giờ trả về
B. Hoạt động I/O sẽ chặn tiến trình cho đến khi hoàn thành
C. Hoạt động I/O được thực hiện song song
D. Hoạt động I/O không thể bị gián đoạn
6. Phương pháp nào sau đây giúp giảm tải cho máy chủ web bằng cách lưu trữ các bản sao của nội dung tĩnh gần người dùng hơn?
A. Load balancing
B. Caching
C. Content Delivery Network (CDN)
D. Reverse proxy
7. Kỹ thuật nào sau đây được sử dụng để cho phép nhiều dịch vụ mạng chia sẻ cùng một địa chỉ IP công cộng bằng cách sử dụng các cổng khác nhau?
A. Subnetting
B. Port forwarding
C. IP masking
D. Proxy server
8. Kỹ thuật nào sau đây cho phép một ứng dụng mạng xác định xem dữ liệu đã được gửi đến có bị thay đổi trong quá trình truyền hay không?
A. Mã hóa (Encryption)
B. Kiểm tra lỗi (Error checking)
C. Nén dữ liệu (Data compression)
D. Định tuyến (Routing)
9. Trong lập trình mạng, hàm `listen()` được sử dụng để làm gì?
A. Gửi dữ liệu đến một socket
B. Nhận dữ liệu từ một socket
C. Chấp nhận một kết nối đến
D. Bắt đầu lắng nghe các kết nối đến trên một socket
10. Giao thức nào sau đây được sử dụng để quản lý các thiết bị mạng từ xa?
A. Telnet
B. SNMP
C. HTTP
D. FTP
11. Kỹ thuật nào sau đây được sử dụng để che giấu địa chỉ IP thực của một máy chủ hoặc mạng, thường được sử dụng để tăng cường bảo mật?
A. Firewall
B. Network Address Translation (NAT)
C. Virtual Private Network (VPN)
D. Intrusion Detection System (IDS)
12. Phương pháp nào sau đây được sử dụng để cân bằng tải lưu lượng mạng trên nhiều máy chủ?
A. Firewall
B. Load balancer
C. Router
D. Switch
13. Giao thức nào sau đây được sử dụng để truyền tệp giữa máy tính?
A. HTTP
B. SMTP
C. FTP
D. Telnet
14. Trong lập trình mạng, hàm `accept()` được sử dụng để làm gì?
A. Tạo một socket mới
B. Gửi dữ liệu đến một socket
C. Chấp nhận một kết nối đến trên một socket đang lắng nghe
D. Đóng một socket
15. Socket nào được sử dụng cho các giao thức hướng kết nối (connection-oriented protocols) như TCP?
A. Datagram socket
B. Raw socket
C. Stream socket
D. Packet socket
16. Phương pháp nào sau đây giúp bảo vệ mạng khỏi các truy cập trái phép bằng cách kiểm tra lưu lượng mạng đến và đi?
A. Router
B. Firewall
C. Switch
D. Hub
17. Trong lập trình mạng, thuật ngữ `endianness` đề cập đến điều gì?
A. Kích thước của gói tin
B. Thứ tự byte trong một số nguyên
C. Loại socket được sử dụng
D. Phương pháp mã hóa dữ liệu
18. Trong lập trình mạng, thuật ngữ `deadlock` có nghĩa là gì?
A. Một lỗi phần cứng
B. Một tình huống mà hai hoặc nhiều tiến trình đang chờ đợi lẫn nhau để giải phóng tài nguyên
C. Một lỗi trong giao thức mạng
D. Một cuộc tấn công mạng
19. Trong lập trình mạng, hàm `shutdown()` được sử dụng để làm gì?
A. Tắt máy tính
B. Đóng một socket
C. Ngừng truyền hoặc nhận dữ liệu trên một socket
D. Khởi động lại mạng
20. Khái niệm `three-way handshake` liên quan đến giao thức nào?
A. UDP
B. TCP
C. IP
D. HTTP
21. Giao thức nào sau đây được sử dụng để truy vấn thông tin từ máy chủ DNS?
A. HTTP
B. SMTP
C. DNS
D. FTP
22. Trong mô hình OSI, tầng nào chịu trách nhiệm cho việc đảm bảo truyền dữ liệu đáng tin cậy giữa hai hệ thống?
A. Tầng Vật lý (Physical Layer)
B. Tầng Mạng (Network Layer)
C. Tầng Giao vận (Transport Layer)
D. Tầng Phiên (Session Layer)
23. Phương pháp nào sau đây được sử dụng để mã hóa dữ liệu trước khi truyền tải qua mạng?
A. Hashing
B. Encryption
C. Compression
D. Segmentation
24. Phương thức nào sau đây thường được sử dụng để tuần tự hóa (serialize) dữ liệu trong lập trình mạng, đặc biệt là khi làm việc với API RESTful?
A. XML
B. JSON
C. Protocol Buffers
D. YAML
25. Trong lập trình mạng, thuật ngữ `socket` thường được hiểu là gì?
A. Một loại cáp mạng
B. Một giao diện cho phép giao tiếp giữa các tiến trình trên mạng
C. Một thiết bị phần cứng mạng
D. Một giao thức mạng
26. Trong lập trình mạng, kỹ thuật nào cho phép một máy chủ xử lý đồng thời nhiều kết nối từ các client khác nhau?
A. Multithreading/Multiprocessing
B. Blocking I/O
C. Single-threaded processing
D. Serial processing
27. Giao thức nào thường được sử dụng để bảo mật truyền dữ liệu qua HTTP?
A. FTP
B. SSH
C. HTTPS
D. Telnet
28. Trong mô hình TCP/IP, tầng nào chịu trách nhiệm cho việc định tuyến gói tin giữa các mạng khác nhau?
A. Tầng Giao vận (Transport Layer)
B. Tầng Mạng (Network Layer)
C. Tầng Liên kết Dữ liệu (Data Link Layer)
D. Tầng Ứng dụng (Application Layer)
29. Giao thức nào sau đây hoạt động ở tầng ứng dụng và được sử dụng để truyền tải email?
A. TCP
B. IP
C. SMTP
D. HTTP
30. Trong lập trình socket, hàm `bind()` được sử dụng để làm gì?
A. Tạo một socket mới
B. Thiết lập kết nối đến một máy chủ
C. Gán một địa chỉ IP và cổng cho một socket
D. Nghe các kết nối đến