Phõn loại AVP

Một phần của tài liệu bao_cao (Trang 40 - 57)

III. Cỏch thức tổ chức gúi tin L2TP

3.3.4Phõn loại AVP

Phần tiếp theo chúng ta sẽ xem xét các loại AVP L2TP đợc xác định trong tài liệu này. Bên cạnh tên các AVP là một danh sách chỉ ra kiểu thông điệp đ- ợc sử dụng cho mỗi AVP. Sau mỗi tên AVP đều có các mô tả ngắn gọn về chức năng của AVP đó, khuôn dạng của phần giá trị thuộc tính (Attribute Value) ngoài ra còn có một số thông tin cần thiết khác nhằm sử dụng thích hợp AVP đó.

3.3.4.1 Những AVP ỏp dụng cho tất cả cỏc loại thụng điệp điều khiển Kiểu thông điệp (Message Type) (đối với tất cả các thông điệp)

Message Type AVP, kiểu thuộc tính bằng 0, xác định có một thông điệp điều khiển và xác định ra hoàn cảnh để xem xét ý nghĩa của từng AVP mà chúng ta sẽ xem xét sau.

Trờng giá trị thuộc tính có khuôn dạng:

0 15

Trờng Message Type dài 2 byte với kiểu số nguyên không dấu.

Message Type AVP phải là AVP đầu tiên của mỗi thông điệp, đợc đặt ngay sau header của thông điệp điều khiển.

Bit M (Mandatory) đặt trong Message Type AVP có một ý nghĩa đặc biệt. Không những có ý nghĩa về việc một AVP có bị bỏ qua hay không khi không thể nhận ra, nó còn chỉ ra rằng lúc nào thì một thông điệp điều khiển bị bỏ qua. Do đó, nếu bit M đợc thiết lập trong một Message Type AVP và cái Message Type đó không thể nhận biết để thực hiện, đờng hầm sẽ bị xoá bỏ. Nếu bit M không đợc thiết lập, khi đó việc thực hiện sẽ bỏ qua các thông điệp không nhận biết đợc.

Bit M đợc cho bằng 1 đối với một loại thông điệp trong tài liệu này. AVP này không thể che dấu đợc (tức là bit H luôn luôn bằng 0). Chiều dài của AVP này là 8.

Vector ngẫu nhiên (Random Vector) (đối với tất cả thông điệp)

Random Vector AVP, kiểu thuộc tính bằng 36, đợc sử dụng để có thể che dấu giá trị thuộc tính của một AVP bất kỳ.

Trờng giá trị thuộc tính của AVP này có khuôn dạng nh sau:

0 31

Random Octet String ....

Random Octet String có thể có chiều dài tuỳ ý, nhng thờng đợc gợi ý sử dụng một vector tuỳ ý với chiều dài ít nhất là 16 byte (octet). Xâu (String) chứa vector ngẫu nhiên nhằm sử dụng trong việc tính toán hàm băm MD5 nhằm nhận lại hay ẩn đi giá trị thuộc tính của AVP cất giấu.

Có thể có nhiều hơn một vector ngẫu nhiên AVP xuất hiện trong một thông điệp. Trong trờng hợp này AVP cần cất dấu sẽ sử dụng vector AVP ngẫu nhiên đứng ngay trớc nó nhất. Random Vector AVP phải đứng trớc AVP đầu tiên với bit H có giá trị bằng 1.

Bit M cho AVP này phải đợc cho bằng 1. AVP không thể đợc che giấu (bit H phải bằng 0). Chiều dài của AVP này đợc tính bằng 6 cộng với chiều dài của trờng Random Octet String.

3.3.4.2 Mó bỏo kết quả và bỏo lỗi (Result and Error Code) Mã báo kết quả (Result Code) (dùng cho CDN, StopCCN)

Mã báo kết quả AVP, kiểu thuộc tính bằng 1, chỉ ra lý do để kết thúc kênh điều khiển hoặc phiên làm việc.

Trờng giá trị thuộc tính của AVP này có khuôn dạng nh sau:

0 15 16 31

Result Code Error Code (opt)

Trờng Result Code dài 2 byte là một số nguyên không dấu. Trờng tuỳ chọn (option) (có thể có hoặc không) Error Code cũng là một trờng dài 2 byte số nguyên không dấu. Một trờng tuỳ chọn Error Message có thể đợc tiếp nối ngay sau trờng Error Code. Sự có mặt của 2 trờng Error Code và Error Message sẽ đợc chỉ ra bởi trờng chiều dài của AVP. Trờng Error Message chứa một xâu tuỳ ý cung cấp thêm các xâu text (ngời đọc đợc) liên quan đến điều kiện hoạt động. Các đoạn text ngời đọc đợc trong tất cả các Error Message phải đợc lấy ra từ bộ ký tự UTF-8 sử dụng Default-Language (RFC2277).

AVP này không thể đợc che dấu (bit H phải bằng 0). Bit M cho AVP này phải bằng 1. Chiều dài sẽ bằng 8 nếu nh không có Error Code và Error Message, bằng 10 nếu nh có Error Code mà không có Error Message, bằng 10 cộng với chiều dài của Error Message nếu nh có cả Error Code và Error Message.

Các giá trị Result Code đợc xác định cho thông điệp StopCCN gồm:

0. Để dành cho tơng lai.

1. Yêu cầu chung nhằm xoá bỏ điều khiển kết nối.

2. General Error, xem Error Code để biết vấn đề đang gặp phải. 3. Kênh điều khiển đã tồn tại.

4. Ngời yêu cầu không có quyền thiết lập một kênh điều khiển.

5. Phiên bản của giao thức mà ngời yêu cầu đang sử dụng không hợp lệ, Error Code sẽ chỉ ra phiên bản mới nhất đợc hỗ trợ.

6. Máy của ngời yêu cầu đang chuẩn bị Shut Down. 7. Máy có sự cố. (adsbygoogle = window.adsbygoogle || []).push({});

Các giá trị Result Code đợc xác định cho thông điệp CDN gồm:

0. Để dành cho tơng lai.

1. Cuộc gọi bị ngắt do sự mất mát sóng mang. 2. Cuộc gọi bị ngắt vì lý đợc chỉ ra tại Error Code. 3. Cuộc gọi bị ngắt vì lý do quản trị.

4. Cuộc gọi bị thất bại do không có đủ các trang thiết bị phù hợp (điều kiện hiện tại).

5. Cuộc gọi bị thất bại do không có đủ các trang thiết bị phù hợp (điều kiện lâu dài).

6. Thất bại do điểm đến không hợp lệ.

7. Cuộc gọi thất bại do không tìm thấy sóng mang. 8. Cuộc gọi thất bại do tìm thấy một tín hiệu báo bận. 9. Cuộc gọi thất bại do thiếu tín hiệu gọi.

10. Cuộc gọi không đợc thiết lập trong khoảng thời gian LAC đợc phân công.

11. Cuộc gọi đợc thiết lập nhng mà không có khung nào phù hợp đợc tìm thấy.

Các Error Code đợc định nghĩa dới đây gắn liền với kiểu lỗi, những lỗi mà thờng không rõ ràng đối với một yêu cầu L2TP cụ thể nào đó, trong khi lại rõ hơn đối với toàn bộ giao thức hoặc một lỗi nào đó trong khuôn dạng gói tin. Nếu nh một trả lời của L2TP đợc đa ra tại Result Code chỉ ra rằng đó là một General Error thì giá trị General Error cần đợc kiểm tra để biết đợc lỗi gặp phải là gì.

Dới đây là các giá trị General Error và ý nghĩa của chúng:

0. Không phải General Error.

1. Cha có điều khiển kết nối giữa cặp LAC-LNS. 2. Chiều dài bị sai.

3. Một trong số các trờng không đúng kích thớc qui định hoặc là các bit dành cho tơng lai có giá trị khác 0.

4. Tại thời điểm hiện tại không có đủ tài nguyên để hoạt động. 5. Giá trị Session ID không hợp lệ.

6. Một lỗi thuộc về ngời bán xuất hiện tại LAC.

7. Thử cái khác. Nếu LAC đợc nhận bởi các LNS khác, hãy thử một cái trong chúng. Điều này có thể đợc sử dụng để hớng dẫn LAC dựa trên các qui định của LNS.

8. Phiên hoặc đờng hầm sẽ bị ngng lại do nhận phải AVP không nhận biết đợc có giá trị bit M bằng 1. Khi đó Error Message có thể sẽ chứa thuộc tính của AVP gây lỗi dới dạng text (con ngời có thể đọc đợc).

Khi General Error Code là 6, các thông tin khác về lỗi có thể tồn tại trong Error Message.

3.3.4.3 Cỏc AVP quản lý điều khiển kết nối

Phiên bản giao thức (Protocol Version) (dùng cho SCCRP, SCCRQ)

Protocol Version AVP, kiểu thuộc tính bằng 2, chỉ ra phiên bản L2TP mà ngời gửi sử dụng.

Trờng giá trị thuộc tính AVP đợc tổ chức theo khuôn dạng:

0 7 8 15

Ver Rev

Trờng Ver dài 1 byte kiểu số nguyên không dấu chứa giá trị 1, còn trờng Rev dài 1 byte kiểu số nguyên không dấu chứa giá trị 0. Lu ý rằng Version này không giống với Version mà ta thấy trong L2TP header trớc đây.

AVP này không che dấu đợc (bit H phải bằng 0). Bit M cho AVP này phải có giá trị bằng 1. Chiều dài của AVP này bằng 8.

Khả năng khung (Framing Capabilities) (dùng cho SCCRQ, SCCRP)

Framing Capabilities AVP, kiểu thuộc tính bằng 3, cung cấp kiểu của khung sẽ đợc chấp nhận hay yêu cầu từ phía ngời gửi.

0 30 31 Rsv for future framing type definition A S (adsbygoogle = window.adsbygoogle || []).push({});

Trờng giá trị thuộc tính dài 32 bit, với 2 bit đã đợc định nghĩa, còn lại để dành cho tơng lai.

Nếu bit A đợc thiết lập, các khung không đồng bộ (Asynchronous) sẽ đợc sử dụng.

Nếu bit S đợc thiết lập, các khung đồng bộ (Synchronous) sẽ đợc sử dụng. Bất kỳ một nút nào cũng không có quyền yêu cầu các cuộc gọi đến hay cuộc gọi đi với các Framing Type AVP có giá trị khác với các giá trị ở Framing Capabilites AVP mà nó nhận đợc trong quá trình thiết lập điều khiển liên kết. Nếu cố gắng làm điều đó cũng sẽ khiến cho cuộc gọi bị từ chối.

AVP này có thể đợc che dấu (bit H có thể bằng 0 hoặc bằng 1). Bit M cho AVP này phải bằng 1. Chiều dài (trớc khi ẩn) của AVP này bằng 10.

Khả năng mang (Bearer Capabilities) (dùng cho SCCRP, SCCRQ)

Bearer Capabilites AVP, kiểu thuộc tính bằng 4, chỉ ra các thiết bị để truyền tơng thích với khả năng phần cứng của ngời gửi đối với các cuộc gọi đến.

Trờng giá trị thuộc tính của AVP này đợc định dạng nh sau:

0 30 31

Rsv for future framing type definition A D

Trờng giá trị thuộc tính dài 32 bit, với 2 bit đã đợc định nghĩa, còn lại để dành cho tơng lai.

Nếu bit A đợc thiết lập, các truy nhập kiểu tơng tự (Analog) sẽ đợc chấp nhận. Nếu bit D đợc thiết lập, các truy nhập kiểu số (Digital) sẽ đợc chấp nhận.

Một nút LNS không có quyền yêu cầu các cuộc gọi đi với các Bearer Type AVP có giá trị khác với các giá trị ở Bearer Capabilites AVP mà nó nhận đợc từ LAC trong quá trình thiết lập điều khiển liên kết. Nếu cố gắng làm điều đó cũng sẽ khiến cho cuộc gọi bị từ chối.

Phải có AVP này nếu ngời gửi có thể thiết lập các cuộc gọi đi.

Lu ý rằng một nút LNS không thể hoạt động giống nh một LAC khi không có sự hỗ trợ của các thiết bị phần cứng để điều khiển các cuộc gọi đến và đi, do đó nó có thể cho các giá trị của bit A, bit D trong AVP này bằng 0, hoặc không gửi AVP này đi. Một LNS cũng có thể hoạt động giống nh một LAC và khi thiết lập một cuộc gọi đi cần phải cho bit A, D các giá trị thích hợp. Sự có mặt của thông điệp này cha bảo đảm đợc yêu cầu của ngời gửi là một cuộc gọi đi mà chỉ đơn thuần mang ý nghĩa vật lý.

AVP này có thể đợc che dấu (bit H có thể bằng 0 hoặc bằng 1). Bit M cho AVP này phải bằng 1. Chiều dài (trớc khi ẩn) của AVP này bằng 10.

Tie Breaker (cắt đứt liên kết) (SCCRQ)

Tie Breaker AVP, kiểu thuộc tính bằng 5, chỉ ra rằng ngời gửi chỉ muốn có một đờng hầm tồn tại giữa cặp LAC-LNS.

Trờng giá trị thuộc tính của AVP này có khuôn dạng:

0 31

Tie Breaker Value

...(64 bit)

Giá trị Tie Breaker gồm 8 byte đợc sử dụng nhằm thiết lập một đờng hầm đơn nhất giữa cặp LAC, LNS dù cho bên nào yêu cầu. Khi một bên nhận đợc SCCRQ, nó cần kiểm tra xem SCCRQ này đã đợc nhận trớc đây cha. Để làm việc này, nó cần so sánh giá trị Tie Breaker với Tie Breaker của những thông điệp đã nhận đợc trớc đây. Giả trị mà nhỏ hơn là đợc, nếu không đờng hầm sẽ bị hủy bỏ bởi một bên. Trong trờng hợp tồn tại Tie Breaker ở cả 2 phía, và giá trị này lại bằng nhau, thì cả 2 phía sẽ đều huỷ bỏ đờng hầm của nó.

AVP này không đợc phép ẩn (bit H có giá trị bằng 0). Bit M của AVP này phải có giá trị bằng 0. Chiều dài của AVP này là 14.

Firmware Revision (dùng cho SCCRQ, SCCRP)

Firmware Revision AVP, kiểu thuộc tính là 6, chỉ ra chơng trình (firmware) có thể dùng để sửa chữa (revision) các thiết bị.

Trờng giá trị thuộc tính của AVP này có khuôn dạng nh sau:

0 15

Firmware Revision

Trờng Firmware Revision là số nguyên không dấu dài 2 byte đợc mã hoá tuỳ theo mỗi nhà sản xuất (vendor).

Đối với những thiết bị không có Firmware Revision (chẳng hạn các máy chỉ hỗ trợ chạy các module L2TP) thì phần sửa của module L2TP có thể sẽ đợc thông báo. (adsbygoogle = window.adsbygoogle || []).push({});

AVP này có thể đợc ẩn (bit H có thể bằng 0 hoặc 1), bit M phải bằng 0. Chiều dài của AVP này (trớc khi ẩn) là 8.

Host Name (Tên Host) (dùng cho SCCRP, SCCRQ)

Host Name AVP, kiểu thuộc tính là 7, chỉ ra tên dùng là LAC hay LNS. Trờng giá trị thuộc tính của AVP này có khuôn dạng:

0 31

Host name .... (arbitrary number of octet)

Trờng Host name có chiều dài tuỳ ý, nhng chiều dài nhỏ nhất của nó phải là 1 byte.

Tên này phải càng độc đáo (duy nhất) càng tốt. Đối với những host tham gia vào DNS (RFC1034), một host name cần có đầy đủ các tính chất của một domain.

AVP này không đợc ẩn (bit H phải bằng 0), bit M phải bằng 1. Chiều dài của AVP này (trớc khi ẩn) là 6 cộng với chiều dài của Host name.

Vendor Name (tên nhà sản xuất) (dùng cho SCCRP, SCCRQ)

Vendor Name AVP, kiểu thuộc tính là 8, là một chuỗi (ngời có thể đọc đ- ợc) mô tả đặc điểm của LNS hay LAC đợc sử dụng.

Trờng giá trị thuộc tính của AVP này đợc định dạng:

0 31

Vendor name .... (arbitrary number of octet)

Vendor name chỉ ra số byte tơng ứng với chuỗi của nhà sản xuất. Đoạn text ngời dùng có thể đọc đợc của AVP này phải đợc lấy từ bộ ký tự UTF- 8 sử dụng Default Language (RFC2277).

AVP này có thể đợc ẩn (bit H có thể bằng 0 hoặc 1), bit M phải bằng 0. Chiều dài của AVP này (trớc khi ẩn) là 6 cộng với chiều dài của Vendor name.

Assigned Tunnel ID (đăng ký tên đờng hầm) (dùng cho SCCRP, SCCRQ, StopCCN)

Assigned Tunnel ID AVP, kiểu thuộc tính là 9, mã hoá ID đợc cấp cho đ- ờng hầm này bởi ngời gửi.

Trờng giá trị thuộc tính của AVP này đợc định dạng:

0 15

Assigned Tunnel ID

Trờng Assigned Tunnel ID dài 2 byte chứa số nguyên không dấu. Assigned Tunnel ID AVP tạo ra một giá trị để dồn và giải nhiều đờng hầm tồn tại giữa LAC và LNS. Nút L2TP phải đặt giá trị này vào phần header Tunnel ID của tất cả các thông điệp điều khiển cũng nh thông điệp dữ liệu sau đó truyền nó qua đờng hầm. Trớc khi một nút nhận đợc Assigned Tunnel ID AVP, các thông điệp phải đợc truyền đến nút đó với giá trị của Tunnel ID là 0 trong phần header của tất cả các thông điệp điều khiển.

Trong thông điệp điều khiển StopCCN, Assigned Tunnel ID AVP phải giống với Assigned Tunnel ID AVP đầu tiên đợc gửi đến. Điều này sẽ cho phép nút này xác định đợc đờng hầm phù hợp để làm việc ngay cả khi StopCCN đợc gửi trớc khi nó nhận đợc Assigned Tunnel ID.

AVP này có thể đợc ẩn (bit H có thể bằng 0 hoặc 1), bit M phải bằng 1. Chiều dài của AVP này (trớc khi ẩn) là 8.

Receive Window Size (cỡ cửa sổ nhận) (trong SCCRQ, SCCRP)

Receive Window Size AVP, kiểu thuộc tính là 10, xác định kích cỡ cửa sổ khi nhận cho một nút ở xa.

Trờng giá trị thuộc tính của AVP này đợc định dạng:

0 15

Window Size

Trờng Window Size dài 2 byte kiểu số nguyên không dấu.

Nếu nh nó không xuất hiện, các nút sẽ ngầm định Window Size bằng 4 trong cửa sổ truyền của nó. Một nút ở xa có thể đã truyền đi một số thông điệp trớc khi nó nhận đợc thông báo về Window Size. (adsbygoogle = window.adsbygoogle || []).push({});

AVP này không đợc ẩn (bit H bằng 0), bit M phải bằng 1. Chiều dài của AVP này là 8.

Challenge (Thách thức) (dùng cho SCCRP, SCCRQ)

Challenge AVP, kiểu thuộc tính là 11, chỉ ra rằng nút phát đi thông điệp đó muốn nút nhận sử dụng cơ chế CHAP để kiểm tra tính hợp lệ của đờng hầm.

Trờng giá trị thuộc tính của AVP này đợc định dạng:

0 31

Challenge .... (arbitrary number of octet)

Trờng Challenge có chiều dài tuỳ ý.

AVP này có thể đợc ẩn (bit H có thể bằng 0 hoặc 1), bit M phải bằng 1. Chiều dài của AVP này (trớc khi ẩn) là 6 cộng với chiều dài của Challenge.

Challenge Response (Trả lời thách thức) (dùng cho SCCCN, SCCRP)

Challenge Response AVP, kiểu thuộc tính là 13, đa ra những trả lời khi nhận đợc một thông điệp Challenge.

Trờng giá trị thuộc tính của AVP này đợc định dạng:

0 31

Response

...(16 byte)

Trờng Response dài 16 byte là những trả lời cần thiết cho thách thức (Challenge) theo kiểu CHAP (RFC 1994).

AVP này cần phải xuất hiện trong một SCCRP hoặc SCCCN nếu nh một thách thức đợc nhận trớc một SCCRQ hoặc SCCRP. Nhằm xác định ID của CHAP, giá trị của Message Type AVP đối với loại thông điệp này đã đợc sử dụng (ví dụ: bằng 2 đối với SCCRP, bằng 3 đối với SCCCN).

AVP này có thể đợc ẩn (bit H có thể bằng 0 hoặc 1), bit M phải bằng 1. Chiều dài của AVP này (trớc khi ẩn) là 22.

Q.931 Cause Code ( dùng cho CDN)

Q.931 Cause Code AVP, kiểu thuộc tính là 12, đợc sử dụng để cung cấp thêm các thông tin trong trờng hợp các cuộc gọi bị ngắt một cách tự nguyện.

Trờng giá trị thuộc tính của AVP này đợc định dạng:

Một phần của tài liệu bao_cao (Trang 40 - 57)