Các luật này chi phối về nội dung, định dạng, định thời, thứ tự và kiểm soát lỗi của việc trao đổi thông báo giữa các đối dạng, định thời, thứ tự và kiểm soát lỗi của việc trao đổi t
Trang 1Chương 7
THIẾT KẾ PROTOCOL
Trang 2Nội dung
Protocol
Các chức năng của protocol
Các bước thiết kế protocol
Ví dụ – POP3
Trang 3I.Khái niệm Protocol
Protocol là một bộ các luật, quy tắc để hai
đối tượng trên mạng có thể trao đổi thông tin với nhau.
Các luật này chi phối về nội dung, định
dạng, định thời, thứ tự và kiểm soát lỗi
của việc trao đổi thông báo giữa các đối
dạng, định thời, thứ tự và kiểm soát lỗi
của việc trao đổi thông báo giữa các đối
tượng.
Là một bộ các luật về ngữ nghĩa và cú pháp
xác định hành vi của các đơn vị chức năng trong các liên kết trên mạng.
Trang 4II.Các chức năng của Protocol
Trang 5S: Server XX Server Ready!
C: Client XX Hello Server!
S: Client number: XXXXX
Trang 6 Thực hiện việc xác nhận quyền và giới hạn
của đối tượng đã kết nối.
Thông thường là việc xác nhận người sử
dụng thông qua khai báo USERNAME và
Trang 7II.3.Sending & Receiving data
Thực hiện việc gửi nhận dữ liệu giữa
hai đối tượng
Cần xác định dạng dữ liệu chuyển tải
giữa hai đối tượng
giữa hai đối tượng
Việc gửi nhận dữ liệu có thể đi kèm
với việc kiểm tra tính chính xác của
dữ liệu
Trang 8II.4.Flow control
Kiểm soát việc gửi dữ liệu giữa hai đối
tượng sao cho không xảy ra mất mát dữ
liệu do sự không cân bằng về tốc độ của hai bên.
Thường được thực hiện qua cơ chế ACK:
máy gửi chỉ gửi dữ liệu tiếp theo khi nhận được thông báo là máy nhận đã nhận tốt dữ liệu trước đó.
Thường làm giảm hiệu suất đường truyền.
Trang 9II.5.Synchoronizing & Timing
Protocol có thể được dùng để làm cơ
chế đồng bộ giữa hoạt động của hai đối tượng trên mạng hoặc định thời cho một hoạt động nào đó (Điều
cho một hoạt động nào đó (Điều
khiển từ xa)
Có thể kết hợp với cơ chế xử lý sự
kiện để có hiệu quả tốt nhất
Trang 10II.6.Error Control
Việc định nghĩa mã lỗi trong protocol
là rất cần thiết, giúp cho protocol trở nên trong sáng, dễ hiểu và xử lý hiệu quả
quả
Mã lỗi cần được định nghĩa theo dạng
thức đơn giản, dễ nhận biết và phải bao quát hết tất cả các trường hợp có thể xảy ra
Trang 11 Thực hiện việc tạo lập lại kết nối nếu có lỗi
hệ thống xảy ra khiến cho mất kết nối
Cần kết hợp với các xử lý về logging để có
thể nắm chắc trạng thái hiện tại của hệ
thể nắm chắc trạng thái hiện tại của hệ
thống
Chức năng này rất khó thực hiện nhưng sẽ
làm cho hệ thống trở nên hiệu quả hơn và
có tính chịu lỗi cao hơn.
Trang 12III.Các bước tạo lập protocol
Trang 13III.1.Xác định các khối chức năng
Dựa tên DFD hoặc các Method của mô
Trang 14III.2.Xác định định dạng dữ liệu
Dựa trên các kịch bản và dữ liệu cần
lưu chuyển định ra dạng dữ liệu của từng lệnh hoặc từng giai đoạn
Trang 15III.3.Xác định mô hình kết nối
Dựa trên dữ liệu cần chuyển đổi
Trang 16III.4.Phân chia session
Dựa trên script trao đổi giữa client và
server.
Dựa trên sự phân quyền và mức độ bảo
mật của hệ thống.
mật của hệ thống.
Xác định các giai đoạn của một session
tương ứng với sự khác nhau của sự phân
quyền và mức độ bảo mật.
Liệt kê các giai đoạn với miêu tả rõ ràng chi
tiết về các thông tin liên quan.
Trang 17III.5.Xây dựng lệnh
Xác định các lệnh có thể có dựa trên
các lệnh đã miêu tả trong script
Chọn đặt tên cho các lệnh gợi nhớ
Xác định các tham số của lệnh
Xác định các tham số của lệnh
Xác định các trạng thái đáp trả của
server khi thực hiện mỗi lệnh
Xây dựng bảng mã lỗi cho tất cả các
Trang 18Xây dựng lệnh(t.t)
Miêu tả các lệnh dạng văn bản
- Dạng lệnh
- Các tham số
- Giai đoạn có thể thực thi
- Giai đoạn có thể thực thi
- Các giới hạn
- Họat động
- Các trạng thái đáp trả
- Kịch bản ví dụ
Trang 19III.6.Lệnh hóa các kịch bản
Dựa trên các lệnh đã xây dựng
Dựa trên các kịch bản bằng ngôn ngữ
tự nhiên
Viết lại các kịch bản này bằng các
Viết lại các kịch bản này bằng các
lệnh đã xây dựng
Lưu ý kiểm tra lại các trạng thái trả
lời có thể xảy ra (Các trạng thái rẽ
Trang 20IV.Ví dụ – POP3
POP3 – Post Office Protocol ver 3
Protocol này được dùng để nhận thư
từ một mail server
Nhiệm vụ chính:
Nhiệm vụ chính:
- Kiểm tra xem có bao nhiêu mail mới
- Download mail về các thư mục cục bộ
Có cơ chế Authentication
Trang 21Các trạng thái trong một session
Authorization: trạng thái chưa xác
nhận người sử dụng
Transaction: trạng thái truy xuất –
Sau khi đã xác nhận người sử dụng
Sau khi đã xác nhận người sử dụng
Update: trạng thái cập nhật trước khi
kết thúc session (Xóa tất cả các tài
nguyên môi trường cũng như các
Trang 22Miêu tả
[command] <Argument_1> <Argument_2>
- Command: Lệnh – 4 chữ cái viết hoa
- Argument: chuỗi ký tự và số không chứa khoảng trắng
trắng
- Status: Trạng thái của trả lời (+OK, -ERR)
- Description: Miêu tả thêm
- Ngoài ra còn có một số dạng đặc biệt để truyền dữ liệu
Trang 23 Chào hỏi
S: +OK POP3 Server ready
Khai báo người sử dụng
USER <Username>
USER <Username>
PASS <Password>
Kiểm tra mailbox không cần login
APOP <Username> <Digest>
Thoát khỏi Session
Trang 24để kết thúc Session
- Nếu Server trả về “-ERR” thì client gửi lại lệnh USER
Trang 25 Trả lời:
+OK <username> is a valid mailbox
-ERR never heard of mailbox <usernamr>
Trang 26- password: chỉ ra mật khẩu của user cần đăng nhập.
+OK <username> is a valid mailbox
-ERR never heard of mailbox <username>
-ERR never heard of mailbox <username>
Trang 29 Khi đang trong trạng thái Transaction
mà client gửi lệnh QUIT thì chuyển
sang trạng thái Update
Tất cả các message đã được đánh dấu
Tất cả các message đã được đánh dấu
xóa trước đó sẽ bị xóa hẳn
Có thể có lỗi khi Server không thể
xóa tất cả các message