Tải bản đầy đủ (.ppt) (29 trang)

Thiết kế giao thức

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (191.23 KB, 29 trang )


Network programming
1
Thi t k giao th cế ế ứ
Giảng viên: Nguyễn Hoài Sơn
Bộ môn Mạng và Truyền thông máy tính
Khoa Công nghệ thông tin

Network programming
2
T i sao chúng ta c n thi t k giao th c ạ ầ ế ế ứ
m i?ớ

Các ứng dụng mới xuất hiện mọi nơi mọi lúc
– ngày càng phụ thuộc vào truyền thông
mạng

Cuộc cách mạng về thông tin làm xuất hiện các
nhu cầu mới

Sự thay đổi trong môi trường làm việc đòi hỏi
chúng ta xem xét lại thiết kế của các giao
thức đã có

Network programming
3
Quy trình thi t k giao th cế ế ứ

Network programming
4
Các yêu c u khi thi t k giao th cầ ế ế ứ



Hiểu mục đích, yêu cầu

Yêu cầu về chức năng: features, security,…

Các yêu cầu khác: scale, time-to-market, cost, …

Hiểu về những giới hạn

Giới hạn về chức năng: Môi trường thực hiện

Các giới hạn khác: giá thành, cân nặng, năng
lượng tiêu thụ, memory, CPU, …

Hiểu về những thỏa hiệp có thể chấp nhận
được

Must vs. nice-to-have

Network programming
5
M t s khía c nh chung c a vi c thi t k ộ ố ạ ủ ệ ế ế
giao th c (1)ứ

Quy mô thiết kế

Chỉ là một phần trong thiết kế ứng dụng nào đó

Nhằm tạo ra platform cho một môi trường cạnh tranh


Mục đích thiết kế

Giải pháp hoàn chỉnh cho một ứng dụng

Tạo ra các gói đế sử dụng lại một cách mềm dẻo

Sử dụng các gói có sẵn để tạo ra giải pháp cụ thể nào đó

Tạo ra hay Sử dụng lại

Sử dụng lại các công nghệ đã có

Hưởng lợi từ kinh nghiệm, code, etc. ít rủi ro

Nhưng: Có thực sự đáp ứng mục đích, yêu cầu, chi phí, …

Tạo ra công nghệ mới từ zero

Có thể tối ưu hóa phù hợp với quy mô, mục đích, yêu cầu sử dụng

chấp nhận rủi ro lớn hơn, nhiều thời gian để đưa ra thị trường

Network programming
6
M t s khía c nh chung c a vi c thi t k ộ ố ạ ủ ệ ế ế
giao th c (2)ứ

Học từ những giải pháp liên quan

Mượn các khái niệm và giải pháp


nhưng chỉ ở chỗ nào có thể áp dụng được

Tránh lỗi. Xem xét các triến khai trên thực tế trước khi mượn

Tránh “second system syndrome”

Bám sát các yêu cầu trong quá trình thiết kế

Một số cách thức đơn giản hóa

Tối ưu hóa cho trường hợp chung

Không phức tạp hóa vấn đề – Keep it simple stupid (KISS)

Tránh các tùy chọn và tham số

Nhớ rằng cuối cùng chúng ta sẽ phải thực thi thiết kế

Network programming
7
M t s khía c nh chung c a vi c thi t k ộ ố ạ ủ ệ ế ế
giao th c (3)ứ

Phân tách rạch ròi các vấn đề

Xử lý các khía cạnh độc lập nhau một cách độc lập

Những gì thực sự là độc lập nhau?


Phân tầng chặt chẽ

Định nghĩa rõ ràng các điểm truy cập dịch vụ (SAPs)

Có xu hướng che dấu hoàn toàn các tầng dưới với các tầng trên

Phá vỡ sự trừu tượng hóa- Leaky abstraction

Phân tầng chặt chẽ không phải lúc nào cũng tốt

Không nhất thiết phải che dấu bằng mọi giá

Áp dụng cho thiết kế giao thức, lập trình và một số công việc khác

By Joel Spolsky />
Tối ưu hóa bằng thông tầng (Cross-layer)

Xử lý các vấn đề phụ thuộc vào các tầng dưới ở tầng trên và ngược lại

Network programming
8
Thi t k giao th c có tính Trade-Offs…ế ế ứ
…giữa các yêu cầu và các hạn chế của môi trường
làm việc

“Tốt, nhanh, rẻ – chỉ được hai, không thể thực hiện
được cả ba.”

Ví dụ


Độ tin cậy vs. độ trễ

Chức năng vs. băng thông

Khả năng mở rộng vs. hiệu quả

Chức năng vs. đơn giản

Một thiết kế để thực hiện một mục tiêu nào đó sẽ tác
động ngược lại vào một mục tiêu khác

Cần tìm kiếm sự thỏa hiệp hợp lý để thực hiện được chức
năng yêu cầu với giá thành có thể chấp nhận được

Network programming
9
Các bên truy n tin và vai tròề

Truyền tin điểm-điểm vs. nhiều điểm

Có bao nhiêu bên tham gia vào quá trình truyền tìn?

Unicasting vs. group-overlays vs. multicasting

Kiểu trao đổi thông tin nào được giả thiết?

Truyền tin Client-server vs. truyền tin ngang hàng

Các bên có cùng vai trò hay có vai trò khác nhau?


Truyền tin cuối-cuối vs. trung gian vs. hỗ trợ của
router

Những thực thể nào có thể, có hoặc phải tham gia
vào quá trình truyền tin? Chúng có “thấy được” hay
không?

Network programming
10
Đ nh danh bên truy n tinị ề

Tên

Định danh có thể đọc được để con người dễ nhớ (e.g., DNS
name, URI, URN)

Định danh

Định dang có thể xử lý bới máy tính

Địa chỉ

Định dang cấp giao thức (e.g., IP address)

Địa điểm

Thông tin về địa điểm của bên truyền tin trong một tôpô mạng

Cần quản lý (là duy nhất)


Hoặc được chọn ngẫu nhiên trong môi trường ad-hoc

Các định danh này cần được chuyển đổi lẫn nhau

Address books, dữ liệu phân tán(e.g., DNS, DHTs), giao thức
trao đổi, caching, cấu hình (thủ công), …

Network programming
11
Đ ph c t pộ ứ ạ

Độ phức tạp giao thức

Số lượng của giao thức, số lượng của tùy chọn

Độ phức tạp trạng thái

E.g., Số trạng thái và chuyển trạng thái, yêu cầu đồng bộ hóa

Số chuyển trạng thái (tương tác) để đạt được kết quả

Độ phức tạp tính toán

Ví dụ: Mã hóa, định tuyến, tìm kiếm

Vấn đề về tính tương thích

Cần làm tương thích với các phiên bản cũ

Khó khăn trong việc đưa ra chức năng mới, dễ dẫn đến sự phức

tạp

Network programming
12
Đ ph c t p (2)ộ ứ ạ

Độ phức tạp thực thi

Yêu cầu về CPU (liên quan đến độ phức tạp hoạt
động và độ phức tạp tính toán)

Yêu cầu bộ nhớ (code, dữ liệu – liên quan đến độ
phức tạp trạng thái)

Yêu cầu về độ lớn của đĩa

Những tài nguyên khác…

Network programming
13
Đ ph c t p đi u khi nộ ứ ạ ề ể

Để chạy hệ thống

Có bao nhiêu tham số phải cấu hình?

Cần bao nhiêu sự phối hợp (ví dụ. giữa các tổ chức)?

Có thể phát hiện được cấu hình sai không và cấu hình như thế
nào?


Xử lý tự động vs. xử lý thủ công

Theo dõi

Những tham số nào? Như thế nào? Chu kỳ bao lâu?

Xứ lý lỗi

Giảm dần vs. ngừng hoàn toàn hoạt động của hệ thống

Làm thế nào để theo dõi và phát hiện lỗi?

Làm thế nào để khôi phục lại hệ thống?

Mất khoảng bao nhiêu lâu?

Network programming
14
Tính kinh tế

Truyền dữ liệu gắn với chi phí

Rate, volume, packets, QoS, …

Độ phức tạp thực thi gắn liền với chi phí

Nhân công để thiết kế, thực thi và kiểm tra hệ thống

Các thiết bị cần thiết


Lợi nhuận gắn liền với độ phức tạp giao thức

Định luật Metcalfe

giá trị của một mạng truyền thông tỷ lệ với bình phương của số
người tham gia

Network programming
15
M t s v n đ v thi t k giao th cộ ố ấ ề ề ế ế ứ

Hoạt động có trạng thái vs. không trạng thái

Số lượng thông tin cần duy trì khi trao đổi thông tin

Khái niệm về “liên kết” hay “kết nối”

Trạng thái này được lưu giữ tại đâu? (Tại một hay cả hai bên trong
trường hợp giao tiếp điểm-điểm)?

Nút cố định vs. nút di động

ảnh hưởng đến định tuyến, khả năng truy cập, …

Truyền tin dựa vào hạ tầng mạng vs. truyền tin kiểu ad-hoc/tự
động

Kiểu hạ tầng này được giả thiết?


Bảo mật trong giao thức vs. bảo mật dựa vào nơi khác

Yêu cầu nào? (e.g., hạ tầng yêu cầu như PKI)

Network programming
16
Đánh giá thi t k giao th c (1)ế ế ứ

Khả năng thích ứng

Khả năng thích ứng với các điều kiện môi trường khác nhau
(thay đổi chất lượng dịch vụ ở mức có thể chấp nhận được)

Ví dụ: sự thích ứng về độ trễ playout và codec với truyền thông đa
phương tiện

Khả năng mở rộng

Có thể làm việc trong các khoảng rộng của các tham số môi
trường

Ví dụ điển hình: Số lương nodes

Tốc độ truyền dữ liệu, tốc độ lỗi, độ dài đường truyền, độ trễ

Số lượng và kích thước dữ liệu

Hiệu quả

Duy trì một mức độ overhead hợp lý


Ví du: tiêu đề giao thức, mã hóa giao thức

Số lượng tương tác giao thức, packets, bits, xử lý

Network programming
17
Đánh giá thi t k giao th c (2)ế ế ứ

Bảo mật

Khả năng triển khai

robustness (chống DoS, điểm lỗi duy nhất, etc.)

Khả năng đưa ra thực tế theo từng bước

Khả năng tương thích

Tương thích với các phiên bản cũ và mới

Khả năng điều khiển và quản lý

Network programming
18
Kh năng m r ngả ở ộ
Một câu đánh giá thiết kế điển :
“Thiết kế này không co dãn (scale) …”

Tại sao?


Câu này nói về điều gì?

Tại sao lại phải như vậy?

Network programming
19
Kh năng m r ng nói chungả ở ộ
Thường dùng (không chỉ) trong truyền tin, là

Khả năng của hệ thống hoạt động với nhiều điều kiện môi
trường khác nhau

ngược lại là chỉ hạn chế với một điều kiện môi trường duy nhất

Đánh giá trên một hay nhiều tham số đầu vào

Khả năng sử dụng với khoảng tham số đầu vào có thể chấp
nhận được

Gần như gắn liền với mức độ( và tính công bằng) sử dụng tài
nguyên

Liên quan đến học thuyết về độ phức tạp

Phân chia mức độ sử dụng tài nguyên dựa trên đầu vào
Các cấp độ phức tạp: O(1), O(n), O(log n), O(nk), O(en)

Network programming
20

Kh năng m r ng nh là m t th c đo ả ở ộ ư ộ ướ
(1)

Network programming
21
Khả năng mở rộng: Phía mạng

Độ dài đường truyền (Số lượng hop, độ trễ, biến thiên độ trễ)

Độ trễ do khoảng cách phụ thuộc tốc độ truyền ánh sáng + độ trễ xử
lý/xếp hàng tài mỗi nút mạng

Trên một host vs. cùng mạng cục bộ vs. cách 30 hops trên mạng
Internet

< 1ms trên đường LAN vs. vài giây qua GPRS hay truyền thông vệ
tinh

vs. vài phút, vài giờ với trạm vũ trụ

Độ trễ không đổi trên mạng cục bộ vs. độ trễ chênh lệch vài giây với
truyền tin vệ tinh

do giao thức truy cập trung gian

Network programming
22
Khả năng mở rộng: Phía mạng (2)

Mức độ mất mát


Độ mất mát 0 trên đường truyền cục bộ vs. Mất mát <
10% trên đường truyền Internet

Mất mát không dự đoán được trên đường truyền
không dây

Mất mát riêng rẽ (tuân theo một phân bố nào đó) vs.
mất mát bùng nổ

Tốc độ đường truyền

Vài trăm bit/s qua đường truyền không dây, tiết kiệm
điện vs. Tbit/s trên đường cáp quang

Network programming
23
Khả năng mở rộng: Phía ứng dụng

Tốc độ cập nhật hay gửi yêu cầu

Đo bởi số hoạt động trong 1 giây vs. 1 giờ vs. 1 ngày

Thời gian giữa 2 cập nhật

Kích cỡ dữ liệu

Kích thước dữ liệu từ vài chục bytes đến10 GB

Số lượng các bên tham gia (người dùng, mạng, hệ

thống)

Bao nhiêu bên thực hiện gửi

Số luợng mỗi bên tham gia

Ví dụ: vấn đề C10K: xử lý 10,000(s) máy khách với một máy
chủ

Network programming
24
Kh năng m r ng: th c thiả ở ộ ự

Vấn đề C10K:

Sự tương tác thường xuyên

Các hoạt động chi phí cao như chấp nhận và đóng kết nối, bảo mật, …

Multiplexing và xử lý xuất nhập dữ liệu

Xử lý đa tiến trình vs. đa luồng vs. đơn luồng

Vấn đề với hiệu quả cuộc gọi hệ thống (e.g., poll (), select ())

Xử lý nhiều sự kiện sẽ tiêu tốn thời gian

Truy cập dữ liệu

Tìm kiếm dữ liệu trong ổ cứng khi truy cập file


Ổ cứng là “nhanh” nếu không truy cập dồn

Ví dụ: video-on-demand streaming

Băng thông bus của hệ thống

Tương tác với các tiến trình khác trên cùng một máy tính

Network programming
25
Kh năng m r ng: th c thi(2)ả ở ộ ự

Cân bằng tải

Sử dụng chuỗi máy chủ để cân bằng tải

Cân bằng tải sử dụng DNS, proxies

Có thể xử lý phân tán để tăng khả năng truy cập

Và giảm độ trễ truyền thông

Vấn đề: cần phải đồng bộ dữ liệu giữa các máy chủ

Khả năng mở rộng với các platform

Thiết bị chạy bằng pin

Hệ thống nhúng nhỏ (TCP stack 4 KB)


TV/car yêu cầu giá thành thấp

Phone/PDA

Desktop hay laptop PC cấu hình mạnh

Máy tính đa CPU tốc độ cao

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×