Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
391,5 KB
Nội dung
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ếtkế của các giaothứ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ếtkế Chỉ là một phần trong thiếtkế ứ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ếtkế 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ếtkế 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ếtkế 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ếtkếgiao thức, lập trình và một số công việc khác By Joel Spolsky http://www.joelonsoftware.com/articles/LeakyAbstractions.html 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ếtkế để 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 giaothứ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), giaothức trao đổi, caching, cấu hình (thủ công), … [...]... lượng các bên tham gia Sự thay đổi thường không thể dự đoán trước được Network programming 28 Bài tập 2 Tự thiếtkế một giaothức mạng và trình bày thiếtkế theo các mục sau: Mục đích, yêu cầu của giaothức Chi tiết về giao thứcthiếtkế Ưu/nhược điểm của giao thứcthiếtkế với các giaothức khác Thời hạn nộp bài: Thứ 2 ngày 15 tháng 10 năm 2007 Địa chỉ nộp bài: hoaison@gmail.com and sonnh@coltech.vnu.vn... 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 giaothứ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 14 Một số vấn đề về thiết kếgiaothứ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”... 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 giaothức Số lượng tương tác giao thức, packets, bits, xử lý Network programming 16 Đánh giá thiết kếgiaothức (2) Bảo mật Khả năng triển khai Khả năng tương thích robustness (chống DoS, điểm lỗi duy nhất, etc.) Khả năng đưa ra thực...Độ phức tạp Độ phức tạp giaothứ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... đổ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 giaothức vs bảo mật dựa vào nơi khác Yêu cầu nào?... điểm lỗi duy nhất, etc.) Khả năng đưa ra thực tế theo từng bước 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 17 Khả năng mở rộng Một câu đánh giá thiếtkế điển : Thiếtkế 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 18 Khả năng mở rộng nói chung Thường dùng (không chỉ) trong truyền tin, là... 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 giaothứ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 15 Đánh giá thiết kếgiaothứ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) Khả năng mở rộng Có thể làm việc trong các... 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 giaothức truy cập trung gian Network programming 21 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... 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 Network programming 25 Ví dụ:... Tính chất then chốt Mô hình phân tán: sự hợp tác giữa các máy chủ Máy chủ dự trữ: tránh “single point of failure” Cấu trúc phân tầng của tên miền Để có thể quản lý và hoạt động phân tán Giao phó trách nhiệm một cách dễ dàng Mục đích chung: không chỉ dùng với địa chi IP Một máy chính và một hay nhiều hơn một máy phụ Có thể ánh xạ tới bất cứ thông tin gì Khả năng mở rộng được thực hiện . độ 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ả. 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 Độ. 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