Giao thức Kermit

Một phần của tài liệu Tài liệu Chương 1: Mạng truyền số liệu và sự chuẩn đoán ppt (Trang 62 - 63)

Giao thức Kermit xuất phát từ trường đại học Columbia vào năm 1981.Giao thức Kermit không chỉ cho phép truyền và nhận tập tin giữa các máy tính nhỏ như giao thức XMODEM mà còn cho phép truyền và nhận tập tin giữa các hệ thống lớn như DOCSISTOM-20 và UBM-370.Do đó giao thức kermit rất phức tạp, kermit cũng sử dụng thủ tục idle RQ (dừng và chờ) như XMODEM, nhưng có một số điểm khác biệt quan trọng so với XMODEM như sau:

+ Kermit cho phép truyền và nhận nhiều tập tin cùng một lúc.

+ Kermit yêu cầu đối với kênh truyền rất tối thiểu, như kênh chỉ có thể truyền một ký tự mã ASCII, ký tự điều khiển SOH.

+ Gói dữ liệu của kermit có chiều dài thay đổi được.

+ Các tín hiệu trả lời của máy thu là những gói (trong khi XMODEM chỉ dùng các ký tự).Kermit cũng có thể dùng thủ tục continuous RQ nhờ trong gói ACK và NAK có vùng (field) chứa chỉ số thứ tự truyền (hay nhận) của gói.

+ Kermit có các gói “đưa tin” nhờ đó có thể mở rộng các chức năng của giao thức mà không ảnh hưởng đến hoạt động của các phiên bản trước, và có thể bỏ qua một số thông số quan trọng.

Gói kermit tổng quát:

Gói của kermit bao gồm 6 trường (field): trường thông tin (data) có độ dài thay đổi tùy theo kiểu gói, các trường còn lại được gọi là trường điều khiển (hoặc là trường phục vụ).Kermit qui định dữ liệu truyền đều là các ký tự mã ASCII in được (từ 20H – 7EH) ngoại trừ vùng đánh dấu (MARK), như vậy đối với các vùng chứa giá trị số như vùng chỉ số thứ tự thì phải được chuyển đổi sang mã in được (printable character) trước khi truyền bằng cách cộng thêm 20H.Sau khi nhận được sẽ chuyển trở lại bằng cách trừ đi 20H.Như vậy giá trị số của các vùng này không được lớn hơn 94 (5EH), vì nếu nó bằng 5EH thì sau khi đổi sẽ trở thành 7FH là ký tự điều khiển DEL chứ không phải ký tự in được, còn nếu lớn hơn nữa thì sau khi đổi sẽ không còn ở trong phạm vi của bảng ASCII.

Điều này không thể áp dụng ở vùng thông tin vì byte dữ cần truyền có thể có giá trị bất kì.Nếu có các ký tự điều khiển trong thông tin, thì kermit sẽ chuyển đổi bằng cách:

+ Chèn thêm 1 kí tự in được ở phía trước (thường dùng ký tự #, mã ASCII là 23H).

+ EXOR ký tự điều khiển với 40H.

Đối với các hệ thống sử dụng ký tự dài 8 bit, thì những ký tự có bit có ý nghĩa lớn nhất (MSB bit) bằng 1 sẽ được kermit đổi sang mã ASCII in được bằng cách trước một ký tự (&).

Ý nghĩa vùng trong gói được mô tả như sau:

+ Trường đánh dấu (MARK); để đánh dấu bắt đầu của gói là ký tự SOH mã 01H. + Trường độ dài (LEN): số bytes trong gói tính từ sau byte này (tức là độ dài của gói trừ 2), giá trị tối đa là 94 như vậy độ dài tối đa một gói là 96 bytes.

+ Trường số thứ tự (SEQ): số thứ tự của gói, modul với 64.Gói truyền đầu tiên (gói S) sẽ có số thứ tự là 0, số thứ tự của gói kế tiếp sau gói có số thứ tự là 63 sẽ trở lại là 0.

+ Trường kiểu gói (TYPE): để phân biệt các kiểu gói khác nhau.Mỗi kiểu gói sẽ có nội dung và nhiệm vụ khác nhau.

+ Trường thông tin (DATA): nội dung của tập tin cần truyền được chứa trong gói ‘D’, còn trong gói ‘F’ chưa tên tập tin.Trong một số kiểu gói khác, trường này không chứa gì.

+ Trường kiểm tra (CHECK): có thể chọn vùng 1 byte tổng kiểm tra hoặc 2 byte tổng kiểm tra, hoặc 3 byte CRC.Giá trị kiểm tra được tính từ vùng đội dài (không tính vùng đánh dấu).Vì các byte này cũng phải được trao đổi ra ký tự in được, nhưng chúng lại có giá trị bất kì không thể giới hạn ở giá trị nhờ hơn 5EH nên trước khi đổi thì 2 bít 6 và 7 sẽ được trích ra và cộng vào 6 bit thấp còn lại.Nhờ đó ở đầu thu có thể lấy lại được hai giá trị này, còn ở đầu phát sau khi biến đổi ta sẽ có hai bít 6 và 7 đều là 0.

Một phần của tài liệu Tài liệu Chương 1: Mạng truyền số liệu và sự chuẩn đoán ppt (Trang 62 - 63)