Một số ứng dụng mạng:
Web
Tin nhắn nhanh
Đăng nhập từ xa
Chia sẻ file P2P
Trò chơi nhiều người trên mạng
Streaming các video clips
Điện thoại Internet
Hội thảo video thời gian thực
…
Các kiến trúc của ứng dụng
Kiến trúc Client-server:
Server:
Host luôn hoạt động
Địa chỉ ip cố định
Nhóm các server để chia sẻ công việc
Clients:
Truyền thông với server
Có thể kết nối không liên tục
Có thể có địa chỉ ip thay đổi
Không truyền thông trực tiếp với client khác
Peer-to-peer (P2P):
Không có server luôn hoạt động
Truyền thông trực tiếp với hệ thống đầu cuối bất kỳ
Các điểm kết nối không liên tục và thay đổi địa chỉ ip
Lai của client-server và P2P
Skype
ứng dụng điện thoại Internet
Tìm địa chỉ của thành viên ở xa: server trung tâm
Kết nối trực tiếp Client-client (không thông qua server)
Tin nhắn nhanh
Chat giữa 2 user là P2P
Mô hình client-server:
User đăng ký địa chỉ IP của họ với server trung tâm khi trực tuyến
User tiếp xúc với server trung tâm để tìm địa chỉ IP của bạn
Các dịch vụ giao thức Internet transport
TCP Services:
Connection-oriented: cần thiết lập tiến trình giữa client và server
Vận chuyển tin cậy: giữa tiến trình gửi và nhận
Điều khiển luồng: người gửi sẽ không lấn át người nhận
Điều khiển tắc nghẽn: điều tiết người gửi khi mạng quá tải
Không hỗ trợ: định thì, bảo đảm băng thông tối thiểu
UDP Services:
Truyền dữ liệu không tin cậy giữa gửi và nhận
Không hỗ trợ: thiết lập kết nối, tin cậy, điều khiển luồng, điều khiển tắc nghẽn, định thì, bảo đảm băng thông tối thiểu
Các giao thức lớp application, transport
Một số thuật ngữ:
Web page (trang Web) bao gồm các objects (đối tượng)
Đối tượng có thể là file HTML, hình ảnh JPEG image, Java applet, file audio,…
Trang Web file HTML cơ bản sẽ chứa một số đối tượng có tham chiếu
Mỗi đối tượng có thể định địa chỉ bằng một URL
Ví dụ URL:
Tên host Tên đường dẫn
Tổng quan HTTP - Hypertext transfer protocol
Giao thức lớp ứng dụng của Web
Mô hình client/server
Client: trình duyệt yêu cầu, nhận và hiển thị các đối tượng Web
Server: Web server gửi các đối tượng đáp ứng cho yêu cầu
HTTP 1.0: RFC 1945
HTTP 1.1: RFC 2068
Hình 2.1. HTTP
Dùng TCP:
Client khởi tạo kết nối TCP (tạo socket) đến server, port 80
Server chấp nhận kết nối TCP từ client
Các thông điệp HTTP (thông điệp giao thức lớp application) trao đổi giữa trình duyệt (HTTP client) và Web server (HTTP server)
Đóng kết nối TCP
Kết nối HTTP:
Nonpersistent HTTP (HTTP/1.0)
Persistent HTTP (HTTP/1.1)
Định dạng thông điệp HTTP
2 kiểu thông điệp HTTP: yêu cầu, đáp ứng
Hình 2.2. HTTP Format
Tương tác User-Server: Authentication & Cookies
Authentication
Cookies: 4 thành phần
1) cookie header line của thông điệp đáp ứng HTTP
2) cookie header line trong thông điệp đáp ứng HTTP
3) cookie file lưu trong host của user, quản lý bởi trình duyệt của user
4) cơ sở dữ liệu back-end tại Web site
Hình 2.3. FTP
Truyền file đến/từ host từ xa
Mô hình client/server
Client: phía khởi tạo truyền (đến/từ host ở xa)
Server: host ở xa
Ftp: rfc 959
Ftp server: port 21
Kết nối dữ liệu và điều khiển
FTP client tiếp xúc FTP server tại port 21, xác định TCP như giao thức transport
Client lấy giấy phép thông qua kết nối điều khiển
Client xem thư mục ở xa bằng việc gửi các lệnh thông qua kết nối điều khiển.
Khi server nhận lệnh truyền file, server mở kết nối TCP thứ 2 (cho file) đến client
Sau khi truyền 1 file, server đóng kết nối dữ liệu
Server mở kết nối dữ liệu TCP khác để truyền file khác
Điều khiển kết nối: “out of band”
FTP server giữ lại “trạng thái”: thư mục hiện hành, giấy phép trước đó
Hình 2.4. FTP Port
Các lệnh, phản hồi FTP
Gửi như văn bản ASCII trên kênh điều khiển
USER username
PASS password
LIST trả về danh sách của file trong thư mục hiện hành
RETR filename trích chọn (lấy) file
STOR filename lưu (đặt) file vào trong host ở xa
Hình 2.5. Email
3 thành phần quan trọng:
user agents
mail servers
simple mail transfer protocol – SMTP (RFC 2821)
dùng TCP để truyền tin cậy thông điệp email từ client đến server trên port 25
truyền trực tiếp: server gửi đến server nhận
3 kênh truyền
bắt tay (chào hỏi)
truyền thông điệp
đóng
tương tác lệnh/phản hồi
lệnh: văn bản ASCII
phản hồi: mã trạng thái và cụm
các thông điệp phải ở dạng mã ASCII 7-bit
Các giao thức truy cập Email: SMTP, POP, IMAP, HTTP
Các dịch vụ DNS:
Tên Host chuyển thành địa chỉ IP
Bí danh Host: các tên đúng chuẩn và bí danh
Bí danh Mail server
Tải phân bố
Các server tên gốc:
Các server Top-level domain (TLD) : chịu trách nhiệm cho tên miền com, org, net, edu,… và các tên miền quốc gia như uk, fr, ca, jp.
Các DNS server có thẩm quyền: DNS server của tổ chức, cung cấp các tên host có thẩm quyền để ánh xạ IP cho server (ví dụ: Web và mail).
Hiện có 13 TLD
Các truy vấn đệ quy:
Hình 2.6. Các truy vấn đệ quy trong gửi/nhận email
Các DNS Record:
Type=A
name là tên host
value là địa chỉ IP
Type=NS
name là tên miền (vd: foo.com)
value là tên host của server tên có thẩm quyền cho tên miền này
Type=CNAME
name là bí danh của tên “chuẩn” (tên thực)
value là tên chuẩn
Type=MX
value là tên của email server liên kết với name
Hình 2.7. DNS Message format
Socket API
đã được giới thiệu trong BSD4.1 UNIX, 1981
rõ ràng tại, sử dụng và giải phóng bởi ứng dụng
mô hình client/server
2 kiểu dịch vụ lưu thông qua socket API:
datagram không tin cậy
tin cậy, truyền byte theo streaming
Lập trình socket dùng TCP
Truyền tin cậy các bytes từ một tiến trình đến tiến trình khác
Client phải tiếp xúc với server
tiến trình server phải chạy trước
server phải tạo socket (cửa) mời client đến tiếp xúc
Client tiếp xúc server bằng:
tạo socketTCP client cục bộ
xác định địa chỉ IP, số port của tiến trình server
Khi client tạo socket: client TCP thiết lập kết nối với server TCP
Khi đã được tiếp xúc bởi client, server TCP tạo socket mới cho tiến trình server để truyền thông với client
cho phép server “nói chuyện” với nhiều client
số port dùng để phân biệt các client
Hình 2.8. Giao tiếp giữa 2 hosts
UDP: không “kết nối” giữa client và server
không bắt tay
người gửi rõ ràng gắn địa chỉ IP và port của đích vào mỗi gói
phải trích địa chỉ IP, port của người gửi từ gói đã nhận
UDP: dữ liệu truyền có thể không theo thứ tự, hoặc bị mất mát
Quản lý 1 yêu cầu HTTP
Chấp nhận yêu cầu
Phân tích cú pháp header
Lấy file được yêu cầu từ hệ thống file của server
Tạo thông điệp đáp ứng HTTP: các dòng header + file
Gửi đáp ứng đến client
Sau khi tạo server, bạn có thể yêu cầu file dùng trình duyệt (ví dụ: IE)
Nguồn: James F. Kurose & Keith W. Ross, Computer Networking: A Top-Down Approach 4th
» Tin mới nhất:
» Các tin khác: