Giao thức PPP

Một phần của tài liệu Bài giảng mạng máy tính ths nguyễn xuân anh (Trang 173 - 176)

PPP là giao thức được sử dụng chủ yếu khi người dùng truy cập Internet từ nhà thông qua đường điện thoại quay số, do đó PPP là một trong những giao thức tầng nên kết dữ liệu được sử dụng nhiều nhất nhất ngày nay. Giao thức quan trọng thứ hai là HDLC (High Level Data Link Control). Giao thức PPP được trình bầy tương đối đơn giản với mục đích khảo sát một số tính năng quan trọng nhất của lớp giao thức điểm nối điểm ở tầng liên kết dữ liệu.

Giao thức PPP là giao thức tầng liên kết dữ liệu trên kênh truyền nối trực tiếp giữa hai nút - mỗi nút ở một đầu của đường truyền. Đường truyền PPP có thể là đường điện thoại quay số (ví dụ kết nối modem 56k), đường truyền SONET, kết nối X.25 hoặc mạng ISDN. Như đã nói trên, PPP chủ yếu được lựa chọn để kết nối máy tính gia đình đến ISP thông qua đường dây điện thoại. IETF đã đặt ra cho mọi thiết kế của PPP :

- Đóng gói gói tin (Framing): phía gửi trong giao thức PPP phải có khả năng lấy gói tin ở tầng mạng, đặt nó trong khung dữ liệu tầng liên kết dữ liệu. Phía nhận xác định được vị trí bắt đầu và kết thúc của frame cũng như vị trí gói tin tầng mạng trong frame.

- Tính trong suốt: Giao thức PPP không được đặt ra bất kỳ hạn chế nào trên gói dữ liệu tầng mạng. Tức là nó có khả năng chuyển đi bất kỳ gói dữ liệu tầng mạng nào.

- Hỗ trợ nhiều giao thức tầng mạng: Giao thức PPP phải có khả năng hỗ trợ nhiều giao thức tầng mạng (ví dụ, IP và DECnet) trên cùng đường truyền vật lý tại cùng một thời điểm. Điều này cũng giống như giao thức IP có khả năng phân kênh cho nhiều giao thức vận tải khác nhau (ví dụ, TCP và UDP). Như vậy PPP cũng cần có một cơ chế để khi nhận được một frame, thực thể PPP phía nhận xác định được cần chuyển gói dữ liệu cho thực thể tầng mạng nào. - Hỗ trợ nhiều kiểu đường truyền: Ngoài khả năng hỗ trợ nhiều giao thức ở

tầng cao hơn, PPP phải có khả năng vận hành trên nhiều kiểu đường truyền khác nhau bao gồm đường truyền tuần tự (truyền lần lượt từng bit một) hoặc song song (truyền nhiều bit cùng một lần), đồng bộ (truyền tín hiệu đồng hồ cùng với bit dữ liệu) hoặc dị bộ, truyền với tốc độ chậm hoặc cao, tín hiệu điện tử hoặc quang học.

- Phát hiện lỗi: PPP phía nhận có khả năng phát hiện liệu có lỗi bit trong frame nhận được hay không.

- Thời gian kết nối: PPP phải có khả năng phát hiện đường truyền bị lỗi ở mức link (ví dụ, không có khả năng để truyền dữ liệu từ phía gửi sang phía nhận) vả phải thông báo tình trạng lỗi này cho tầng mạng.

- Thoả thuận địa chỉ tầng mạng: PPP phải cung cấp cơ chế cho phép hai thực thể tầng mạng tham gia truyền thông (IP) có thể học hay đặt cấu hình địa chỉ tầng mạng cho nhau.

- Đơn giản: Người ta đòi hỏi PPP đáp ứng nhiều yêu cầu ngoài những yêu cầu nêu trên. một trong những yêu cầu quan trọng nhất là tính “đơn giản”. Hiện nay hơn 50 RFC định nghiã những khía cạnh “đơn giản” của giao thức này. Tuy vậy các đặc tả trong thiết kế PPP không yêu cầu:

- Sửa lỗi: PPP cần phát hiện được lỗi bit nhưng không cần phải sửa lỗi.

- Kiểm soát lưu lượng: PPP phía nhận được hy vọng có khả năng nhận khung dữ liệu với tốc độ cao nhất của tầng vật lý phía dưới. Nếu tầng mạng không thể nhận với tốc độ này thì việc loại bỏ gói tin hay yêu cầu bên kia truyền chậm lại là trách nhiệm của các tầng cao hơn. Khi đó tầng cao hơn sẽ yêu cầu thực thể tương đương phía bên kia giảm tốc độ tạo ra dữ liệu gửi cho PPP. - Đánh số thứ tự: PPP không được yêu cầu chuyển khung dữ liệu đến phía

nhận theo đúng thứ tự gửi.

- Đường truyền đa điểm: PPP vận hành trên những đường truyền với một phía gửi và một phía nhận duy nhất. một số giao thức tầng liên kết dữ liệu khác (ví dụ, HDLC) cho phép nhiều nút nhận trên cùng một đường truyền (giống Ethernet).

Khuôn dạng khung dữ liệu

Hình 6.11 minh họa frame dữ liệu PPP giống khung dữ liệu của HDLC, PPP bao gồm những trường sau:

- Trường cờ: Mọi khung dữ liệu PPP bắt đầu và kết thúc bằng một byte cờ có giá trị 01111110.

- Trường địa chỉ: giá trị duy nhất của trường này là 11111111 - Trường điều khiển: giá trị duy nhất của trường này là 00000011.

Cả hai trường địa chỉ và điều khiển đều mang những giá trị cố định, điều này giải thích vì sao những trường này được định nghĩa đầu tiên. Khuyến nghị RFC 1662 ghi rõ rằng những giá trị này “có thể được định nghĩa sau này”. Bởi vì những trường này mang giá trị cố định, PPP cho phép phía gửi không cần gửi byte địa chỉ và byte điều khiển, do đó tiết kiệm được hai byte tiêu đề trong khung dữ liệu PPP.

Hình 8.11 Khuôn dạng khung dữ liệu giao thức PPP

- Trường giao thức (protocol): Trường giao thức cho PPP xác định giao thức tầng trên sẽ nhận dữ liệu trong khung dữ liệu PPP. Khi nhận được khung dữ liệu PPP, bên nhận sẽ kiểm tra xem khung dữ liệu có lỗi không và sau đó chuyển phần dữ liệu trong gói tin cho giao thức thích hợp. RFC 1700 định nghĩa các mã 16 bit cho các giao thức được sử dụng cùng với PPP. Giao thức IP (dữ liệu trong khung dữ liệu PPP là gói dữ liệu IP) ứng với giá trị 21h, giao thức AppleTalk là 29h, DFCnet là 27h, giao thức điều khiển đường truyền PPP là C021h và giao thức điều khiển IP là 8021. Giao thức IP Control được PPP sử dụng khi kích hoạt kênh truyền lần đầu tiên để cấu hình mức IP giữa các thiết bị trên hai đầu kênh truyền.

- Thông tin: Trường này chứa gói tin được giao thức tầng mạng gửi đi trên đường truyền PPP (là gói tin IP). Độ dài lớn nhất của trường thông tin này là 1500 byte, mặc dù giá trị này có thể thay đổi lúc đặt cấu hình cho đường truyền.

- Checksum: Trường checksum được sử dụng để phát hiện các bit bị lỗi trong khung dữ liệu nhận được. Nó là mã CRC 2 hoặc 4 byte giống như trong giao thức HDLC.

Chèn Byte:

Một vấn đề phát sinh khi trong gói dữ liệu của giao thức tầng mạng lại có một byte có giá trị giống cờ đánh đấu điểm bắt đầu và kết thúc của khung dữ liệu (giá trị 01111110), bên nhận sẽ cho rằng đây là điểm kết thúc của khung dữ liệu PPP mặc dù trên thực tế không phải như vậy. Có thể cấm các giao thức tầng trên gửi dữ liệu chứa byte cờ, điều này vi phạm tính độc lập của các tầng, vì vậy PPP cũng như nhiều giao thức khác đã lựa chọn kỹ thuật chèn Byte (Byte stuff).

PPP định nghĩa một byte điều khiển đặc biệt, 01111101 làm nhiệm vụ đánh dấu. Nếu byte cờ 01111110 - xuất hiện trong khung dữ liệu (trừ vị trí mở đầu và kết thúc của khung dữ liệu), PPP đặt byte đánh dấu trước byte có giá trị giống cờ. Như vậy nó đã chèn thêm một byte điều khiển để đánh dấu rằng byte 01111110 không phải là cờ mà là dữ liệu thực. Bên nhận thấy 01111101 đứng trước 01111101 nên biết được 01111101 không phải là cờ mà là dữ liệu, nên nó sẽ tự động loại bỏ byte đánh dấu 01111110 được phía nhận chèn vào bên cạnh dòng dữ liệu thực. Hình 6.12 minh họa chèn byte trong PPP. Tương tự như vậy, nếu chính byte đánh dấu cũng xuất hiện trong dòng dữ liệu thực sự thì nó cũng cần được đánh dấu.

Hình 8.12 Chèn byte

Tóm lại, PPP là giao thức tầng liên kết dữ liệu cho hai thiết bị ở hai đầu của một đường truyền kiểu điểm-điểm, trao đổi các khung dữ liệu chứa gói dữ liệu của tầng mạng. Những chức năng chủ yếu của PPP là:

- Đóng gói dữ liệu: Phương thức đặt gói dữ liệu trong khung dữ liệu PPP

- Xác định vị trí bắt đầu và kết thúc của khung dữ liệu, phát hiện lỗi trong khung đó.

- Giao thức điều khiển đường truyền: khởi tạo, duy trì và kết thúc đường truyền PPP.

Một phần của tài liệu Bài giảng mạng máy tính ths nguyễn xuân anh (Trang 173 - 176)