Bài Tập, Đề Thi Trắc Nghiệm Online – Môn Lập Trình Mạng – Đề 10

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Môn Lập Trình Mạng

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng - Đề 10

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng - Đề 10 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 chính cho việc định tuyến gói tin giữa các mạng khác nhau?

  • A. Tầng Vận chuyển (Transport Layer)
  • B. Tầng Mạng (Internet 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: Sự khác biệt chính giữa giao thức TCP và UDP trong lập trình mạng là gì?

  • A. TCP là giao thức hướng kết nối và tin cậy, UDP thì không.
  • B. UDP cung cấp cơ chế kiểm soát lỗi phức tạp hơn TCP.
  • C. TCP nhanh hơn UDP trong việc truyền tải dữ liệu.
  • D. UDP chỉ được sử dụng cho các ứng dụng thời gian thực, TCP thì không.

Câu 3: Khi một ứng dụng cần truyền tải dữ liệu video trực tuyến, giao thức vận chuyển nào thường được ưu tiên sử dụng và vì sao?

  • A. TCP, vì đảm bảo truyền dữ liệu đầy đủ và đúng thứ tự.
  • B. TCP, vì có cơ chế kiểm soát tắc nghẽn tốt hơn.
  • C. UDP, vì độ trễ thấp và không yêu cầu thiết lập kết nối.
  • D. UDP, vì bảo mật dữ liệu tốt hơn TCP.

Câu 4: Trong lập trình socket, phương thức `bind()` được sử dụng để làm gì ở phía server?

  • A. Thiết lập kết nối với client.
  • B. Gán socket với một địa chỉ IP và số cổng cụ thể.
  • C. Gửi dữ liệu phản hồi cho client.
  • D. Đóng kết nối socket.

Câu 5: Điều gì xảy ra khi một client TCP cố gắng kết nối đến một cổng trên server mà không có ứng dụng nào đang lắng nghe?

  • A. Client sẽ tự động chuyển sang sử dụng giao thức UDP.
  • B. Kết nối sẽ được thiết lập nhưng không có dữ liệu nào được truyền.
  • C. Server sẽ tự động khởi động ứng dụng lắng nghe trên cổng đó.
  • D. Kết nối sẽ bị từ chối và client nhận được thông báo lỗi (ví dụ: "connection refused").

Câu 6: Trong lập trình mạng không đồng bộ (asynchronous), lợi ích chính của việc sử dụng các socket không chặn (non-blocking sockets) là gì?

  • A. Đơn giản hóa việc xử lý lỗi trong mạng.
  • B. Tăng cường bảo mật cho kết nối mạng.
  • C. Cho phép ứng dụng tiếp tục thực hiện các công việc khác trong khi chờ thao tác I/O.
  • D. Giảm tải cho bộ xử lý CPU khi truyền dữ liệu lớn.

Câu 7: Xét tình huống một server cần đồng thời xử lý yêu cầu từ nhiều client. Mô hình lập trình server nào sau đây phù hợp nhất để đạt được điều này?

  • A. Mô hình server tuần tự (Iterative Server).
  • B. Mô hình server đồng thời (Concurrent Server).
  • C. Mô hình server phát sóng (Broadcast Server).
  • D. Mô hình server đơn luồng (Single-threaded Server).

Câu 8: Trong giao thức HTTP, phương thức nào được sử dụng để yêu cầu server gửi về một tài nguyên cụ thể (ví dụ: trang web)?

  • A. GET
  • B. POST
  • C. PUT
  • D. DELETE

Câu 9: Địa chỉ IP phiên bản 4 (IPv4) có độ dài bao nhiêu bit?

  • A. 128 bits
  • B. 64 bits
  • C. 32 bits
  • D. 16 bits

Câu 10: Mục đích chính của việc sử dụng số cổng (port number) trong giao tiếp mạng là gì?

  • A. Tăng tốc độ truyền dữ liệu mạng.
  • 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 trên mạng.
  • D. Kiểm soát lỗi trong quá trình truyền dữ liệu.

Câu 11: Giao thức nào sau đây thường được sử dụng để gửi email đi từ client đến server?

  • A. POP3
  • B. IMAP
  • C. FTP
  • D. SMTP

Câu 12: Trong lập trình socket, hàm `listen()` được sử dụng ở phía server để làm gì?

  • A. Gửi dữ liệu đến client.
  • B. Nhận dữ liệu từ client.
  • C. Đặt socket vào trạng thái lắng nghe kết nối từ client.
  • D. Đóng socket server.

Câu 13: Khi thiết kế một ứng dụng chat trực tuyến, giao thức nào (TCP hay UDP) sẽ phù hợp hơn cho việc truyền tin nhắn văn bản và tại sao?

  • A. TCP, vì đảm bảo tin nhắn được gửi đến đầy đủ và đúng thứ tự.
  • B. TCP, vì có tốc độ truyền dữ liệu nhanh hơn UDP.
  • C. UDP, vì độ trễ thấp hơn và phù hợp với thời gian thực.
  • D. UDP, vì ít tốn tài nguyên hệ thống hơn TCP.

Câu 14: Thế nào là hiện tượng "nghẽn mạng" (network congestion) và giải pháp nào thường được sử dụng để giảm thiểu nó trong giao thức TCP?

  • A. Hiện tượng mất kết nối đột ngột do lỗi phần cứng; Giải pháp: Sử dụng cáp mạng chất lượng cao hơn.
  • B. Hiện tượng lưu lượng mạng vượt quá khả năng xử lý của mạng; Giải pháp: Cơ chế kiểm soát nghẽn của TCP (ví dụ: congestion window).
  • C. Hiện tượng xâm nhập trái phép vào mạng; Giải pháp: Sử dụng tường lửa mạnh hơn.
  • D. Hiện tượng lỗi giao thức do cấu hình sai; Giải pháp: Cập nhật phiên bản giao thức mới nhất.

Câu 15: Trong lập trình socket, hàm `accept()` được sử dụng ở phía server để làm gì?

  • A. Gửi thông báo chấp nhận kết nối cho client.
  • B. Kiểm tra xem có kết nối nào đang chờ không.
  • C. Khởi tạo socket server ở chế độ lắng nghe.
  • D. Chấp nhận một kết nối TCP đến từ client và tạo socket mới để giao tiếp.

Câu 16: Phân biệt sự khác nhau giữa địa chỉ IP "127.0.0.1" và "0.0.0.0" khi cấu hình server socket.

  • A. "127.0.0.1" dùng cho server công cộng, "0.0.0.0" dùng cho server nội bộ.
  • B. "0.0.0.0" nhanh hơn "127.0.0.1" trong truyền dữ liệu.
  • C. "127.0.0.1" chỉ nhận kết nối từ máy cục bộ, "0.0.0.0" nhận kết nối từ mọi địa chỉ IP.
  • D. Không có sự khác biệt, cả hai đều có thể dùng thay thế nhau.

Câu 17: Trong lập trình mạng, thuật ngữ "đa hợp kênh" (multiplexing) và "phân kênh" (demultiplexing) dùng để chỉ quá trình nào?

  • A. Đa hợp kênh: gộp dữ liệu từ nhiều ứng dụng vào một kênh truyền; Phân kênh: phân tách dữ liệu từ kênh truyền đến đúng ứng dụng.
  • B. Đa hợp kênh: chia nhỏ dữ liệu lớn thành các gói tin nhỏ; Phân kênh: ghép các gói tin nhỏ thành dữ liệu lớn.
  • C. Đa hợp kênh: mã hóa dữ liệu trước khi truyền; Phân kênh: giải mã dữ liệu sau khi nhận.
  • D. Đa hợp kênh: kiểm soát luồng dữ liệu; Phân kênh: kiểm soát lỗi dữ liệu.

Câu 18: Cho đoạn mã giả lập trình socket server TCP sau:

```
serverSocket = createTCPSocket()
bind(serverSocket, address, port)
listen(serverSocket)
while True:
clientSocket = accept(serverSocket)
handleClient(clientSocket)
close(clientSocket)
close(serverSocket)
```

Mô hình server này là mô hình gì?

  • A. Concurrent Server (đa tiến trình)
  • B. Iterative Server (tuần tự)
  • C. Non-blocking Server (không chặn)
  • D. Event-driven Server (hướng sự kiện)

Câu 19: Trong giao thức POP3, lệnh `RETR` được sử dụng để làm gì?

  • A. Xóa một email khỏi server.
  • B. Liệt kê danh sách các email trên server.
  • C. Tải nội dung của một email từ server.
  • D. Gửi email lên server.

Câu 20: Khi sử dụng giao thức UDP, điều gì đảm bảo rằng dữ liệu đến đích một cách có ý nghĩa, nếu bản thân UDP không cung cấp độ tin cậy?

  • A. Giao thức IP bên dưới UDP tự động thêm độ tin cậy.
  • B. Các router mạng tự động sửa lỗi và đảm bảo dữ liệu đến đích.
  • C. UDP thực chất vẫn có cơ chế tự phục hồi lỗi nhưng ít hiệu quả hơn TCP.
  • D. Các ứng dụng có thể tự triển khai cơ chế đảm bảo độ tin cậy ở tầng ứng dụng nếu cần.

Câu 21: 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 đặc biệt.
  • B. Một điểm cuối của kết nối mạng, cho phép ứng dụng giao tiếp qua mạng.
  • C. Một thiết bị phần cứng để kết nối mạng.
  • D. Một giao thức mạng tốc độ cao.

Câu 22: Cho tình huống một ứng dụng yêu cầu gửi dữ liệu broadcast trong mạng LAN. Giao thức nào (TCP hay UDP) phù hợp hơn và tại sao?

  • A. TCP, vì đảm bảo tất cả các host đều nhận được dữ liệu.
  • B. TCP, vì có cơ chế kiểm soát broadcast storm.
  • C. UDP, vì không cần kết nối và phù hợp với bản chất broadcast.
  • D. UDP, vì bảo mật hơn khi broadcast dữ liệu.

Câu 23: Điều gì xảy ra khi một gói tin UDP bị mất trên đường truyền?

  • A. Gói tin bị mất và không có cơ chế tự động gửi lại từ UDP.
  • B. UDP tự động gửi lại gói tin bị mất.
  • C. TCP sẽ can thiệp và gửi lại gói tin bị mất.
  • D. Router sẽ thông báo lỗi mất gói tin cho ứng dụng gửi.

Câu 24: Trong mô hình OSI, tầng nào tương ứng với tầng "Internet" trong mô hình TCP/IP?

  • A. Tầng Giao vận (Transport Layer)
  • B. Tầng Mạng (Network Layer)
  • C. Tầng Liên kết Dữ liệu (Data Link Layer)
  • D. Tầng Vật lý (Physical Layer)

Câu 25: Tại sao cần phải chuyển đổi địa chỉ IP và số cổng thành định dạng "network byte order" khi lập trình socket?

  • A. Để tăng tốc độ xử lý địa chỉ IP và số cổng.
  • B. Để mã hóa địa chỉ IP và số cổng vì mục đích bảo mật.
  • C. Để đảm bảo tính nhất quán về thứ tự byte giữa các hệ thống có kiến trúc khác nhau.
  • D. Để giảm kích thước dữ liệu của địa chỉ IP và số cổng khi truyền trên mạng.

Câu 26: Phương thức HTTP nào thường được sử dụng để gửi dữ liệu từ client lên server, ví dụ như khi gửi biểu mẫu (form data)?

  • A. GET
  • B. POST
  • C. PUT
  • D. DELETE

Câu 27: Trong lập trình socket, hàm `close()` (hoặc `shutdown()`) được sử dụng để làm gì?

  • A. Gửi thông báo lỗi đến đầu bên kia của kết nối.
  • B. Tạm dừng kết nối socket mà không đóng hoàn toàn.
  • C. Kiểm tra trạng thái kết nối socket.
  • D. Đóng kết nối socket và giải phóng tài nguyên.

Câu 28: Ứng dụng nào sau đây có thể sử dụng giao thức UDP?

  • A. Truy cập trang web (HTTP).
  • B. Gửi và nhận email (SMTP, POP3).
  • C. Video streaming trực tuyến.
  • D. Truyền file (FTP).

Câu 29: Khi một server TCP sử dụng mô hình concurrent server đa luồng, điều gì xảy ra khi một client mới kết nối đến?

  • A. Server từ chối kết nối mới nếu đang bận.
  • B. Server tạo một luồng mới để xử lý kết nối của client đó.
  • C. Server tạm dừng xử lý các client hiện tại để phục vụ client mới.
  • D. Client phải chờ cho đến khi server rảnh mới được kết nối.

Câu 30: Giả sử bạn cần phát triển một ứng dụng yêu cầu độ tin cậy cao và thứ tự dữ liệu nghiêm ngặt. Giao thức nào (TCP hay UDP) bạn sẽ chọn và tại sao?

  • A. TCP, vì nó cung cấp độ tin cậy và đảm bảo thứ tự dữ liệu.
  • B. TCP, vì có tốc độ truyền dữ liệu nhanh hơn UDP.
  • C. UDP, vì độ trễ thấp hơn và phù hợp với ứng dụng thời gian thực.
  • D. UDP, vì dễ dàng lập trình và triển khai hơn TCP.

1 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 1: Trong mô hình TCP/IP, tầng nào chịu trách nhiệm chính cho việc định tuyến gói tin giữa các mạng khác nhau?

2 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 2: Sự khác biệt chính giữa giao thức TCP và UDP trong lập trình mạng là gì?

3 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 3: Khi một ứng dụng cần truyền tải dữ liệu video trực tuyến, giao thức vận chuyển nào thường được ưu tiên sử dụng và vì sao?

4 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 4: Trong lập trình socket, phương thức `bind()` được sử dụng để làm gì ở phía server?

5 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 5: Điều gì xảy ra khi một client TCP cố gắng kết nối đến một cổng trên server mà không có ứng dụng nào đang lắng nghe?

6 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 6: Trong lập trình mạng không đồng bộ (asynchronous), lợi ích chính của việc sử dụng các socket không chặn (non-blocking sockets) là gì?

7 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 7: Xét tình huống một server cần đồng thời xử lý yêu cầu từ nhiều client. Mô hình lập trình server nào sau đây phù hợp nhất để đạt được điều này?

8 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 8: Trong giao thức HTTP, phương thức nào được sử dụng để yêu cầu server gửi về một tài nguyên cụ thể (ví dụ: trang web)?

9 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 9: Địa chỉ IP phiên bản 4 (IPv4) có độ dài bao nhiêu bit?

10 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 10: Mục đích chính của việc sử dụng số cổng (port number) trong giao tiếp mạng là gì?

11 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 11: Giao thức nào sau đây thường được sử dụng để gửi email đi từ client đến server?

12 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 12: Trong lập trình socket, hàm `listen()` được sử dụng ở phía server để làm gì?

13 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 13: Khi thiết kế một ứng dụng chat trực tuyến, giao thức nào (TCP hay UDP) sẽ phù hợp hơn cho việc truyền tin nhắn văn bản và tại sao?

14 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 14: Thế nào là hiện tượng 'nghẽn mạng' (network congestion) và giải pháp nào thường được sử dụng để giảm thiểu nó trong giao thức TCP?

15 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 15: Trong lập trình socket, hàm `accept()` được sử dụng ở phía server để làm gì?

16 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 16: Phân biệt sự khác nhau giữa địa chỉ IP '127.0.0.1' và '0.0.0.0' khi cấu hình server socket.

17 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 17: Trong lập trình mạng, thuật ngữ 'đa hợp kênh' (multiplexing) và 'phân kênh' (demultiplexing) dùng để chỉ quá trình nào?

18 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 18: Cho đoạn mã giả lập trình socket server TCP sau:

```
serverSocket = createTCPSocket()
bind(serverSocket, address, port)
listen(serverSocket)
while True:
clientSocket = accept(serverSocket)
handleClient(clientSocket)
close(clientSocket)
close(serverSocket)
```

Mô hình server này là mô hình gì?

19 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 19: Trong giao thức POP3, lệnh `RETR` được sử dụng để làm gì?

20 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 20: Khi sử dụng giao thức UDP, điều gì đảm bảo rằng dữ liệu đến đích một cách có ý nghĩa, nếu bản thân UDP không cung cấp độ tin cậy?

21 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 21: Trong lập trình mạng, 'socket' có thể được hiểu như thế nào?

22 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 22: Cho tình huống một ứng dụng yêu cầu gửi dữ liệu broadcast trong mạng LAN. Giao thức nào (TCP hay UDP) phù hợp hơn và tại sao?

23 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 23: Điều gì xảy ra khi một gói tin UDP bị mất trên đường truyền?

24 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 24: Trong mô hình OSI, tầng nào tương ứng với tầng 'Internet' trong mô hình TCP/IP?

25 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 25: Tại sao cần phải chuyển đổi địa chỉ IP và số cổng thành định dạng 'network byte order' khi lập trình socket?

26 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 26: Phương thức HTTP nào thường được sử dụng để gửi dữ liệu từ client lên server, ví dụ như khi gửi biểu mẫu (form data)?

27 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 27: Trong lập trình socket, hàm `close()` (hoặc `shutdown()`) được sử dụng để làm gì?

28 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 28: Ứng dụng nào sau đây có thể sử dụng giao thức UDP?

29 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 29: Khi một server TCP sử dụng mô hình concurrent server đa luồng, điều gì xảy ra khi một client mới kết nối đến?

30 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng

Tags: Bộ đề 10

Câu 30: Giả sử bạn cần phát triển một ứng dụng yêu cầu độ tin cậy cao và thứ tự dữ liệu nghiêm ngặt. Giao thức nào (TCP hay UDP) bạn sẽ chọn và tại sao?

Xem kết quả