Thiết kế giao thức

29 244 0
Thiết kế giao thức

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 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ế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), … [...]... 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ết kế một giao thức mạng và trình bày thiết kế theo các mục sau:  Mục đích, yêu cầu của giao thức  Chi tiết về giao thức thiết kế  Ưu/nhược điểm của giao thức thiết kế với các giao thứ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 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 14 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”... 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 16 Đánh giá thiết kế giao thứ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 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... đổ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?... đ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ế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 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 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 15 Đá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)   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 giao thứ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

Ngày đăng: 09/05/2014, 08:25

Từ khóa liên quan

Mục lục

  • Thiết kế giao thức

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

  • Quy trình thiết kế giao thức

  • Các yêu cầu khi thiết kế giao thức

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

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

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

  • Thiết kế giao thức có tính Trade-Offs…

  • Các bên truyền tin và vai trò

  • Định danh bên truyền tin

  • Độ phức tạp

  • Độ phức tạp (2)

  • Độ phức tạp điều khiển

  • Tính kinh tế

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

  • Đánh giá thiết kế giao thức (1)

  • Đánh giá thiết kế giao thức (2)

  • Khả năng mở rộng

  • Khả năng mở rộng nói chung

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

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan