1. Hàm `accept()` trong lập trình socket trả về giá trị gì?
A. Socket mới đại diện cho kết nối đã được chấp nhận
B. Số byte đã nhận được
C. Địa chỉ IP của máy khách kết nối
D. Mã lỗi nếu có lỗi xảy ra
2. Socket trong lập trình mạng được ví như:
A. Địa chỉ IP của máy tính
B. Một kênh giao tiếp ảo giữa hai ứng dụng mạng
C. Một loại virus mạng
D. Tên miền của website
3. Phương thức giao tiếp nào sau đây KHÔNG sử dụng giao thức TCP?
A. Truy cập web (HTTP)
B. Gửi email (SMTP)
C. Truyền video trực tuyến (Streaming video)
D. Truyền file (FTP)
4. Trong lập trình mạng, `non-blocking socket` có lợi ích gì so với `blocking socket`?
A. Đơn giản hóa lập trình
B. Cho phép chương trình tiếp tục thực hiện các công việc khác trong khi chờ thao tác socket hoàn thành
C. Tăng tốc độ truyền dữ liệu
D. Đảm bảo độ tin cậy cao hơn
5. Sự khác biệt chính giữa `TCP socket` và `UDP socket` là gì?
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. TCP socket sử dụng địa chỉ IP, UDP socket sử dụng hostname
D. TCP socket chỉ dùng cho máy chủ, UDP socket chỉ dùng cho máy khách
6. Trong lập trình mạng, `endianness` (thứ tự byte) là gì và tại sao nó quan trọng?
A. Kích thước tối đa của gói tin
B. Thứ tự sắp xếp các byte của số nguyên trong bộ nhớ
C. Giao thức mã hóa dữ liệu
D. Phương pháp kiểm soát tắc nghẽn
7. IPv6 có ưu điểm chính nào so với IPv4?
A. Tốc độ truyền dữ liệu nhanh hơn
B. Không gian địa chỉ lớn hơn nhiều, giải quyết vấn đề cạn kiệt địa chỉ IPv4
C. Bảo mật tốt hơn
D. Dễ dàng cấu hình hơn
8. Trong lập trình mạng, `blocking socket` là gì?
A. Socket không thể gửi hoặc nhận dữ liệu
B. Socket sẽ tạm dừng chương trình cho đến khi thao tác (ví dụ: nhận dữ liệu) hoàn thành
C. Socket chỉ hoạt động với giao thức TCP
D. Socket được bảo vệ bởi tường lửa
9. Kỹ thuật `heartbeat` trong lập trình mạng được sử dụng để làm gì?
A. Tăng tốc độ truyền dữ liệu
B. Kiểm tra trạng thái kết nối và phát hiện kết nối bị chết (dead connection)
C. Mã hóa dữ liệu
D. Nén dữ liệu
10. Hàm `listen()` trong lập trình socket có chức năng:
A. Thiết lập kết nối với máy chủ từ máy khách
B. Bắt đầu lắng nghe các kết nối đến từ máy khách trên socket
C. Gửi dữ liệu đến máy khách
D. Đóng kết nối socket
11. Cổng (port) trong địa chỉ IP được sử dụng để:
A. Xác định vị trí địa lý của máy tính
B. Phân biệt các ứng dụng khác nhau trên cùng một máy tính
C. Tăng tốc độ truyền dữ liệu mạng
D. Mã hóa dữ liệu trước khi truyền
12. Nguyên nhân phổ biến gây ra lỗi `Connection refused` khi lập trình mạng là gì?
A. Địa chỉ IP của máy chủ không tồn tại
B. Không có ứng dụng nào đang lắng nghe trên cổng được yêu cầu ở máy chủ
C. Máy khách và máy chủ không cùng mạng LAN
D. Tường lửa chặn kết nối đến máy chủ
13. Để tạo một ứng dụng chat đa luồng (multi-threaded chat server), bạn cần sử dụng kỹ thuật nào trong lập trình socket?
A. Chỉ sử dụng một socket duy nhất cho tất cả các kết nối
B. Tạo một thread riêng biệt để xử lý mỗi kết nối từ máy khách
C. Sử dụng giao thức UDP thay vì TCP
D. Mã hóa tất cả dữ liệu truyền tải
14. Phương thức giao tiếp `client-server` hoạt động dựa trên mô hình nào?
A. Mô hình ngang hàng (Peer-to-peer)
B. Mô hình phân cấp (Hierarchical)
C. Mô hình tập trung (Centralized)
D. Mô hình quảng bá (Broadcast)
15. 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. Chuyển đổi địa chỉ IP từ private sang public
D. Phân giải tên miền thành địa chỉ IP
16. Hàm `bind()` trong lập trình socket thường được sử dụng ở phía:
A. Máy chủ (Server)
B. Máy khách (Client)
C. Cả máy chủ và máy khách
D. Không bên nào sử dụng
17. DNS (Domain Name System) có vai trò gì trong mạng Internet?
A. Cấp phát địa chỉ IP cho các thiết bị
B. Chuyển đổi tên miền (hostname) thành địa chỉ IP
C. Đảm bảo an toàn cho dữ liệu truyền trên mạng
D. Tăng tốc độ truy cập website
18. Phương thức giao tiếp UDP (User Datagram Protocol) có ưu điểm gì so với TCP?
A. Đảm bảo dữ liệu đến đúng thứ tự
B. Đảm bảo dữ liệu không bị mất hoặc trùng lặp
C. Tốc độ truyền dữ liệu nhanh hơn, độ trễ thấp hơn
D. Có cơ chế kiểm soát tắc nghẽn tốt hơn
19. Khi lập trình socket, lỗi `Address already in use` thường xảy ra khi nào?
A. Sai địa chỉ IP máy chủ
B. Cố gắng `bind()` vào một địa chỉ và cổng đã được sử dụng bởi một ứng dụng khác
C. Kết nối mạng bị gián đoạn
D. Tường lửa chặn ứng dụng
20. Trong lập trình mạng, thuật ngữ `network latency` chỉ điều gì?
A. Băng thông tối đa của đường truyền
B. Thời gian trễ giữa thời điểm gửi và nhận gói tin
C. Số lượng gói tin bị mất trong quá trình truyền
D. Kích thước tối đa của gói tin có thể truyền
21. Trong lập trình mạng, giao thức TCP (Transmission Control Protocol) thuộc 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 Vận chuyển (Transport Layer)
22. SSL/TLS (Secure Sockets Layer/Transport Layer Security) được sử dụng để làm gì trong giao tiếp mạng?
A. Tăng băng thông mạng
B. Mã hóa dữ liệu và xác thực máy chủ/máy khách
C. Nén dữ liệu để truyền nhanh hơn
D. Kiểm soát tắc nghẽn mạng
23. 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. Chuyển đổi cấu trúc dữ liệu phức tạp thành chuỗi byte để truyền qua mạng
C. Nén dữ liệu
D. Phân chia dữ liệu thành các gói tin nhỏ hơn
24. Phương thức HTTP nào thường được sử dụng để gửi dữ liệu lên server (ví dụ, dữ liệu form)?
A. GET
B. PUT
C. POST
D. DELETE
25. Trong giao thức HTTP, phương thức nào được sử dụng để yêu cầu dữ liệu từ server?
A. POST
B. PUT
C. GET
D. DELETE
26. Trong lập trình mạng, `hostname` là gì?
A. Địa chỉ IP dạng số
B. Tên miền dễ nhớ thay thế cho địa chỉ IP
C. Số cổng mặc định cho một dịch vụ
D. Giao thức truyền dữ liệu mạng
27. Kỹ thuật `socket multiplexing` (ví dụ, `select`, `poll`, `epoll`) được sử dụng để giải quyết vấn đề gì trong lập trình mạng?
A. Tăng tốc độ truyền dữ liệu
B. Xử lý đồng thời nhiều kết nối trên một thread duy nhất
C. Mã hóa dữ liệu truyền tải
D. Kiểm soát tắc nghẽn mạng
28. Mã trạng thái HTTP (HTTP status code) `404 Not Found` có nghĩa là gì?
A. Yêu cầu thành công
B. Lỗi phía server
C. Tài nguyên được yêu cầu không tồn tại trên server
D. Yêu cầu bị từ chối do quyền truy cập
29. Ưu điểm của việc sử dụng giao thức WebSocket so với HTTP truyền thống cho ứng dụng web thời gian thực là gì?
A. WebSocket nhanh hơn HTTP
B. WebSocket cung cấp giao tiếp song công (full-duplex) liên tục, giảm độ trễ và overhead so với HTTP
C. WebSocket bảo mật hơn HTTP
D. WebSocket đơn giản hơn HTTP để lập trình
30. Trong lập trình mạng, `backlog` queue trong hàm `listen()` có ý nghĩa gì?
A. Kích thước tối đa của dữ liệu có thể nhận được
B. Số lượng kết nối TCP đang chờ được chấp nhận bởi server
C. Thời gian tối đa để kết nối từ máy khách
D. Số lượng cổng mà server sẽ lắng nghe