1. Khái niệm `congestion control` trong TCP nhằm mục đích gì?
A. Tăng tốc độ truyền dữ liệu tối đa
B. Đảm bảo dữ liệu đến đúng thứ tự
C. Ngăn chặn tình trạng nghẽn mạng bằng cách điều chỉnh tốc độ gửi dữ liệu
D. Mã hóa dữ liệu để bảo mật
2. Phương thức `blocking socket` và `non-blocking socket` khác nhau chủ yếu ở điểm nào?
A. Tốc độ truyền dữ liệu
B. Cách xử lý khi không có dữ liệu sẵn sàng để đọc hoặc gửi
C. Loại giao thức mạng sử dụng
D. Mức độ bảo mật
3. 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 với server
B. Gửi dữ liệu qua socket
C. Gán địa chỉ IP và port number cho socket
D. Đóng kết nối socket
4. Trong lập trình mạng, thuật ngữ `Network Address Translation (NAT)` dùng để chỉ điều gì?
A. Mã hóa địa chỉ IP
B. Chuyển đổi địa chỉ IP riêng thành địa chỉ IP công cộng và ngược lại
C. Phân tích lưu lượng mạng
D. Tăng cường bảo mật mạng
5. Mô hình `publish-subscribe` trong lập trình mạng được sử dụng cho loại ứng dụng nào?
A. Truyền file lớn
B. Video streaming
C. Ứng dụng thời gian thực, đa người dùng, ví dụ chat room hoặc cập nhật tin tức
D. Truy cập website thông thường
6. Firewall trong mạng máy tính có vai trò chính là gì?
A. Tăng tốc độ mạng
B. Chia sẻ kết nối Internet
C. Kiểm soát và ngăn chặn truy cập trái phép vào hoặc ra khỏi mạng
D. Tự động cập nhật phần mềm
7. SSL/TLS được sử dụng để cung cấp bảo mật cho giao thức nào?
A. UDP
B. IP
C. HTTP
D. DNS
8. Port number trong giao tiếp mạng được sử dụng để làm gì?
A. Xác định địa chỉ IP của máy tính
B. Xác định ứng dụng hoặc dịch vụ cụ thể trên một máy tính
C. Tăng tốc độ truyền dữ liệu
D. Mã hóa dữ liệu truyền đi
9. Phương pháp nào sau đây giúp giảm thiểu rủi ro tấn công `SYN flood`?
A. Sử dụng giao thức UDP thay vì TCP
B. Tăng băng thông mạng
C. SYN cookies, giới hạn số lượng kết nối bán mở, firewall
D. Mã hóa toàn bộ lưu lượng mạng
10. Trong mô hình client-server, server đóng vai trò gì?
A. Yêu cầu dịch vụ từ client
B. Cung cấp dịch vụ và tài nguyên cho client
C. Chỉ đóng vai trò trung gian truyền dữ liệu
D. Kiểm soát toàn bộ mạng
11. Socket trong lập trình mạng được hiểu là gì?
A. Một loại dây cáp mạng đặc biệt
B. Một giao diện lập trình ứng dụng cho phép các chương trình giao tiếp với nhau qua mạng
C. Một thiết bị phần cứng dùng để kết nối mạng
D. Một giao thức mạng mới
12. Điểm khác biệt chính giữa `iterative server` và `concurrent server` là gì?
A. Iterative server nhanh hơn concurrent server
B. Iterative server xử lý đồng thời nhiều client, concurrent server thì không
C. Iterative server xử lý từng client một tuần tự, concurrent server có thể xử lý đồng thời
D. Concurrent server dễ lập trình hơn iterative server
13. Đị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
14. Trong lập trình mạng, `deadlock` có thể xảy ra trong tình huống nào?
A. Khi sử dụng UDP socket
B. Khi server chỉ có một luồng xử lý
C. Khi nhiều luồng cùng truy cập tài nguyên chia sẻ và chờ đợi lẫn nhau
D. Khi sử dụng non-blocking socket
15. Địa chỉ `127.0.0.1` thường được gọi là gì và dùng để làm gì?
A. Địa chỉ broadcast, gửi tin nhắn đến tất cả các máy trong mạng
B. Địa chỉ loopback, dùng để kiểm tra kết nối mạng cục bộ trên máy
C. Địa chỉ gateway, dùng để kết nối với mạng bên ngoài
D. Địa chỉ DNS server, dùng để phân giải tên miền
16. Giao thức TCP đảm bảo độ tin cậy truyền dữ liệu bằng cách nào?
A. Sử dụng UDP để truyền nhanh hơn
B. Phân chia dữ liệu thành các gói nhỏ và gửi liên tục không kiểm tra
C. Sử dụng cơ chế bắt tay ba bước, số thứ tự và ACK để đảm bảo dữ liệu đến đúng thứ tự và không bị mất mát
D. Không có cơ chế đảm bảo độ tin cậy, TCP chỉ tập trung vào tốc độ
17. Giao thức nào thường được sử dụng để gửi email?
A. HTTP
B. FTP
C. SMTP
D. DNS
18. Trong lập trình mạng, `serialization` dữ liệu có nghĩa là gì?
A. Mã hóa dữ liệu
B. Chuyển đổi dữ liệu phức tạp thành định dạng byte stream để truyền qua mạng
C. Nén dữ liệu
D. Phân chia dữ liệu thành các gói nhỏ
19. Trong lập trình mạng, `ephemeral port` là gì?
A. Port cố định được gán cho các dịch vụ server phổ biến
B. Port tạm thời được hệ điều hành gán cho client khi thiết lập kết nối
C. Port dùng cho giao thức UDP
D. Port dùng cho giao thức TCP
20. DNS (Domain Name System) có chức năng chính là gì?
A. Phân phối địa chỉ IP động
B. Chuyển đổi tên miền thành địa chỉ IP và ngược lại
C. Đảm bảo an ninh mạng
D. Tăng tốc độ truy cập website
21. FTP (File Transfer Protocol) sử dụng mấy kết nối TCP để truyền dữ liệu và điều khiển?
A. Một kết nối duy nhất cho cả dữ liệu và điều khiển
B. Hai kết nối: một cho điều khiển (port 21) và một cho dữ liệu (port 20)
C. Ba kết nối: một cho điều khiển, một cho dữ liệu, và một cho báo lỗi
D. Tùy thuộc vào cấu hình, có thể một hoặc hai kết nối
22. Công cụ `Wireshark` được sử dụng để làm gì trong mạng máy tính?
A. Tạo ra mạng ảo
B. Mô phỏng lưu lượng mạng
C. Phân tích gói tin mạng (packet sniffing)
D. Tăng tốc độ mạng
23. Ưu điểm chính của giao thức UDP so với TCP là gì?
A. Độ tin cậy cao hơn
B. Tốc độ truyền dữ liệu nhanh hơn
C. Đảm bảo dữ liệu đến đúng thứ tự
D. Khả năng kiểm soát lỗi tốt hơn
24. Mục đích chính của việc sử dụng `đa luồng` (multithreading) trong lập trình server là gì?
A. Giảm độ trễ mạng
B. Tăng cường bảo mật
C. Xử lý đồng thời nhiều kết nối từ client
D. Đơn giản hóa code server
25. Giao thức HTTP hoạt động ở tầng nào trong mô hình TCP/IP?
A. Tầng Mạng
B. Tầng Giao vận
C. Tầng Ứng dụng
D. Tầng Liên kết Dữ liệu
26. Thư viện `select` hoặc `poll` trong lập trình socket được sử dụng để giải quyết vấn đề gì?
A. Mã hóa dữ liệu
B. Tăng tốc độ truyền dữ liệu
C. Quản lý đồng thời nhiều kết nối socket (I/O multiplexing)
D. Xử lý lỗi mạng
27. Sự khác biệt chính giữa `TCP socket` và `UDP socket` là gì trong lập trình?
A. TCP socket nhanh hơn UDP socket
B. TCP socket đảm bảo độ tin cậy và thứ tự, UDP socket thì không
C. UDP socket sử dụng địa chỉ IP, TCP socket thì không
D. TCP socket dễ lập trình hơn UDP socket
28. Trong ngữ cảnh bảo mật mạng, `man-in-the-middle attack` là loại tấn công nào?
A. Tấn công từ chối dịch vụ (DoS)
B. Tấn công giả mạo địa chỉ IP
C. Kẻ tấn công bí mật nghe lén và có thể sửa đổi giao tiếp giữa hai bên
D. Tấn công bằng cách gửi quá nhiều yêu cầu
29. Trong mô hình OSI, tầng nào chịu trách nhiệm chính cho việc định tuyến dữ liệu giữa các mạng khác nhau?
A. Tầng Vật lý
B. Tầng Liên kết Dữ liệu
C. Tầng Mạng
D. Tầng Giao vận
30. Phương thức giao tiếp `connectionless` được sử dụng bởi giao thức nào?
A. TCP
B. HTTP
C. UDP
D. FTP