Hoàng Đăng Hải Học Viên: Lê Đăng Phong [1-22] Vũ Anh Tuấn


Trễ và các tuyến liên kết



tải về 0.59 Mb.
trang14/19
Chuyển đổi dữ liệu13.08.2016
Kích0.59 Mb.
#17954
1   ...   11   12   13   14   15   16   17   18   19

7. Trễ và các tuyến liên kết


Trễ biểu diễn thời gian cần thiết để gói di chuyển qua một tuyến liên kết. Dạng đặc biệt của trễ (liên kết động) cũng bao hàm cả khả năng lỗi của tuyến liên kết. Thời gian cần thiết cho một gói di chuyển qua một tuyến được định nghĩa là s/b + d với s là kích thước của gói, b là tốc độ của tuyến tính bằng bits/giây, và d là trễ của tuyến tính bằng giây.

7.1 Lớp LinkDelay


Lớp LinkDelay được dẫn xuất từ lớp cơ sở Connector. Nó được định nghĩa trong ~ns/delay.cc và được mô tả vắn tắt như sau:

class LinkDelay : public Connector {

public:

LinkDelay();



void recv(Packet* p, Handler*);

void send(Packet* p, Handler*);

void handle(Event* e);

double delay(); /* line latency on this link */

double bandwidth(); /* bandwidth on this link */

inline double txtime(Packet* p) { /* time to send pkt p on this link */

hdr_cmn* hdr = (hdr_cmn*) p->access(off_cmn_);

return (hdr->size() * 8. / bandwidth_);

}

protected:



double bandwidth_; /* bandwidth of underlying link (bits/sec) */

double delay_; /* line latency */

int dynamic_; /* indicates whether or not link is ~ */

Event inTransit_;

PacketQueue* itq_; /* internal packet queue for dynamic links */

Packet* nextPacket_; /* to be delivered for a dynamic link. */

Event intr_;

};

Phương thức recv() nạp chồng từ lớp cơ sở Connector. Nó được định nghĩa như sau:



void LinkDelay::recv(Packet* p, Handler* h)

{

double txt = txtime(p);



Scheduler& s = Scheduler::instance();

if (dynamic_) {

Event* e = (Event*)p;

e->time_ = s.clock() + txt + delay_;

itq_->enque(p);

schedule_next();

} else {

s.schedule(target_, p, txt + delay_);

}

/* XXX only need one intr_ since upstream object should



* block until it’s handler is called

*

* This only holds if the link is not dynamic. If it is, then



* the link itself will hold the packet, and call the upstream

* object at the appropriate time. This second interrupt is

* called inTransit_, and is invoked through schedule_next()

*/

s.schedule(h, &intr_, txt);



}

Đối tượng này hỗ trợ một thủ tục cài đặt (instproc-like), $object dynamic, để thiết lập biến dynamic_ của nó. Biến này xác định xem liên kết có phải là động hay không (tức là khả năng xảy ra lỗi/phục hồi tại các thời điểm tương ứng). Cách xử lý nội tại của mỗi liên kết là khác nhau.

Với trường hợp các liên kết không động (non-dynamic), phương thức này hoạt động bằng cách nhận một gói, p, và định trình hai sự kiện. Giả sử hai sự kiện này là E1 và E2, và sự kiện E1 được định trình để xảy ra trước sự kiện E2. E1 được định trình để xảy ra khi node ở luồng lên đính với phần tử trễ này đã hoàn thành việc gửi gói hiện tại (có thời gian tương đương với kích thước gói chia cho băng thông của liên kết). E1 thường có liên quan tới đối tượng Queue, và sẽ khiến cho nó (có thể) bị khóa (xem Phần 7.1.1). E2 thể hiện sự kiện đến của một gói tại luồng xuống lân cận của phần tử trễ. Sự kiện E2 xảy ra chậm hơn sự kiện E1 vài giây tương đương với trễ của liên kết.

Cứ lần lượt như vậy, khi liên kết là động, và nhận p, sau đó nó sẽ định trình E1 để có thể mở khóa hàng đợi tại thời điểm tương ứng. Tuy nhiên, E2 được định trình chỉ nếu p là gói duy nhất hiện đang được truyền đi. Mặt khác, có ít nhất một gói đang truyền đi trên liên kết phải được nhận trước p tại E2. Do đó, gói p được giữ trong hàng đợi inTransit của đối tượng, itq_. Khi gói ngay trước p đang truyền trên liên kết được nhận tại node lân cận, đối tượng DelayLink sẽ tự định trình một sự kiện để phát ra tại E2. Tại thời điểm tương ứng đó, phương thức handle() của nó sẽ gửi p trực tiếp tới đích của mình. Phương thức nội tại schedule_next() của đối tượng sẽ định trình các sự kiện này cho các gói đang được truyền tại thời điểm tương ứng




8.Các dịch vụ trong ns.


Mục này mô tả các dịch vụ có nguồn gốc từ các dịch vụ của Nortel trong ns.

Các dịch vụ hoặc Diffserv là cấu trúc IP QoS cơ sở trong nhãn gói mà nó cho phép mức độ ưu tiên của các gói theo yêu cầu người sử dụng. Trong thời gian tắc nghẽn các gói có mức đô ưu tiên thấp sẽ bị loại bỏ nhiều hơn các gói có mức độ ư tiên cao.


8.1. Tổng quan


Cấu trúc Diffserv cung cấp QoS bằng việc phân chia lưu lượng thành các loại khác nhau, đánh dấu mỗi gói với một mã con trỏ để nhận dạng các loại này và định trình các gói thông qua mã con trỏ của chúng. Khối Diffserv trong ns hiện tại định nghĩa 4 lớp lưu lượng , mỗi lớp trong chúng có thể thuộc 3 mức loại bỏ khác nhau. Mỗi mức loại bỏ cho phép có thể sử lý với một lớp lưu lượng. Một lớp lưu lượng bao gồm trong 3 lớp hàng đợi ảo (một trong mỗi loại được loại bỏ theo mức ưu tiên) được xắp trong hàng tương ứng với lớp vật lý hàng đợi RED.

Các đặc tính khác nhau của RED được sử dụng cho các hành đợi ảo, do các gói từ một hàng đợi ảo có thể bị loại bỏ thường xuyên hơn các gói của hàng khác. Một gói với mức loại bỏ thấp hơn sẽ được ưu tiên hơn trong thời gian tắc nghẽn bởi vì nó được gán cho một mã con trỏ phù hợp với một hàng đợi ảo liên quan với các đặc tính của RED.

Khối Diffserv trong ns bao gồm 3 thành phần chính:

policy: Mức dịch vụ lớp lưu lượng được thu trong mạng được quản trị viên mạng xác lập

edge routers: Đánh dấu các gói với mã con trỏ tùy thuộc vào policy được xác lập.

core routers: Kiểm tra việc đánh dấu mã con trỏ và chuyển chúng đi tiếp một cách phù hợp

Diffserv cố gắng hạn chế sự phức tạp cho edge routers.

8.2 Sự thi hành (Implementation)


Thủ tục và chức năng được mô tả trong mục này có thể tìm thấy trong địa chỉ ~ns/diffserv/dsred, dsredq, dsEdge, dsCore, dsPolicy.{cc, h}.

8.2.1 Hàng đợi RED cho Diffserv


Trong ns, các chức năng của Diffserv nhận được trong phần tử Queue mà nó thực hiện như là sự lựa chọn từ các loại hàng đợi DropTail, CBQ, and RED. Một hành đợi Diffserv (dsREDQueue thừa kế từ lớp Queue cơ sở, xem trong dsred.{h,cc}) bao gồm các khả năng sau:

- thực hiện nhiều hàng đợi RED vật lý trong cùng một tuyết kết nối đơn.

- Thực hiện nhiều các hàng đợi ảo trog một hàng đơi vật lý với việc thiết lập các đặc tính riêng cho m[ix hàng đợi ảo.

- Quyết định một gói trong tuyến vật lý và hàng đợi ảo nào được xếp vào hàng, tùy thuộc policy được xác lập.

Lớp dsREDQueue bao gồm 4 hàng đợi RED vật lý (được định nghĩa như numQueues_), môĩi hàng lại bao gồm 3 hàng đợi ảo ( được định nghĩa như numPrec) có liên quan đến mức độ ưu tiên. Mỗi một hàng đợi vật lý tương ứng với một lớp lưu lượng và mỗi sự kết hợp của một hàng đợi và một số thứ tự là sự kết hợp với một mã con trỏ (hoặc một mức độ ưu tiên loại bỏ) xác định mức độ của hàng đợi.

Hàng đợi RED vật lý được định nghĩa trong lớp redQueue(xem dsredq.{h,cc}). Lớp redQueue cho phép sự khác nhau về lưu lượng bằng cách xác lập các hàng đợi RED ảo, mỗi hàng đợi RED có đặc tính cấu hình và trạng thái riêng biệt. Chẳng hạn, độ dài của mỗi hàng đợi ảo chỉ được tính toán bằng các gói được ghép vào trong hàng đợi. Bởi vậy, việc quyết định loại bỏ gói có thể được áp dụng trên đặc tính cấu hình và trạng thái của hàng đợi ảo.

Lớp redQueue là không tương đương với lớp REDQueue đã được giới thiệu trong ns. Thay vào đó nó là một phiên bản của lớp REDQueue bao gồm các khía niệm của các hàng đợi ảo. Lớp redQueue chỉ tồn tại bên trong lớp dsREDQueue. Tất cả các thao tác của người sửm dụng với lớp redQueue được thực hiện thông qua lệnh giao tiếp của lớp dsREDQueue.

Lớp dsREDQueue bao gồm cấu trức dữ liệu được biết như bảng PHB (qua cách chuyển bảng). Thiết bị cạnh đánh giấu các gói với mã con trỏ và mã thiết bị đơn giản ứng với mã con trỏ đã tồn tại. Tuy nhiên, cả 2 thiết bị cần được quyết định ghép các mã con trỏ cho một hànhg đợi cụ thể và mức độ ưu tiên. Bảng PHB điều khiển việc ghép này bằng việc xác định một hàng với 3 thư mục:

struct phbParam {

int codePt_; // corresponding code point

int queue_; // physical queue

int prec_; // virtual queue (drop precedence)

};

9.2.2 Core và edge routers.



Diffserv edge và core routers được định nghĩa trong edgeQueue và lớp coreQueue, cả 2 đều được thừa kế từ lớp dsREDQueue, xem dsEdge,dsCore.{h,cc}.

9.2.3 Policy

Lớp Policy (được định nghĩa như dsPolicy.{cc, h}) được sử dụng trong lớp edgeQueue để điều khiển tất các các chức năng policy.

Một policy được thiết lập giữa một nguồn và đích đến. Tất cả các luồng được thiết lập từ nguồn tới đích theo từng đôi được coi như là nguồn lưu lượng đơn. Mỗi một polycy thiết lập một kiểu chính sách, một tốc độ mong muốn, và các đặc tính định hướng riêng. Tối thiểu mỗi policy thiết lập 2 mã con trỏ và chọn một tùy thuộc vào việc so giựa tốc độ mong muốn và tốc tốc độ gửi hiện tại.

Mỗi một nguồn lưu lượng có một kiểu chính sách kết hợp, kiểu đo và mã con trỏ ban đầu. Kiểu đo đặc trưng cho phương pháp đánh giá các trạng thái cần của chính sách. Ví dụ TSW Tagger là một laọi đồng hồ dùng để đánh giá tốc độ lưu lượng trung bình , sử dụng các đặc tính cửa sổ thời gian.

Khi một gói đi đến một edge router, nó sẽ được đánh giá để quyết định xem nó thuộc vào nguồn nào. Đồng hồ đặc trưng cho nguồn đến để thiết lập lại tất cả các trạng thía của các biến. Sau khi chính sách được đưa ra để quyết định cách đánh dấu gói, tùy thuộc vào trạng thái các biến của nguồn, đặc tính ban đầu hoặc đặc tính đã giảm cấp của mã con trỏ sẽ được sử dụng; và gói sẽ được xếp vào hàng một cách tương ứng.

Lớp sử Policy sử dụng Policy Table để lưu trữ các chính sách cho mỗi nguồn lưu lượng, Bảng này là một các dãy bao gồm các flie cho nguồn và điểm đích, loại chính sách, loại đồng hồ, mã con trỏ ban đầu và các loại thông tin trạng thái khác. Lớp sử Policy sử dụng Policer Table để lưu trữ quastrinhf xắp xếp từ một loại chính sách và 2 mã con trỏ ban đầu để kết hợp với mã con trỏ giảm cấp. Chi tiết của phần này được mô tả trong dsPolicy.{cc, h}

Hiện tại có 6 kiểu chính sách khác nhau được định nghĩa bao gồm:

1. TSW2CM (TSW2CMPolicer): sử dụng một CIR và 2 mức độ ưu tiên. Mức ưu tiên thấp có khả năng được sử dụng khi mà CIR vượt ngưỡng

2. TSW3CM (TSW3CMPolicer): sử dụng một CIR, một PIR, và 3 mức độ ưu tiên . Mức ưu tiên trung bình được sử dụng khi CIR vượt ngưỡng và mức ưu tiên thấp nhất được sử dụng khi PIR vượt ngưỡng.

3. Token Bucket (tokenBucketPolicer): sử dụng một CIR và một CBS cùng 2 mức ưu tiên . Một gói đến được đánh dấu với mức độ ưu tiên thấp nếu và chỉ nếu nó lớn hơn token bucket.

4. Một tốc độ đánh dấu 3 mầu (srTCMPolicer): sử dụng một CIR, CBS, và một EBS để chọn chọn từ 3 mức độ ưu tiên.

5. Hai tốc độ đánh dấu 3 mầu (trTCMPolicer): sử dụng một CIR, CBS, PIR và một EBS để chọn chọn từ 3 mức độ ưu tiên.

Một tham chiếu tới lớp PolicyClassifier được lớp edgeQueue sử dụng để đưa ra các chính sách khác nhau. Mỗi một chính sách được định nghĩa là một lớp con và được thừa kế từ lớp dsPolicy.Phương pháp applyMeter và applyPolicer cần được xác định cho mỗi chính sách. Các chính sách do người sử dụng xác lập cũng có thể được đưa vào theo các tương tự. Xem chi tiết trong dsPolicy.{cc, h}.



Каталог: Hoc%20Tap -> Cong%20Nghe%20Wan
Hoc%20Tap -> 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
Hoc%20Tap -> Cấu hình Application Port-Mapping với cbac mục tiêu: Cấu hình để router nhận ra các ứng dụng không sử dụng port chuẩn. Mô hình
Hoc%20Tap -> ĐẢng cộng sản việt nam đẢng ủy phưỜng 04
Hoc%20Tap -> CiR = Bc / Tc
Hoc%20Tap -> Mean command : ip ospf mtu-ignore Diagram : Problems
Hoc%20Tap -> R1# ip route 0 0 0 0 FastEthernet0/0 R2# show run
Cong%20Nghe%20Wan -> Câu hỏi về kết nối chi nhánh về Head Office dùng wan
Cong%20Nghe%20Wan -> 1/ Cáp đồng gshdsl
Cong%20Nghe%20Wan -> 1. xu hưỚng chuẩn hoá VÀ CẤu trúc giao thứC

tải về 0.59 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   11   12   13   14   15   16   17   18   19




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương