(+84) 236.3827111 ex. 402

TẦNG ỨNG DỤNG - APPLICATION LAYER


Một số ứng dụng mạng:

  • E-mail

  • 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

2.1. Nguyên lý của các giao thức tầng ứng dụng

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

2.2. World wide web: HTTP

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


2.3. Truyền tập tin: FTP

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

2.4. Thư điện tử trong Internet

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


2.5. Dịch vụ thư mục của Internet: DNS – Domain Name System

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




2.6. Lập trình Socket với TCP

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

2.7. Lập trình Socket với UDP

  • 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

2.8. Xây dựng một Web Server đơn giản

  • 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)

  • Xem giáo trình để biết thêm chi tiết

Nguồn: James F. Kurose & Keith W. Ross, Computer Networking: A Top-Down Approach 4th