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

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 - Đề 04

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Mạng - Đề 04 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)
  • B. Tầng Mạng (Internet)
  • C. Tầng Liên kết Dữ liệu (Data Link)
  • D. Tầng Ứng dụng (Application)

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 do đặc tính nhanh chóng và không yêu cầu độ tin cậy cao?

  • A. Truyền tải email (SMTP)
  • B. Truy cập web (HTTP)
  • C. Truyền video trực tuyến (Streaming video)
  • D. Truyền file (FTP)

Câu 3: Để xây dựng một ứng dụng chat trực tuyến, giao thức truyền tải nào sẽ phù hợp hơn để đảm bảo tin nhắn đến đúng thứ tự và không bị mất?

  • A. TCP
  • B. UDP
  • C. IP
  • D. ICMP

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 đến client
  • B. Gán địa chỉ IP và cổng cho socket
  • C. Gửi dữ liệu đến client
  • D. Đóng kết nối socket

Câu 5: Điều gì xảy ra khi một server sử dụng TCP socket gọi phương thức `listen()`?

  • A. Server bắt đầu gửi dữ liệu đến client
  • B. Server tạo một socket mới để gửi dữ liệu
  • C. Server kết nối đến một client cụ thể
  • D. Server chuyển sang trạng thái chờ kết nối từ client

Câu 6: Phương thức `accept()` trong lập trình socket TCP ở server trả về đối tượng nào?

  • A. Địa chỉ IP của client
  • B. Số cổng của server
  • C. Một socket mới để giao tiếp với client
  • D. Luồng dữ liệu từ client

Câu 7: Trong mô hình client-server, ai là người chủ động khởi tạo kết nối TCP?

  • A. Server
  • B. Client
  • C. Cả client và server đồng thời
  • D. Tùy thuộc vào giao thức ứng dụng

Câu 8: Sự khác biệt chính giữa socket blocking và non-blocking là gì?

  • A. Socket blocking nhanh hơn non-blocking
  • B. Socket non-blocking chỉ dùng cho UDP, blocking cho TCP
  • C. Socket blocking tự động xử lý lỗi, non-blocking thì không
  • D. Socket blocking chờ thao tác hoàn thành, non-blocking trả về ngay lập tức

Câu 9: Cơ chế multiplexing và demultiplexing trong tầng Vận chuyển (Transport layer) giúp thực hiện điều gì?

  • A. Nhiều ứng dụng chia sẻ một kết nối mạng
  • B. Tăng tốc độ truyền dữ liệu
  • C. Đảm bảo độ tin cậy của dữ liệu
  • D. Mã hóa dữ liệu truyền trên mạng

Câu 10: Tại sao giao thức HTTP sử dụng TCP thay vì UDP?

  • A. UDP không hỗ trợ truyền tải văn bản
  • B. TCP nhanh hơn UDP trong truyền tải web
  • C. HTTP yêu cầu độ tin cậy và thứ tự dữ liệu mà TCP cung cấp
  • D. UDP không tương thích với trình duyệt web

Câu 11: Trong lập trình mạng, thuật ngữ "port scanning" dùng để chỉ hành động nào?

  • A. Tăng tốc độ truyền dữ liệu qua cổng mạng
  • B. Kiểm tra các cổng đang mở trên một hệ thống
  • C. Mã hóa dữ liệu truyền qua cổng
  • D. Phân tích lưu lượng mạng qua một cổng cụ thể

Câu 12: Địa chỉ IP phiên bản IPv6 có độ dài bao nhiêu bit?

  • A. 32 bit
  • B. 64 bit
  • C. 96 bit
  • D. 128 bit

Câu 13: DNS (Domain Name System) hoạt động ở tầng nào trong mô hình TCP/IP?

  • A. Tầng Ứng dụng (Application)
  • B. Tầng Vận chuyển (Transport)
  • C. Tầng Mạng (Internet)
  • D. Tầng Liên kết Dữ liệu (Data Link)

Câu 14: Để gửi email, giao thức nào sau đây được sử dụng để chuyển email từ client đến mail server?

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

Câu 15: Phương thức `shutdown()` socket được sử dụng để làm gì?

  • A. Hủy bỏ kết nối socket ngay lập tức
  • B. Khởi động lại kết nối socket
  • C. Đóng một phần hoặc toàn bộ kết nối socket một cách mềm dẻo
  • D. Kiểm tra trạng thái kết nối socket

Câu 16: Trong lập trình socket, khi một client kết nối đến server, luồng xử lý ở server thường được thực hiện như thế nào trong mô hình concurrent server?

  • A. Tất cả client được xử lý tuần tự trong một luồng duy nhất
  • B. Client phải chờ đến khi server rảnh mới được xử lý
  • C. Chỉ có một số lượng giới hạn client được phục vụ
  • D. Mỗi kết nối client được xử lý trong một thread hoặc process riêng

Câu 17: Giả sử bạn muốn truyền tải một file lớn qua mạng và cần đảm bảo dữ liệu không bị mất mát và đến đúng thứ tự. Giao thức nào sẽ phù hợp nhất?

  • A. TCP
  • B. UDP
  • C. ICMP
  • D. ARP

Câu 18: Công nghệ NAT (Network Address Translation) giải quyết vấn đề gì trong mạng IPv4?

  • A. Tăng tốc độ truy cập Internet
  • B. Cải thiện độ bảo mật mạng
  • C. Tiết kiệm địa chỉ IPv4 public
  • D. Đơn giản hóa cấu hình mạng

Câu 19: Firewall trong hệ thống mạng có chức năng chính là gì?

  • A. Tăng tốc độ mạng
  • B. Kiểm soát và lọc lưu lượng mạng
  • C. Phân tích lưu lượng mạng
  • D. Mã hóa dữ liệu mạng

Câu 20: Phương thức `connect()` trong lập trình socket TCP được sử dụng ở phía nào?

  • A. Server để chấp nhận kết nối
  • B. Cả client và server
  • C. Client để thiết lập kết nối đến server
  • D. Không bên nào sử dụng phương thức này

Câu 21: Hãy xem xét tình huống: Một ứng dụng cần gửi dữ liệu liên tục theo thời gian thực, nhưng chấp nhận mất một vài gói tin nhỏ để ưu tiên tốc độ. Giao thức nào sẽ phù hợp nhất?

  • A. TCP
  • B. UDP
  • C. HTTP
  • D. SMTP

Câu 22: Trong lập trình mạng, "socket descriptor" là gì?

  • A. Địa chỉ IP của socket
  • B. Số cổng của socket
  • C. Một cấu trúc dữ liệu chứa thông tin socket
  • D. Một số nguyên đại diện cho socket trong hệ điều hành

Câu 23: Điều gì xảy ra khi một gói tin IP có trường TTL (Time To Live) giảm xuống 0?

  • A. Gói tin bị hủy và router gửi thông báo lỗi
  • B. Gói tin được chuyển tiếp đến đích bằng đường vòng khác
  • C. TTL được tự động tăng lên để gói tin tiếp tục đi
  • D. Gói tin được lưu lại và gửi lại sau

Câu 24: Trong ngữ cảnh bảo mật mạng, tấn công "SYN flood" lợi dụng cơ chế bắt tay ba bước (three-way handshake) của giao thức TCP như thế nào?

  • A. Gửi dữ liệu giả mạo trong gói ACK
  • B. Phá vỡ quá trình gửi gói SYN-ACK từ server
  • C. Gửi tràn ngập gói SYN để làm quá tải hàng đợi kết nối của server
  • D. Thay đổi số sequence trong gói tin

Câu 25: Giả sử bạn đang xây dựng một ứng dụng server TCP và muốn xử lý đồng thời hàng ngàn kết nối từ client. Kỹ thuật lập trình nào sẽ hiệu quả hơn để tránh tình trạng "treo" ứng dụng?

  • A. Lập trình socket blocking đơn luồng
  • B. Lập trình socket non-blocking kết hợp với đa luồng hoặc asynchronous I/O
  • C. Sử dụng socket UDP thay vì TCP
  • D. Tăng kích thước buffer của socket

Câu 26: Trong lập trình socket, hàm `recv()` (hoặc `receive()`) thường trả về giá trị nào khi kết nối TCP bị đóng bởi phía đối diện?

  • A. Trả về -1 báo lỗi
  • B. Trả về 1 báo thành công
  • C. Trả về 0 hoặc giá trị báo hiệu kết thúc kết nối
  • D. Hàm không trả về giá trị mà gây ra exception

Câu 27: Hãy phân tích đoạn mã giả sau (Python):
```python
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(("localhost", 8080))
server_socket.listen(5)
client_socket, addr = server_socket.accept()
data = client_socket.recv(1024)
```
Đoạn mã này mô tả hoạt động nào ở phía server?

  • A. Server TCP cơ bản, lắng nghe và nhận dữ liệu từ một client
  • B. Client TCP cơ bản, kết nối và gửi dữ liệu đến server
  • C. Server UDP cơ bản, nhận dữ liệu từ client
  • D. Client UDP cơ bản, gửi dữ liệu đến server

Câu 28: Trong lập trình mạng, "endianness" (ví dụ: big-endian, little-endian) là gì và tại sao cần quan tâm đến nó khi truyền dữ liệu giữa các hệ thống khác nhau?

  • A. Tốc độ truyền dữ liệu trên mạng
  • B. Kích thước tối đa của gói tin mạng
  • C. Phương pháp mã hóa dữ liệu trước khi truyền
  • D. Thứ tự byte trong biểu diễn số và sự khác biệt giữa các hệ thống

Câu 29: Để kiểm tra kết nối mạng đến một server cụ thể (ví dụ: google.com), công cụ dòng lệnh phổ biến nào thường được sử dụng?

  • A. nslookup
  • B. ping
  • C. traceroute
  • D. netstat

Câu 30: Trong lập trình mạng, khi nói về "ephemeral port" (cổng tạm thời), chúng thường được sử dụng cho mục đích nào?

  • A. Cổng dành riêng cho server để lắng nghe kết nối
  • B. Cổng cố định cho các dịch vụ mạng quan trọng
  • C. Cổng được cấp phát tạm thời cho client khi kết nối đến server
  • D. Cổng sử dụng cho giao thức UDP, không dùng cho TCP

1 / 30

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

Tags: Bộ đề 4

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ộ đề 4

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 do đặc tính nhanh chóng và không yêu cầu độ tin cậy cao?

3 / 30

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

Tags: Bộ đề 4

Câu 3: Để xây dựng một ứng dụng chat trực tuyến, giao thức truyền tải nào sẽ phù hợp hơn để đảm bảo tin nhắn đến đúng thứ tự và không bị mất?

4 / 30

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

Tags: Bộ đề 4

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ộ đề 4

Câu 5: Điều gì xảy ra khi một server sử dụng TCP socket gọi phương thức `listen()`?

6 / 30

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

Tags: Bộ đề 4

Câu 6: Phương thức `accept()` trong lập trình socket TCP ở server trả về đối tượng nào?

7 / 30

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

Tags: Bộ đề 4

Câu 7: Trong mô hình client-server, ai là người chủ động khởi tạo kết nối TCP?

8 / 30

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

Tags: Bộ đề 4

Câu 8: Sự khác biệt chính giữa socket blocking và non-blocking là gì?

9 / 30

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

Tags: Bộ đề 4

Câu 9: Cơ chế multiplexing và demultiplexing trong tầng Vận chuyển (Transport layer) giúp thực hiện điều gì?

10 / 30

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

Tags: Bộ đề 4

Câu 10: Tại sao giao thức HTTP sử dụng TCP thay vì UDP?

11 / 30

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

Tags: Bộ đề 4

Câu 11: Trong lập trình mạng, thuật ngữ 'port scanning' dùng để chỉ hành động nào?

12 / 30

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

Tags: Bộ đề 4

Câu 12: Địa chỉ IP phiên bản IPv6 có độ dài bao nhiêu bit?

13 / 30

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

Tags: Bộ đề 4

Câu 13: DNS (Domain Name System) hoạt động ở tầng nào trong mô hình TCP/IP?

14 / 30

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

Tags: Bộ đề 4

Câu 14: Để gửi email, giao thức nào sau đây được sử dụng để chuyển email từ client đến mail server?

15 / 30

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

Tags: Bộ đề 4

Câu 15: Phương thức `shutdown()` socket được sử dụng để 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ộ đề 4

Câu 16: Trong lập trình socket, khi một client kết nối đến server, luồng xử lý ở server thường được thực hiện như thế nào trong mô hình concurrent server?

17 / 30

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

Tags: Bộ đề 4

Câu 17: Giả sử bạn muốn truyền tải một file lớn qua mạng và cần đảm bảo dữ liệu không bị mất mát và đến đúng thứ tự. Giao thức nào sẽ phù hợp nhất?

18 / 30

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

Tags: Bộ đề 4

Câu 18: Công nghệ NAT (Network Address Translation) giải quyết vấn đề gì trong mạng IPv4?

19 / 30

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

Tags: Bộ đề 4

Câu 19: Firewall trong hệ thống mạng có chức năng chính là gì?

20 / 30

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

Tags: Bộ đề 4

Câu 20: Phương thức `connect()` trong lập trình socket TCP được sử dụng ở phía nào?

21 / 30

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

Tags: Bộ đề 4

Câu 21: Hãy xem xét tình huống: Một ứng dụng cần gửi dữ liệu liên tục theo thời gian thực, nhưng chấp nhận mất một vài gói tin nhỏ để ưu tiên tốc độ. Giao thức nào sẽ phù hợp nhất?

22 / 30

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

Tags: Bộ đề 4

Câu 22: Trong lập trình mạng, 'socket descriptor' là gì?

23 / 30

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

Tags: Bộ đề 4

Câu 23: Điều gì xảy ra khi một gói tin IP có trường TTL (Time To Live) giảm xuống 0?

24 / 30

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

Tags: Bộ đề 4

Câu 24: Trong ngữ cảnh bảo mật mạng, tấn công 'SYN flood' lợi dụng cơ chế bắt tay ba bước (three-way handshake) của giao thức TCP như thế nào?

25 / 30

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

Tags: Bộ đề 4

Câu 25: Giả sử bạn đang xây dựng một ứng dụng server TCP và muốn xử lý đồng thời hàng ngàn kết nối từ client. Kỹ thuật lập trình nào sẽ hiệu quả hơn để tránh tình trạng 'treo' ứng dụng?

26 / 30

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

Tags: Bộ đề 4

Câu 26: Trong lập trình socket, hàm `recv()` (hoặc `receive()`) thường trả về giá trị nào khi kết nối TCP bị đóng bởi phía đối diện?

27 / 30

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

Tags: Bộ đề 4

Câu 27: Hãy phân tích đoạn mã giả sau (Python):
```python
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 8080))
server_socket.listen(5)
client_socket, addr = server_socket.accept()
data = client_socket.recv(1024)
```
Đoạn mã này mô tả hoạt động nào ở phía server?

28 / 30

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

Tags: Bộ đề 4

Câu 28: Trong lập trình mạng, 'endianness' (ví dụ: big-endian, little-endian) là gì và tại sao cần quan tâm đến nó khi truyền dữ liệu giữa các hệ thống khác nhau?

29 / 30

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

Tags: Bộ đề 4

Câu 29: Để kiểm tra kết nối mạng đến một server cụ thể (ví dụ: google.com), công cụ dòng lệnh phổ biến nào thường được sử dụng?

30 / 30

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

Tags: Bộ đề 4

Câu 30: Trong lập trình mạng, khi nói về 'ephemeral port' (cổng tạm thời), chúng thường được sử dụng cho mục đích nào?

Xem kết quả