Chương 7
1
THIẾT KẾ PROTOCOL
Nội dung
Protocol
Các chức năng của protocol
Các bước thiết kế protocol
2
Ví dụ – POP3
I.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
3
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.
Xác định cho các đối tượng trên cùng một
lớp trong kiến trúc mạng.
II.Các chức năng của Protocol
Connection Establishment
Authentication
Send/Receive data
4
Flow Control
Synchoronizing/Timing
Error Control
Reconnection
II.1.Connection Establishment
Thực hiện việc xác nhận đối tác ở hai đầu
kết nối. Bao gồm:
Nhận dạng đối tác
Xác nhận các thông số môi trường
5
Ví dụ
S: Server XX. Server Ready!
C: Client XX. Hello Server!
S: Client number: XXXXX
C: Client Ready!
II.2.Authentication
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 USER
NAME và
PASSWORD.
6
PASSWORD.
Ví dụ
C: USER <username>
S: XXX <username> accepted/ not exist.
C: PASS <password>
S: XXX password accepted/ invalid.
II.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
7
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.
II.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.
8
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.
II.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
9
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
II.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ả
10
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
II.7.Reconnection
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ệ
11
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.
III.Các bước tạo lập protocol
Xác định các khối chức năng
Xác định định dạng dữ liệu
Xác định mô hình kết nối
12
Phân chia Session
Xây dựng lệnh
Lệnh hóa các kịch bản
III.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ô
hình thực thể kết hợp
Chỉ quan tâm đến các khối có liên kết
mạng
13
mạng
Xác định vai trò client/server cho mỗi
khối
Viết kịch bản bằng ngôn ngữ tự nhiên
cho các khối
III.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.
Có 3 loại
14
Có 3 loại
- Chuỗi ký tự (String)
- Cấu trúc (Structure)
- Dòng byte (Byte stream)
III.3.Xác định mô hình kết nối
Dựa trên dữ liệu cần chuyển đổi
Loại kết nối
- TCP _ Connection Oriented
15
- UDP _ Connectionless
Dạng liên kết
- Đơn socket
- Đa socket
III.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.
16
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.
III.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
17
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
trường hợp đáp trả
Xây dựng bảng danh sách lệnh
Xâ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
18
-
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ụ
III.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
19
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ẽ
nhánh)
IV.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:
20
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
Cá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
21
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
message đã bị đánh dấu xóa)
Miêu tả
Lệnh:
[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
22
trắng
Trả lời: [Status] <Description)
- 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
Authorization
Chào hỏi
S: +OK POP3 Server ready
Khai báo người sử dụng
USER <Username>
23
USER <Username>
PASS <Password>
Kiểm tra mailbox không cần login
APOP <Username> <Digest>
Thoát khỏi Session
QUIT
USER
Arguments:
- Username: Chỉ ra mailbox (cần) trên server
Giới hạn
- Trong Authorization và sau một lần thất bại của lệnh
USER hoặc PASS
24
USER hoặc PASS
Miêu tả
- Để thực hiện xác nhận, lệnh USER phải được client
gửi trước, nếu Server trả lời “+OK” thì client gửi tiếp
lệnh PASS để hoàn tất việc xác nhận hoặc lệnh QUIT
để kết thúc Session
- Nếu Server trả về “-ERR” thì client gửi lại lệnh USER
hoặc lệnh QUIT
USER
Trả lời:
+OK <username> is a valid mailbox
-ERR never heard of mailbox <usernamr>
Example
25
Example
C: USER thanh
S: -ERR sorry, no mailbox for thanh
…
C: USER hai
S: +OK hai is ok