1. Phương thức nào sau đây thường được sử dụng để mã hóa dữ liệu trong lập trình mạng nhằm bảo vệ thông tin nhạy cảm?
A. Checksum.
B. Hashing.
C. Encryption (Mã hóa).
D. Compression (Nén).
2. Trong lập trình mạng, giao thức TCP (Transmission Control Protocol) đảm bảo độ tin cậy truyền dữ liệu bằng cách sử dụng cơ chế nào?
A. Quảng bá dữ liệu (Broadcasting)
B. Truyền lại gói tin bị mất (Retransmission)
C. Mã hóa dữ liệu đầu cuối (End-to-end encryption)
D. Đa đường dẫn (Multipath routing)
3. Phương thức `accept()` trong lập trình socket server trả về giá trị gì khi có một kết nối mới được chấp nhận?
A. Địa chỉ IP của client.
B. Port của server.
C. Một socket mới dùng để giao tiếp với client.
D. Số byte đã nhận được.
4. Khái niệm '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 độ tin cậy của kết nối mạng.
5. Giao thức FTP (File Transfer Protocol) chủ yếu được sử dụng cho mục đích gì?
A. Truy cập trang web.
B. Gửi và nhận email.
C. Truyền tải tập tin giữa máy tính.
D. Phân giải tên miền.
6. Điểm khác biệt chính giữa giao thức TCP và UDP trong việc xử lý lỗi là gì?
A. TCP tự động sửa lỗi, UDP thì không.
B. UDP báo cáo lỗi, TCP thì không.
C. TCP cung cấp cơ chế phát hiện và truyền lại gói lỗi, UDP không có cơ chế này.
D. Cả TCP và UDP đều không xử lý lỗi.
7. Trong mô hình OSI, tầng Transport (Tầng Giao vận) chịu trách nhiệm chính cho chức năng nào?
A. Định tuyến dữ liệu giữa các mạng khác nhau.
B. Đảm bảo truyền dữ liệu tin cậy giữa hai ứng dụng đầu cuối.
C. Xác định địa chỉ vật lý của thiết bị.
D. Đóng gói dữ liệu vào khung (frame).
8. Phương thức `listen()` được sử dụng trong lập trình socket phía máy chủ có chức năng gì?
A. Gửi dữ liệu đến máy khách.
B. Đóng kết nối socket.
C. Chờ đợi kết nối đến từ máy khách.
D. Thiết lập địa chỉ IP cho socket.
9. Giao thức HTTP (Hypertext Transfer Protocol) hoạt động ở tầng nào trong mô hình OSI?
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 Ứng dụng (Application Layer)
10. Trong lập trình socket, 'address family′ (họ địa chỉ) AFᵢₙₑₜ và AFᵢₙₑₜ₆ đại diện cho loại địa chỉ IP nào?
A. AFᵢₙₑₜ cho IPv6, AFᵢₙₑₜ₆ cho IPv4.
B. AFᵢₙₑₜ cho IPv4, AFᵢₙₑₜ₆ cho IPv6.
C. AFᵢₙₑₜ cho cả IPv4 và IPv6, AFᵢₙₑₜ₆ chỉ cho IPv6.
D. AFᵢₙₑₜ chỉ cho IPv4, AFᵢₙₑₜ₆ không còn được sử dụng.
11. Trong lập trình mạng, thuật ngữ 'backlog′ trong hàm `listen()` của socket server dùng để chỉ điều gì?
A. Thời gian chờ tối đa để nhận dữ liệu.
B. Số lượng kết nối tối đa mà server có thể xử lý đồng thời.
C. Số lượng kết nối đang chờ được chấp nhận (queue length).
D. Kích thước bộ đệm (buffer) cho dữ liệu nhận.
12. Phương thức `bind()` trong lập trình socket được sử dụng để làm gì?
A. Gửi dữ liệu qua socket.
B. Đóng socket.
C. Gán địa chỉ IP và port cho socket.
D. Chấp nhận kết nối từ máy khách.
13. Trong lập trình socket không đồng bộ (asynchronous), ưu điểm chính so với socket đồng bộ (synchronous) là gì?
A. Dễ dàng gỡ lỗi hơn.
B. Hiệu suất cao hơn khi xử lý nhiều kết nối đồng thời.
C. Đảm bảo thứ tự dữ liệu tốt hơn.
D. Tiêu thụ ít tài nguyên hệ thống hơn.
14. Phương thức `connect()` được sử dụng trong lập trình socket phía máy khách (client) để làm gì?
A. Lắng nghe kết nối từ máy chủ.
B. Gửi yêu cầu kết nối đến máy chủ.
C. Đóng kết nối socket.
D. Nhận dữ liệu từ máy chủ.
15. Trong mô hình client-server, máy chủ (server) thường thực hiện hành động nào sau khi chấp nhận kết nối từ máy khách (client)?
A. Khởi tạo kết nối mới đến một máy chủ khác.
B. Đóng kết nối ngay lập tức.
C. Tạo một socket mới để xử lý giao tiếp với máy khách đó.
D. Chuyển tiếp yêu cầu của máy khách đến máy khách khác.
16. Trong lập trình mạng, 'serialization′ (tuần tự hóa) dữ liệu có nghĩa là gì?
A. Mã hóa dữ liệu để bảo mật.
B. Chuyển đổi cấu trúc dữ liệu phức tạp thành một chuỗi byte để truyền qua mạng.
C. Nén dữ liệu để giảm kích thước.
D. Phân chia dữ liệu thành các gói nhỏ hơn.
17. Trong lập trình mạng, 'non-blocking socket′ có ưu điểm gì so với 'blocking socket′ khi xử lý nhiều kết nối?
A. Đơn giản hóa việc xử lý lỗi.
B. Cho phép một thread duy nhất quản lý nhiều kết nối đồng thời mà không bị treo.
C. Tăng cường độ bảo mật của kết nối.
D. Giảm băng thông sử dụng.
18. Mục đích chính của việc sử dụng thread (luồng) hoặc process (tiến trình) trong lập trình server là gì?
A. Tăng cường bảo mật cho server.
B. Giảm độ trễ mạng.
C. Xử lý đồng thời nhiều kết nối từ client.
D. Giảm tải cho bộ nhớ.
19. Ứng dụng nào sau đây thường sử dụng giao thức UDP thay vì TCP?
A. Truy cập trang web (HTTP).
B. Truyền tải file lớn (FTP).
C. Streaming video và game online.
D. Gửi email (SMTP).
20. 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. Chuyển đổi địa chỉ IP.
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. Cung cấp địa chỉ IP động.
21. Địa chỉ IP phiên bản IPv6 có độ dài bao nhiêu bit?
A. 32 bits
B. 64 bits
C. 128 bits
D. 256 bits
22. SSL∕TLS (Secure Sockets Layer∕Transport Layer Security) được sử dụng để cung cấp bảo mật gì cho truyền thông mạng?
A. Bảo vệ chống lại tấn công DDoS.
B. Mã hóa dữ liệu và xác thực máy chủ.
C. Ngăn chặn virus và malware.
D. Quản lý băng thông mạng.
23. UDP (User Datagram Protocol) khác biệt chính so với TCP ở điểm nào?
A. UDP cung cấp độ tin cậy cao hơn TCP.
B. UDP là giao thức hướng kết nối, TCP thì không.
C. UDP không đảm bảo thứ tự và độ tin cậy của dữ liệu, TCP thì có.
D. UDP sử dụng cơ chế bắt tay ba bước để thiết lập kết nối.
24. Để xây dựng một ứng dụng chat server đơn giản, giao thức truyền tải nào có thể phù hợp hơn: TCP hay UDP và tại sao?
A. UDP, vì nhanh hơn và ít overhead hơn TCP.
B. TCP, vì đảm bảo tin nhắn đến đúng thứ tự và không bị mất.
C. UDP, vì hỗ trợ multicast tốt hơn cho chat nhóm.
D. TCP, vì dễ dàng xử lý đồng thời nhiều client hơn UDP.
25. Nguyên nhân chính gây ra hiện tượng 'packet loss′ (mất gói tin) trong mạng là gì?
A. Tấn công DDoS.
B. Nghẽn mạng hoặc lỗi phần cứng.
C. Mã hóa dữ liệu.
D. Sử dụng giao thức UDP.
26. Trong lập trình mạng, 'blocking socket′ có đặc điểm gì?
A. Cho phép gửi và nhận dữ liệu đồng thời.
B. Các hoạt động socket (ví dụ: `recv()`) sẽ chặn chương trình cho đến khi hoàn thành.
C. Không yêu cầu thiết lập kết nối trước khi truyền dữ liệu.
D. Tự động phục hồi khi mất kết nối.
27. Địa chỉ IP '127.0.0.1′ thường được gọi là gì và dùng để làm gì?
A. Địa chỉ IP broadcast, gửi tin nhắn đến tất cả các máy trong mạng.
B. Địa chỉ IP loopback (localhost), trỏ về chính máy tính hiện tại.
C. Địa chỉ IP gateway, kết nối mạng nội bộ với internet.
D. Địa chỉ IP dự phòng, sử dụng khi địa chỉ chính gặp sự cố.
28. Port (cổng) trong địa chỉ mạng được sử dụng để làm gì?
A. Xác định vị trí địa lý của máy tính.
B. Phân biệt các ứng dụng hoặc dịch vụ khác nhau trên cùng một máy chủ.
C. Mã hóa dữ liệu truyền qua mạng.
D. Điều khiển tốc độ truyền dữ liệu.
29. Socket trong lập trình mạng đóng vai trò là gì?
A. Địa chỉ IP của máy chủ.
B. Một kênh giao tiếp hai chiều giữa ứng dụng và mạng.
C. Giao thức truyền tải dữ liệu.
D. Tường lửa bảo vệ mạng.
30. DNS (Domain Name System) có chức năng chính là gì trong mạng?
A. Phân phối địa chỉ IP động.
B. Chuyển đổi tên miền (ví dụ: google.com) thành địa chỉ IP.
C. Mã hóa lưu lượng truy cập web.
D. Quản lý kết nối mạng không dây.