Bộ 15 - Trắc nghiệm Lập trình mạng online có đáp án
Thời gian còn lại: --:--
Kết quả của bạn:
Bạn đã đúng:
Bạn đã sai:
Tổng số câu:
Câu 1:Trong lập trình mạng, dãy cổng (port) nào được IANA phân loại là các cổng phổ biến (Well-known ports)?
💡 Lời giải chi tiết:
Theo quy định của IANA, các cổng từ 0 đến 1023 được dành riêng cho các dịch vụ hệ thống phổ biến như HTTP, FTP và SMTP nên Kết luận Lý giải: Từ 0 đến 1023.
Câu 2:Giao thức nào sau đây thuộc tầng Giao vận (Transport Layer) và cung cấp cơ chế truyền tin tin cậy, có hướng kết nối?
💡 Lời giải chi tiết:
TCP là giao thức tại tầng giao vận đảm bảo dữ liệu được truyền đi chính xác và theo đúng thứ tự thông qua việc thiết lập kết nối trước khi truyền nên Kết luận Lý giải: TCP (Transmission Control Protocol).
Câu 3:Trong quy trình bắt tay ba bước (Three-way handshake) của TCP, gói tin đầu tiên mà máy khách (Client) gửi cho máy chủ (Server) chứa cờ (flag) nào?
💡 Lời giải chi tiết:
Tiến trình thiết lập kết nối TCP bắt đầu bằng việc Client gửi một gói tin có thiết lập cờ SYN để yêu cầu đồng bộ hóa số thứ tự nên Kết luận Lý giải: SYN.
Câu 4:Địa chỉ IPv6 có độ dài bao nhiêu bit?
💡 Lời giải chi tiết:
Địa chỉ IPv6 được thiết kế với độ dài 128 bit để cung cấp không gian địa chỉ lớn hơn rất nhiều so với IPv4 nên Kết luận Lý giải: 128 bit.
Câu 5:Hàm socket API nào được sử dụng để gán một địa chỉ IP và số cổng cụ thể cho một socket ở phía máy chủ?
💡 Lời giải chi tiết:
Hàm bind() có nhiệm vụ liên kết một socket với một cấu trúc địa chỉ cục bộ cụ thể bao gồm địa chỉ IP và số cổng nên Kết luận Lý giải: bind().
Câu 6:Thứ tự byte mạng (Network Byte Order) quy ước sử dụng định dạng nào sau đây để đảm bảo tính nhất quán giữa các kiến trúc máy tính khác nhau?
💡 Lời giải chi tiết:
Hầu hết các giao thức trong bộ TCP/IP quy định dữ liệu đa byte được truyền theo định dạng Big-Endian, nghĩa là byte có giá trị cao nhất được truyền trước nên Kết luận Lý giải: Big-Endian.
Câu 7:Mã trạng thái HTTP (HTTP Status Code) nào sau đây thông báo rằng tài nguyên yêu cầu không được tìm thấy trên máy chủ?
💡 Lời giải chi tiết:
Mã lỗi 404 là phản hồi chuẩn của giao thức HTTP để chỉ ra rằng máy chủ không tìm thấy tài nguyên mà Client đã yêu cầu nên Kết luận Lý giải: 404 Not Found.
Câu 8:Hệ thống DNS (Domain Name System) đóng vai trò gì trong lập trình mạng?
💡 Lời giải chi tiết:
DNS là một hệ thống phân tán giúp chuyển đổi các tên miền dễ nhớ của con người sang địa chỉ IP mà máy tính có thể hiểu được nên Kết luận Lý giải: Phân giải tên miền thành địa chỉ IP.
Câu 9:Khi lập trình Socket TCP ở phía Server, hàm nào được gọi sau bind() để chuyển socket sang trạng thái sẵn sàng chờ đợi các yêu cầu kết nối từ Client?
💡 Lời giải chi tiết:
Hàm listen() chuyển một socket chưa kết nối thành một passive socket, cho phép nhân hệ điều hành chấp nhận các yêu cầu kết nối đến nên Kết luận Lý giải: listen().
Câu 10:Trường TTL (Time to Live) trong tiêu đề gói tin IPv4 có mục đích chính là gì?
💡 Lời giải chi tiết:
Giá trị TTL giảm đi 1 đơn vị qua mỗi router và gói tin sẽ bị hủy khi TTL bằng 0 nhằm tránh tình trạng gói tin chạy vòng lặp mãi mãi nên Kết luận Lý giải: Ngăn chặn gói tin bị lặp vô hạn trên mạng.
Câu 11:Kích thước tiêu đề (Header size) cố định của một gói tin UDP là bao nhiêu byte?
💡 Lời giải chi tiết:
Giao thức UDP có tiêu đề rất tối giản bao gồm 4 trường (Source Port, Destination Port, Length, Checksum), mỗi trường 2 byte nên Kết luận Lý giải: 8 byte.
Câu 12:Trong lập trình mạng, địa chỉ IP '127.0.0.1' được gọi là gì?
💡 Lời giải chi tiết:
Địa chỉ 127.0.0.1 là địa chỉ loopback tiêu chuẩn cho phép các ứng dụng giao tiếp với chính máy chủ đang chạy ứng dụng đó nên Kết luận Lý giải: Địa chỉ vòng lặp (Loopback address).
Câu 13:Giao thức HTTPS sử dụng số cổng mặc định nào để truyền dữ liệu bảo mật?
💡 Lời giải chi tiết:
Trong khi HTTP sử dụng cổng 80, phiên bản bảo mật HTTPS sử dụng cổng 443 theo mặc định để thiết lập kết nối mã hóa TLS/SSL nên Kết luận Lý giải: 443.
Câu 14:Đặc điểm nào sau đây là ưu điểm chính của giao thức WebSocket so với HTTP truyền thống?
💡 Lời giải chi tiết:
WebSocket cho phép cả Server và Client gửi dữ liệu chủ động cho nhau bất cứ lúc nào sau khi thiết lập kết nối nên Kết luận Lý giải: Cung cấp giao tiếp hai chiều (full-duplex) trên một kết nối TCP duy nhất.
Câu 15:Hàm select() trong lập trình socket đa luồng (multiplexing) được sử dụng để làm gì?
💡 Lời giải chi tiết:
Hàm select() cho phép một chương trình giám sát nhiều mô tả tệp (file descriptors) và chờ đợi cho đến khi một hoặc nhiều mô tả tệp trở nên 'sẵn sàng' nên Kết luận Lý giải: Theo dõi đồng thời nhiều socket để xem cái nào đã sẵn sàng cho thao tác I/O.
Câu 16:Trạng thái TIME_WAIT trong vòng đời của một kết nối TCP có ý nghĩa gì?
💡 Lời giải chi tiết:
Sau khi gửi ACK cuối cùng, phía chủ động đóng kết nối sẽ chuyển sang trạng thái TIME_WAIT để đảm bảo truyền tin tin cậy và tránh xung đột với kết nối mới nên Kết luận Lý giải: Đảm bảo gói tin ACK cuối cùng đã đến được phía đối diện và xử lý các gói tin đi lạc.
Câu 17:Tùy chọn socket 'SO_REUSEADDR' thường được sử dụng nhằm mục đích gì?
💡 Lời giải chi tiết:
Tùy chọn SO_REUSEADDR cho phép một ứng dụng khởi động lại và bind vào cổng cũ ngay lập tức mà không phải chờ trạng thái TIME_WAIT kết thúc nên Kết luận Lý giải: Cho phép nhiều socket cùng bind vào một cổng ngay cả khi cổng đó đang ở trạng thái TIME_WAIT.
Câu 18:Giao thức ARP (Address Resolution Protocol) thực hiện chức năng nào dưới đây?
💡 Lời giải chi tiết:
ARP là giao thức quan trọng được sử dụng để tìm địa chỉ phần cứng (MAC) của một thiết bị khi biết địa chỉ IP của nó trong cùng mạng cục bộ nên Kết luận Lý giải: Phân giải địa chỉ IP thành địa chỉ MAC tương ứng.
Câu 19:Lệnh 'ping' trong hệ điều hành sử dụng loại thông điệp của giao thức nào để kiểm tra kết nối mạng?
💡 Lời giải chi tiết:
Công cụ ping gửi các gói tin ICMP Echo Request và chờ đợi ICMP Echo Reply để xác định khả năng phản hồi của một nút mạng nên Kết luận Lý giải: ICMP.
Câu 20:Giao thức FTP (File Transfer Protocol) sử dụng cổng nào để truyền các lệnh điều khiển (Control connection)?
💡 Lời giải chi tiết:
FTP phân tách luồng điều khiển và luồng dữ liệu, trong đó cổng 21 được sử dụng để thiết lập kết nối điều khiển ban đầu nên Kết luận Lý giải: 21.
Câu 21:Trong lập trình socket TCP, nếu hàm recv() trả về giá trị 0, điều đó thường có nghĩa là gì?
💡 Lời giải chi tiết:
Theo quy ước của Socket API, khi luồng nhận dữ liệu của TCP nhận được tín hiệu FIN từ phía đối diện, hàm recv() sẽ trả về 0 nên Kết luận Lý giải: Phía đối diện đã đóng kết nối một cách bình thường (graceful close).
Câu 22:Thông số MSS (Maximum Segment Size) trong TCP xác định điều gì?
💡 Lời giải chi tiết:
MSS là thông số thỏa thuận trong quá trình bắt tay TCP để xác định lượng dữ liệu người dùng lớn nhất có thể gửi trong một phân đoạn đơn lẻ nên Kết luận Lý giải: Lượng dữ liệu tối đa mà một phân đoạn TCP có thể chứa (không bao gồm tiêu đề TCP).
Câu 23:Theo mô hình OSI, các dịch vụ Socket và lập trình ứng dụng mạng thường được coi là hoạt động ở các tầng nào cao nhất?
💡 Lời giải chi tiết:
Lập trình ứng dụng mạng sử dụng giao diện Socket để tương tác với các tầng trên của mô hình OSI nhằm cung cấp dịch vụ cho người dùng cuối nên Kết luận Lý giải: Tầng Phiên, Trình diễn và Ứng dụng (Session, Presentation, Application).
Câu 24:Thuật toán Nagle được tích hợp trong TCP nhằm giải quyết vấn đề gì?
💡 Lời giải chi tiết:
Thuật toán Nagle gom các mảnh dữ liệu nhỏ lại thành các gói tin lớn hơn để giảm bớt số lượng tiêu đề (header) phải gửi trên mạng nên Kết luận Lý giải: Hạn chế việc gửi quá nhiều gói tin nhỏ (small packets) gây lãng phí băng thông.
Câu 25:Dãy địa chỉ IP nào sau đây thuộc phạm vi lớp D (Class D), được sử dụng cho mục đích Multicast?
💡 Lời giải chi tiết:
Địa chỉ IP lớp D được dành riêng cho các nhóm Multicast, cho phép gửi dữ liệu từ một nguồn đến nhiều đích cùng lúc nên Kết luận Lý giải: 224.0.0.0 đến 239.255.255.255.