Tạo ra một ứng dụng mạng ứng dụng truyền tải mạng Viết chương trình liên kết vật lý Chạy trên những hệ thống khác nhau Liên lạc thông qua mạng Ví dụ: phần mềm máy chủ web giao tiếp với phần mềm trình duyệt web Không cần thiết viết phần mềm cho các thiết bị mạng ứng dụng truyền tải mạng Thiết bị mạng không chạy liên kết vật lý ứng dụng những ứng dụng dành cho người truyền tải mạng dùng liên kết vật lý Phần mềm trên các thiết bị mạng được chuyên biệt hóa cao Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 3 Chương 2: Tầng ứng dụng © 2011 5
Trang 1Trường Đại Học Bách Khoa Tp.HCM Khoa Khoa Học và Kỹ Thuật Máy Tính
ThS NGUYỄN CAO ĐẠT E-mail:dat@cse.hcmut.edu.vn
Bài giảng Mạng máy tính
Trang 2Chương 2: “Computer Networking – A top-down approach”
Trang 3 Mô hình dịch vụ tầng ứng dụng
Mô hình khách-chủ
Mô hình ngang hàng một-một
Học về các giao thức bằng cách xem xét các giao thức tầng ứng dụng phổ biến
Trang 5 Phần mềm trên các thiết bị
mạng được chuyên biệt hóa cao
ứng dụng
truyền tải mạng liên kết vật lý
ứng dụng
truyền tải mạng liên kết vật lý
ứng dụng
truyền tải mạng liên kết vật lý
Trang 7Kiến trúc ứng dụng mạng
Trang 8 giao tiếp với máy chủ
có thể kết nối không liên tục
có thể có địa chỉ IP động
không kết nối trực tiếp với người dùng khác
khách/chủ
Trang 9Cấu trúc P2P
Không có máy chủ
trực tiếp với nhau
Trang 10Mô hình lai của khách-chủ và P2P
Skype
điện thoại-IP: ứng dụng P2P
máy chủ tập trung: quản lý địa chỉ của các bên tham gia
kết nối khách-khách: trực tiếp (không qua máy chủ)
Nhắn tin trực tiếp
Hai người dùng chat với nhau bằng P2P
Máy chủ đảm bảo: quản lý người dùng
Trang 11Liên lạc giữa các tiến trình
Tiến trình: chương trình chạy
trong một máy
trình liên lạc với nhau
máy khác nhau liên lạc
điệp
Tiến trình khách: bắt đầu quá trình kết nối
Tiến trình chủ: chờ khách kết nối tới
Lưu ý: các ứng dụng P2P có cả tiến trình khách lẫn tiến trình chủ
Trang 12Hốc kết nối - Sockets
tiến trình
TCP với
bộ nhớ tạm, biến socket
máy hoặc máy chủ
tiến trình
TCP với
bộ nhớ tạm, biến socket
máy hoặc máy chủ
Internet
điều khiển bởi OS
điều khiển bởi
lt viên ứng dụng
API: (1) lựa chọn giao thức truyền tải; (2) cấu hình một vài
tham số
Trang 13dùng để đánh cho cả các tiến trình không?
Đáp: Không, nhiều tiến trình có thể cùng chạy trên một máy
Ký hiệu nhận dạng bao gồm địa chỉ IP và địa chỉ
tiến trình trên máy
máy chủ HTTP: 80
máy chủ Mail: 25
tới trang web gaia.cs.umass.edu:
địa chỉ IP: 128.119.245.12
cổng: 80
Trang 14Các giao thức tầng ứng dụng qui định
vd: truy vấn, phản hồi
có những trường nào trong thông điệp & chúng được trình bày ntn
ý nghĩa của thông tin trong các trường
thức các tiến trình gửi và phản hồi các thông điệp
Các giao thức công khai:
Trang 15Các ứng dụng yêu cầu gì ở tầng truyền tải?
tải tệp tin, telnet) yêu cầu
truyền tải toàn bộ 100% dữ
liệu
Độ trễ
thoại Internet, trò chơi
tương tác) yêu cầu độ
(bittorrent) tận dụng mọi thông lượng mà nó có thể
sử dụng
Bảo mật
…
Trang 16Những yêu cầu lên tầng vận chuyển của một số
ứng dụng phổ biến
Ứng dụng
truyền tải tệp
e-mail dịch vụ web phim/nhạc thời gian thực phim/nhạc lưu trữ
trò chơi tương tác
nhắn tin trực tiếp
Mất mát dữ liệu
không không không chấp nhận
chấp nhận chấp nhận không
Thông lượng
linh hoạt linh hoạt linh hoạt nhạc: 5kbps-1Mbps phim:10kbps-5Mbps như trên
vài kbps trở lên linh hoạt
Độ trễ thấp
không không không
có, 100’s msec
có, vài giây
có, 100’s msec vừa phải
Trang 17Các dịch vụ tầng truyền tải Internet
Dịch vụ TCP:
hướng kết nối: yêu cầu tạo kết
nối giữa khách và chủ
truyền tải tin cậy: đảm bảo
truyền tải đúng và đủ dữ liệu
kiểm soát lưu lượng: người gửi
không làm ngập người nhận
kiểm soát tắc nghẽn: hãm tốc
độ gửi khi mạng bị quá tải
không cung cấp/đảm bảo: độ
trễ, thông lượng tối thiểu, bảo mật
Hỏi: Tại sao lại cần có UDP?
Trang 18Ứ/d Internet và các giao thức tầng truyền tải
Ứng dụng
e-mail truy cập từ xa
Web truyền tải tệp xem phim trực tuyến
điện thoại Internet
Giao thức tầng ứng dụng
SIP, RTP, sở hữu (vd: Skype)
Giao thức tầng truyền tải t/ứng
TCP TCP TCP TCP TCP or UDP
chủ yếu UDP
Trang 20Web và HTTP
Vài khái niệm căn bản
Trang Web chứa nhiều đối tượng
tệp âm thanh,…
tới các đối tượng khác
Trang 21 chủ: máy chủ Web gửi trả
các đối tượng theo yêu cầu của khách
PC chạy Firefox
Máy chủ chạy dịch vụ máy chủ Web Apache Mac chạy
Safari
Trang 22Tóm lược HTTP (tt)
Sử dụng TCP:
khách khởi tạo kết nối TCP
(tạo hốc kết nối) tới máy chủ tại cổng 80
máy chủ chấp nhận kết nối
TCP từ khách
thông điệp HTTP (thông điệp
giao thức tầng ứng dụng) được trao đổi giữa trình duyệt web (khách HTTP) và máy chủ Web (chủ HTTP)
đóng kết nối TCP
HTTP là giao thức không lưu giữ trạng thái
máy chủ không lưu bất kì thông tin nào về ng/d
Những giao thức lưu trạng thái tương đối phức tạp
lịch sử duyệt web phải được lưu giữ
nếu máy chủ/khách bị hỏng thì thông tin về trạng thái có thể không thống nhất, cần phải cân chỉnh lại
hơn nữa
Trang 23Kết nối HTTP
HTTP không ổn định
được gửi qua MỘT kết nối
TCP
HTTP ổn định
được gửi qua một kết nối TCP duy nhất giữa khách
và chủ
Trang 24HTTP không ổn định
người dùng đưa vào URL sau
www.someSchool.edu/someDepartment/home.index
1a khách HTTP khởi tạo liên kết
TCP tới máy chủ HTTP (tiến trình) tại www.someSchool.edu ở cổng 80
2 khách HTTP gửi thông điệp
truy vấn HTTP (chứa URL) vào hốc kết nối TCP Thông điệp chỉ
ra là khách muốn có đối tượng
“someDepartment/home.index”
1b máy chủ HTTP tại www.someSchool.edu chờ kết nối TCP tại cổng 80 “chấp nhận” kết nối từ khách, thông báo lại cho khách
3 máy chủ HTTP server nhận được thông điệp truy vấn, tạo
ra một thông điệp phản hồi
chứa đối tượng được yêu cầu,
và gửi thông điệp vào hốc kết nối
thời gian
(chứa văn bản, liên kết tới 10 hình ảnh jpeg)
Trang 25HTTP không ổn định(tt)
5 khách HTTP nhận được thông điệp phản hồi chứa tệp html, hiển thị html Phân tích tệp html tìm ra 10 liên kết tới các đối tượng jpeg
6 các bước 1-5 lập lại cho mỗi trong 10 đối tượng jpeg
4 máy chủ HTTP đóng kết nối TCP
time
Trang 26HTTP không ổn định: thời gian phản hồi
Thời gian xoay vòng – RTT:
là thời gian cần để một gói tin nhỏ di chuyển từ khách tới chủ
và quay trở lại
Thời gian phản hồi:
một RTT để khởi tạo kết nối
khởi tạo kết nốiTCP
RTT
yêu cầu tệp tin
RTT
nhận được tệp tin
Trang 27tăng tải cho mỗi kết nối TCP
trình duyệt thường mở nhiều
kết nối TCP song song để tải
những đối tượng liên kết
HTTP ổn định
máy chủ giữ lại liên kết sau khi gửi phản hồi, gọi là liên kết mở
những thông điệp HTTP tiếp theo giữa cặp khách/chủ đó
sẽ được gửi qua liên kết mở
ở trên
khách gửi truy vấn ngay khi
nó gặp phải một liên kết tới đối tượng
chỉ cần 1 RTT cho tất cả các đối tượng được liên kết tới
Trang 28Thông điệp truy vấn HTTP
(response)
thông điệp truy vấn HTTP:
ASCII (định dạng con người đọc được)
GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu
User-agent: Mozilla/4.0 Connection: close
Xuống dòng
báo hiệu kết thúc
thông điệp
Trang 29Thông điệp truy vấn HTTP: định dạng chung
Trang 30Khung nhập dữ liệu tải lên
Phương pháp POST:
những khung điền dữ liệu
(entity body) của thông
điệp truy vấn
Phương pháp GET (URL):
GET
trực tiếp trong các trường của URL của dòng truy vấn
www.somesite.com/animalsearch?monkeys&banana
Trang 31 đòi hỏi máy chủ đặt đối
tượng được yêu cầu nằm ngoài thông điệp phản hồi
xóa tệp được nêu trong URL
Trang 32Thông điệp phản hồi HTTP
HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 … Content-Length: 6821
Content-Type: text/html
dữ liệu dữ liệu
dòng trạng thái
(giao thức
mã trạng thái câu trạng thái)
các dòng mào đầu
dữ liệu, vd:
tệp HTML được yêu cầu
Trang 33Các mã trạng thái của thông điệp phản hồi
HTTP
200 OK
truy vấn thành công, đối tượng theo sau trong thông điệp này
301 Được di chuyển vĩnh viễn - Moved permanently
đối tượng truy vấn đã được di chuyển, vị trí mới kèm theo sau trong thông điệp này (Location:)
400 Truy vấn không hợp lệ - Bad Request
máy chủ không hiểu thông điệp truy vấn
404 Không tìm thấy - Not Found
tài liệu yêu cầu không tìm thấy trên máy chủ này
505 Phiên bản HTTP không được hỗ trợ -HTTP Version Not
Supported
Nằm trong dòng đầu tin của thông điệp phản hồi từ chủ->khách
Một vài mã ví dụ:
Trang 34Thử nghiệm HTTP (với vai khách)
1 Telnet tới trang web yêu
thích:
Mở kết nối TCP tới cổng 80 (cổng mặc định của máy chủ Web) tại cis.poly.edu
Tất cả những gì ta gõ vào đều được gửi tới cổng 80 tại cis.poly.edu
telnet cis.poly.edu 80
2 Gõ vào một truy vấn HTTP “GET” :
GET /~ross/ HTTP/1.1 Host: cis.poly.edu
Bằng cách này (nhấn vào nút Enter 2 lần), bạn gửi một truy vấn GET
tối thiểu (nhưng đầy đủ) tới máy chủ HTTP
3 Xem xét thông điệp phản hồi mà máy chủ HTTP gửi trả
lại cho bạn
Trang 35Trạng thái người dùng/máy chủ: cookies
Nhiều trang web lớn sử dụng
cookies
Bốn thành phần:
1) dòng mào đầu cookie của
thông điệp phản hồi HTTP 2) dòng mào đầu cookie của
thông điệp truy vấn HTTP 3) tệp tin cookie được lưu trên
máy người dùng và quản lý bởi trình duyệt
4) thông tin về phiên làm việc
của người dùng đồng thời được lưu tại CSDL của trang web
Ví dụ:
Internet từ máy tính cá nhân
thương mại điện tử
tiên đến trang web, trang web sẽ tạo ra:
số định danh (ID) độc nhất
một thẻ ghi trong CSDL cho
ID đó
Trang 36Cookies: duy trì “trạng thái” (tt)
Trang 37Cookies (tt)
Cookies có thể chứa gì? :
việc người dùng (Web e-mail)
Cookies và sự riêng tư:
web tìm hiểu nhiều thông tin về bạn
và email cho các web
hiệu ứng
Làm sao để duy trì “trạng thái”:
ng/nhận qua những giao dịch
t/tin trạng thái