1. Trong lập trình mạng, giao thức TCP đảm bảo điều gì về dữ liệu được truyền?
A. Dữ liệu đến đích theo bất kỳ thứ tự nào.
B. Dữ liệu có thể bị mất hoặc trùng lặp.
C. Dữ liệu đến đích một cách đáng tin cậy và theo đúng thứ tự.
D. Dữ liệu chỉ được truyền một chiều.
2. Trong lập trình socket, hàm `listen()` được sử dụng cho socket loại nào?
A. Client socket
B. Server socket
C. Cả client và server socket
D. Datagram socket
3. Phương thức giao tiếp 'không trạng thái′ (stateless) thường được sử dụng trong giao thức nào?
A. TCP
B. HTTP
C. FTP
D. SMTP
4. Port number trong địa chỉ mạng được sử dụng để làm gì?
A. Xác định địa chỉ vật lý của thiết bị.
B. Xác định giao thức mạng đang sử dụng.
C. Xác định ứng dụng hoặc dịch vụ cụ thể trên máy chủ mà dữ liệu được gửi đến.
D. Mã hóa dữ liệu truyền qua mạng.
5. Giao thức nào sau đây được sử dụng để truyền tải file?
A. HTTP
B. SMTP
C. FTP
D. DNS
6. Trong mô hình client-server, ai là người khởi tạo kết nối?
A. Server
B. Client
C. Cả client và server đồng thời
D. Router
7. Phương pháp 'multiplexing′ trong giao thức tầng vận tải (transport layer) có nghĩa là gì?
A. Mã hóa dữ liệu từ nhiều nguồn khác nhau.
B. Gộp dữ liệu từ nhiều ứng dụng khác nhau trên cùng một máy chủ để gửi đi qua một kết nối mạng.
C. Chia nhỏ dữ liệu lớn thành các gói nhỏ hơn.
D. Tăng cường độ tin cậy của kết nối.
8. Điểm khác biệt chính giữa giao thức TCP và UDP trong việc xử lý gói tin bị mất là gì?
A. TCP bỏ qua gói tin bị mất, UDP gửi lại gói tin bị mất.
B. UDP bỏ qua gói tin bị mất, TCP gửi lại gói tin bị mất.
C. Cả TCP và UDP đều gửi lại gói tin bị mất.
D. Cả TCP và UDP đều bỏ qua gói tin bị mất.
9. Trong lập trình mạng, 'race condition′ có thể xảy ra khi nào?
A. Khi sử dụng giao thức UDP.
B. Khi nhiều luồng hoặc tiến trình truy cập và sửa đổi dữ liệu dùng chung đồng thời mà không có cơ chế đồng bộ hóa.
C. Khi kết nối mạng bị nghẽn.
D. Khi sử dụng giao thức HTTP.
10. Trong mô hình OSI, 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 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)
11. Khái niệm 'đa luồng′ (multithreading) trong lập trình mạng giúp cải thiện điều gì?
A. Độ tin cậy của kết nối.
B. Hiệu suất và khả năng đáp ứng của server khi xử lý nhiều kết nối đồng thời.
C. Bảo mật dữ liệu truyền tải.
D. Kích thước gói tin tối đa.
12. Proxy server hoạt động như thế nào trong mạng?
A. Tăng cường bảo mật bằng cách mã hóa toàn bộ lưu lượng mạng.
B. Hoạt động như một trung gian giữa client và server, nhận yêu cầu từ client và chuyển tiếp đến server, và ngược lại.
C. Cân bằng tải cho server.
D. Cấp phát địa chỉ IP động.
13. Trong lập trình mạng, 'blocking socket′ khác với 'non-blocking socket′ như thế nào?
A. Blocking socket nhanh hơn non-blocking socket.
B. Blocking socket sẽ tạm dừng thực thi chương trình cho đến khi thao tác socket hoàn tất, trong khi non-blocking socket không chờ.
C. Blocking socket chỉ dùng cho UDP, non-blocking socket chỉ dùng cho TCP.
D. Không có sự khác biệt, hai khái niệm này là như nhau.
14. Firewall trong hệ thống mạng có vai trò gì?
A. Tăng tốc độ truyền dữ liệu.
B. Bảo vệ mạng khỏi truy cập trái phép bằng cách kiểm soát lưu lượng mạng dựa trên các quy tắc.
C. Chuyển đổi địa chỉ IP (NAT).
D. Cấp phát địa chỉ IP động (DHCP).
15. Nguyên nhân chính gây ra 'congestion′ (nghẽn mạng) trong mạng là gì?
A. Lỗi phần cứng mạng.
B. Quá nhiều dữ liệu được gửi đi trong mạng so với khả năng xử lý của các thiết bị mạng.
C. Tấn công từ chối dịch vụ (DoS).
D. Virus máy tính.
16. Phương pháp 'polling′ trong lập trình mạng dùng để làm gì?
A. Tăng tốc độ truyền dữ liệu.
B. Liên tục kiểm tra trạng thái của socket hoặc tài nguyên mạng để xem có dữ liệu mới hoặc sự kiện xảy ra hay không.
C. Mã hóa dữ liệu.
D. Nén dữ liệu.
17. Phương thức nào thường được sử dụng để mã hóa dữ liệu trong truyền thông mạng an toàn?
A. Telnet
B. FTP
C. SSL∕TLS
D. Ping
18. Khái niệm 'serialization′ trong lập trình mạng dùng để làm gì?
A. Mã hóa dữ liệu trước khi truyền.
B. Chuyển đổi đối tượng dữ liệu thành một chuỗi byte để truyền qua mạng hoặc lưu trữ.
C. Nén dữ liệu để giảm kích thước.
D. Phân mảnh dữ liệu thành các gói nhỏ hơn.
19. DNS (Domain Name System) có chức năng chính là gì?
A. Cấp phát địa chỉ IP.
B. Chuyển đổi tên miền sang địa chỉ IP và ngược lại.
C. Định tuyến gói tin trên mạng.
D. Kiểm soát luồng dữ liệu.
20. Ưu điểm của việc sử dụng JSON (JavaScript Object Notation) làm định dạng dữ liệu trong truyền thông mạng là gì?
A. Tốc độ truyền dữ liệu cao nhất.
B. Dễ đọc, dễ phân tích cú pháp (parse) bởi cả con người và máy móc, và được hỗ trợ rộng rãi trong nhiều ngôn ngữ lập trình.
C. Bảo mật dữ liệu tốt nhất.
D. Kích thước dữ liệu nhỏ nhất.
21. Giao thức nào sau đây thường được sử dụng để gửi email?
A. HTTP
B. FTP
C. SMTP
D. DNS
22. Websocket là giao thức giao tiếp như thế nào?
A. Giao thức một chiều (one-way).
B. Giao thức không trạng thái (stateless).
C. Giao thức song công toàn thời gian (full-duplex) cho phép giao tiếp hai chiều liên tục giữa client và server.
D. Giao thức chỉ dành cho truyền tải file.
23. Khái niệm 'keep-alive′ trong kết nối TCP có mục đích gì?
A. Tăng tốc độ truyền dữ liệu.
B. Duy trì kết nối TCP hoạt động bằng cách định kỳ gửi các gói tin nhỏ để kiểm tra trạng thái kết nối.
C. Mã hóa dữ liệu truyền tải.
D. Ngăn chặn nghẽn mạng.
24. Ưu điểm chính của việc sử dụng UDP so với TCP trong lập trình mạng là gì?
A. Đảm bảo độ tin cậy cao hơn.
B. Tốc độ truyền dữ liệu nhanh hơn do không có cơ chế thiết lập kết nối và xác nhận.
C. Khả năng kiểm soát lỗi tốt hơn.
D. Bảo mật dữ liệu cao hơn.
25. Socket trong lập trình mạng đóng vai trò là gì?
A. Một ngôn ngữ lập trình mạng.
B. Một giao thức truyền dữ liệu.
C. Điểm cuối của một kết nối mạng, cho phép ứng dụng gửi và nhận dữ liệu.
D. Một loại tường lửa mạng.
26. Đị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
27. NAT (Network Address Translation) giải quyết vấn đề gì trong mạng?
A. Tăng băng thông mạng.
B. Cạn kiệt địa chỉ IPv4 công cộng bằng cách cho phép nhiều thiết bị trong mạng LAN dùng chung một địa chỉ IP công cộng.
C. Đảm bảo chất lượng dịch vụ (QoS).
D. Mã hóa dữ liệu mạng.
28. Giao thức nào sau đây thường được sử dụng cho truyền video trực tuyến (video streaming)?
A. FTP
B. SMTP
C. RTP∕RTCP
D. Telnet
29. Khái niệm 'backpressure′ trong lập trình mạng liên quan đến vấn đề gì?
A. Mã hóa dữ liệu.
B. Điều khiển luồng dữ liệu khi bên gửi gửi dữ liệu nhanh hơn khả năng xử lý của bên nhận, để tránh quá tải cho bên nhận.
C. Phát hiện và sửa lỗi dữ liệu.
D. Định tuyến gói tin.
30. 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 giao thức UDP.
B. Khi nhiều luồng hoặc tiến trình chờ đợi lẫn nhau để giải phóng tài nguyên mà không ai chịu giải phóng trước.
C. Khi kết nối mạng bị nghẽn.
D. Khi sử dụng giao thức HTTP không an toàn.