Khuôn dạng các thông báo củagiao thức BGP:

Một phần của tài liệu Nghiên cứu các giao thức định tuyến trong mạng truyền thông (Trang 72)

Mỗi thông báo của BGP có kích cỡ từ 4 đến 4096 bytes. Các thông báo này bắt đầu đƣợc các router BGP speaker gửi trao đổi cho nhau sau khi đã thiết lập kết nối ngang hàng peering. Mỗi thông báo bao gồm phần header và phần data đi kèm, tuỳ thuộc vào từng loại message. Khuôn dạng chung các trƣờng nhƣ sau: [10]

Mark 0 8 16 24 31 Length Type=Keepalvie Mark 0 8 16 24 31 Length Type=Keepalive Mark 0 8 16 24 31 Length Type=Keepalvie Mark 0 8 16 24 31 Length Type=Keepalive

Trƣờng Mark: Dành riêng cho việc xác minh thông báo nhận đƣợc hay nhận diện việc mất đồng bộ giữa các cặp BGP peers.

Trƣờng Length: Xác định tổng độ dài thông báo bao gồm cả phần header. Trƣờng Type: Xác định loại thông báo

Thông báo OPEN: Là thông báo đƣợc gửi đầu tiên từ một router BGP speaker đến một router speaker khác để thiết lập một phiên làm việc với các mối quan hệ ngang hàng (peering session). Các thuộc tính chỉ định ngang hàng là [10]:

- ID của router BGP: Thƣờng là số ID của một interface có giá trị nhỏ nhất trong các địa chỉ IP trên các cổng interface của router.

- Các thông số tuỳ chọn khác

-

Mark

0 8 16 24 31

Length Type = Open version

My autonomous system Hold time BGP identifier

Optional param eter Length

Optional parameter Mark

0 8 16 24 31

Length Type = Open version

My autonomous system Hold time BGP identifier

Optional param eter Length

Optional parameter

- Version: Chỉ ra phiên bản BGP đang sử dụng (Hiện tại là BGP v4) - My autonomous system: Chỉ số AS của router gửi thông báo.

- Hold time: Khoảng thời gian (theo giây) giữa các lần gửi thông báo KEEPALIVE. - BGP identifier: Định danh của router gửi thông báo (là một trong các địa chỉ cổng interface gắn vào một mạng nào đó của router)

- Optional parameter: Danh sách các tham số tuỳ chọn.

Hoàn toàn là dạng đơn giản nhất. Trƣờng Type chỉ ra đây là thông báo KEEPALIVE. [10] Mark 0 8 16 24 31 Length Type=Keepalvie Mark 0 8 16 24 31 Length Type=Keepalvie Thông báo NOTIFICATION:

Khi một router BGP phát hiện ra lỗi trong kết nối với router khác, nó gửi thông báo NOTIFICATION và đóng kết nối TCP, kết thúc phiên làm việc. [10]

Data Mark

0 8 16 24 31

Length Type=notification Error code

Error subcode Data

Mark

0 8 16 24 31

Length Type=notification Error code (adsbygoogle = window.adsbygoogle || []).push({});

Error subcode

Error code: mã số lỗi, chỉ ra dạng của tình trạng lỗi kết nối. Error subcode: Xác định thông tin chi tiết về tình trạng lỗi.

Data: Xác định lý do thông báo notification. Ví dụ nhƣ: lỗi gói thông báo OPEN, lỗi gói thông báo UPDATE, hết thời hạn kết nối…

Thông báo UPDATE:

Đƣợc gửi để cập nhật thông tin vào bảng định tuyến trong các router cài đặt giao thức định tuyến BGP [10]. Cấu trúc các trƣờng trong thông báo này là phức tạp nhất. Nó xác định các thông tin định tuyến dùng cho giao thức BGP. Nội dung cụ thể nhƣ sau:

BGP header

Unfeasible route length (2 octet) Withdraw routes (variable) Total path attribute length (2 octet)

Path attributes (variable)

Network layer reachability infomation (variable)

Length (1 octet) Prefix(variable) ….

Length (1 octet) Prefix(variable) Attribute type Attribute type Attribute type

….

Attribute type Attribute type Attribute type Length (1 octet) Prefix(variable)

….

Length (1 octet) Prefix(variable)

BGP header

Unfeasible route length (2 octet) Withdraw routes (variable) Total path attribute length (2 octet)

Path attributes (variable)

Network layer reachability infomation (variable)

Length (1 octet) Prefix(variable) ….

Length (1 octet) Prefix(variable) Length (1 octet) Prefix(variable)

….

Length (1 octet) Prefix(variable) Attribute type Attribute type Attribute type

….

Attribute type Attribute type Attribute type Attribute type Attribute type Attribute type

….

Attribute type Attribute type Attribute type Length (1 octet) Prefix(variable)

….

Length (1 octet) Prefix(variable) Length (1 octet) Prefix(variable)

…. (adsbygoogle = window.adsbygoogle || []).push({});

Length (1 octet) Prefix(variable)

- BGP header: Giống nhƣ mẫu chung.

- Unfeasible routes length (2 octets): Tổng độ dài các tuyến không đi đến đƣợc. - Withdrawn routes (variable): danh sách các prefix địa chỉ IP của các tuyến cần loại bỏ trong các bảng định tuyến BGP.

- Total path attribute length (2 octets): tổng độ dài các trƣờng thuộc tính - Path attributes : Xác định các thuộc tính đƣờng đi (path).

- Network layer reachability information: danh sách các prefix địa chỉ IP. Ta xem xét trƣờng thông tin về các thuộc tính đƣờng đi.[10]

Attribute type Attribute type Attribute type

Attribute type code 0

E P T O

Attribute type Attribute type Attribute type

Attribute type code 0

E P T O

Thuộc tính cờ: Attribute flag(1 octet)

- bit O: thuộc tính là tuỳ chọn (O = 1), hay well-know (required) (O = 1). - bit T, P, E: Cờ thông tin

- Các dạng thuộc tính bao gồm:

o ORIGIN (type code 1): thuộc tính yêu cầu bắt buộc

o AS_PATH (type code 2): thuộc tính yêu cầu bắt buộc

o NEXT_HOP (type code 3): thuộc tính yêu cầu bắt buộc

o MULTI_EXIT_DISC (MED) : phân biệt nhiều cổng

o LOCAL_PREF (type code 5): ƣu tiên cục bộ

o ATOMIC_AGGREGATE (type code 6): không yêu cầu bắt buộc

CHƢƠNG 3 CÁC GIAO THỨC ĐỊNH TUYẾN TRONG MẠNG DI ĐỘNG

3.1. GIỚI THIỆU VỀ CÁC HỆ THỐNG MẠNG DI ĐỘNG:

Các mạng di động cho phép ngƣời sử dụng truy cập thông tin và các dịch vụ tự động mà không cần quan tâm đến vị trí địa lý. Theo Anna Haé [15], các mạng này đƣợc chia ra thành hai loại: mạng có cơ sở hạ tầng và mạng phi cơ sở hạ tầng (mạng

adhoc).

Mạng có cơ sở hạ tầng (infrastructured network): Chứa hệ thống mạng cố định với dây dẫn các gateway làm cơ sở hạ tầng. Các host đại diện cho ngƣời sử dụng sẽ di chuyển và kết nối với một hệ thống trạm cơ sở BS (Base Station) trong phạm vi bán kính nào đó. Một host di động có thể đi ra ngoài phạm vi bán kính của một BS, trong trƣờng hợp này nó sẽ kết nối với một BS khác để thực hiện việc truyền thông thông qua thao tác chuyển tiếp vùng (handoff). Đối với hệ thống mạng này, cần có các BS là các trạm cố định.[15]

Mạng phi cơ sở hạ tầng (ad hoc): Mạng này không có hệ thống BS cố định, tất cả các nút mạng đều di động và kết nối để truyền thông tự động theo cách bất kỳ. Tất cả các nút của loại mạng này đều có thể vừa là host đầu cuối vừa có thể trở thành một router getway trong quá trình kết nối, và là một phần trong việc phát hiện và duy trì các tuyến đến các nút khác trong bảng định tuyến. Mạng Ad hoc là một tập hợp gồm nhiều nút di động hình thành lên một mạng tạm thời hoạt động mà không có sự trợ giúp của một trung tâm điều khiển hoặc hỗ trợ dịch vụ nhƣ trong các mạng truyền thống. Mỗi nút tự nó vừa là một trạm hoạt động và cũng là một phần của bộ phận điều khiển hoạt động mạng. Các giao thức định tuyến là cần thiết để cho các nút mạng Ad hoc thực hiện việc trao đổi thông tin định tuyến và dữ liệu khi hai nút không đƣợc kết nối trực tiếp[15]

Các mạng di động hoạt động truyền dữ liệu thƣờng có tốc chậm hơn đáng kể so với mạng dây dẫn và việc flooding các gói dữ liệu xảy ra thƣờng xuyên hơn. Do vậy, băng thông đƣờng truyền trên mạng thƣờng đƣợc sử dụng tối đa. Các giao thức định tuyến trong mạng wireless phải giảm thiểu băng thông tại thời điểm chúng

phải thực hiện định tuyến. Do trong mạng các nút thay đổi thƣờng xuyên hơn, làm kiến trúc mạng cũng thƣờng xuyên thay đổi. Các giao thức định tuyến trong mạng phải thực hiện đƣợc hai nhiệm vụ quan trọng là:

- Xử lý vấn đề thƣờng xuyên thay đổi về kiến trúc.

- Nhanh chóng đƣa mạng vào trạng thái hội tụ để thực hiện việc trao đổi dữ liệu. Vấn đề hội tụ chậm hay xảy ra do các gói dữ liệu đƣợc gửi lòng vòng, điều này làm giảm băng thông của mạng. (adsbygoogle = window.adsbygoogle || []).push({});

3.2. PHÂN LOẠI CÁC LỚP ĐỊNH TUYẾN TRONG MẠNG DI ĐỘNG:

Các giao thức định tuyến trong mạng dây dẫn không thể áp dụng cho mạng wireless do tính di động của mạng này. Ngƣời ta đã xây dựng ra hai lớp giao thức định tuyến mới dùng cho mạng di động có kề thừa các nguyên lý trong giao thức định tuyến mạng dây dẫn. Đó là: Định tuyến hƣớng bảng (table-driven routing) và định tuyến đáp ứng yêu cầu (on-demand routing), ý tƣởng cơ bản là khi nào và bằng cách nào các tuyến đƣợc phát hiện [15].

Giao thức định tuyến hướng bảng: Thông tin định tuyến phù hợp và mới nhất đến các nút đƣợc duy trì tại tất cả các nút trong mạng.

Giao thức định tuyến đáp ứng yêu cầu: các tuyến chỉ đƣợc tạo ra khi đƣợc yêu cầu bởi một nguồn nào đó.

3.3. CÁC GIAO THỨC ĐỊNH TUYẾN THEO LỚP HƢỚNG BẢNG (TABLE-DRIVEN ROUTING) DRIVEN ROUTING)

3.3.1. Nguyên lý chung:

Nguyên lý hoạt động chung của các giao thức định tuyến hƣớng bảng cơ bản đƣợc kế thừa từ định tuyến trong mạng cố định [15], gồm các vấn đề sau:

- Mỗi nút trong mạng di động duy trì một hay nhiều bảng định tuyến chứa các danh mục tuyến đến tất cả các nút khác trong mạng.

- Tất cả các nút phải cập nhật và duy trì thông tin ổn định và mới nhất về kiến trúc mạng trong bảng định tuyến.

- Khi kiến trúc mạng thay đổi, các nút loan truyền các thông báo cập nhật xuyên suốt mạng để duy trì tính ổn định và mới nhất thông tin định tuyến.

Các giao thức định tuyến thuộc lớp này có phƣơng thức hoạt động cải tiến khác với giao thức định tuyến truyền thống, bởi thông tin liên quan đến kiến trúc mạng thay đổi đƣợc phân phối xuyên suốt mạng và số lƣợng các bảng định tuyến liên kết với nhau.

3.3.2. Giao thức định tuyến DSDV (Destination-Sequenced Distance-Vector) a. Mô tả chung về giao thức DSDV: a. Mô tả chung về giao thức DSDV:

Giao thức DSDV xây dựng dựa trên các nguyên lý của giao thức định tuyến RIP, RIP đƣợc sử dụng để định tuyến nội vùng hệ tự trị AS. DSDV sử dụng phƣơng thức định tuyến vector-khoảng cách trong thao tác định tuyến của nó. Tuy nhiên nó có một số cải tiến trong kỹ thuật để thích hợp định tuyến trong mạng di động. [13]

Trong DSDV, các gói dữ liệu đƣợc định tuyến giữa các nút trong mạng di động dựa vào một bảng định tuyến đƣợc cài đặt trên chính các nút đó. Cũng giống nhƣ RIP, mỗi bảng định tuyến tại mỗi nút chứa các trƣờng thông tin sau đây:

- Destination address: danh mục địa chỉ các nút khác trong mạng.

- Next-hop address: địa chỉ nút kế tiếp trong quá trình chuyển gói dữ liệu đến đích. - Route metric: Là số nguyên xác định số bƣớc truyền từ nguồn đến đích. - Seq-number: Số tuần tự, đây là trƣờng thông tin đƣợc thêm mới vào để bảng định tuyến sử dụng cho các nút di động để khắc phục định tuyến lặp.

DSDV phải thực hiện các công việc: phát sinh và duy trì các bảng định tuyến mô tả toàn bộ kiến trúc hệ thống mạng, cập nhật lại bảng định tuyến khi kiến trúc mạng thay đổi. Ví dụ một bảng định tuyến có nội dung nhƣ sau [14]:

Ptr_D 001200 D-312 4 B D Ptr_C 001200 C-588 3 B C Ptr_B 001200 B-102 1 B B Ptr_A 001000 A-550 0 A A Stable Data Install Time Seq. Nr Metric Next- hop Destinatio n Ptr_D 001200 D-312 4 B D Ptr_C 001200 C-588 3 B C Ptr_B 001200 B-102 1 B B Ptr_A 001000 A-550 0 A A Stable Data Install Time Seq. Nr Metric Next- hop Destinatio n

Bảng 3.1: Bảng định tuyến trong giao thức DSDV

Trong đó destination xác định địa chỉ nút đích. Next-hop xác định địa chỉ nút kế tiếp.

Trong đó các trƣờng thông tin bao gồm: - Metric: chỉ số đo khoảng cách.

- Seq. Nr: Xác định chỉ số tuần tự (Sequence number) Khởi nguồn từ các đích đến để đảm bảo chắc chắn tránh lặp.

- Install Time: qui định thời gian xác lập khi một danh mục đƣợc tạo. Đƣợc dùng để xoá bỏ các dòng cũ trong bảng.

- Stable data (dữ liệu ổn định) dùng để xác định cho bảng giữ thông tin ổn định tuyến làm việc đƣợc sử dụng để loại bỏ sự dao động trong mạng.

b. Cách khắc phục hạn chế của RIP trong DSDV

Hạn chế của giao thức RIP: Chỉ giới hạn cho mạng nhỏ, ổn định, với số đo khoảng cách giữa các mạng là thống nhất, sử dụng bộ đếm hop count để tính khoảng cách. RIP đƣa ra ba giải pháp khắc phục: Split-horizon, Trigged update, Reverse poinson.

Cách khắc phục của DSDV: Thêm trƣờng danh mục Seq-number, để đánh dấu các gói dữ liệu đƣợc gửi. Phân biệt đƣợc gói mới và cũ, để tránh cập nhật nhầm. Do vậy, tránh đƣợc định tuyến lặp. Cụ thể, DSDV phát sinh các gói dữ liệu cập nhật bình thƣờng theo định kỳ với số tuần tự chẵn, phát sinh các gói dữ liệu cập nhật tức thì các vấn đề đƣờng truyền xảy ra với số tuần tự lẻ. Cho nên, có thể phát hiện đƣợc các gói dữ liệu phát ra từ nút nhận biết đƣờng truyền hỏng, tránh hiện tƣợng truyền qua lại các gói dữ liệu dẫn đến lặp vòng [13].

c. Quá trình cập nhật bảng định tuyến:

Sự cập nhật bảng định tuyến đƣợc thực hiện định kỳ theo một khoảng thời gian cố định, hoặc tức thì khi có sự thay đổi trong kiến trúc mạng. Phƣơng thức loan truyền dữ liệu là quảng bá.

Khi một nút nhận thấy sự thay đổi trong kiến trúc mạng, hoặc theo khoảng thời gian định kỳ, nó phát thông tin theo phƣơng thức quảng bá đến các nút khác, với số đo là 1. Tín hiệu này báo cho các nút lân cận nhận gói dữ liệu đó là một bƣớc truyền từ một nút. Khi một nút nhận đƣợc gói dữ liệu cập nhật thì tăng giá trị số đo lên 1 (adsbygoogle = window.adsbygoogle || []).push({});

và chuyển tiếp các lân cận. Quá trình này tự lặp lại liên tục cho đến khi mọi nút trên mạng đều nhận đƣợc bản sao của gói dữ liệu với số đo khoảng cách phù hợp.

Nếu một nút nhận đƣợc nhiều lần các gói dữ liệu cập nhật, nút sẽ xem xét và nhận gói dữ liệu với số đo nhỏ hơn, đó là tuyến tốt hơn, và bỏ qua các gói dữ liệu cập nhật còn lại.

Để phân biệt các gói dữ liệu cập nhật cũ và mới từ cùng một nguồn, mỗi gói dữ liệu cập nhật sẽ đƣợc nút nguồn phát gắn bào một số định danh gọi là số tuần tự (Seq-number). Khi một nút phát các gói dữ liệu cập nhật thì số tuần tự đƣợc đánh theo quy tắc: gói sau mới hơn sẽ có số tuần tự lớn hơn, số tuần tự đƣợc đánh tăng dần đều.

Khi một nút nhận đƣợc gói dữ liệu cập nhật từ nút khác nó sẽ cập nhật lại bảng định tuyến của nó với các thứ tự ƣu tiên là số tuần tự xét trƣớc rồi đến số đo khoảng cách [13]:

- Ƣu tiên thứ nhất - số tuần tự: Nếu giá trị của số tuần tự lớn hơn với số tuần tự về tuyến đó trong bảng định tuyến, thì gói dữ liệu đƣợc cập nhật tức thì, bất chấp số đơn vị đo có lớn hơn hay nhỏ hơn. Số tuần tự đƣợc đánh tăng dần qua từng gói dữ liệu cập nhật bởi nút gốc phát gói dữ liệu.

- Ƣu tiên thứ hai - số đo khoảng cách: Nếu gói dữ liệu cập nhật có số tuần tự bằng với số tuần tự có trong danh mục bảng định tuyến thì, và có số đo nhỏ hơn, thì nó sẽ đƣợc cập nhật. Số đo đƣợc đánh tăng dần bởi các nút truyền kế tiếp. Cứ một nút nhận gói dữ liệu cập nhật thì tăng số đo lên 1 và chuyển tiếp.

Gói dữ liệu khi đƣợc gửi chứa địa chỉ nút nhận và địa chỉ của nút gửi/phát (transmitting). Địa chỉ nút gửi/phát trong bảng định tuyến đặt trong trƣờng next-hop.

Mỗi nút phải truyền định kỳ toàn bộ bảng định tuyến của nó đến các nút lân cận bằng các gói dữ liệu cập nhật. Các nút lân cận sẽ cập nhật lại bảng định tuyến của nó dựa vào các thông tin này.

d. Các vấn đề phát sinh trong định tuyến DSDV cho mạng di động:

Với các mạng di động, do tính di động của nó mà các liên kết giữa các nút mạng sẽ bị đứt gãy hay xuất hiện thêm khi nút di chuyển. Liên kết gãy sẽ đƣợc các

nút nhận ra bởi thiết bị phần cứng, hoặc do sau khoảng thời gian định kỳ không nhận đƣợc thông báo cập nhật. Liên kết gãy đƣợc mô tả là số vô cực ∞. Khi một nút mạng phát hiện sẽ loan truyền quảng bá một thông báo cập nhật đến các nút khác với các đích bị mất. Gói dữ liệu cập nhật loan truyền thông tin này khi phát đi có số tuần tự mới và số đo khoảng cách là vô cực. Điều này là nguyên nhân dẫn tới mất

Một phần của tài liệu Nghiên cứu các giao thức định tuyến trong mạng truyền thông (Trang 72)