1. Trong lập trình web, WebSocket khác biệt so với HTTP truyền thống như thế nào?
A. WebSocket nhanh hơn HTTP.
B. WebSocket là giao thức không trạng thái, HTTP là giao thức có trạng thái.
C. WebSocket thiết lập kết nối song công (full-duplex) liên tục, cho phép giao tiếp hai chiều liên tục, HTTP là giao tiếp yêu cầu-phản hồi (request-response).
D. HTTP bảo mật hơn WebSocket.
2. Mục đích của việc sử dụng `đa luồng` (multithreading) trong lập trình server là gì?
A. Giảm thiểu rủi ro mất dữ liệu khi truyền qua mạng.
B. Tăng cường bảo mật cho server.
C. Cho phép server xử lý đồng thời nhiều kết nối client, tăng hiệu suất.
D. Đơn giản hóa quá trình lập trình server.
3. Giao thức nào được sử dụng để quản lý thiết bị mạng từ xa?
A. HTTP
B. FTP
C. SNMP
D. TCP
4. Trong lập trình mạng, `Blocking socket` và `Non-blocking socket` khác nhau cơ bản như thế nào?
A. Blocking socket nhanh hơn Non-blocking socket.
B. Blocking socket tự động xử lý lỗi, Non-blocking socket thì không.
C. Blocking socket sẽ tạm dừng chương trình cho đến khi thao tác socket hoàn thành, Non-blocking socket trả về ngay lập tức.
D. Blocking socket chỉ dùng cho server, Non-blocking socket chỉ dùng cho client.
5. Trong lập trình socket, hàm `recv()` (hoặc `receive()`) có chức năng chính là gì?
A. Gửi dữ liệu đi.
B. Nhận dữ liệu đến.
C. Đóng kết nối.
D. Thiết lập kết nối.
6. Khi lập trình socket, lỗi `Address already in use` thường xảy ra khi nào?
A. Client cố gắng kết nối đến một server không tồn tại.
B. Server cố gắng bind socket vào một địa chỉ và cổng đã được sử dụng bởi tiến trình khác.
C. Do tường lửa chặn kết nối.
D. Do cáp mạng bị lỗi.
7. Trong lập trình mạng, thuật ngữ `Little-Endian` và `Big-Endian` liên quan đến điều gì?
A. Thứ tự bit trong một byte.
B. Thứ tự byte trong biểu diễn số nguyên đa byte.
C. Kích thước tối đa của gói tin mạng.
D. Tốc độ truyền dữ liệu.
8. Khái niệm `Keep-Alive` trong giao thức HTTP có mục đích gì?
A. Tăng tốc độ tải trang web.
B. Giảm số lượng kết nối TCP cần thiết cho việc tải trang web.
C. Mã hóa dữ liệu HTTP.
D. Kiểm soát lỗi truyền dữ liệu HTTP.
9. Phương thức `bind()` trong lập trình socket server được sử dụng để làm gì?
A. Chấp nhận kết nối từ client.
B. Đóng kết nối socket.
C. Gán địa chỉ IP và số cổng cho socket.
D. Gửi dữ liệu đến client.
10. Trong lập trình mạng, thuật ngữ `Port` (cổng) dùng để chỉ điều gì?
A. Địa chỉ vật lý của card mạng.
B. Số hiệu định danh cho một tiến trình hoặc dịch vụ mạng trên một máy chủ.
C. Giao thức truyền dữ liệu giữa các máy tính.
D. Tốc độ truyền dữ liệu tối đa của kết nối mạng.
11. Trong lập trình mạng, `Multicast` là gì?
A. Phương thức truyền dữ liệu từ một nguồn đến tất cả các thiết bị trong mạng.
B. Phương thức truyền dữ liệu bảo mật cao.
C. Phương thức truyền dữ liệu từ một nguồn đến một nhóm các thiết bị đã đăng ký nhận.
D. Phương thức truyền dữ liệu nhanh nhất trong mạng.
12. Sự khác biệt chính giữa `TCP Handshake` 3 bước và 4 bước (trong đóng kết nối TCP) là gì?
A. 3 bước nhanh hơn 4 bước.
B. 3 bước bảo mật hơn 4 bước.
C. 3 bước dùng để thiết lập kết nối, 4 bước dùng để đóng kết nối.
D. Không có sự khác biệt về số bước, chỉ là tên gọi khác nhau.
13. Phương thức `connect()` trong lập trình socket client có chức năng gì?
A. Lắng nghe kết nối từ server.
B. Gửi dữ liệu đến server.
C. Thiết lập kết nối đến server.
D. Đóng kết nối socket.
14. DNS (Domain Name System) có vai trò gì trong mạng Internet?
A. Mã hóa dữ liệu truyền trên Internet.
B. Phân giải tên miền (ví dụ: google.com) thành địa chỉ IP.
C. Quản lý kết nối mạng không dây.
D. Kiểm soát luồng dữ liệu trên mạng.
15. Giao thức UDP khác biệt so với TCP chủ yếu ở điểm nào?
A. UDP cung cấp cơ chế bảo mật dữ liệu mạnh mẽ hơn TCP.
B. UDP đảm bảo dữ liệu được truyền đến đích theo đúng thứ tự, không như TCP.
C. UDP là giao thức hướng kết nối, trong khi TCP là giao thức không kết nối.
D. UDP là giao thức không kết nối và không đảm bảo độ tin cậy, tốc độ truyền nhanh hơn TCP.
16. 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 mạng.
B. Ngăn chặn truy cập trái phép vào hoặc ra khỏi mạng.
C. Phân giải tên miền thành địa chỉ IP.
D. Cấp phát địa chỉ IP cho các thiết bị trong mạng.
17. Giao thức nào thường được sử dụng để truyền file qua mạng?
A. HTTP
B. SMTP
C. FTP
D. DNS
18. SSH (Secure Shell) được sử dụng để làm gì?
A. Truyền file nhanh chóng.
B. Truy cập và quản lý máy tính từ xa một cách an toàn.
C. Phân giải tên miền.
D. Kiểm tra tốc độ mạng.
19. Khái niệm `Serialization` trong lập trình mạng dùng để chỉ quá trình nào?
A. Mã hóa dữ liệu để bảo mật.
B. Chuyển đổi dữ liệu từ cấu trúc phức tạp sang dạng byte stream để truyền qua mạng.
C. Nén dữ liệu để giảm kích thước truyền tải.
D. Phân tích dữ liệu nhận được từ mạng.
20. Giao thức nào thường được sử dụng để gửi email?
A. HTTP
B. FTP
C. SMTP
D. TCP
21. Mục đích chính của giao thức TCP Congestion Control (Kiểm soát tắc nghẽn TCP) là gì?
A. Tăng tốc độ truyền dữ liệu tối đa.
B. Đảm bảo dữ liệu được truyền đến đích theo đúng thứ tự.
C. Ngăn chặn tình trạng tắc nghẽn mạng bằng cách điều chỉnh tốc độ truyền.
D. Mã hóa dữ liệu để bảo mật.
22. Phương thức `listen()` trong lập trình socket server có chức năng chính là gì?
A. Gửi dữ liệu đến client.
B. Chấp nhận kết nối từ client.
C. Nghe (lắng nghe) các kết nối đến từ client.
D. Đóng kết nối socket.
23. Sự khác biệt chính giữa giao thức HTTP và HTTPS là gì?
A. HTTPS nhanh hơn HTTP.
B. HTTPS sử dụng cổng 80, còn HTTP sử dụng cổng 443.
C. HTTPS cung cấp mã hóa và bảo mật dữ liệu, HTTP thì không.
D. HTTP được sử dụng cho web, còn HTTPS dùng cho email.
24. Trong ngữ cảnh lập trình mạng, `Endpoint` (điểm cuối) thường được dùng để chỉ điều gì?
A. Thiết bị mạng đầu cuối (ví dụ: máy tính, điện thoại).
B. Một địa chỉ IP duy nhất.
C. Sự kết hợp của địa chỉ IP và số cổng, xác định một tiến trình mạng cụ thể trên một máy tính.
D. Điểm kết thúc của một cáp mạng.
25. Trong mô hình OSI, tầng nào chịu trách nhiệm chính cho việc đảm bảo dữ liệu được truyền đi một cách đáng tin cậy giữa hai hệ thống đầu cuối, bao gồm việc kiểm soát lỗi và kiểm soát luồng?
A. Tầng Mạng (Network Layer)
B. Tầng Giao vận (Transport Layer)
C. Tầng Liên kết Dữ liệu (Data Link Layer)
D. Tầng Vật lý (Physical Layer)
26. Khi lập trình socket, phương thức `accept()` được sử dụng ở phía server để làm gì?
A. Gửi dữ liệu phản hồi cho client.
B. Tạo một socket mới để giao tiếp với client vừa kết nối.
C. Đóng kết nối với client.
D. Lắng nghe kết nối từ client.
27. Trong mô hình TCP/IP, tầng nào tương ứng với tầng Network của mô hình OSI?
A. Tầng Ứng dụng (Application Layer)
B. Tầng Giao vận (Transport Layer)
C. Tầng Internet (Internet Layer)
D. Tầng Liên kết (Link Layer)
28. Socket trong lập trình mạng được hiểu là gì?
A. Một loại địa chỉ IP đặc biệt dành cho các ứng dụng mạng.
B. Một giao thức truyền dữ liệu nhanh chóng và không tin cậy.
C. Điểm cuối giao tiếp mạng, cho phép ứng dụng gửi và nhận dữ liệu qua mạng.
D. Một thiết bị phần cứng dùng để kết nối máy tính vào mạng.
29. NAT (Network Address Translation) có vai trò gì trong mạng?
A. Tăng cường bảo mật bằng cách mã hóa địa chỉ IP.
B. Cho phép nhiều thiết bị trong mạng LAN sử dụng chung một địa chỉ IP công cộng để truy cập Internet.
C. Phân giải tên miền thành địa chỉ IP.
D. Kiểm soát luồng dữ liệu giữa các mạng.
30. Giao thức nào thường được sử dụng cho streaming video (truyền video trực tuyến)?
A. FTP
B. SMTP
C. RTP
D. HTTP (truyền tải tuần tự)