Network
Trang này chứa các mẹo và tài nguyên để chuẩn bị cho các cuộc phỏng vấn NoSQL.
Câu hỏi cơ bản
Mô hình OSI là gì? Trả lời: Mô hình OSI (Open Systems Interconnection) là một khung tham chiếu mạng gồm 7 tầng: Physical, Data Link, Network, Transport, Session, Presentation và Application. Nó giúp chuẩn hóa và giải thích cách các hệ thống mạng giao tiếp với nhau.
Sự khác biệt giữa TCP và UDP là gì? Trả lời: TCP (Transmission Control Protocol) là giao thức hướng kết nối, đảm bảo truyền dữ liệu đáng tin cậy, có thứ tự và kiểm tra lỗi. UDP (User Datagram Protocol) là giao thức không kết nối, nhanh hơn nhưng không đảm bảo dữ liệu đến đúng thứ tự hoặc không bị mất, thường dùng cho streaming hoặc game.
Địa chỉ IP là gì và nó có bao nhiêu phiên bản? Trả lời: Địa chỉ IP (Internet Protocol) là một định danh duy nhất cho thiết bị trong mạng. Có hai phiên bản chính: IPv4 (32-bit, ví dụ: 192.168.1.1) và IPv6 (128-bit, ví dụ: 2001:0db8::1), với IPv6 được thiết kế để thay thế IPv4 do cạn kiệt địa chỉ.
Port trong mạng là gì? Trả lời: Port là một số (0-65535) được sử dụng để xác định một dịch vụ hoặc ứng dụng cụ thể trên một thiết bị trong mạng. Ví dụ, HTTP dùng port 80, HTTPS dùng port 443. Nó hoạt động cùng địa chỉ IP để định tuyến dữ liệu chính xác.
DNS là gì và nó hoạt động như thế nào? Trả lời: DNS (Domain Name System) là hệ thống phân giải tên miền (như google.com) thành địa chỉ IP. Khi bạn nhập URL, DNS server tra cứu và trả về IP tương ứng để thiết bị kết nối đến máy chủ đích.
Câu hỏi trung cấp
HTTP và HTTPS khác nhau như thế nào? Trả lời: HTTP (HyperText Transfer Protocol) truyền dữ liệu không mã hóa, trong khi HTTPS (HTTP Secure) sử dụng SSL/TLS để mã hóa dữ liệu, đảm bảo an toàn và bảo mật thông tin giữa client và server.
Handshake 3 bước trong TCP là gì? Trả lời: Handshake 3 bước (Three-way Handshake) là quá trình thiết lập kết nối TCP:
Client gửi SYN (synchronize).
Server trả lời SYN-ACK (synchronize-acknowledge).
Client gửi ACK (acknowledge). Sau đó, kết nối được thiết lập.
Load Balancer là gì và tại sao backend developer cần quan tâm? Trả lời: Load Balancer phân phối lưu lượng mạng đến nhiều server để tránh quá tải, tăng tính sẵn sàng và hiệu suất. Backend developer cần hiểu nó để thiết kế hệ thống phân tán, đảm bảo khả năng mở rộng và xử lý lỗi.
Subnet Mask dùng để làm gì? Trả lời: Subnet Mask xác định phần nào của địa chỉ IP là địa chỉ mạng và phần nào là địa chỉ host. Ví dụ, với IP 192.168.1.10 và mask 255.255.255.0, 192.168.1 là mạng, 10 là host, giúp chia nhỏ mạng thành các subnet.
REST API sử dụng giao thức mạng nào? Trả lời: REST API thường sử dụng HTTP/HTTPS làm giao thức mạng. Nó tận dụng các phương thức HTTP như GET, POST, PUT, DELETE để giao tiếp giữa client và server.
Câu hỏi nâng cao
WebSocket là gì và khác gì với HTTP? Trả lời: WebSocket là giao thức hai chiều, cho phép kết nối liên tục giữa client và server, phù hợp với ứng dụng thời gian thực (chat, game). HTTP là giao thức request-response, không duy trì kết nối sau khi phản hồi.
NAT (Network Address Translation) là gì? Trả lời: NAT là kỹ thuật ánh xạ địa chỉ IP riêng (private IP) thành địa chỉ IP công cộng (public IP) để các thiết bị trong mạng nội bộ truy cập Internet. Nó giúp tiết kiệm địa chỉ IPv4 và tăng bảo mật.
Tại sao cần timeout trong kết nối mạng? Trả lời: Timeout ngăn chặn việc chờ đợi vô hạn khi không nhận được phản hồi từ server, giúp giải phóng tài nguyên và cải thiện trải nghiệm người dùng. Backend developer cần cấu hình timeout hợp lý để xử lý lỗi mạng.
HTTP Status Code 502 và 503 có ý nghĩa gì? Trả lời:
502 Bad Gateway: Server trung gian (proxy, gateway) nhận phản hồi không hợp lệ từ server upstream.
503 Service Unavailable: Server tạm thời không khả dụng, thường do bảo trì hoặc quá tải.
CDN (Content Delivery Network) hoạt động như thế nào? Trả lời: CDN là mạng các máy chủ phân tán toàn cầu, lưu trữ bản sao nội dung tĩnh (hình ảnh, video) gần người dùng nhất. Khi client yêu cầu, CDN trả về nội dung từ server gần nhất, giảm độ trễ và tải cho server gốc.
Câu hỏi chuyên sâu
TCP Congestion Control là gì? Trả lời: TCP Congestion Control là cơ chế điều chỉnh tốc độ gửi dữ liệu để tránh tắc nghẽn mạng. Nó sử dụng các thuật toán như Slow Start, Congestion Avoidance, Fast Retransmit để tối ưu hóa thông lượng và giảm mất gói tin.
Làm thế nào để xử lý lỗi "Connection Refused" trong ứng dụng backend? Trả lời: Lỗi "Connection Refused" xảy ra khi server không lắng nghe trên port hoặc IP được yêu cầu. Cách xử lý:
Kiểm tra server có đang chạy không.
Đảm bảo port không bị chặn bởi firewall.
Xác minh cấu hình mạng (IP, port) trong ứng dụng.
Giao thức QUIC là gì và lợi ích của nó? Trả lời: QUIC (Quick UDP Internet Connections) là giao thức dựa trên UDP, được Google phát triển để thay thế TCP trong một số trường hợp. Lợi ích: giảm độ trễ kết nối, hỗ trợ đa luồng (multiplexing) mà không bị chặn đầu dòng (head-of-line blocking), và tích hợp mã hóa.
Tại sao cần Reverse Proxy trong hệ thống backend? Trả lời: Reverse Proxy nhận yêu cầu từ client và chuyển tiếp đến server backend phù hợp. Nó giúp:
Cân bằng tải (load balancing).
Tăng bảo mật bằng cách ẩn server gốc.
Caching để cải thiện hiệu suất.
Zero Trust Network là gì và ứng dụng trong backend như thế nào? Trả lời: Zero Trust là mô hình bảo mật giả định không tin tưởng bất kỳ thiết bị nào, kể cả trong mạng nội bộ, và yêu cầu xác thực liên tục. Trong backend, nó được áp dụng bằng cách:
Sử dụng API key, JWT cho xác thực.
Mã hóa toàn bộ dữ liệu truyền tải.
Giới hạn quyền truy cập dựa trên vai trò.
Last updated