Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng - Đề 01 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: Trong mô hình TCP/IP, tầng nào chịu trách nhiệm phân đoạn dữ liệu thành các gói tin và đảm bảo truyền dữ liệu tin cậy giữa hai thiết bị đầu cuối?
- 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 Ứng dụng (Application Layer)
Câu 2: Giao thức UDP thường được ưu tiên sử dụng trong các ứng dụng nào sau đây, nơi mà độ trễ thấp quan trọng hơn độ tin cậy của dữ liệu?
- A. Truyền tải tập tin lớn (ví dụ: FTP)
- B. Gửi email (ví dụ: SMTP)
- C. Truyền video trực tuyến và game online
- D. Duyệt web (ví dụ: HTTP)
Câu 3: Một ứng dụng client muốn gửi dữ liệu đến một server cụ thể trên mạng. Để định danh duy nhất cho dịch vụ đang chạy trên server, client cần biết thông tin nào sau đây?
- A. Địa chỉ MAC của server
- B. Số hiệu cổng (port number) của dịch vụ trên server
- C. Tên miền của server
- D. Địa chỉ email của quản trị viên server
Câu 4: Trong lập trình socket, phương thức `bind()` được sử dụng với mục đích chính nào sau đây ở phía server?
- A. Gán socket với một địa chỉ IP và số cổng cụ thể để server lắng nghe kết nối đến
- B. Thiết lập kết nối đến một server khác
- C. Gửi dữ liệu đến client
- D. Đóng kết nối socket
Câu 5: Xét tình huống một server TCP đồng thời xử lý nhiều kết nối từ client. Mô hình lập trình nào sau đây là phù hợp nhất để đảm bảo server có thể phục vụ đồng thời nhiều client mà không bị treo?
- A. Mô hình tuần tự (Iterative Server)
- B. Mô hình đơn luồng (Single-threaded Server)
- C. Mô hình không kết nối (Connectionless Server)
- D. Mô hình đa luồng hoặc đa tiến trình (Multi-threaded/Multi-process Server)
Câu 6: Khi một client gửi yêu cầu HTTP đến server web, giao thức nào được sử dụng ở tầng ứng dụng để đảm bảo việc truyền tải dữ liệu web?
- A. TCP
- B. UDP
- C. HTTP
- D. IP
Câu 7: Trong lập trình mạng với socket, sự khác biệt chính giữa socket kiểu `SOCK_STREAM` và `SOCK_DGRAM` là gì?
- A. `SOCK_STREAM` dùng cho UDP, `SOCK_DGRAM` dùng cho TCP
- B. `SOCK_STREAM` cung cấp kênh truyền tin cậy, hướng kết nối (TCP), `SOCK_DGRAM` cung cấp kênh truyền không tin cậy, không kết nối (UDP)
- C. Cả hai đều cung cấp kênh truyền tin cậy, chỉ khác nhau về tốc độ
- D. Cả hai đều dùng cho TCP, chỉ khác nhau về cách thức đóng gói dữ liệu
Câu 8: Phương thức `listen()` trong lập trình socket server TCP có vai trò gì?
- A. Chấp nhận kết nối từ client
- B. Gửi dữ liệu đến client
- C. Đóng socket
- D. Đặt socket ở trạng thái lắng nghe các kết nối đến và giới hạn số lượng kết nối đang chờ
Câu 9: Khi lập trình client UDP, có cần thiết phải gọi phương thức `connect()` trước khi gửi dữ liệu không? Giải thích.
- A. Có, bắt buộc phải gọi `connect()` để thiết lập kết nối trước khi gửi dữ liệu.
- B. Có, nhưng chỉ khi gửi dữ liệu đến nhiều server khác nhau.
- C. Không, vì UDP là giao thức không kết nối, không cần thiết lập kết nối trước khi gửi dữ liệu.
- D. Chỉ cần gọi `connect()` một lần duy nhất khi khởi tạo socket.
Câu 10: Trong lập trình mạng, thuật ngữ "Multicast" dùng để chỉ phương thức giao tiếp nào?
- A. Giao tiếp một-đối-một (unicast)
- B. Giao tiếp một-đến-nhiều (one-to-many) tới một nhóm các host đã đăng ký
- C. Giao tiếp một-đến-tất cả (broadcast) trong mạng cục bộ
- D. Giao tiếp nhiều-đối-nhiều (many-to-many)
Câu 11: Cho đoạn mã giả định sau (server TCP):
```
socket = create_socket(SOCK_STREAM)
bind(socket, address)
listen(socket)
while True:
client_socket, client_address = accept(socket)
# Xử lý client_socket
```
Đoạn mã này minh họa mô hình server nào?
- A. Mô hình tuần tự (Iterative Server)
- B. Mô hình đa tiến trình (Multi-process Server)
- C. Mô hình đa luồng (Multi-threaded Server)
- D. Mô hình hướng sự kiện (Event-driven Server)
Câu 12: Địa chỉ IP phiên bản IPv4 được biểu diễn bằng bao nhiêu bit?
- A. 128 bits
- B. 64 bits
- C. 32 bits
- D. 16 bits
Câu 13: DNS (Domain Name System) hoạt động chủ yếu dựa trên giao thức nào?
- A. TCP
- B. UDP
- C. IP
- D. HTTP
Câu 14: Trong giao thức TCP, cơ chế "bắt tay ba bước" (three-way handshake) được sử dụng để làm gì?
- A. Mã hóa dữ liệu
- B. Kiểm soát lỗi dữ liệu
- C. Điều khiển luồng dữ liệu
- D. Thiết lập kết nối tin cậy giữa client và server
Câu 15: Giả sử bạn muốn xây dựng một ứng dụng chat video trực tuyến. Giao thức nào (TCP hay UDP) sẽ phù hợp hơn cho việc truyền tải dữ liệu video và âm thanh thời gian thực? Giải thích.
- A. TCP, vì đảm bảo độ tin cậy và thứ tự của dữ liệu.
- B. UDP, vì ưu tiên độ trễ thấp, chấp nhận mất mát gói tin để đảm bảo tính liên tục của luồng dữ liệu.
- C. Cả TCP và UDP đều phù hợp như nhau.
- D. Giao thức IP trực tiếp là lựa chọn tốt nhất.
Câu 16: Trong lập trình socket bất đồng bộ (asynchronous), lợi ích chính so với lập trình socket đồng bộ (synchronous) là gì?
- A. Dễ lập trình và gỡ lỗi hơn.
- B. Tăng cường tính bảo mật.
- C. Cho phép ứng dụng tiếp tục thực hiện các tác vụ khác trong khi chờ đợi hoạt động mạng hoàn thành, cải thiện hiệu suất và khả năng đáp ứng.
- D. Giảm thiểu sử dụng bộ nhớ.
Câu 17: Số hiệu cổng (port number) có độ dài bao nhiêu bit trong giao thức TCP/IP?
- A. 16 bits
- B. 32 bits
- C. 8 bits
- D. 64 bits
Câu 18: Giao thức nào sau đây thường được sử dụng để truyền tải email đi từ client đến server?
- A. POP3
- B. IMAP
- C. FTP
- D. SMTP
Câu 19: Khi một gói tin IP được gửi đi, địa chỉ IP đích được sử dụng để định tuyến gói tin đến đâu?
- A. Đến card mạng của máy đích.
- B. Đến mạng đích và sau đó đến máy đích trong mạng đó.
- C. Đến router gần nhất.
- D. Đến server DNS.
Câu 20: Trong mô hình OSI, tầng nào tương ứng với Tầng Giao vận (Transport Layer) của mô hình TCP/IP?
- A. Tầng Mạng (Network Layer)
- B. Tầng Liên kết Dữ liệu (Data Link Layer)
- C. Tầng Vận chuyển (Transport Layer)
- D. Tầng Phiên (Session Layer)
Câu 21: Cho tình huống: Một client TCP gửi liên tục dữ liệu lớn đến server, nhưng server xử lý chậm hơn tốc độ gửi của client. Cơ chế nào của TCP giúp ngăn chặn server bị quá tải?
- A. Cơ chế sửa lỗi (Error correction)
- B. Cơ chế bắt tay ba bước (Three-way handshake)
- C. Cơ chế định tuyến (Routing)
- D. Cơ chế điều khiển luồng (Flow control) sử dụng cửa sổ trượt (sliding window)
Câu 22: Địa chỉ IP "127.0.0.1" có ý nghĩa đặc biệt gì trong lập trình mạng?
- A. Địa chỉ loopback, trỏ về chính máy cục bộ (localhost)
- B. Địa chỉ broadcast trong mạng cục bộ
- C. Địa chỉ IP mặc định của router
- D. Địa chỉ IP của server DNS công cộng
Câu 23: Khi thiết kế một giao thức ứng dụng mới chạy trên UDP, nhà phát triển cần tự đảm bảo những chức năng nào mà TCP đã cung cấp sẵn?
- A. Mã hóa dữ liệu
- B. Độ tin cậy (ví dụ: kiểm soát lỗi, truyền lại dữ liệu mất mát), thứ tự gói tin, điều khiển luồng
- C. Định tuyến gói tin
- D. Phân giải tên miền
Câu 24: Firewall hoạt động chủ yếu ở tầng nào trong mô hình TCP/IP để kiểm soát lưu lượng mạng dựa trên địa chỉ IP và số cổng?
- A. Tầng Ứng dụng (Application Layer)
- B. Tầng Liên kết Dữ liệu (Data Link Layer)
- C. Tầng Mạng (Network Layer) và Tầng Giao vận (Transport Layer)
- D. Tầng Vật lý (Physical Layer)
Câu 25: Giả sử một ứng dụng cần gửi dữ liệu theo cơ chế "best-effort delivery". Giao thức nào sau đây sẽ phù hợp nhất?
- A. UDP
- B. TCP
- C. HTTP
- D. SMTP
Câu 26: Để kiểm tra kết nối mạng đến một máy chủ có địa chỉ IP cụ thể, công cụ dòng lệnh phổ biến nào thường được sử dụng?
- A. traceroute
- B. ping
- C. netstat
- D. ipconfig
Câu 27: Trong lập trình socket, khi server gọi `accept()`, điều gì sẽ xảy ra?
- A. Server gửi dữ liệu đến client.
- B. Server đóng socket lắng nghe.
- C. Server tạo ra một socket mới để lắng nghe kết nối khác.
- D. Server tạm dừng và chờ đợi một kết nối TCP từ client; khi có kết nối, `accept()` trả về một socket mới dành riêng cho kết nối đó.
Câu 28: Phương thức giao tiếp "Unicast" có đặc điểm gì?
- A. Giao tiếp điểm-điểm giữa một nguồn và một đích duy nhất.
- B. Giao tiếp một nguồn đến tất cả các thiết bị trong mạng.
- C. Giao tiếp một nguồn đến một nhóm thiết bị đã đăng ký.
- D. Giao tiếp không cần thiết lập kết nối trước.
Câu 29: Trong lập trình web, cookies thường được sử dụng để làm gì?
- A. Mã hóa dữ liệu truyền trên web.
- B. Tăng tốc độ tải trang web.
- C. Lưu trữ thông tin trạng thái của người dùng trên trình duyệt, ví dụ: phiên đăng nhập, tùy chỉnh cá nhân.
- D. Ngăn chặn tấn công CSRF.
Câu 30: Cho đoạn mã giả định (client TCP):
```
socket = create_socket(SOCK_STREAM)
connect(socket, server_address)
send(socket, data)
receive(socket)
close(socket)
```
Đoạn mã này minh họa quy trình cơ bản của một client TCP như thế nào?
- A. Client UDP gửi và nhận dữ liệu.
- B. Client TCP thiết lập kết nối, gửi dữ liệu, nhận phản hồi và đóng kết nối.
- C. Server TCP lắng nghe và chấp nhận kết nối.
- D. Client và server trao đổi khóa mã hóa.