PDA

View Full Version : Cho hỏi về OSPF LSA: sequencing, checksum và aging



farontek
12-09-2004, 10:17 AM
Hi all, em đang đọc quyển Routing TCP/IP Vol1 và thắc mắc chỗ này:
Theo em hiểu thì sách nói rằng:
Khi router tạo một LSA, router sẽ đặt sequence number cho LSA = InitialSequenceNumber. Mỗi khi router tạo ra một bản mới của LSA đó thì sẽ tăng SeqNum lên một đơn vị.
Nếu SeqNum hiện thời là MaxSeqNum và router định tạo một bản mới của LSA đó, router phải xóa LSA cũ ra khỏi các database. Điều này thực hiện bằng cách đặt age cho LSA = MaxAge và flood nó cho các adjacency. Khi các adjacency xác nhận điều này thì router mới tạo một bản mới của LSA đó với SeqNum = InitSeqNum.
Checksum là một giá trị 16bit. Checksum tính cho toàn bộ LSA trừ field Age. Mỗi 5 phứt, checksum của các LSA trong database sẽ được kiểm lại để đảm bảo không có gì bị trục trặc.
Age là một giá trị 16bit, đếm bằng second. Có giá trị từ 0 đến 3600 ( = 1 hour). Khi router tạo một LSA, Age = 0. Khi LSA được flood lên mạng, mỗi khi đi qua một router nào đó thì Age được tăng lên InfTransDelay. Age của LSA khi đã nằm trong database rồi thì vẫn bị tăng lên.
Khi LSA = MaxAge, LSA sẽ bị xóa khỏi database. Khi router cần xóa một LSA ra khỏi database, router sẽ cho LSA "già trước tuổi" bằng cách đặt Age = MaxAge và flood nó lên mang. Chỉ có router gốc, là người tạo ra LSA, mới được quyền làm điều này.
Khi một router nhận được nhiều bản khác nhau của cùng một LSA, router sẽ chọn ra LSA mới hơn bằng cách:
1) So sánh SeqNum, LSA có SeqNum lớn hơn sẽ được chọn.
2) Nếu trùng SeqNum, router sẽ so sánh CheckSum của các LSA, LSA có checksum lớn hơn sẽ được chọn.
3) Nếu checksum trùng, router sẽ so sánh Age. Nếu một LSA có Age = MaxAge --> LSA đó được chọn.
4) Nếu các LSA có Age khác biệt nhau hơn 15 minute, LSA "trẻ" hơn được chọn.
5) Ngoài ra thì 2 LSA được xem là giống nhau.

Từ những "hiểu biết" trên, em có những câu hỏi sau:
1) Có phải router chỉ tạo một bản mới của LSA khi có một thay đổi gì đó (up/down, metric thay đổi,...) về Link tương ứng phải không? Hoặc là theo định kỳ 30 phút tạo lại một lần?
2) Khi LSA di chuyển từ source router đến các target router, nó bị "già" đi mỗi lần một InfTransDelay. Vậy khi đã nằm trong database rồi thì nó bị "già" đi như thế nào?
3) Giả sử LSA sắp "chết" (gần tới MaxAge) khi nó được flood trên mạng, đến một router nào đó thì nó "chết" ( = MaxAge), vậy thì router đó xử lý ra sao? Và source router có biết được điều đó hay không? Tình huống này có ảnh hưởng gì đến hoạt động của OSPF hay không?
4) Vì lí do gì mà có 2 LSA bị giống nhau? Em chưa nghĩ ra được một tình huống nào hết.
5) Nói về cách nhận dạng 2 LSA khác nhau, em thấy dựa vào SeqNum là đúng rồi. Sao lại dựa vào CheckSum. CheckSum chỉ là để kiểm lỗi, làm sao CheckSum lại cho biết được LSA nào mới hơn?
6) Rồi lại dựa vào Age, khi một LSA có Age = MaxAge thì được xem như là mới hơn (???). Còn 2 LSA có Age khác biệt nhau hơn 15 phút thì mới được xem là khác nhau, lí do tại sao thì em không hiểu hết.

Trên đây là nhưng "hiểu biết" của em, do hơi bị "thiếu hụt iode" nên không lĩnh hội được hết, và còn bị bệnh "thiếu hụt money" - nên không tham gia được các course CCNP. Vì vậy em rất mong được các huynh trưởng, anh Admin, anh Đặng Quang Minh, và các CCNP khác chỉ dẫn.

Thanks.

trung tam kn
12-09-2004, 11:56 AM
về giá trị Maxage và sequence, xem link này

http://forum.vnpro.org/viewtopic.php?t=4993

farontek
13-09-2004, 07:30 PM
Hi all !!!
Sao không anh nào answer em hết.
Mong được các anh giúp em giải đáp những câu hỏi này.
Thanks.

robedan
14-09-2004, 08:30 AM
em có những câu hỏi sau:
1) Có phải router chỉ tạo một bản mới của LSA khi có một thay đổi gì đó (up/down, metric thay đổi,...) về Link tương ứng phải không? Hoặc là theo định kỳ 30 phút tạo lại một lần?
2) Khi LSA di chuyển từ source router đến các target router, nó bị "già" đi mỗi lần một InfTransDelay. Vậy khi đã nằm trong database rồi thì nó bị "già" đi như thế nào?
3) Giả sử LSA sắp "chết" (gần tới MaxAge) khi nó được flood trên mạng, đến một router nào đó thì nó "chết" ( = MaxAge), vậy thì router đó xử lý ra sao? Và source router có biết được điều đó hay không? Tình huống này có ảnh hưởng gì đến hoạt động của OSPF hay không?
4) Vì lí do gì mà có 2 LSA bị giống nhau? Em chưa nghĩ ra được một tình huống nào hết.
5) Nói về cách nhận dạng 2 LSA khác nhau, em thấy dựa vào SeqNum là đúng rồi. Sao lại dựa vào CheckSum. CheckSum chỉ là để kiểm lỗi, làm sao CheckSum lại cho biết được LSA nào mới hơn?
6) Rồi lại dựa vào Age, khi một LSA có Age = MaxAge thì được xem như là mới hơn (???). Còn 2 LSA có Age khác biệt nhau hơn 15 phút thì mới được xem là khác nhau, lí do tại sao thì em không hiểu hết.

Trên đây là nhưng "hiểu biết" của em, do hơi bị "thiếu hụt iode" nên không lĩnh hội được hết, và còn bị bệnh "thiếu hụt money" - nên không tham gia được các course CCNP. Vì vậy em rất mong được các huynh trưởng, anh Admin, anh Đặng Quang Minh, và các CCNP khác chỉ dẫn.

Thanks.

1/ Các LSA sẽ được tạo ra khi có một thay đổi về mạng. sau mỗi 30', toàn bộ Database sẽ được trao đổi một lần chứ không phải lSA được tạo mới.

2/ Khi LSA bị mâxage, router nhận sẽ lọai bỏ LSA đó. Router phát không biết việc lọai bỏ này. LSA có ACK không?