Cỏc trạng thỏi của giao thức L2TP

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

I. Thiết kế chương trỡnh mụ phỏng giao thức L2TP

2.2.2Cỏc trạng thỏi của giao thức L2TP

2.2.2.1 Các trạng thái điều khiển liên kết (Control Connection States)

Thiết lập điều khiển liên kết đối với giao thức L2TP không phân biệt giữa LAC và LNS thế nhng có phân biệt bên khởi tạo và bên nhận. Nút khởi tạo là nút bắt đầu quá trình thiết lập đờng hầm (trong trờng xảy ra tranh chấp Tie Breaker, nó sẽ là bên thắng). Do cả LAC lẫn LNS đều có thể là bên khởi tạo, sẽ có trờng hợp xảy ra xung đột.

Quá trình hoạt động nh sau:

LAC hoặc LNS LAC hoặc LNS

SCCRQ ->

<- SCCRP SCCCN ->

<- ZLB ACK

Các trạng thái liên quan đến quá trình thiết lập điều khiển liên kết giữa LAC và LNS bao gồm:

idle (nhàn rỗi)

Cả bên khởi tạo lẫn bên nhận đều bắt đầu từ trạng thái này. Bên khởi tạo gửi một thông điệp SCCRQ, trong khi đó bên nhận vẫn trong trạng thái idle cho đến khi nhận đợc SCCRQ.

wait-ctl-reply (đợi trả lời)

Bên khởi tạo sẽ kiểm tra xem liệu có tồn tại một yêu cầu kết nối nào khác tại nút này không, nếu có sẽ tiến hành quá trình xử lý xung đột nh đợc mô tả ở trên.

Khi thông điệp SCCRP đợc nhận, nó đợc kiểm tra xem có tơng thích về phiên bản không. Nếu nh phiên bản của bên trả lời thấp hơn phiên bản của bên yêu cầu, phiên bản thấp hơn sẽ đợc dùng để xét. Nếu phiên bản thấp hơn này đợc chấp nhận, bên khởi tạo chuyển sang tình trạng đợc thiết lập (established). Nếu phiên bản thấp hơn này không đợc chấp nhận, một thông điệp StopCCN sẽ đợc gửi đi rồi bên khởi tạo sẽ dừng và xoá bỏ đờng hầm.

wait-ctl-conn

Đây là trạng thái chờ thông điệp SCCCN, trong khi chờ đợi thì câu trả lời cho thách thức đợc kiểm tra. Sau đó đờng hầm sẽ đợc thiết lập hay xoá bỏ tuỳ thuộc vào việc xác thực thành công hay thất bại.

established (đã thiết lập)

Một liên kết đã đợc thiết lập có thể bị xoá bỏ bởi điều kiện nội bộ hoặc do nhận đợc một thông điệp Stop-Control-Connection-Notification. Trong trờng hợp do điều kiện nội bộ, bên khởi tạo phải gửi đi một thông điệp Stop-Control- Connection-Notification và xoá bỏ đờng hầm. Còn trờng hợp bên khởi tạo

nhận đợc một thông điệp Stop-Control-Connection-Notification, nó chỉ đơn giản phải xoá bỏ đờng hầm.

Sơ đồ FSM: Bên khởi tạo:

Wait-ctl-reply

idle established

1 Receive SCCRP/Send StopCCN, Clean 2 Receve SCCCN/Clean

3 Receive StopCCN/Clean

Local Open/Send SCCRQ Receive SCCRP,acc/Send SCCCN, tunnel open

Local Open/ Tunnel open

1. Receive SCCRP, not acc/Send SCCRQ 2. Receive SCCCN/Send StopSCCN,Clean 3. Receive StopCCN/Clean

1. Admin Tunnel Close/Send StopCCN,Clean

2. Receive SCCRQ,SCCRP,SCCCN/Send StopCCN,Clean 3. Receive StopCCN/Clean

Wait-ctl-conn

idle established

1. Receive SCCRQ,not acc/Send StopCCN,clean 2. Receive SopCCN/Clean (adsbygoogle = window.adsbygoogle || []).push({});

Receive SCCRQ,acc/Send SCCRP Receive SCCCN,acc/ tunnel- open

Local Open/ tunnel- open

1. Receive SCCCN, not acc/Send StopCCN,Clean 2. Receive SCCRP,SCCRQ/Send StopCCN ,Clean 3. Receive StopCCN/Clean

1. Admin Tunnel Close/Send StopCCN,Clean

2. Receive SCCRQ,SCCRP,SCCCN/Send StopCCN,Clean 3. Receive StopCCN/Clean

2.2.2.2 Những cuộc gọi đến (Incoming Calls)

Một yêu cầu cuộc gọi đến (Incoming Call Request) thờng đợc gửi đi bởi LAC khi nó nhận đợc một cuộc gọi đến (chẳng hạn, chuông điện thoại tơng ứng reo). LAC sẽ lựa chọn Session ID, Serial Number và chỉ ra kiểu sóng mang (bearer). Các modem thờng hỗ trợ các cuộc gọi kiểu tơng tự (analog). Các cuộc gọi ISDN sẽ là kiểu số (digital) khi không cấm dịch vụ kiểu số, sẽ là kiểu tơng tự nếu hệ thống có liên quan đến các modem kiểu số. Các trờng Calling Number, Called Number, Sub-address có thể nằm trong thông điệp này nếu chúng đợc chấp nhận đối với mạng điện thoại.

Khi LAC gửi đi một yêu cầu cuộc gọi đến, nó sẽ đợi cho đến khi nhận đợc trả lời từ phía LNS thế nhng nó vẫn có thể cha cần trả lời cuộc gọi từ mạng điện thoại. LNS có thể lựa chọn để không chấp nhận cuộc gọi nếu:

- Không còn tài nguyên để điều khiển thêm một phiên.

- Các trờng đã gọi (Called Number), đang gọi (Calling Number), hay địa chỉ phụ (Sub-address) không có trong số các user đợc xác nhận.

- Dịch vụ sóng mang không đợc chấp nhận.

Nếu nh LNS chọn cách chấp nhận cuộc gọi nó sẽ trả lời bằng một thông điệp Incoming-Call-Reply. Khi LAC nhận đợc Incoming-Call-Reply, nó sẽ cố gắng kết nối cho cuộc gọi. Cuối cùng một thông điệp kết thúc có thể đợc truyền từ LAC đến LNS nhằm thông báo rằng cả LAC và LNS đều đã sẵn sàng chuyển đến trạng thái đã thiết lập. Nếu nh một cuộc gọi bị kết thúc trớc khi LNS có thể chấp nhận nó, một thông báo chấm dứt cuộc gọi (Call-Disconnect- Notify) sẽ đợc gửi từ LAC thông báo tình trạng này.

Khi một khách hàng gọi đến cúp máy, cuộc gọi đợc kết thúc bình thờng và LAC sẽ gửi một thông báo chấm dứt cuộc gọi (Call-Disconnect-Notify). Nếu nh LNS muốn xoá một cuộc gọi, nó sẽ gửi đi một thông báo chấm dứt cuộc gọi (Call-Disconnect-Notify) và xoá bỏ phiên làm việc.

Quá trình hoạt động nh sau:

LAC LNS

ICRQ ->

<- ICRP ICCN ->

<- ZLB ACK

a/ Cỏc trạng thỏi cuộc gọi đến ở LAC (LAC Incoming Call States)

Các trạng thái liên quan đến cuộc gọi đến ở LAC đợc định nghĩa nh sau:

idle (nhàn rỗi)

LAC tìm thấy một cuộc gọi đến trên một trong số các giao diện của chúng. Thờng thì điều này có nghĩa là một đờng truyền số (analog) sẽ kêu hoặc ISDN TE tìm thấy một thông điệp Q.931. LAC sẽ bắt đầu khởi tạo đờng hầm và chuyển sang trạng thái chờ việc khẳng định đờng hầm tồn tại.

wait-tunnel (chờ đờng hầm)

Tại trạng thái này một phiên đang chờ sự hoàn thành của một điều khiển kết nối hoặc xác định một đờng hầm đã tồn tại. Khi đờng hầm đợc xác định là đã tồn tại, các điều khiển liên quan đến phiên làm việc có thể đợc trao đổi. Bớc đầu tiên của việc này là gửi đến một Incoming-Call-Request.

wait-reply (chờ trả lời)

LAC nhận đợc hoặc là một thông điệp CDN thông báo rằng LNS không chấp nhận cuộc gọi (có lỗi hoặc không chấp nhận) thì sẽ quay trở lại trạng thái nhàn rỗi (idle) hoặc là một thông điệp Incoming-Call-Reply tức là cuộc gọi đ- ợc chấp nhận, LAC sẽ gửi đi một Incoming-Call-Connected rồi chuyển đến trạng thái đã liên kết.

established (đã liên kết)

Dữ liệu đợc trao đổi qua đờng hầm. Cuộc gọi có thể bị xoá bỏ vì các lý do sau:

- Một sự kiện xảy ra trên giao diện đã liên kết: LAC gửi đi một thông điệp Call-Disconnect-Notify.

- Nhận đợc một thông điệp Call-Disconnect-Notify: LAC sẽ dừng lại và xoá bỏ cuộc gọi. (adsbygoogle = window.adsbygoogle || []).push({});

- Một lý do cục bộ: LAC gửi đi một thông điệp Call-Disconnect-Notify. Sơ đồ FSM:

Wait-tunnel

idle established

Receive ICCN,ICRP,CDN/ none

Bearer Ring/Initiate

tunnel-open Receive ICRP,acc/Send ICCN

1. Receive ICRP, not acc/Send CDN,Clean 2. Receive CDN,ICCN/Clean

3. Local close request or line drop/Send CDN,Clean

1. Receive CDN/Clean

2. Receive ICRQ,ICRP,ICCN/Send CDN,Clean 3. Bearer line drop/Send CDN, Clean

Cỏc trạng thỏi gọi đến ở LAC

Wait-reply

Bearer line drop/Clean

b/ Cỏc trạng thỏi cuộc gọi đến ở LNS (LNS Incoming Call States)

Các trạng thái liên quan đến cuộc gọi đến ở LNS đợc định nghĩa nh sau:

idle (nhàn rỗi)

LNS nhận đợc một thông điệp Incoming-Call-Request. Nếu cuộc gọi đến không đợc chấp nhận, một thông điệp Call-Disconnect-Notify sẽ đợc gửi lại cho LAC và LNS vẫn ở trạng thái nhàn rỗi. Nếu cuộc gọi đến đợc chấp nhận, LNS sẽ gửi cho LAC một thông điệp Incoming-Call-Reply. Phiên làm việc sẽ chuyển sang trạng thái chờ kết nối (wait-connect).

wait-connect (chờ kết nối)

Nếu phiên làm việc vẫn liên kết với LAC, LAC sẽ gửi thông điệp Incoming-Call-Connected đến LNS và LNS chuyển sang trạng thái đã liên kết (established). LAC cũng có thể gửi đi thông điệp Call-Disconnect-Notify nhằm thông báo rằng cuộc gọi không đợc liên kết.

established (đã liên kết)

Phiên làm việc có thể đợc kết thúc khi nhận đợc một thông điệp Call- Disconnect-Notify gửi từ LAC hoặc khi gửi đi thông điệp Call-Disconnect- Notify. Việc xoá bỏ sẽ đợc tiến hành ở cả 2 bên mà không quan tâm bên nào đã có yêu cầu này.

Wait-connect

idle established

1 Receive ICRQ,not acc/Send CDN, Clean 2 Receve ICRP/Send CDN, Clean 3 Receive ICCN/Clean

4Receive CDN/Clean

Receive ICRQ,acc/Send ICRP Receive ICCN,acc/prepare for data

1. Receive ICCN, not acc/Send CDN,Clean 2. Receive ICRQ,ICRP/Send CDN,Clean 3. Receive CDN/Clean

4. Local Close Request/Send CDN, Clean

1. Receive CDN/Clean

2. Local Close Request/ Send CDN,Clean 3. Receive ICRQ, ICRP, ICCN/Send CDN,Clean (adsbygoogle = window.adsbygoogle || []).push({});

2.2.2.3 Cỏc cuộc gọi đi (Outgoing Calls)

Một cuộc gọi đi đợc khởi đầu bởi LNS, nó hớng dẫn LAC thực hiện một cuộc gọi. Có 3 loại thông điệp đối với cuộc gọi đi (outgoing call): Outgoing- Call-Request, Outgoing-Call-Reply, và Outgoing-Call-Connected. LNS gửi đi thông điệp yêu cầu cuộc gọi đi (Outgoing-Call-Request) chỉ rõ số điện thoại cần gọi đến, địa chỉ phụ cũng nh các thông số khác. LAC cần phải trả lời yêu cầu cuộc gọi đi này bằng thông điệp trả lời cuộc gọi đi (Outgoing-Call-Reply) khi LAC nhận thấy nó có đủ tài nguyên để thực hiện cuộc gọi và cuộc gọi này là hợp lệ. Khi cuộc gọi đợc LAC hoàn thành, nó sẽ gửi thông điệp Outgoing- Call-Connected đến LNS nhằm thông báo các kết quả cuối cùng của cuộc gọi đó. Quá trình thực hiện: LAC LNS <- OCRQ OCRP -> OCCN -> <- ZLB ACK

a/ Cỏc trạng thỏi cuộc gọi đi ở LAC (LAC Outgoing Call States)

Các trạng thái liên quan đến cuộc gọi đi ở LAC đợc định nghĩa nh sau:

idle (nhàn rỗi)

Nếu Outgoing-Call-Request nhận đợc có lỗi, LAC trả lời bằng thông điệp Call-Disconnect-Notify. Nếu không, thiết lập một kênh vật lý và gửi trả thông điệp Outgoing-Call-Reply. Tiến hành cuộc gọi và chuyển sang trạng thái wait- cs-answer.

wait-cs-answer (chờ trả lời)

Nếu cuộc gọi không đợc hoàn thành hoặc thời gian bị hết trong quá trình chờ cuộc gọi hoàn thành, LAC sẽ gửi một thông điệp Call-Disconnect-Notify thông báo tình trạng lỗi rồi chuyển sang trạng thái nhàn rỗi. Nếu nh mạch đợc nối và các khung phù hợp đợc tìm thấy thì nó sẽ gửi thông điệp Outgoing-Call- Connected cho biết kết nối đã thành công và chuyển sang trạng thái đã liên kết.

established (đã liên kết)

Nếu LAC nhận đợc một thông điệp Call-Disconnect-Notify, phiên làm việc sẽ bị ngng. Nếu nh cuộc gọi bị ngng bởi khách hàng hay do giao diện cuộc gọi, thông điệp Call-Disconnect-Notify cần đợc gửi cho LNS . Bên gửi thông điệp Call-Disconnect-Notify sẽ chuyển sang trạng thái nhàn rỗi sau khi biết đ- ợc thông điệp đó đã đợc truyền thành công.

Wait -cs- answer

idle established

1 Receive OCRQ,not acc/Send CDN, Clean 2 Receive OCRP/Send CDN,Clean 3 Receive OCCN,CDN/ Clean

Receive OCRQ,acc/Send OCRP,Open bearer Bearer answer/Send OCCN

1.Bearer failure/Send CDN,Clean

2.Receive OCRQ,OCRP,OCCN/Send CDN,Clean 3.Receive CDN/Clean

1. Receive OCRQ,ỎCP,OCCN/Send CDN,Clean 2. Receive CDN/Clean

3. Bearer line drop/Send CDN,Clean

b/ Cỏc trạng thỏi cuộc gọi đi ở LNS (LNS Outgoing Call States)

Các trạng thái liên quan đến cuộc gọi đi ở LNS đợc định nghĩa nh sau:

idle (nhàn rỗi), wait-tunnel (chờ đờng hầm)

Khi một cuộc gọi đi đợc bắt đầu, trớc tiên đờng hầm sẽ đợc thiết lập, các trạng thái này cũng giống nh các trạng thái idel và wait-tunnel ở LAC trong các cuộc gọi đến. Sau khi đờng hầm đã đợc thiết lập, thông điệp Outgoing- Call-Request đợc gửi đến cho LAC và phiên làm việc chuyển sang trạng thái wait-reply (chờ trả lời).

wait-reply (chờ trả lời)

Nếu LNS nhận đợc thông điệp Call-Disconnect-Notify hoặc một lỗi nào đó xuất hiện thì phiên làm việc bị xoá và quay trở lại trạng thái nhàn rỗi. Nếu nhận đợc Outgoing-Call-Reply thì cuộc gọi đợc tiếp tục và phiên làm việc chuyển sang trạng thái wait-connect (chờ kết nối).

wait-connect (chờ kết nối)

Nếu LNS nhận đợc thông điệp Call-Disconnect-Notify, cuộc gọi sẽ thất bại, phiên làm việc sẽ bị ngng và quay trở lại trạng thái nhàn rỗi. Nếu nhận đ- ợc Outgoing-Call-Connected thì cuộc gọi đã thành công và phiên làm việc có thể bắt đầu tiến hành trao đổi dữ liệu.

established (đã liên kết)

Nếu LNS nhận đợc thông điệp Call-Disconnect-Notify, cuộc gọi đã bị kết thúc do những lý do đợc chỉ ra ở Cause và Result Code, phiên làm việc quay lại trạng thái nhàn rỗi. Nếu tự LNS chọn lựa việc kết thúc phiên làm việc, nó sẽ gửi đi thông điệp Call-Disconnect-Notify tới LAC rồi xoá bỏ phiên làm việc đó và chuyển sang trạng thái nhàn rỗi (idle).

Wait-tunnel idle established 1. Receive OCCN,OCRP,CDN/Clean 2. Receive CDN/Clean Local open/Initiate

tunel-open Receive ICRP,acc/Send (adsbygoogle = window.adsbygoogle || []).push({});

ICCN 1. Receive OCRP, not acc/Send CDN,Clean

2. Receive OCCN,OCRQ/Send CDN,Clean 3. Receive CDN/Clean

4. Local close request/ Send CDN,Clean

1. Receive CDN/Clean

2. Local Close Request/Send CDN,Clean

Cỏc trạng thỏi gọi đi ở LNS

Wait-reply

Local Close Request/Clean

tunnel- open/Send ICRQ

Wait-connect R ec eiv e O C C N

1. Receive OCRQ,ỎCP/Send CDN,Clean 2. Receive CDN/Clean

3. Receive OCRQ,ỎCP,OCCN/Send CDN,Clean 4. Local close Request/Send CDN,Clean

2.2.2.4 Ngưng kết nối đường ngầm (Tunnel Disconnection)

Việc ngng kết nối của đờng hầm diễn ra khi LAC hoặc LNS gửi đi thông điệp Stop-Control-Connection-Notification. Bên gửi thông điệp này sẽ phải chờ một khoảng thời gian nhất định để biết đợc kết quả truyền của thông điệp này trớc khi đa ra các thông tin điều khiển cho đờng hầm. Bên nhận đợc thông điệp này phải gửi thông báo đã nhận đợc, sau đó đa ra các thông tin điều khiển thích hợp.

Quỏ trỡnh hoạt động:

LAC hoặc LNS LAC hoặc LNS

StopCCN ->

<- ZLB ACK

II. Chương trỡnh mụ phỏng giao thức L2TP 2.1 C

Danh sách các thuật ngữ

- Cặp giá trị thuộc tính (AVP: Attribute Value Pair) là một cặp giá trị-thuộc tính có mối quan hệ một-một với nhau. Các AVP tạo nên các thông điệp điều khiển nhằm thiết lập, vận hành hay xoá bỏ các đờng hầm.

- Cuộc gọi (Call) là một kết nối (hay đang kết nối) giữa một hệ thống từ xa với một LAC. Ví dụ nh một cuộc gọi điện thông qua PSTN. Một cuộc gọi (đến hoặc đi) đợc cho là thành công khi thiết lập đợc một phiên làm việc giữa hệ thống từ xa với LAC tơng ứng với một đờng hầm đã tồn tại giữa LAC với LNS trớc đó.

- Số đợc gọi (Called Number) là số mà ngời gọi đang cố gắng để gọi tới. - Số đang gọi (Calling Number) là số mà ngời gọi đang gọi.

- CHAP (Challenge Handshake Authentication Protocol) (RFC1994) là một giao thức kiểm định tính hợp lệ của một máy truy cập dựa trên phơng pháp hỏi/đáp.

- Điều khiển kết nối (Control Connection) là các điều khiển có tín hiệu trong cùng đờng truyền nhằm điều khiển việc thiết lập, hoạt động hay huỷ bỏ các phiên làm việc cũng nh các đờng hầm.

- Thông điệp điều khiển (Control Messages) đợc trao đổi giữa một cặp LAC- LNS. Nó điều khiển các hoạt động liên quan đến đờng hầm.

- DSLAM (Digital Subscriber Line Access Module) là một thiết bị mạng đợc dùng để triển khai các dịch vụ DSL. Nó thờng là một bộ kết nối các đờng DSL riêng biệt đợc lắp đặt tại trụ sở chính (CO: Central Office).

- Cuộc gọi đến (Incoming Call) là một cuộc gọi đến một LAC khi mà LAC này đã tạo đờng hầm với LNS.

- Cuộc gọi đi (Outgoing Call): một cuộc gọi đợc thực hiện bởi LAC theo yêu cầu của LNS.

- LAC (L2TP Access Concentrator) là một nút hoạt động nh là một điểm cuối trên đờng hầm và ngang hàng với một LNS. LAC là trung gian giữa LNS với một hệ thống kết nối từ xa, nó nhận hoặc gửi đi các gói tin cho hai hệ thống này. Các gói tin đợc gửi từ LAC đến LNS cần đợc thực hiện dựa trên cơ chế đ- ờng hầm (sẽ đợc mô tả trong tài liệu này). Mối liên kết giữa LAC với hệ thống kết nối từ xa có thể là cục bộ hoặc là liên kết PPP. (adsbygoogle = window.adsbygoogle || []).push({});

- LNS (L2TP Network Server) là một nút hoạt động nh là một điểm cuối trên đờng hầm và ngang hàng với một LAC. LNS là điểm kết thúc về mặt logic trong liên kết PPP với một hệ truy cập từ xa thông qua đờng hầm đợc tạo ra bởi LAC.

- MD (Management Domain) quản lý tên miền. Một mạng hay một liên mạng hoạt động dới sự điều khiển của một tổ chức, một chính sách hay một hệ thống nào đó. Ví dụ, quản lý của LNS có thể là tập đoàn có server đó, còn quản lý LAC có thể là nhà cung cấp dịch vụ Internet tại địa phơng.

- Thuật ngữ "Message" trong tài liệu này đợc dịch là "thông điệp" hoặc "gói tin".

- NAS (Network Access Server) máy chủ truy cập. Là một thiết bị cung cấp

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