Sửa lỗi phía trƣớc FEC (Forward Error Correction)

Một phần của tài liệu Các cải tiến TCP cho đường truyền vệ tinh (Trang 44 - 48)

Khi dữ liệu đƣợc truyền, các tín hiệu đại diện luồng bit rất dễ bị thay đổi do sự tác động của nhiễu điện từ trong mơi trƣờng bên ngồi, tức là các tín hiệu đại diện cho bit 1 bị máy thu dịch ra thành bit nhị phân 0 và ngƣợc lại, thậm chí tín hiệu có thể bị biến mất hồn tồn. Để việc truyền dữ liệu đƣợc chính xác cần phải có biện pháp để bên thu có khả năng biết đƣợc dữ liệu thu đƣợc có chứa lỗi hay khơng. Hơn nữa, nếu phát hiện đƣợc lỗi có khả năng sửa lỗi.

Có hai cách tiếp cận cho vấn đề này:

 Sửa lỗi theo phản hồi (Feedback Error Correction): mỗi ký tự hay Frame dữ liệu đƣợc truyền chỉ đƣợc bổ sung một lƣợng thông tin đủ cho máy thu phát hiện lỗi, nhƣng khơng thể xác định vị trí các bit bị lỗi trong dãy bit dữ liệu thu đƣợc; nhƣ vậy, bên phát phải truyền lại bản sao của đơn vị thông tin bị sai này.

 Sửa lỗi ở phía trƣớc - FEC: mỗi ký tự hay Frame dữ liệu đƣợc truyền sẽ chứa một lƣợng thông tin bổ sung nhằm giúp máy thu không chỉ phát

hiện lỗi mà cịn xác định chính xác lỗi nằm ở đâu trong dãy bit nhận đƣợc. Do đó nếu có lỗi thì máy thu có thể tự sửa lỗi mà không cần truyền lại dữ liệu.

Các kỹ thuật kiểm soát lỗi phổ biến nhất ở tầng Liên kết dữ liệu đều dựa trên hai cách tiếp cận trên. Việc áp dụng cách tiếp cận thứ nhất yêu cầu phải có cơ chế yêu cầu phát lại tự động – ARQ (Automatic Repeat reQuest): khi phát hiện ra lỗi trong dãy dữ liệu đến, bên nhận yêu cầu bên gửi gửi lại. Sự kết hợp kỹ thuật phát hiện lỗi và kỹ thuật ARQ trong giao thức tầng Liên kết dữ liệu có thể biến tầng Liên kết dữ liệu khơng tin cậy thành một tầng tin cậy. Trong các cơ chế phát lại có sử dụng ARQ, có ba cơ chế phổ biến nhất là:

 Dừng và chờ (Stop-and-wait ARQ),  Phát lại từ gói số liệu thứ N (Go-back-N).  Phát lại có chọn lọc (Selective-repeat).

Trong các cơ chế trên, cơ chế phát lại có chọn lọc cho hiệu quả cao nhất, nhƣng cũng là cơ chế phức tạp nhất khi áp dụng.

Việc sử dụng ARQ có hiệu quả khi sự mất gói số liệu là không thƣờng xuyên và thời gian trễ truyền là không quan trọng. Cơ chế này chỉ làm tốn thêm một dải thơng phụ khi có gói số liệu phải phát lại. Tuy nhiên, ARQ có thể đụng độ với cơ chế điều khiển lƣu lƣợng của TCP, trong khi tầng Liên kết dữ liệu đang cố gắng phát lại, bên gửi của kết nối TCP có thể bị hết giờ, dẫn đến kích hoạt giai đoạn khởi động chậm, SS. Giải pháp mà ngƣời ta đã đề xuất để giải quyết vấn đề này là sử dụng giao thức ARQ có nhận biết TCP (TCP-aware ARQ protocol); tầng Liên kết dữ liệu sẽ chặn các biên nhận lặp, không cho chúng đến đƣợc bên gửi. Nếu nhƣ tầng Liên kết dữ liệu khơng thể gửi lại các gói số liệu thì bên gửi sẽ bị hết giờ và chính nó sẽ phát lại gói số liệu. Giải pháp này chỉ có thể áp dụng đƣợc khi đƣờng truyền gây nhiều lỗi là chặng cuối cùng để đến đích, nếu sau đƣờng truyền gây nhiều lỗi lại có các đƣờng truyền và bộ

định tuyến nữa, những sự mất mát do tắc nghẽn mạng sẽ bị che đi, cơ chế điều khiển tắc nghẽn mất tác dụng, điều này cần phải tránh.

Để giảm ảnh hƣởng xấu của tỉ suất lỗi bit cao của đƣờng truyền không dây đến việc vận chuyển dữ liệu, các thuật toán mã hoá sửa lỗi ở phía trƣớc (FEC) đã đƣợc nghiên cứu và sử dụng rộng rãi. Thuật toán FEC chỉ ra cách bổ sung thông tin dƣ thừa vào dữ liệu gửi, để cho bên nhận có thể khơi phục lại phần bị hỏng của gói số liệu.

Để thực hiện FEC, ngƣời ta đóng các gói tin dữ liệu (data packets) thành các khối (block), trong mỗi khối lại đƣa thêm một số gói tin dƣ thừa (redundancy packets) để bên thu có thể phát hiện và tự khơi phục lại các gói dữ liệu bị hỏng. Cơng thức để tính xác suất mất gói tin sau khi đóng khối đƣợc Cidon phân tích rất kỹ trong [26], và đƣợc H. Lundqvist và G. Karlsson chỉ ra trong [27] nhƣ sau:

(1)

Trong đó Ppl (pl: packet loss) là xác suất mất gói tin trƣớc khi đóng gói khối, N là số lƣợng các gói tin dữ liệu đƣợc đóng trong một khối, M là số lƣợng các gói tin dƣ thừa dùng để khơi phục dữ liệu trong trƣờng hợp xẩy ra lỗi.

Công thức sau đƣợc H. Lundqvist và G. Karlsson đƣa ra cho phép tính thơng lƣợng của TCP khi sử dụng FEC [27]:

Ở đây Wm là kích thƣớc cửa sổ cực đại, b là số lƣợng các gói tin báo nhận trong mỗi xác nhận, p là xác suất lỗi, T0 là chu kỳ timeout và RTT là thời gian khứ hồi.

Thông lƣợng của TCP trong trƣờng hợp kết hợp với FEC và không kết hợp với FEC đƣợc ƣớc lƣợng sử dụng các tham số cố định. H. Lundqvist và G. Karlsson [27] đã lựa chọn N=10 và M=1, đƣờng truyền TCP với tốc độ 1Mbps, độ trễ đƣờng truyền 100ms và kích thƣớc của gói tin là 1000byte, chu kỳ timeout là 1 giây, số lƣợng gói thơng báo trong một xác nhận (b) là 2. Kết quả thu đƣợc nhƣ hình 3.1.

Hình 3.1 Thơng lƣợng của TCP với FEC và không FEC

Khi khơng có lỗi hoặc lỗi rất nhỏ thì thơng lƣợng của TCP lớn hơn thông lƣợng của TCP+FEC, ngun nhân vì TCP+FEC cần truyền thêm các thơng tin dƣ thừa để phát hiện và sửa lỗi. Lúc lỗi nhỏ hơn 0.01, lƣợng thông tin dƣ thừa

trong FEC đủ để khắc phụ lỗi, do đó thơng lƣợng của TCP+FEC vẫn khơng đổi, trong khi thông lƣợng của TCP không sử dụng FEC bị suy giảm nghiêm trọng. Xác suất lỗi vƣợt q 0.01 thì lƣợng thơng tin dƣ thừa truyền trong TCP+FEC khơng cịn đủ để TCP kiểm tra và tự sửa đƣợc lỗi, TCP sẽ phát yêu cầu phát lại các gói tin bị hỏng, do đó thơng lƣợng của TCP+FEC bắt đầu bị suy giảm.

Nhƣợc điểm của thuật tốn này là thơng tin dƣ thừa bổ sung thêm vào sẽ không cần sử dụng đến trong những lúc trạng thái đƣờng truyền là tốt, gây ra sự lãng phí dải thơng. Ngồi ra, việc tính tốn đối với thơng tin bổ sung này cũng cần đến thời gian xử lý của CPU và bộ nhớ. Tuy nhiên, trong những tình huống kênh truyền có khoảng cách lớn kết hợp với tỉ suất lỗi cao, ƣu điểm của FEC rất xứng đáng với cái giá phải trả. Kỹ thuật FEC cịn có một ƣu điểm nổi bật nữa là nó khơng cản trở các cơ chế điều khiển của giao thức TCP. Với các ƣu và nhƣợc điểm trên, FEC thƣờng đƣợc sử dụng trong truyền thông vệ tinh và truyền thông vũ trụ.

Một phần của tài liệu Các cải tiến TCP cho đường truyền vệ tinh (Trang 44 - 48)