- Mô hình OSI 7 tầng là gì? Mỗi tầng có chức năng gì?
Mô hình OSI (Open Systems Interconnection) chia giao tiếp mạng thành 7 tầng từ dưới lên: Physical (truyền bit qua cáp/sóng), Data Link (đóng gói frame, MAC address, phát hiện lỗi), Network (định tuyến gói tin qua IP), Transport (kiểm soát luồng & lỗi, TCP/UDP),…
- Mô hình TCP/IP khác gì so với mô hình OSI?
TCP/IP (hay DoD model) gộp OSI 7 tầng xuống còn 4 tầng: Network Access (= Physical + Data Link), Internet (= Network), Transport (giữ nguyên), Application (= Session + Presentation + Application). TCP/IP là mô hình thực tiễn được dùng trong toàn bộ Internet hiện…
- TCP 3-way handshake hoạt động thế nào? Tại sao cần 3 bước?
TCP 3-way handshake (SYN→SYN-ACK→ACK) thiết lập kết nối bằng cách đồng bộ sequence numbers của cả hai phía. Ba bước gồm: (1) Client gửi SYN với sequence number ngẫu nhiên X, (2) Server trả SYN-ACK với ACK=X+1 và sequence number Y của server, (3) Client…
- DNS hoạt động thế nào? Giải thích quá trình resolve một domain name.
DNS (Domain Name System) dịch domain name (google.com) thành IP address. Quá trình resolve: (1) Browser kiểm tra local cache, (2) Hỏi OS resolver (kiểm tra /etc/hosts), (3) Hỏi Recursive Resolver của ISP, (4) Resolver hỏi Root Name Server (biết địa chỉ TLD servers), (5)…
- WebSocket khác gì so với HTTP thông thường? Khi nào nên dùng WebSocket?
HTTP là request-response: client luôn phải khởi tạo request trước, server không thể chủ động push data. WebSocket là full-duplex persistent connection: sau khi upgrade từ HTTP (101 Switching Protocols), cả client và server có thể gửi message bất kỳ lúc nào với latency rất…
- REST, GraphQL và gRPC khác nhau thế nào? Khi nào dùng cái nào?
REST dùng HTTP verbs (GET/POST/PUT/DELETE) + URL resources, stateless, dễ cache, phổ biến nhất — phù hợp CRUD APIs đơn giản, public APIs, mobile apps. GraphQL cho phép client chỉ định chính xác data cần lấy qua query language, giải quyết over-fetching/under-fetching của REST, có…
- Các thuật toán load balancing phổ biến là gì? Ưu nhược điểm của từng loại?
Load balancing phân phối request qua nhiều server — thuật toán phổ biến bao gồm Round Robin, Least Connections, và IP Hash, mỗi loại phù hợp với use case khác nhau. - Round Robin: phân phối request lần lượt qua các server — đơn giản…
- Reverse proxy và forward proxy khác nhau thế nào? Tại sao reverse proxy quan trọng trong production?
Forward proxy đứng giữa client và internet: client cấu hình proxy, mọi request đi qua proxy — dùng để ẩn danh tính client, bypass geo-restriction, corporate filtering. Reverse proxy đứng trước server: client không biết server thật sự, mọi request qua reverse proxy trước —…
- CDN hoạt động thế nào? Khi nào nên và không nên dùng CDN?
CDN (Content Delivery Network) là mạng lưới server phân tán toàn cầu (PoP - Points of Presence). Khi user request file, CDN router tìm server gần nhất về mặt địa lý/network. Lần đầu cache miss: CDN fetch từ origin server và cache lại. Các lần…
- CORS là gì? Giải thích chi tiết cơ chế preflight request và cách cấu hình đúng.
CORS (Cross-Origin Resource Sharing) là cơ chế browser ngăn JavaScript đọc response từ origin khác (khác domain/port/protocol) — Same-Origin Policy. Khi cần cross-origin, server phải trả về CORS headers. Simple requests (GET/POST với Content-Type text/plain hoặc form) không cần preflight. Preflight request là OPTIONS request…
- Rate limiting là gì? Các chiến lược rate limiting phổ biến và cách implement?
Rate limiting giới hạn số request trong khoảng thời gian để bảo vệ server khỏi abuse, DDoS, và đảm bảo fair usage. Các thuật toán: - Fixed Window: đếm request trong window cố định (100 req/minute) — đơn giản nhưng có edge case tại boundary.…
- So sánh các phương thức API authentication: OAuth2, JWT và API Key. Khi nào dùng cái nào?
API Key phù hợp machine-to-machine, JWT cho stateless user auth, OAuth2 cho third-party authorization — mỗi pattern có trade-off riêng về security và complexity. - API Key: chuỗi secret gửi trong header (X-API-Key) hoặc query param — đơn giản, phù hợp server-to-server, machine-to-machine; không có…
- WebSocket scaling gặp những thách thức gì? Cách giải quyết trong hệ thống nhiều server?
WebSocket là persistent connection — mỗi connected client chiếm một file descriptor và memory trên server. Với 10,000 concurrent connections, single server có thể chịu được; nhưng khi scale horizontal lên nhiều server, gặp vấn đề: client A kết nối server 1, client B kết…
- Server-Sent Events (SSE) vs WebSocket vs Long Polling: so sánh và khi nào dùng?
Long Polling, SSE và WebSocket là 3 cách server push data đến client, khác nhau về directionality, overhead và độ phức tạp. Long Polling: client gửi request, server giữ connection open cho đến khi có data mới (hoặc timeout), rồi response; client lập tức gửi…
- TCP 4-way handshake (connection teardown) hoạt động như thế nào? TIME_WAIT state là gì?
TCP dùng 4-way handshake (FIN/ACK/FIN/ACK) để đóng kết nối; sau đó initiator vào TIMEWAIT (2×MSL ≈ 60s) để đảm bảo ACK cuối được nhận. TCP close connection cần 4 bước vì mỗi direction đóng độc lập: (1) Client gửi FIN — muốn đóng kết nối;…
- IPv4 vs IPv6: sự khác biệt chính và tại sao transition diễn ra chậm?
IPv4 (32-bit, ~4.3 tỷ địa chỉ) đã cạn từ 2011; IPv6 (128-bit) giải quyết triệt để nhưng transition chậm do backward incompatibility và NAT workaround vẫn hoạt động đủ tốt. IPv4: 32-bit address (~4.3 tỷ địa chỉ) — cạn kiệt từ 2011. NAT (Network Address…
- TLS 1.3 khác gì so với TLS 1.2? Tại sao TLS 1.3 được khuyến nghị?
TLS 1.3 (2018) cải tiến TLS 1.2: giảm từ 2-RTT xuống 1-RTT, bắt buộc forward secrecy (ECDHE), loại bỏ cipher cũ và mã hoá certificate — nhanh hơn và an toàn hơn đáng kể. TLS 1.2 (2008): handshake 2-RTT, hỗ trợ nhiều cipher suite cũ…
- Mutual TLS (mTLS) là gì? Khi nào cần dùng trong microservices?
mTLS (Mutual TLS) yêu cầu cả client và server present certificate, đảm bảo both-way authentication — cần thiết trong zero-trust microservice environments. TLS thông thường: chỉ client verify server certificate (1-way TLS). mTLS (Mutual TLS): cả server VÀ client đều present certificate và verify lẫn…
- Các HTTP status codes quan trọng: phân biệt 401 vs 403, 502 vs 504, và các 3xx redirects?
HTTP status codes chia thành 5 nhóm: 1xx info, 2xx success, 3xx redirect, 4xx client error, 5xx server error — các code quan trọng nhất là 401/403, 301/302, 502/504. 1xx (Informational): 100 Continue, 101 Switching Protocols (WebSocket upgrade). 2xx (Success): 200 OK, 201 Created, 204…
- Subnetting và CIDR notation là gì? Cách tính subnet trong thực tế?
CIDR (Classless Inter-Domain Routing) notation: 192.168.1.0/24 — 24 bit đầu là network prefix, 8 bit còn lại là host. /24 = 256 địa chỉ (2^8), 254 usable (trừ network address và broadcast). Phổ biến: /8 (class A, 16M hosts), /16 (class B, 65K hosts), /24…
- Load balancer L4 vs L7: khác nhau như thế nào và khi nào dùng cái nào?
L4 LB route dựa trên IP/port (nhanh hơn, protocol-agnostic); L7 LB đọc HTTP content để route thông minh hơn (URL path, headers, cookies) nhưng cần terminate connection. L4 Load Balancer (Transport layer): hoạt động ở tầng TCP/UDP — không đọc HTTP content, chỉ route dựa…
- Latency vs Bandwidth vs Throughput: phân biệt và tối ưu như thế nào?
Latency (độ trễ per packet), Bandwidth (dung lượng tối đa), và Throughput (data thực sự truyền) là 3 metric khác nhau — tối ưu từng metric cần chiến lược riêng. Latency: thời gian một packet đi từ A đến B (RTT = round-trip time). Bao…
- HTTP Keep-Alive và Connection Pooling: cơ chế và tác động đến performance?
HTTP Keep-Alive và Connection Pool đều tránh overhead tạo kết nối mới cho mỗi request — quan trọng cho performance của cả HTTP calls và database queries. HTTP Keep-Alive (persistent connection): HTTP/1.0 default là close connection sau mỗi request (mỗi request = TCP handshake +…
- Cache-Control headers: no-cache vs no-store vs max-age, ETag và Last-Modified hoạt động thế nào?
- Connection timeout vs Read timeout vs Write timeout: phân biệt và cấu hình đúng?
Connection timeout (thiết lập TCP), Read timeout (nhận response) và Write timeout (gửi request) là 3 loại timeout khác nhau — phải set cả 3 để tránh thread/connection leak. Connection timeout: thời gian tối đa để thiết lập TCP connection (3-way handshake). Thường 3-10 giây.…
- ARP hoạt động thế nào? Khi nào một máy cần gửi ARP request?
ARP (Address Resolution Protocol) ánh xạ IP address (tầng 3) sang MAC address (tầng 2) trong cùng một LAN. Khi máy A muốn gửi gói tới một IP đích cùng subnet nhưng chưa biết MAC của nó, A broadcast một ARP request ("Ai đang giữ…
- DHCP cấp phát IP động thế nào? Giải thích 4 bước DORA.
DHCP (Dynamic Host Configuration Protocol) tự động cấp IP và cấu hình mạng (subnet mask, gateway, DNS) cho client, tránh phải đặt IP tĩnh thủ công. Quy trình 4 bước DORA: - Discover: client mới broadcast để tìm DHCP server. - Offer: server đề nghị…
- NAT là gì? Nó giải quyết vấn đề gì?
NAT (Network Address Translation) dịch địa chỉ IP private bên trong LAN thành một IP public khi ra Internet, và dịch ngược lại khi phản hồi về. Router giữ một bảng NAT map cặp (private IP:port ↔ public IP:port). Vấn đề nó giải: IPv4 chỉ…
- Private IP và public IP khác nhau thế nào? Các dải private là gì?
Public IP là địa chỉ định tuyến được trên Internet toàn cầu, duy nhất, do ISP/RIR cấp. Private IP chỉ dùng nội bộ trong LAN, không định tuyến ra Internet, và có thể trùng nhau giữa các mạng khác nhau. Ba dải private (RFC 1918):…
- MAC address và IP address khác nhau thế nào? Vì sao cần cả hai?
MAC address là định danh vật lý 48-bit gắn cứng vào card mạng (NIC), hoạt động ở tầng 2 (Data Link) và chỉ có ý nghĩa trong phạm vi một LAN. IP address là định danh logic ở tầng 3 (Network), có thể thay đổi…
- Hub, switch và router khác nhau thế nào? Mỗi thiết bị hoạt động ở tầng nào?
- Hub (tầng 1 — Physical): thiết bị đơn giản, nhận bit ở một cổng rồi lặp lại ra tất cả cổng khác. Mọi thiết bị chung một collision domain, băng thông bị chia sẻ — gần như tuyệt chủng ngày nay. - Switch (tầng…
- Flow control và congestion control trong TCP khác nhau thế nào? Sliding window hoạt động ra sao?
- ICMP là gì? ping và traceroute hoạt động thế nào?
ICMP (Internet Control Message Protocol) là giao thức tầng 3 dùng để báo lỗi và chẩn đoán mạng (không mang dữ liệu ứng dụng), ví dụ "Destination Unreachable" hay "Time Exceeded". - ping gửi ICMP Echo Request tới đích và chờ Echo Reply, đo round-trip…
- Encapsulation và decapsulation diễn ra thế nào khi gói tin đi qua các tầng của chồng giao thức (mô hình TCP/IP)?
Encapsulation là quá trình mỗi tầng (từ trên xuống, ở phía gửi) bọc dữ liệu của tầng trên bằng header (và đôi khi trailer) của mình. Theo mô hình TCP/IP 5 tầng: - Application: data - Transport: thêm TCP header → segment, hoặc UDP header…
- Mã hoá đối xứng và bất đối xứng khác nhau thế nào? Vì sao TLS dùng cả hai?
- Mã hoá đối xứng: dùng chung một khoá bí mật cho cả mã hoá lẫn giải mã (AES, ChaCha20). Rất nhanh, phù hợp mã hoá lượng lớn dữ liệu — nhưng hai bên cần một cách an toàn để cùng có khoá. - Mã…
- VPN và tunneling hoạt động thế nào?
VPN (Virtual Private Network) tạo một "đường hầm" mã hoá qua mạng công cộng (Internet) để thiết bị truy cập tài nguyên như đang ở trong mạng nội bộ, đồng thời giấu lưu lượng khỏi bên trung gian. Tunneling là kỹ thuật nền: gói tin…
- Static routing và dynamic routing khác nhau thế nào? So sánh OSPF với RIP; default gateway là gì?
- Các cổng well-known là gì? Kể vài cổng thông dụng.
Cổng (port) là số 16-bit (0–65535) giúp tầng Transport phân biệt nhiều dịch vụ chạy trên cùng một IP. IANA chia ba khoảng: well-known (0–1023, dịch vụ hệ thống), registered (1024–49151), và dynamic/ephemeral (49152–65535, dùng cho client tạm thời). Vài cổng well-known thường gặp: -…