Chƣơng 2 : Mạng không dây và ứng dụng TCP trong mạng không dây
2. ứng dụng TCP trong mạng cảm biến không dây
2.1. Lƣu trữ các phân đoạn TCP phân tán (DTC)
2.1.3 Ví dụ hoạt động
Hình 2.3 cho thấy một ví dụ về cách sử dụng giao thức DTC theo một cơ chế báo hiệu. Trong ví dụ này, một ngƣời gửi TCP truyền ba phân đoạn TCP. Phân đoạn 1 sẽ đƣợc lƣu tại nút 5 trƣớc khi nó bị rơi trong mạng. Từ nút 5 không nhận đƣợc một ACK lớp liên kết, nó khóa đoạn 1 trong bộ nhớ cache. Tƣơng tự, đoạn 2 là bộ nhớ đệm và bị khóa bởi nút 7. Khi đoạn 3 đƣợc gửi tới ngƣời nhận, tại nút nhận sẽ gửi một tin xác nhận ACK 1 xác nhận đối với phân đoạn 3. Ngay sau khi tiếp nhận phân khúc ACK1 này tại nút 7 sẽ truyền lại đoạn 2, phân đoạn 2 sẽ đƣợc truyền lại và chuyển tiếp tới nút
nhận. Cuối cùng, nút 5 nhận đƣợc rằng phân khúc ACK1 với đoạn 2 và 3 đã đƣợc nhận thành công . Vì tất cả những khoảng trống đƣợc lấp đầy ngay bây giờ, nút 5 sẽ truyền lại đoạn 1 tới nút nhận. Sau khi nhận đƣợc cả hai phân đoạn 1 và đoạn 2, nút nhận sẽ truyền ACK 4 thông báo tình trạng các phân đoạn tới nút gửi. Lúc này quá trình truyền tải gói tin đã thành công với phƣơng pháp DTC.
Hình 2.3. Ví dụ hoạt động của DTC
2.2.TCP Hỗ trợ cho các nút cảm biến (TSS)
2.2.1. Tổng quan
TCP Hỗ trợ cho các nút cảm biến (TSS) là một lớp giữa TCP và lớp định tuyến đƣợc thực hiện trong một giao thức truyền thông ngăn xếp các nút cảm biến và có mục tiêu để hỗ trợ hoạt động một cách hiệu quả hơn đối với những nút cảm biến. TSS lý tƣởng nên đƣợc thực hiện tại các nút cảm biến TCP với ngƣời gửi và ngƣời nhận cũng nhƣ trong các nút cảm biến trung gian trong một kết nối TCP. Nhƣ DTC, TSS yêu cầu để lƣu trữ thông tin trạng thái cho mỗi kết nối TCP. Các thông tin TSS thƣờng nhỏ hơn
một số nguyên là 20 và chạy theo trình tự và con số ghi nhận, và dự toán RTT. TSS cố gắng để giảm bớt số lần truyền tải bởi một số khái niệm và cơ chế:
• Các phân đoạn của bộ nhớ đệm của các gói tin có thể không đƣợc nhận bởi các nút kế (nút tiếp theo).
• Phƣơng pháp truyền lại của các phân đoạn TCP dựa trên dự toán thời gian tối đa một gói tin đi từ nguồn tới đích và giao thức ICMP sẽ thực hiện thông báo mất gói tin tới nơi gửi để yêu cầu truyền lại.
• TSS sẽ truyền lại và phục hồi các gói tin dựa trên sự chậm trễ trong quá chuyển tiếp và theo cơ chế overhearing.
• Cơ chế truyền lại sẽ khởi động khi một nút chuyển tiếp một gói tin ở nút kế tiếp khi không nhận đƣợc tất cả các gói tin trƣớc đó.
Đối với TSS tại một nút cảm biến cũng hoạt động dựa trên một vi điều khiển cũng giống nhƣ DTC cũng chính vì thế với phƣơng pháp này cũng không cần đòi hỏi băng thông lớn, bộ nhớ cao, CPU mạnh hay năng lƣợng nhiều. Về phƣơng thức hoạt động thì TSS thì tại mỗi nút sau khi nhận đƣợc các phân đoạn TCP, và các phân đoạn này sẽ đƣợc chuyển tiếp khi biết chắc chắn rằng tại nút tiếp theo của nó đã nhận đƣợc tất cả các phân đoạn TCP có số tuần tự thấp hơn. Cũng chính vì vậy mà TSS có số gói đƣợc truyền sẽ giảm hơn so với DTC.
Nhƣ trên chúng tôi đã giới thiệu tổng quá về TSS phần tiếp theo tôi xin đi sâu hơn vào cơ chế hoạt động của phƣơng pháp này.
2.2.2. TCP hỗ trợ mạng cảm biến (TSS)
Tƣơng tự nhƣ DTC, TSS cho phép các phân đoạn TCP lƣu trong các nút trung gian. Tuy nhiên, không giống nhƣ trong DTC, quyết định phân đoạn bộ nhớ đệm trong TCP là hoàn toàn xác định. Một nút luôn có bộ nhớ đệm mà TCP phân khúc với các dữ liệu có chứa các byte đầu tiên mà chƣa đƣợc công nhận hay chuyển tiếp bằng nút kế tiếp gói tin này đƣợc lƣu trữ cho đến khi chắc chắn rằng các nút kế tiếp hƣớng tới đích đến đã nhận đƣợc các phân khúc. Nút A biết rằng các nút kế tiếp đã nhận đƣợc một
phân đoạn, khi nó phát hiện rằng các nút kế tiếp đã đƣợc chuyển tiếp hoặc khi nó nhận đƣợc một tín hiệu đáp trả một sự thừa nhận TCP đã đƣợc gửi từ các máy thu đối với ngƣời gửi đoạn TCP. Những nút đƣợc giả định để lắng nghe gói tin đƣợc truyền đi các nút láng giềng của họ để có thể phát hiện xem các nút láng giềng đã chuyển tiếp đoạn TCP hay chƣa. Một gói tin đó đƣợc biết là đã nhận đƣợc bởi các nút kế sẽ đƣợc gỡ bỏ khỏi bộ nhớ đệm của các nút. Nhƣ trong DTC bộ nhớ cache có thể chứa một gói duy nhất. Tuy nhiên, cơ chế lựa chọn cho TSS cần một bộ đệm dành cho gói tin để lƣu trữ tạm thời các gói tin, và các gói tin này đƣợc chờ đợi để đƣợc chuyển sang nút kế.
Tất cả các nút trung gian có thể thực hiện truyền lại ngay tại nó, khi họ giả định rằng một phân đoạn lƣu trữ đã không đƣợc nhận bởi các nút kế hƣớng tới đích đến của một phân đoạn TCP hoặc xác nhận. Truyền lại chủ yếu là kích hoạt bởi thời gian tạm ngƣng, mà đòi hỏi phải thiết lập cẩn thận của các giá trị thời gian chờ. Đối với DTC của timeout tái phát sóng có thiết tới 1,5 RTT *. Mô phỏng cho thấy rằng một thời gian chờ tái phát sóng của 2 RTT * thực hiện hơi tồi tệ hơn. Một thời gian chờ tái phát sóng của 1,5 RTT * cho phép phản ứng phần nào trƣớc đây về mất gói tin và cho phép sửa chữa thậm chí mất nhiều gói tin trƣớc khi một thời gian chờ giữa các thiết bị đầu cuối đƣợc kích hoạt.
Các giá trị thời gian chờ đƣợc tăng từ đích đến nguồn và đáp ứng nhu cầu của cơ chế “ backpressure” đƣợc mô tả nhƣ sau. Một nút chuyển tiếp chỉ lắng nghe và truyền gói tin đi trong một thời gian rất ngắn. Thông thƣờng, một gói tin sẽ đƣợc chuyển ngay lập tức tới nút kế tiếp và chỉ trong trƣờng hợp mất gói tin, một nút phải lắng nghe cho toàn bộ khoảng thời gian chờ tái phát sóng. Tuy nhiên, nó có thể đƣợc nhiều hiệu quả hơn để nâgn cao khả năng truyền gói tin đến nút tiếp theo và trƣớc đó, để thực hiện truyền một phân khúc TCP duy nhất hơn là truyền tải cả hai phân đoạn TCP đến nút tiếp theo và ghi nhận mức độ liên kết đến nút trƣớc đó với tính tƣơng thích cao nhất.
Hơn nữa, tại một nút thời gian chờ và hết hạn để truyền lại một phân đoạn trong TCP nó còn phụ thuộc vào ngƣời nhận và sự chuyển tiếp của nút tiếp theo. Việc truyền lại của một gói tin có thể xảy ra khi các nút trƣớc đó nhận đƣợc một gói tin tiêu đề báo lỗi không nhận đƣợc của ngƣời nhận. Sau đó, các phân đoạn TCP sẽ xác nhận đƣợc
chuyển tiếp nữa hay không, và gói tin lỗi sẽ đƣợc chuyển tiếp lại một lần nữa. Chuyển tiếp phải đƣợc ngăn chặn bởi một bộ lọc, bộ lọc sẽ lọc ra tất cả các phân đoạn đã đƣợc chuyển tiếp trƣớc đó. Tất nhiên, tại điểm đầu cuối việc truyền lại không đƣợc lọc, bởi vì điểm đầu cuối có thể đƣợc truyền lại cần thiết để phục hồi từ những vấn đề nghiêm trọng nhƣ phá vỡ tuyến đƣờng, trong đó một nút chuyển tiếp có thể không đƣợc biết. Truyền lại các phân đoạn TCP có thể đƣợc xác định duy nhất bởi các nguồn địa chỉ và lĩnh vực nhận dạng IP.
Việc chứng thực các gói tin trong TCP là vô cùng quan trọng đối với TSS, vì một số cơ chế nhƣ chuyến đi vòng quanh thời gian dự toán, truyền lại và bộ nhớ đệm phụ thuộc vào nó. Các thí nghiệm đã cho thấy nếu mất đi sự chứng thực trên có thể có tác động nghiêm trọng vào số lƣợng phân đoạn TCP đƣợc truyền đi. TSS triển khai hai cơ chế để truyền lại của TCP giúp làm giảm số lần truyền tải các phân đoạn TCP đáng kể: Một cơ chế tái tạo của địa phƣơng nhƣ triển khai bởi DTC và phục hồi TCP là một cơ chế tích cực, trong đó thu hồi các chứng thực trong TCP nếu chuyển tiếp của mình bằng các nút kế tiếp không đƣợc phát hiện. Việc này nhằm tạo nên các chứng thực mới trong TCP giúp thúc đẩy quá tình truyền tải gói tin nhanh hơn và giảm thời gian giữa việc nhận TCP từ nút kế tiếp hƣớng tới ngƣời gửi TCP. Tƣơng tự nhƣ đối với dự toán RTT chúng tôi sử dụng một chƣơng trình trung bình hàm mũ và thiết lập thời gian chờ xác nhận TCP với giá trị trung bình gấp đôi. Sau khi hết hạn thời gian chờ, một sự thừa nhận TCP đƣợc thu hồi bằng cách sử dụng các số ghi nhận cao nhất. Một lần nữa, điều này không cần đến sự thừa nhận trên bộ nhớ cache, nhƣng sự thừa nhận trên có thể đƣợc phục hồi bằng cách sử dụng thông tin chung của toàn mạng.
Cơ chế Backpressure : Nếu sự kế thừa của một nút không chuyển tiếp tất cả các gói tin nhận đƣợc, có thể có một vấn đề trong mạng. Ví dụ, mạng có thể là tắc nghẽn hoặc chuyển tiếp gói tin không có tiến bộ, bởi vì một phân đoạn TCP với lỗi bit đã không đƣợc thu hồi hoặc có tín hiệu đáp trả các nút trƣớc đó. Nếu một nút tiếp tục chuyển tiếp gói dữ liệu trong trƣờng hợp này, nguy cơ mà nó thực hiện việc truyền đi không cần thiết sẽ là khá cao. Trong một tình hình ùn tắc, một đoạn chuyển tiếp có thể dễ dàng bị lạc và có thể đúng trong trƣờng hợp của một gói dữ liệu bị mất do lỗi bit,
bởi vì trong tình hình nhƣ vậy tất cả các bộ nhớ đệm trên các nút tiếp theo đóng một vai trò là truyền tải một gói tin mới sẽ không đƣợc bảo vệ. Vì lý do đó, trong TSS tại một nút có một điểm dừng bất kỳ để chuyển tiếp các gói tin tiếp theo cho đến khi nó biết rằng tất cả các gói tin trƣớc đó đã đƣợc nhận và đƣợc chuyển tiếp bằng cách kế thừa của nó. Nếu gói dữ liệu chuyển tiếp dừng lại tại một số điểm, nó sẽ ảnh hƣởng đến tất cả các nút khác trong chuỗi phía sau của nó. Điều này có nghĩa rằng tất cả các nút khác cũng sẽ ngừng truyền cho đến khi dữ liệu đƣợc truyền tới nút tiếp theo của nó. Trong trƣờng hợp có một gói dữ liệu bị mất (do tắc nghẽn hoặc lỗi bit), mất gói dữ liệu nên đƣợc thu hồi bởi các nút đó thì nó sẽ gửi gói tin cuối cùng thông báo tới các nút kế tiếp. Trong trƣờng hợp đó, chúng ta cũng phải tránh truyền lại đƣợc kích hoạt bởi các nút phía sau nút phục hồi, tức là các nút gần gũi hơn với ngƣời gửi. Vì lý do đó, cơ chế đảm bảo rằng các truyền lại với thời gian tạm ngƣng tăng lên cùng các nút từ ngƣời nhận đến ngƣời gửi nhƣ đƣợc giải thích trong phần trên hoàn toàn phù hợp với cơ chế backpressure.
2.2.3. Ví dụ hoạt động
Hình 2.4 : minh họa hoạt động của TSS. Các phân đoạn đầu tiên đƣợc chuyển tiếp mà không có lỗi từ ngƣời gửi đến ngƣời nhận, trong khi phân khúc thứ hai là bị mất giữa các nút 6 và 7. Chúng ta giả định ở đây là nút 5 nghe đƣợc các gói tin chuyển tiếp 6-7 và nút 5 do đó giả định rằng nút 6 đã thành công chuyển tiếp đoạn đến 7. Tình trạng này có thể dễ dàng xảy ra, nếu nút 6 là gần hơn so với nút 5 hơn là tới nút 7 hoặc nếu việc truyền 6-7 là băn khoăn của ngƣời khác truyền nhƣ 9-10, trong khi một trong những thứ không làm việc truyền tải từ 6 đến 5. Trong ví dụ của chúng tôi, bộ nhớ đệm tại nút 6 phân khúc thứ hai sẽ bị timeout. Để tránh nút 6 thả các đoạn thứ ba, chúng ta phải cung cấp một bộ đệm gói tin bổ sung cho đệm đoạn thứ ba. phân khúc này sẽ không đƣợc chuyển tiếp và do đó, nút 5 sẽ ngừng chuyển tiếp các gói tin tiếp theo. Giả sử các nút có đo RTT nhƣ mô tả ở trên, nút 6 lần trƣớc khi ra khỏi nút 5 và retransmits đoạn thứ hai để nút 7. Nút 5 sẽ chơ ̣t nghe mà truy ền tải và tiếp tục chuyển tiếp gói tin, tức là với gói chuyển tiếp 4.
Nhìn chung, thời gian tạm ngƣng tại các nút gần gũi hơn với ngƣời nhận TCP phải nhỏ hơn thờ gian tạm ngƣng tại các nút gần gũi hơn với ngƣời gửi. Nếu chúng ta giả sử các chuyến đi vòng đo tối thiểu cho các phân đoạn đầu tiên, chúng ta thấy rằng trong số 6 lần trƣớc khi nút 5 chuyển tiếp. Tuy nhiên, trong trƣờng hợp này đặc biệt, thời gian chờ cho các gói tin hết hạn quá sớm thứ tƣ tại nút 1, nhƣng thƣờng các giá trị RTT trung bình sẽ cao hơn tại các nút xa nhận, kể từ khi truyền lại cũng sẽ đóng góp vào sự tính toán RTT.
Hình 2.4 TCP hoạt động trong môi trƣờng TSS
Trong hình 2.5, một lỗi có thể xảy ra với các phân đoạn thứ hai giữa các nút 6 và 7. Những phân khúc này một cách chính xác nhận bằng nút 6 và 7 nút chuyển tiếp nó một cách chính xác tới nút 8. Tuy nhiên, việc truyền từ node 7 tới nút 8 là băn khoăn tại nút 6 và nút 6 thậm chí không nhận đƣợc gói tin tiêu đề của gói thứ ba chuyển tiếp từ nút 7 đến 8 nút. Node 6 do đó giả định rằng các gói tin thứ hai đã không đƣợc nhận bằng nút 7 và dừng việc truyền tải gói dữ liệu mới. Tuy nhiên, sau một thời gian, sự thừa nhận TCP cho phân 2 đến tại nút 6 và 6 nút sau đó có thể tiếp tục để chuyển tiếp đoạn thứ ba.
Hình 2.5 Cách thức hoạt động cuat TSS khi gặp sự cố
2.3.So sánh với DTC
Trong khi cả hai phƣơng pháp DTC và TSS cho phép các nút cảm biến trung gian lƣu các phân đoạn TCP trong bộ nhớ đệm và truyền lại các gói dữ liệu trong trƣờng hợp lỗi bit xảy ra, bên cạnh đó chúng cũng có một số khác biệt giữa các phƣơng pháp truyền: Trong DTC phân khúc từng đoạn đƣợc chuyển ngay lập tức khi nhận đƣợc các phân khúc TCP trong khi cơ chế của TSS sẽ giữ các phân đoạn của bộ nhớ đệm cho đến khi nó biết rằng trƣớc đây các phân đoạn đã đƣợc nhận bởi các nút tiếp theo. Hơn nữa, DTC đòi hỏi một bộ đệm để lƣu trữ các phân đoạn trong TCP, trong khi nhu cầu TSS lại cần hai bộ nhớ đệm. Trong khi DTC sử dụng sự thừa nhận có chọn lọc và truyền lại, TSS không làm cho việc sử dụng tùy chọn này và vì vậy đòi hỏi ít bƣớc hơn trong quá trình truyền và nhận.Cũng chính vì lý do đó mà tốc độ chuyển các phân đoạn của TSS sẽ chậm hơn so với DTC nhƣng về độ an toàn thì TSS lại cao hơn so với DTC.
3. Tổng kết chƣơng 2
Trong chƣơng 2 luận văn đã cung cấp cho ngƣời đọc một bức tranh tổng quát nhất về mạng không dây nhƣ các ƣu điểm các mô hình mạng không dây đồng thời cung cấp cho ngƣời đọc các tiêu chuẩn đƣợc ứng dụng cho các mạng không dây.
Tại đây luận văn đã giới thiệu hai phƣơng thức truyền gói tin trong mạng cảm biến không dây là DTC và TSS. Cả hai phƣơng án làm việc bằng cách cho phép các nút trung gian phân đoạn dữ liệu trong bộ nhớ đệm TCP và thực hiện truyền lại khi gói tin bị mất đƣợc phát hiện.
Đối với mạng có dây, TCP/IP điều khiển cửa sổ trƣợt với kích thƣớc to hay nhỏ phụ thuộc vào sự tắc nghẽn có trong mạng. Khi biết tắc ngẽn tức là quá thời gian qui định mà ACK không thấy trả lời thì cửa sổ trƣợt sẽ giảm kích thƣớc cửa sổ xuống để