Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Point to Point Protocol (PPP)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Point to Point Protocol (PPP)

    Point to Point Protocol (PPP)

    PPP được xây dựng dựa trên nền tảng giao thức điều khiển truyền dữ liệu lớp cao (High-Level Data link Control (HDLC)) nó định ra các chuẩn cho việc truyền dữ liệu các giao diện DTE và DCE của mạng WAN như V.35, T1, E1, HSSI, EIA-232-D, EIA-449. PPP được ra đời như một sự thay thế giao thức Serial Line Internet Protocol (SLIP), một dạng đơn giản của TCP/IP.
    PPP cung cấp cơ chế chuyển tải dữ liệu của nhiều giao thức trên một đường truyền, cơ chế sửa lỗi nén header, nén dữ liệu và multilink. PPP có hai thành phần:
    • Link Control Protocol (LCP): (được đề cập đến trong RFC 1570) thiết lập, điều chỉnh cấu hình, và hủy bỏ một liên kết. Hơn thế nữa LCP còn có cơ chế Link Quality Monitoring (LQM) có thể được cấu hình kết hợp với một trong hai cơ chế chứng thực Password Authentication Protocol (PAP) hay Challenge Handshake Authentication Protocol (CHAP).
    • Network Control Protocol (NCP): NCP làm nhiệm vụ thiết lập, điều chỉnh cấu hình và hủy bỏ việc truyền dữ liệu của các giao thức của lớp network như: IP, IPX, AppleTalk and DECnet.

    Cả LCP và NCP đều họat động ở lớp 2. Hiện đã có mở rộng của PPP phục vụ cho việc truyền dữ liệu sử dụng nhiều links một lúc, đó là Multilink PPP (MPPP) trong đó sủ dụng Multilink Protocol (MLP) để liên kết các lớp LCP và NCP.

    RFC 1661 đề cập tổng quan về giao thức PPP.

    Định dạng khung dữ liệu

    Chi tiết về định dạng khung của PPP như sau:


    Có 5 pha trong quá trình thiết lập kết nối PPP:
    • Dead: kết nối chưa họat động
    • Establish: khởi tạo LCP và sau khi đã nhận được bản tin Configure ACK liên kết sẽ chuyển sang pha sau: authentication
    • Authenticate: có thể lựa chọn một trong hai cơ chế PAP hay CHAP.
    • Network: trong pha này, cơ chế truyền dữ liệu cho các giao thức lớp Network được hỗ trợ sẽ được thiết lập và việc truyền dữ liệu sẽ bắt đầu.
    • Terminate: Hủy kết nối

    Có thể sử dụng cơ chế Piggyback routing để cache lại các thông tin định tuyến và chỉ truyền khi kết nối đã thông suốt.

    Trong gói LCP (được chứa trong trường Information của gói tin PPP), trường Code sẽ định ra các gói tin Configure Request (1), Configure Ack (2), Configure Nak (3) nghĩa là không chấp nhận và Configure Reject (4).

    Mỗi giao thức lớp 3 đều có NCP code xác định cho nó, và giá trị mã này được đặt trong trường protocol của gói tin NCP, một số giá trị ví dụ như sau:

    Code..............................Protocol
    8021..................................... IP
    8029 ....................................AT
    8025 ......................XNS, Vines
    8027 ............................DECnet
    8031 ..............................Bridge
    8023 .................................OSI

    Tham khảo thêm RFC 1662RFC 1549 mô tả cơ chế đóng khung cụ thể.

    Chứng thực

    Password Authentication Protocol (PAP)
    Trong pha LCP, khi một kết nối PPP được yêu cầu bởi client và PAP được chọn dùng, access server sẽ ra lệnh cho client sử dụng PAP. Client sau đó sẽ phải gửi bộ username và password của mình, các thông tin này đều được truyền dưới dạng clear text mà không được mã hóa gì cả và được đóng gói trong các gói dữ liệu của PPP. Server sau đó sẽ quyết định chấp nhận hay từ chối việc thiết lập kết nối.Đây là cơ chế PAP một chiều giữa một client và một server. Nếu hai router nói chuyện với nhau thì Two-way PAP (PAP hai chiều) sẽ được sử dụng trong đó mỗi router sẽ gửi username và password, như vậy mỗi router sẽ chứng thực lẫn nhau.

    Challenge Handshake Protocol (CHAP)

    CHAP được sử dụng phổ biến hơn PAP, do nó có khả năng mã hóa mật khẩu cũng như dữ liệu.


    Hai đầu kết nối chia sẻ bộ mã mật secret CHAP giống nhau và mỗi đầu được gán một local name riêng.
    • Giả sử một user A quay số truy cập vào access server B.
    • Access server sẽ gửi qua đường truyền một gói tin khởi tạo chứng thực Type 1 gọi là gói tin Challenge. Gói tin Challenge này chứa một số được sinh ngẫu nhiên, một số ID sequence number để xác định challenge và tên chứng thực của challenager
    • Bên gọi sẽ lấy ra chuỗi authentication name, và tìm trong dữ liệu của mình chuỗi mã mật CHAP ứng với user name nhận được.
    • Caller sẽ nhập mã mật của CHAP, số ID sequence number và một giá trị số được sinh ngẫu nhiên vào thuật toán băm Message Digest 5 (MD5).
    • Giá trị kết quả sau khi tính toán hàm băm được gửi trả lại cho Challenger (Access server) trong một gói CHAP Response (Type 2) chứa chuỗi băm, tên chứng thực của caller và cuối cùng là ID (Sequence Number) được lấy từ gói Challenge.
    • Khi nhận được gói Response Type 2, Challenger sẽ sử dụng ID để tìm gói Challenge nguyên thủy.
    • username của caller (A) được sử dụng để tìm kiếm mã mật CHAP từ một local database, hay một RADIUS server hoặc một TACACS+ server.
    • ID, giá trị Challande gốc được sinh ngẫn nhiên và giá trị CHAP ngẫu nhiên ban đầu và mã mật của được đưa vào xử lỷ bởi hàm băm MD5.
    • Chuỗi băm kết quả sau khi tính toán sau đó được so sánh với giá trị nhận được trong gói Response.
    • Nếu 2 chuỗi là giống nhau thì quá trình chứng thực CHAP đã thành công và các gói Type 3 được gửi đến caller chứa ID. Điều này có nghĩa là kết nối đã được chứng thực hợp lệ.
    • Nếu chứng thực CHAP thất bại, một gói tin Type 4 sẽ được gửi đến caller trong đó chứa original ID, xác nhận quá trình chứng thực là không thành công.

    Việc băm (Hashing) hoàn toàn khác với việc mã hóa thông tin bởi vì thông tin sẽ không thể được khôi phục lại sau khi thực hiện hàm băm. Trong các router của Nortel Networks Code C223 xác định họat động của CHAP.

    RFC 1994 mô tả chi tiết về CHAP trong khi RFC 1334 mô tả các giao thức chứng thực khác.

    Theo IPMAC Informatic Technology
    Last edited by ShamanKing; 07-01-2010, 10:31 PM.
    Hồ Vũ

    Số điện thoại : 0989178909
    Email :
    hovu@wifipro.org
    Thành viên nhóm R&D Group VNPRO



  • #2
    Point to Point Protocol (PPP) - Phần II

    Point to Point Protocol (PPP) - Phần II


    PPP Callback

    Callback là một tính năng của PPP rất có ích trong việc giảm thiểu chi phí truyền dữ liệu đồng thời cung cấp cơ chế bảo mật thông tin. Quá trình Callback diễn ra như sau.

    1. Client khởi tạo cuộc gọi. Đồng thời client request dịch vụ callback cùng với các lựa chọn thông số khác của kết nối trong pha LCP negotiation (cấu trúc trường Callback Option Message trong PPP được định nghĩa chi tiết trong RFC 1570).
    2. Callback request được acknowledgement bởi server và server sau đó sẽ kiểm tra thông số cấu hình của nó xem việc kích hoạt dịch vụ này là có được phép hay không.
    3. Việc chứng thực người dùng diễn ra và client username được sử dụng trong dialer map để xác định dial string sử dụng trong cuộc gọi ngược lại.
    4. Nếu chứng thực thành công nhưng lựa chọn dịch vụ callback là không được phép thì cuộc gọi vẫn tiếp tục và client sẽ là người trả tiền cho cuộc gọi, nếu chứng thực không thành công server sẽ hủy cuộc gọi.
    5. Client được gọi bởi server bằng chuỗi dial string được cấu hình cho cuộc gọi đảo chiều.
    6. Thực hiện chứng thực lần nữa.
    7. Kết nối tiếp tục.

    Trong trường hợp lý tưởng, để đảm bảo cơ chế bảo mật tối đa, tiến trình callback nên được thực hiện trên một modem riêng phía server độc lập với kết nối modem nhận dữ liệu đến. ISDN sử dụng kênh D độc lập cho việc thực hiện callback. Việc này không những cho phép bảo mật tốt hơn mà còn tiết kiệm được chi phí vì trong cuộc gói dial up, do dữ liệu chứng thực và LCP negotiation được truyền chung trên đường truyền dữ liệu nên người dùng sẽ phải chịu cả phần chi phí để gửi đi các thông tin overhead đó.

    Link Quality Monitoring (LQM)

    Tính năng này chỉ được thực hiện trên các liên kết synchronous chuẩn. Chất lượng đường truyền được giám sát dựa trên phần trăm thông tin được truyền và nhận thành công trong một khoảng thời gian nhất định. Các Link Quality Reports (LQR) chứa các bộ đếm cho phép xác định chất lượng dữ liệu inbound và outbound. Echo Requests cũng được gửi định kỳ, nếu , sau một số echo requests nhất định, không nhận được echo replies, phiên truyền của các NCP sẽ bị hủy.

    RFC 1333 mô tả Link Quality Monitoring.

    Compression

    Việc nén dữ liệu có thể là nén mềm sử dụng một số tiện ích như Wellfleet Compression Protocol (WCP) (giao thức này được sử dụng trong các router của Nortel) và cho hiệu quả tốt nhất trên những đường truyền tốc độ chậm (128Kb/s or less).
    Thuật toán Lempel-Ziv (LZS) (RFC 1974) cung cấp cơ chế nén và giải nén nhanh dữ liệu. Thuật toán này được sử dụng trong cơ chế nén STAC trong PPP, ISDN và Frame Relay.

    Các cơ chế nén trên chỉ được áp dụng cho dữ liệu của các giao thức lớp 3 (IPCP và IPXCP), mà không ảnh hưởng đến traffic của các giao thức LCP và NCP lớp 2. Cơ chế nén theo giao thức WCP chỉ chạy giữa 2 router của Nortel vì WCP gán một giá trị protocol vào trường protocol a protocol value in the protocol field that is proprietory to Nortel Networks.

    Bộ đệm dữ liệu history hoạt động ở cả 2 đầu, các chuỗi data đã truyền và nhận sẽ được lưu ở đó. Khi thực hiện một lượt truyền mới, các chuỗi mới sẽ được so sánh với các chuỗi đã truyền lưu trong bộ đệm, nếu trùng khớp toàn bộ hoặc một phần thì dữ liệu sẽ không được gửi đi toàn bộ mà chỉ phần sai khác được gửi đi. Bên nhận cũng thực hiện việc so khớp tương tự với bộ đệm history của mình để lấy ra được dữ liệu phiên trước để ghép với dữ liệu mới tạo thành thông tin hoàn chỉnh.

    Nortel cung cấp hai chế độ nén:
    • Continuous Packet Compression: The history buffer spans multiple packets, which means more memory is used up, but produces greater compression ratio.
    • Packet-by-Packet Compression: The history buffer is reset with each packet, which means less memory is used but the compression ratio is not as great.

    Cisco, cũng có hai chế độ nén riêng:
    • Stacker - which examines the data and only sends each data type once and sends information indicating to the other end where each type occurs within the data stream. The other end reassembles the data into the various data types from the data stream. Stacker tends to be more CPU intensive and less memory intensive.
    • Predictor – phân tích dữ liệu để kiểm tra xem nó đã được nén chưa và chỉ truyền đi các thông tin đã được nén, như vậy sẽ không mất thời gian nén lại các dữ liệu đã được nén Predictor tốn nhiều memory hơn và tốn ít CPU hơn.

    Việc nén lại dữ liệu đã được nén thường thêm vào frame các overhead do đó trên thực tế, dữ liệu về bản chất lại nở ra một chút (mặc dù ở đây thực hiện việc nén). Hơn nữa,việc thực hiẹn nén một cách không hợp lý sẽ chiếm CPU một cách không cần thiết.

    Multilink PPP Interleaving

    Có một số lựa chọn cho LCP, một trong số đó là multilink với interleaving. Để multilink PPP hoạt động, PPP packets được chia cắt và đánh số sequence numbers để các packets lớn có thể chia được trên một số đường PPP links. Các số liệu của cơ chế này đã được chuẩn hóa và đưa vào RFC 1717 phục vụ cho việc truyền các luồng data thời gian thực như voice ngay cả khi PPP được sử dụng để truyền dữ liệu trên 1 link.

    Một frame được chia thành nhiểu mảnh nhỏ có các trường header thu gọn và sequence number cho riêng nó. Các gói dữ liệu Real time nhỏ thì không được chia nữa và được để ở nguyên dạng PPP. Bên nhận sẽ phải thiết lập một hàng đợi đủ lớn để lưu, xử lý và sắp xếp các mảnh nhỏ để tái tạo lại các frame dữ liệu lớn. Một hàng đợi riêng sẽ được thiết lập để dành riêng cho việc xử lý các traffic dữ liệu real time. Hàng đợi này sẽ cần được xử lý với tốc độ nhanh hơn các hàng đợi thông thường khác.

    Multilink PPP (MPPP or MP)

    MPPP cung cấp cơ chế phân tải trên một số giao diện thuộc các loại khác nhau như synchronous, asychronous và ISDN.

    Multilink PPP sử dụng Bandwidth Allocation Protocol (BAP & BACP) (RFC 2125) để thay đổi động số kênh mang dữ liệu (của các loại đường truyền khác nhau) tùy thuộc vào yêu cầu truyền. Các kênh riêng biệt này được coi như một kênh logic duy nhất hay một bó và các PDU của lớp trên sẽ được cắt và ghép để truyền trên đường logic này.

    Khung PPP có 4 byte header sequence cho PPP multilink được dùng khi cho việc chia và đánh thứ tự cho các datagrams khi truyền trên nhiều link. Trong quá trình LCP negotiation một peer muốn thiết lập multilink, sẽ gửi đi một Maximum Received Reconstructed Unit (MRRU) khi thực hiện LCP negotiation, định ra kích thước của pipe hay bundle multilink. Username sẽ được dùng để xác định bundle nào để thêm các link vào.

    Multichassis Multilink PPP là một mở rộng của Multilink PPP trong đó nhiều bearer channels có thể đến từ nhiều thiết bị riêng biệt mà không cần thiết phải là giao diện trên một thiết bị như multilink đơn giản.

    Theo IPMAC Informatic Technology
    Hồ Vũ

    Số điện thoại : 0989178909
    Email :
    hovu@wifipro.org
    Thành viên nhóm R&D Group VNPRO


    Comment

    Working...
    X