Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.
Câu 1: Giao thức TCP cung cấp kiểu kết nối nào cho các ứng dụng mạng?
- A. Không kết nối và không tin cậy
- B. Hướng kết nối và tin cậy
- C. Không kết nối nhưng tin cậy
- D. Hướng kết nối nhưng không tin cậy
Câu 2: 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ận chuyển (Transport 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)
Câu 3: Khi một ứng dụng cần gửi dữ liệu nhanh chóng với độ trễ thấp và có thể chấp nhận mất mát dữ liệu, giao thức nào sau đây là lựa chọn phù hợp hơn?
- A. TCP
- B. IP
- C. HTTP
- D. UDP
Câu 4: Địa chỉ IP phiên bản 4 (IPv4) có độ dài bao nhiêu bit?
- A. 32 bit
- B. 64 bit
- C. 128 bit
- D. 16 bit
Câu 5: Port number (số cổng) được sử dụng để làm gì trong giao tiếp mạng?
- A. Xác định địa chỉ MAC của thiết bị mạng
- B. Xác định ứng dụng hoặc dịch vụ trên máy chủ
- C. Xác định đường dẫn vật lý trên mạng
- D. Xác định phiên bản giao thức IP đang sử dụng
Câu 6: Trong lập trình socket, hàm `bind()` thường được sử dụng cho mục đích gì?
- A. Thiết lập kết nối đến một server từ client
- B. Đóng kết nối socket hiện tại
- C. Gán địa chỉ IP và số cổng cho socket
- D. Gửi dữ liệu qua socket
Câu 7: Hàm `listen()` trong socket programming có vai trò gì?
- A. Gửi yêu cầu kết nối đến server
- B. Nhận dữ liệu từ client
- C. Thiết lập kênh truyền dữ liệu song công
- D. Đặt socket vào trạng thái chờ kết nối đến
Câu 8: Phương thức giao tiếp mạng nào sau đây mô tả việc một máy chủ gửi dữ liệu đến tất cả các máy khách trong mạng?
- A. Broadcast
- B. Unicast
- C. Multicast
- D. Anycast
Câu 9: Trong mô hình client-server, ai là người chủ động khởi tạo kết nối?
- A. Server
- B. Client
- C. Cả client và server đồng thời
- D. Tùy thuộc vào giao thức
Câu 10: Giao thức HTTP thường hoạt động ở tầng nào trong mô hình TCP/IP?
- A. Tầng Liên kết mạng (Network Interface Layer)
- B. Tầng Internet
- C. Tầng Vận chuyển (Transport Layer)
- D. Tầng Ứng dụng (Application Layer)
Câu 11: Để xây dựng một ứng dụng chat trực tuyến thời gian thực, giao thức nào sau đây thích hợp hơn để truyền dữ liệu liên tục và nhanh chóng giữa client và server?
- A. HTTP
- B. FTP
- C. UDP (kết hợp các cơ chế đảm bảo thứ tự và tin cậy ở tầng ứng dụng)
- D. SMTP
Câu 12: Trong lập trình mạng, "socket" có thể được hiểu như thế nào?
- A. Một loại cáp mạng
- B. Điểm cuối của một kết nối mạng
- C. Một thiết bị định tuyến mạng
- D. Một giao thức tầng ứng dụng
Câu 13: Cơ chế "three-way handshake" được sử dụng trong giao thức nào và nhằm mục đích gì?
- A. UDP, để đảm bảo truyền dữ liệu không mất mát
- B. IP, để xác thực nguồn gốc của gói tin
- C. HTTP, để mã hóa dữ liệu truyền tải
- D. TCP, để thiết lập kết nối tin cậy
Câu 14: IPv6 có ưu điểm gì nổi bật so với IPv4?
- A. Tốc độ truyền dữ liệu nhanh hơn
- B. Độ tin cậy cao hơn
- C. Không gian địa chỉ lớn hơn
- D. Bảo mật tốt hơn
Câu 15: Khi một client gửi yêu cầu HTTP đến server, server thường trả về mã trạng thái (status code). Mã trạng thái "200 OK" có nghĩa là gì?
- A. Yêu cầu bị lỗi từ phía client
- B. Yêu cầu thành công
- C. Server không tìm thấy tài nguyên
- D. Server đang quá tải
Câu 16: Trong lập trình socket bất đồng bộ (asynchronous), lợi ích chính là gì so với lập trình socket đồng bộ (synchronous)?
- A. Đơn giản hóa việc xử lý lỗi
- B. Tăng cường bảo mật
- C. Giảm tải cho CPU
- D. Cải thiện khả năng phản hồi của ứng dụng (đặc biệt là GUI)
Câu 17: Để gửi email, giao thức nào sau đây được sử dụng?
- A. SMTP
- B. POP3
- C. IMAP
- D. FTP
Câu 18: Địa chỉ IP "127.0.0.1" thường được gọi là gì và dùng để làm gì?
- A. Địa chỉ Broadcast, gửi tin đến mọi máy trong mạng
- B. Địa chỉ Multicast, gửi tin đến một nhóm máy
- C. Địa chỉ Loopback, trỏ về máy cục bộ
- D. Địa chỉ Public, dùng để truy cập internet
Câu 19: 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. Kiểm soát và bảo vệ lưu lượng mạng
- C. Cấp phát địa chỉ IP tự động
- D. Chuyển đổi địa chỉ IP
Câu 20: DNS (Domain Name System) phục vụ mục đích gì trong mạng internet?
- A. Mã hóa dữ liệu truyền trên internet
- B. Đảm bảo độ tin cậy của kết nối mạng
- C. Quản lý băng thông mạng
- D. Phân giải tên miền thành địa chỉ IP
Câu 21: Trong mô hình TCP/IP, tầng nào đảm bảo việc truyền dữ liệu tin cậy giữa hai ứng dụng?
- A. Tầng Vận chuyển (Transport Layer)
- B. Tầng Internet
- C. Tầng Liên kết mạng (Network Interface Layer)
- D. Tầng Ứng dụng (Application Layer)
Câu 22: Hãy xem xét tình huống: một ứng dụng cần gửi một lượng lớn dữ liệu (ví dụ, một file lớn) một cách tin cậy. Giao thức nào sẽ phù hợp hơn: TCP hay UDP?
- A. UDP
- B. TCP
- C. Cả hai đều phù hợp như nhau
- D. Tùy thuộc vào kích thước file
Câu 23: Phương thức lập trình socket nào có thể gây ra tình trạng "treo" giao diện người dùng (UI) nếu thực hiện các thao tác mạng trong luồng chính?
- A. Socket không kết nối (connectionless)
- B. Socket đa luồng (multi-threaded)
- C. Socket đồng bộ (synchronous)
- D. Socket bất đồng bộ (asynchronous)
Câu 24: Trong lập trình mạng với C#, lớp nào thường được sử dụng để tạo socket TCP server lắng nghe kết nối đến?
- A. Socket
- B. UdpClient
- C. TcpClient
- D. TcpListener
Câu 25: Khi sử dụng TCP, thứ tự các gói tin gửi đi và thứ tự các gói tin nhận được có đảm bảo giống nhau không?
- A. Không đảm bảo, thứ tự có thể khác nhau
- B. Đảm bảo, thứ tự luôn giống nhau
- C. Chỉ đảm bảo nếu mạng ổn định
- D. Tùy thuộc vào kích thước gói tin
Câu 26: Để một ứng dụng có thể nhận dữ liệu UDP, cần tạo một socket UDP và thực hiện thao tác nào sau đây?
- A. Kết nối (Connect) đến một địa chỉ cụ thể
- B. Lắng nghe (Listen) trên một cổng
- C. Gán địa chỉ và cổng (Bind) cho socket
- D. Chấp nhận (Accept) kết nối
Câu 27: Giả sử bạn muốn phát video trực tiếp đến nhiều người xem đồng thời, phương thức giao tiếp mạng nào hiệu quả hơn: Unicast hay Multicast?
- A. Unicast, vì đảm bảo độ tin cậy
- B. Unicast, vì dễ cài đặt hơn
- C. Cả hai đều hiệu quả như nhau
- D. Multicast, vì tiết kiệm băng thông khi gửi đến nhiều người nhận
Câu 28: Trong lập trình socket, khi server chấp nhận một kết nối TCP từ client bằng hàm `accept()`, điều gì xảy ra?
- A. Socket server ban đầu bị đóng
- B. Một socket mới được tạo để giao tiếp với client
- C. Kết nối ban đầu được chuyển thành kết nối UDP
- D. Client và server sử dụng chung một socket để giao tiếp
Câu 29: Mô hình lập trình server "concurrent server" (server đồng thời) có ưu điểm gì so với "iterative server" (server lặp)?
- A. Có thể phục vụ nhiều client đồng thời
- B. Đơn giản hơn trong lập trình
- C. Tiêu thụ ít tài nguyên hệ thống hơn
- D. Bảo mật tốt hơn
Câu 30: Để kiểm tra kết nối mạng đến một server cụ thể, lệnh `ping` sử dụng giao thức nào?
- A. TCP
- B. UDP
- C. ICMP
- D. HTTP