Bài giảng Mạng máy tính - Chapter 2: Application layer
MẠNG MÁY TÍNH
(COMPUTER NETWORKING)
J.F Kurose and K.W. Ross. Computer
Networking A Top Down Approach.
6th edition, Addision Wesley, 2013
Nội dung môn học
Chapter 1: Computer Networks and the Internet
Chapter 2: Application Layer
Chapter 3: Transport Layer
Chapter 4: Network Layer
Chapter 5: The Link Layer and Local Area Network
Data Link
Chapter 6: Wireless and Mobile Networks
Chapter 7: Multimedia Networking
Chapter 8: Security in Computer Networks
Chapter 9: Network Management
1.2
Chapter 2: APPLICATION
LAYER
Agenda
2.1 Các nguyên lý của ứng dụng mạng
2.2 Web và HTTP
2.3 FTP
2.4 Electronic mail
SMTP, POP3, IMAP
2.5 DNS
2.6 Chia sẻ file P2P (Peer-to-Peer Application)
2.7 Lập trình socket với TCP/UDP
1.4
Mục tiêu
Khái niệm, khía cạnh thực hiện của các giao thức ứng dụng mạng
Mô hình client-server
Mô hình peer-to-peer
Nghiên cứu giao thức thông qua xem xét một số giao thức lớp
application
HTTP, FTP, SMTP/POP3/IMAP, DNS
Lập trình ứng dụng mạng
Socket API
1.5
Một số ứng dụng mạng
Email
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
Tính toán lớn, tính toán song song
1.6
Tạo một ứng dụng mạng
Viết chương trình để
Chạy trên các hệ thống đầu cuối, và
Truyền thông qua mạng
Vd: web
Phần mềm nhỏ viết cho các thiết bị trung tâm mạng
Các thiết bị trung tâm mạng không chạy các mã ứng dụng của
người dùng
Ứng dụng trên các hệ thống đầu cuối cho phép phát triển ứng
dụng nhanh, phổ biến
1.7
Principles of the Network Applications
2.1 CÁC NGUYÊN TẮC CỦA
ỨNG DỤNG MẠNG
1.8
1.9
Các kiến trúc của ứng dụng
Client-Server
Peer-to-peer (P2P)
Lai giữa Client-Server và P2P
1.10
Client-Server
Server
Host luôn hoạt động
Địa chỉ IP cố định
Nhóm các server để chia sẻ công v
Clients
Truyền thông với server
Có thể kết nối không liên tục
đ/chỉ IP thay đổi
Không truyền thông trực tiếp với
client khác
1.11
Peer-to-peer
Không có server luôn hoạt động
Truyền thông trực tiếp với thiết bị đầu c
bất kỳ
Các điểm kết nối không liên tục và
liên tục thay đổi đ/chỉ IP
Vd: Gnutella
Độ linh hoạt cao nhưng khó quản lý!!!
1.12
Lai giữ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 users 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
1.13
Tiến trình truyền thông
Tiến trình (process): chương
Tiến trình Client: khởi tạo
trình chạy bên trong 1 host
truyền thông
Tiến trình Server: chờ
được tiếp xúc
Trong cùng host, 2 tiến
trình truyền thông dùng
truyền thông nội bộ (do
hệ điều hành xác định)
Các tiến trình trong các
host khác nhau truyền
thông bằng cách trao đổi
các thông điệp
Chú ý:
Các ứng dụng với kiến
trúc P2P có cả các tiến
trình client và server
1.14
SOCKETS
Socket tương tự như “cửa” hay API (Application Programming
Interface)
giao diện giữa tiến trình với
mạng
(1) lựa chọn giao thức vận
chuyển
Tiến trình gởi: đẩy thông
(2) khả năng chỉnh sửa một vài
tham số
điệp ra ngoài cửa
Tiến trình nhận: phụ thuộc
vào hạ tầng lưu thông mang
thông điệp tói socket thích
hợp
1.15
Tiến trình định địa chỉ (Addressing Processes)
Để nhận được thông điệp, tiến trình phải có nhân dạng (identifier)
Thiết bị host phải có địa chỉ IP là duy nhất
Địa chỉ IP mà trên đó tiến trình đang chạy có đủ để nhận dạng tiến
trình không?
KHÔNG, nhiều tiến trình có thể chạy trên cùng 1 host
Nhân dạng bao gồm địa chỉ IP và số cổng (port) liên kết với tiến
trình trên host
Vd về số port: HTTP server (80), Mail server (25)
Để gởi thông điệp HTTP cho web server gaia.cs.umass.edu
IP address: 128.119.245.12
Port number: 80
1.16
Giao thức lớp ứng dụng (Application-layer Protocol)
Các giao thức Public
Các kiểu trao đổi thông điệp
Vd: Yêu cầu, Đáp ứng
Cú pháp thông điệp
domain
Định nghĩa trong RFC
Cho phép cộng tác
Vd: HTTP, SMTP
Các trường nào có trong
thông điệp và làm sao mô tả?
Ngữ nghĩa thông điệp
Các giao thức độc quyền
Vd: KaZaA
Ý nghĩa của thông tin trong
các trường
Các quy tắc để khi nào và làm
sao các tiến trình gởi và đáp ứng
các thông điệp
1.17
Transport services available to Applications
Truyền dữ liệu đáng tin cậy (reliable data transfer)
Một số ứng dụng chấp nhận có lỗi trong quá trình truyền
(audio/video), một số lại yêu cầu dữ liệu tin cậy 100% (file
transfer)
Thoughput
Bandwidth-sensitive applications: những ứng dụng yêu cầu băng
thông để đạt hiệu quả (vd: multimedia).
Elastic applications: những ứng dụng có thể sử dụng băng thông
nào cũng được (vd: email, file transfer, web transfer)
Timing
Một số ứng dụng (vd: điện thoại internet) yêu cầu độ trễ thấp để
đạt hiệu quả
Security
1.18
Một số yêu cầu đối với các ứng dụng phổ biến
1.19
Transport services provided by the Internet
TCP service
UDP service
Truyền dữ liệu không tin cậy giữa
Connection-oriented service:
gởi và nhận
cần trao đổi thông tin lớp điều
khiển vận chuyển trước khi
tầng application bắt đầu gởi
tin (handshaking procedure)
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, timing, bảo đảm bang
thông tối thiểu
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
không lấn át người nhận
Điều khiển tắc nghẽn: điều tiết
Vậy sinh ra UDP để làm gì?
người gởi khi mạng quá tải
Không hỗ trợ: timing, bảo đảm
băng thông tối thiểu
1.20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Mạng máy tính - Chapter 2: Application layer", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_mang_may_tinh_chapter_2_application_layer.pdf