Mở đầuSự phát triển của khoa học kỹ thuật đã tạo tiền đề cho sự phát triển của truyền thông vệ tinh, tới nay truyền thông vệ tinh đã được sử dụng rộng rãi và các hệ thống vệ tinh đã trở
Trang 1Trần Đình Tùng
CÁC CẢI TIẾN TCP CHO ĐƯỜNG TRUYỀN VỆ TINH
Ngành: Công nghệ thông tin Chuyên ngành: Mạng và truyền thông
Mã số: 1.01.10
LUẬN VĂN THẠC SỸ
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS, TS Nguyễn Đình Việt
Hà Nội - 2008
Trang 2Mục lục
Bảng thuật ngữ viết tắt 6
Danh mục các hình vẽ 8
Mở đầu 10
Chương 1 - GIỚI THIỆU 13
1.1 Lịch sử phát triển và ưu nhược điểm của truyền thông vệ tinh 13
1.1.1 Lịch sử phát triển của truyền thông vệ tinh 13
1.1.2 Ưu nhược điểm của truyền thông vệ tinh 16
1.2 Một số khái niệm và kiến thức cơ bản về truyền thông vệ tinh 17
1.2.1 Các khái niệm cơ bản 17
1.2.2 Các hệ thống vệ tinh 20
1.3 Kết nối mạng qua đường truyền vệ tinh 21
1.3.1 Đặc điểm của đường truyền vệ tinh và các vấn đề phải giải quyết 21
1.3.2 Các giải pháp khắc phục 23
Chương 2 - CƠ CHẾ ĐIỀU KHIỂN LƯU LƯỢNG TRONG GIAO THỨC TCP 26
2.1 Sự phát triển của mạng Internet 26
2.2 Kiến trúc mạng Internet 26
2.2.1 Mô hình tham chiếu ISO OSI 27
2.2.2 Mô hình TCP/IP 30
2.3 Tổng quan về giao thức TCP 31
2.3.1 Cấu trúc gói tin TCP 33
2.3.2 Cơ chế hoạt động của TCP 36
2.4 Một số thuật toán điều khiển lưu lượng trong TCP 38
2.4.1 Thuật toán “Khởi động chậm” – SS (Slow Start) 38
2.4.2 Thuật toán “Tránh tắc nghẽn” – CA (Congestion Avoidance) 39
2.4.3 Thuật toán “Phát lại nhanh” – FRTX (Fast Retransmit) 41
Trang 32.4.4 Thuật toán “Khôi phục nhanh” – FRCV (Fast Recovery) 41
2.5 Các phiên bản của giao thức TCP 42
2.5.1 Tahoe 42
2.5.2 Reno 43
2.5.3 New-Reno 44
2.5.4 SACK TCP 45
2.6 Ưu điểm của TCP trong mạng truyền thông 45
Chương 3 - CÁC GIẢI PHÁP CẢI THIỆN HIỆU SUẤT TCP TRONG MẠNG CÓ ĐƯỜNG TRUYỀN VỆ TINH 46
3.1 Sửa lỗi phía trước - FEC (Forward Error Correction) 46
3.2 TCP SACK 50
3.3 TCP HACK (HeAder ChecKsum option) 54
3.4 TCP Trunk 58
Chương 4 - ĐÁNH GIÁ HIỆU SUẤT TCP TRÊN ĐƯỜNG TRUYỀN VỆ TINH BẰNG MÔ PHỎNG 63
4.1 Giới thiệu bộ phần mềm mô phỏng NS 63
4.2 Sử dụng phần mềm mô phỏng NS để mô phỏng đường truyền vệ tinh 63 4.2.1 Các tham số cơ bản của tổ hợp vệ tinh 64
4.2.2 Cài đặt vệ tinh và các trạm mặt đất 65
4.2.3 Kết nối vệ tinh 66
4.2.4 Hỗ trợ theo dõi 68
4.3 Đánh giá hiệu suất TCP khi hoạt động trên đường truyền vệ tinh 70
4.3.1 Vệ tinh VINASAT-1 và các tham số đặc trưng 70
4.3.2 Cấu hình mạng mô phỏng 73
4.3.3 Các thí nghiệm mô phỏng và kết quả 74
Kết luận 82
Phương hướng nghiên cứu tiếp theo 83
Tài liệu tham khảo 84
Trang 4Bảng thuật ngữ viết tắt
ARPANET Advanced Research Projects Agency Network
ISO International Standard Organization
Trang 5MSS Maximum Segment Size
SACK TCP Selective ACKnowledgement TCP
Trang 6Danh mục các hình vẽ
Hình 1.1 Hệ thống vệ tinh hỗ trợ cho truyền thông di động toàn cầu 16
Hình 1.2 Các kiểu quỹ đạo vệ tinh 18
Hình 2.1 Mô hình tham chiếu OSI 7 tầng 27
Hình 2.2 Mô hình TCP/IP 30
Hình 2.3 Gói số liệu TCP với phần tiêu đề giả 33
Hình 2.4 Cấu trúc gói số liệu TCP 36
Hình 2.5 Phương thức bắt tay ba bước - thiết lập kết nối 37
Hình 2.6 Phương thức bắt tay ba bước - kết thúc kết nối 38
Hình 3.1 Thông lượng của TCP với FEC và không FEC 49
Hình 3.2 Lựa chọn cho phép SACK TCP 53
Hình 3.3 Khuôn dạng lựa chọn SACK TCP (length =n) 53
Hình 3.4 Bên gửi TCP HACK khi đóng gói dữ liệu 55
Hình 3.5 Bên nhận TCP HACK 57
Hình 3.6 Bên gửi TCP HACK khi nhận ACK 58
Hình 3.7 TCP trunk 59
Hình 3.8 Thực hiện TCP trunk 60
Hình 4.1: Cấu trúc của bộ mô phỏng NS-2 63
Hình 4.2: Các thành phần chính của mạng vệ tinh 67
Hình 4.3: Cấu trúc tập vết thông thường của NS 68
Hình 4.4: Vùng phủ sóng của băng tần C 72
Hình 4.5: Vùng phủ sóng của băng tần Ku 73
Hình 4.6: Cấu hình mô phỏng 74
Hình 4.7 Hệ số sử dụng đường truyền của các phiên bản TCP khác nhau, kích thước cửa sổ phát thay đổi từ 32KB tới 256 KB, đường truyền không lỗi 75
Trang 7Hình 4.8: Độ trễ trung bình của các phiên bản TCP khác nhau, kích thước cửa
sổ phát thay đổi từ 32KB tới 256 KB, đường truyền không lỗi 77 Hình 4.9 Hệ số sử dụng đường truyền của các phiên bản TCP khác, đường truyền có lỗi (mô hình lỗi Markov) 78 Hình 4.10 Độ trễ trung bình của các phiên bản TCP khác, đường truyền có lỗi (mô hình lỗi Markov) 79 Hình 4.11 Thăng giáng độ trễ trung bình của các phiên bản TCP khác, đường truyền có lỗi (mô hình lỗi Markov) 80 Hình 4.12 Hệ số sử dụng đường truyền trên đường truyền T1, tọa độ vệ tinh thay đổi từ 850E tới 1320E, đường truyền có lỗi 81
Trang 8Mở đầu
Sự phát triển của khoa học kỹ thuật đã tạo tiền đề cho sự phát triển của truyền thông vệ tinh, tới nay truyền thông vệ tinh đã được sử dụng rộng rãi và các hệ thống vệ tinh đã trở thành một phần cơ sở hạ tầng của mạng máy tính toàn cầu - Internet Trên thế giới đã có rất nhiều hệ thống vệ tinh được thiết kế
và thực hiện, phục vụ cho mục đích trao đổi thông tin khắp toàn cầu Thông tin
vệ tinh có rất nhiều các ưu điểm như ổn định, ít bị tác động của môi trường (địa hình, động đất, phá hoại, …), diện tích phủ sóng rộng do đó cho phép nhanh chóng liên lạc tới các vùng xa xôi hẻo lánh, nơi mà các hệ thống thông tin liên lạc khác không thể với tới được
Cùng với xu hướng phát triển khoa học công nghệ trên thế giới, Việt Nam dần từng bước chinh phục không gian, mà bước tiến quan trọng đầu tiên là
sở hữu vệ tinh địa tĩnh VINASAT-1 VINASAT-1 không những giúp Việt Nam chủ động hơn trong thông tin liên lạc, phục vụ thương mại, an ninh, quốc phòng
mà còn khẳng định chủ quyền của Việt Nam trong không gian
Với tốc độ tăng trưởng kinh tế nhanh chóng của Việt Nam, cơ sở hạ tầng nói chung trong đó có hạ tầng viễn thông phải đi trước một bước, đáp ứng được nhu cầu tăng trưởng kinh tế Đặc điểm địa lý của Việt Nam là có bờ biển dài, có nhiều núi non hiểm trở, có thềm lục địa rộng lớn, có rất nhiều đảo và quần đảo cách xa đất liền Do đó, để phát triển kinh tế và bảo vệ an ninh quốc phòng nhất thiết phải có hệ thống thông tin liên lạc mạnh và phủ sóng rộng khắp Hệ thống thông tin vệ tinh sẽ đáp ứng cho chúng ta các yêu cầu đó
Sau khi phóng và điều chỉnh vệ tinh vào quỹ đạo thích hợp, cần thiết lập đường truyền thông giữa vệ tinh với vệ tinh và giữa vệ tinh và các trạm mặt đất
Để truyền thông tin vệ tinh, có nhiều giao thức đã được sử dụng trong đó có giao thức TCP/IP, tuy nhiên do đặc điểm của truyền thông vệ tinh rất khác so với truyền thông mặt đất nên cần phải cải tiến TCP/IP cho phù hợp
Trang 9Nội dung đầu tiên của đề tài là nghiên cứu các kiến thức nền tảng của TCP từ đó đề ra các hướng nghiên cứu cải tiến Tiếp đó, đề tài sẽ tập trung vào nghiên cứu bằng mô phỏng mạng có đường truyền vệ tinh và đánh giá hiệu suất của TCP và các phiên bản cải tiến của TCP trên đường truyền vệ tinh
Đề tài tập trung đi sâu phân tích các thuật toán điều khiển tắc nghẽn được cài đặt trong các phiên bản của TCP, bao gồm thuật toán “khởi động chậm”,
“tránh tắc nghẽn”, “phát lại nhanh” và “khôi phục nhanh”
Đề tài phân tích kỹ các giải pháp có thể được sử dụng để nâng cao hiệu suất đường truyền vệ tinh bao gồm: sửa lỗi phía trước (FEC - Forward Error Correction), SACK và TCP SACK, TCP HACK (HeAder ChecKsum option)
và TCP Trunk Sau đó, thông qua công cụ mô phỏng NS để mô phỏng quá trình truyền thông vệ tinh nhằm chỉ ra phiên bản TCP phù hợp, kích thước cửa sổ phát tối ưu và vị trí tốt nhất của vệ tinh so với các trạm mặt đất
Với mục tiêu trên, chúng tôi bố trí luận văn thành 4 chương:
Chương 1: Giới thiệu
Nội dung của chương này là giới thiệu chung về truyền thông vệ tinh, phân tích các đặc điểm của đường truyền vệ tinh, các vấn đề phát sinh khi kết nối qua đường truyền vệ tinh
Chương 2: Cơ chế điều khiển lưu lượng trong giao thức TCP
Chương này sau khi giới thiệu về sự phát triển của Internet, mô hình kiến trúc TCP/IP sẽ đi sâu vào phân tích giao thức TCP, một số thuật toán điều khiển lưu lượng trong TCP và các phiên bản của giao thức TCP
Chương 3: Các giải pháp cải thiện hiệu suất TCP trong mạng có đường truyền vệ tinh
Trong chương này đề cập tới các giải pháp hay sử dụng để nâng cao hiệu suất đường truyền vệ tinh
Trang 10Chương 4: Đánh giá hiệu suất TCP trên đường truyền vệ tinh bằng mô phỏng
Trong chương này, phần đầu giới thiệu về công cụ mô phỏng thường được sử dụng trong nghiên cứu mô phỏng mạng, đó là NS (Network Simulator) Sau đó thiết lập cấu hình mô phỏng và thực hiện việc mô phỏng đường truyền
vệ tinh sử dụng các phiên bản TCP khác nhau
Cuối cùng là phần kết luận và phương hướng nghiên cứu tiếp theo của đề tài
Trang 11Chương 1 - GIỚI THIỆU
1.1 Lịch sử phát triển và ưu nhược điểm của truyền thông vệ tinh
1.1.1 Lịch sử phát triển của truyền thông vệ tinh
Người đầu tiên đã nghĩ ra vệ tinh nhân tạo dùng cho truyền thông là nhà viết truyện khoa học giả tưởng Arthur C Clarke vào năm 1945 Ông đã nghiên cứu về cách phóng các vệ tinh, quỹ đạo của chúng và nhiều khía cạnh khác cho việc thành lập một hệ thống vệ tinh nhân tạo bao phủ thế giới Ông cũng đề xuất việc sử dụng 3 vệ tinh địa tĩnh (geostationary) cho một hệ thống viễn thông, đủ để phủ sóng cho toàn bộ Trái Đất Vệ tinh nhân tạo đầu tiên là SPUTNIK 1 được Liên bang Xô viết phóng lên ngày 4 tháng 10 năm 1957 đã chứng minh cho ý tưởng của Arthur C Clarke Sự kiện này là một là động lực thúc đẩy lớn lao đối với truyền thông vệ tinh của cả thế giới Về mặt công nghệ, SPUTNIK không thể so sánh được với các vệ tinh hiện đại ngày nay Nó chỉ đơn thuần phát ra các tín hiệu radio “bíp bíp” một cách đều đặn Thế nhưng, đó quả thực là một bước tiến to lớn của con người trong việc chinh phục không gian Chỉ ba năm sau vào năm 1960, vệ tinh ECHO của Mĩ trở thành vệ tinh truyền thông thực thụ đầu tiên của nhân loại với khả năng tiếp nhận và phản hồi lại các tín hiệu radio Tiếp theo ECHO, vệ tinh địa tĩnh đầu tiên SYNCOM ra đời năm 1963 với ưu điểm lớn nhất là giữ được vị trí tương đối cố định so với mặt đất Khả năng tuyệt vời này đặt nền tảng cho việc phủ sóng các chương trình thời sự toàn nước Mĩ tại thời đó
Sau đó, hàng loạt các vệ tinh thương mại được đưa lên quỹ đạo như INTELSAT-1, vệ tinh nặng 68 kg này cung cấp 240 kênh điện thoại song công tương đương với một kênh truyền hình Vệ tinh INTELSAT-2 và INTELSAT-3 với số kênh thoại lên tới 1200 kênh Tới năm 1976 ra đời của MARISAT cung cấp dịch vụ truyền thông cho các phương tiện giao thông đường thủy, từ đó người ta thấy các ăng-ten parabol bắt đầu xuất hiện trên tầu thuyền, giúp các tầu
Trang 12thuyền có thể liên lạc thường xuyên với nhau và liên lạc với đất liền trong các hành trình khắp nơi trên thế giới Hệ thống điện thoại vệ tinh di động đầu tiên, INMARSAT-A, được giới thiệu vào năm 1982 Sáu năm sau là INMARSAT-C Đến năm 1993, các hệ thống điện thoại vệ tinh được số hóa toàn bộ
Năm 1998 đánh dấu thế hệ truyền thông vệ tính mới với sự ra đời của các
tổ hợp vệ tinh Iridium, đây là dự án đầy tham vọng của Motorola nhằm xây dựng một hệ thống vệ thông tin di động phủ sóng khắp toàn cầu Ban đầu dự án Iridium được thiết kế bao gồm 77 vệ tinh tạo thành một mạng lưới mà khi hoàn thành sẽ cho phép 2 điểm bất kỳ trên trái đất có thể liên lạc được với nhau Tên của hệ thống (Iridium) được đặt theo tên của nguyên tố thứ 77 trong bảng hệ thống tuần hoàn, 77 vệ tinh quay quanh trái đất như 77 electron quay quanh hạt nhân nguyên tố Iridium Khi triển khai thực tế, vì lý do kinh tế nên số vệ tinh được tính toán lại và chỉ còn là 66 vệ tinh, tuy nhiên tên của hệ thống vẫn được đặt như ban đầu Khi đưa vào vận hành, hệ thống vệ tinh Iridium đã được coi như một thành tựu sáng chói của khoa học kỹ thuật
Một hệ thống vệ tinh đáng chú ý khác là hệ thống Globalstar, với 48 vệ tinh cung cấp các kênh truyền thương mại cho thấy sự phát triển thật ấn tượng của truyền thông vệ tinh chỉ sau hơn 30 năm kể từ ngày ra đời
Hiện nay, vệ tinh được sử dụng trong các lĩnh vực sau:
Nghiên cứu khoa học: Do có diện tích quan sát rộng nên vệ tinh đã được sử
dụng rộng rãi trong nghiên cứu trái đất, môi trường cũng như dự báo thời tiết Sử dụng các công nghệ hiện đại, vệ tinh còn có khả năng nhìn sâu vào trong lòng đất phục vụ các nghiên cứu địa chất, thăm dò tài nguyên Ngoài
ra, với ưu điểm không bị cản trở bởi tầng khí quyển, các vệ tinh đã tỏ ra rất hiệu quả trong nghiên cứu thiên văn, vũ trụ
Trang 13 Định vị: Các hệ thống định vị và định vị toàn cầu sử dụng vệ tinh đã trở nên
phổ biến với mọi người và tham gia vào nhiều mặt của đời sống, kinh tế xã hội từ tránh tắc nghẽn giao thông, định vị trí trên đất liền, trên biển,
Quân sự: Là một trong những ứng dụng đầu tiên mà loài người nghĩ tới Vệ
tinh được sử dụng tham gia các nhiệm vụ trinh sát, chụp ảnh do thám, gây nhiễu, phá hủy hạ tầng truyền thông đối phương Bên cạnh đó, thông tin liên lạc trong quân sự sử dụng vệ tinh cũng tỏ ra an toàn hơn trước sự tấn công bằng các vũ khí thông thường của kẻ thù
Thông tin liên lạc: Vệ tinh có điểm ưu việt mà không một hệ thống ăng ten
hay truyền hình cáp nào có được là bán kính phủ sóng rộng lớn Chỉ có truyền thông vệ tinh mới phủ sóng được tới các vùng xa xôi như các hải đảo, các vùng cực, Đối với truyền thông di động, những ưu điểm của truyền thông vệ tinh được đặc biệt phát huy
Làm đường trục cho điện thoại toàn cầu: Ngay từ khi ra đời truyền thông
vệ tinh đã đóng vai trò quan trọng trong liên lạc toàn cầu, đường truyền vệ tinh có băng thông rộng, có thể truyền được rất nhiều các kênh truyền điện thoại
Kết nối tới những vùng xa xôi hẻo lánh: Nhiều khu vực trên thế giới khó
có thể kéo các đường truyền hữu tuyến do các nguyên nhân chủ quan (chính trị, quân sự) cũng như khách quan (các yếu tố địa lý), khi đó đường truyền
vệ tinh là lựa chọn lý tưởng
Thông tin di động toàn cầu: thường sử dụng vệ tinh quỹ đạo thấp vì độ trễ
nhỏ hơn so với vệ tinh địa tĩnh
Trang 14Hình 1.1 Hệ thống vệ tinh hỗ trợ cho truyền thông di động toàn cầu
1.1.2 Ưu nhược điểm của truyền thông vệ tinh
Ưu điểm nổi bật của truyền thông vệ tinh là có diện tính phủ sóng rộng lớn, có thể truyền theo phương thức điểm – đa điểm (point to multipoint) tới nhiều điểm thu khác nhau trên mặt đất Sử dụng vệ tinh có thể đưa các dịch vụ phát thanh, truyền hình, thông tin liên lạc tới các vùng sâu, vùng xa của các vùng lãnh thổ rộng lớn với chi phí thấp hơn nhiều so với việc xây dựng hàng loạt các trạm mặt đất chuyển tiếp tín hiệu
Tuy nhiên do khoảng cách từ vệ tinh tới trái đất lớn nên mặc dù tín hiệu được truyền đi với vận tốc ánh sáng nhưng tín hiệu truyền từ vệ tinh phải mất từ hàng chục tới trên một trăm mili giây mới tới được mặt đất Đặc điểm này tạo
ra độ trễ truyền thông lớn, ảnh hưởng đến các dịch vụ có tính tương tác và các dịch vụ thời gian thực Đây là yếu tố không thể khắc phục đối với việc sử dụng các vệ tinh có quỹ đạo lớn như vệ tinh địa tĩnh
MUL
Small cells (spot beams)
Footprint
Base station gateway
Trang 15Do vệ tinh hoạt động độc lập trong không gian, nguồn năng lượng cung cấp cho vệ tinh hoạt động chỉ có thể là năng lượng dự trữ (như pin nhiên liệu) hay năng lượng mặt trời Các thiết bị trên vệ tinh liên tục bị bức xạ vũ trụ lại không thể bảo trì, thay thế do đó tuổi thọ của vệ tinh tương đối thấp Hơn nữa chi phí cho việc nghiên cứu, chế tạo vệ tinh và chi phí phóng vệ tinh rất lớn, đó cũng là những nguyên nhân kìm hãm sự phát triển của truyền thông vệ tinh
Cuối cùng, do tín hiệu vệ tinh phải đi qua tầng khí quyển dày đặc của trái đất, nơi có rất nhiều hiện tượng thiên nhiên như mây, mưa và sương mù làm ảnh hưởng xấu tới chất lượng truyền Truyền thông vệ tinh có tỷ suất lỗi bit cao, dao động từ 10-4
đến 10-7 (so với 10-12 khi sử dụng cáp đồng chất lượng cao)
1.2 Một số khái niệm và kiến thức cơ bản về truyền thông vệ tinh
1.2.1 Các khái niệm cơ bản
Vệ tinh địa tĩnh – GEO (Geostationary Earth Orbit): Là vệ tinh được phóng
lên quỹ đạo tròn ở độ cao khoảng 36.000km so với đường xích đạo, vệ tinh loại này quay xung quanh trái đất một vòng mất 24 giờ Do chu kỳ quay của vệ tinh bằng chu kỳ quay của trái đất xung quanh trục của nó và theo hướng Đông cùng với hướng quay của trái đất, bởi vậy vệ tinh dường như đứng yên khi quan sát
từ mặt đất, nên được gọi là vệ tinh địa tĩnh Vệ tinh địa tĩnh có thể đảm bảo thông tin ổn định liên tục và có nhiều ưu điểm hơn vệ tinh quỹ đạo thấp khi sử dụng làm vệ tinh thông tin
Nếu ba vệ tinh địa tĩnh được đặt cách đều nhau trong mặt phẳng xích đạo thì có thể thiết lập các đường truyền thông tin liên kết các vùng trên trái đất bằng cách chuyển tiếp qua một hoặc hai vệ tinh Điều này cho phép xây dựng một mạng thông tin trên toàn thế giới
Trang 16Hình 1.2 Các kiểu quỹ đạo vệ tinh
Vệ tinh quỹ đạo trung bình – MEO (Medium Earth Orbit): Là vệ tinh có độ
cao từ 6000 đến 20000 km so với bề mặt trái đất, chu kỳ quay quanh quỹ đạo là
từ 5 đến 12 giờ, thời gian quan sát thấy vệ tinh tại một điểm trên trái đất từ 2 đến 4 giờ MEO thường được sử dụng trong thông tin di động hay thông tin radio Hệ thống MEO cần khoảng 12 vệ tinh để phủ sóng toàn cầu
Vệ tinh quỹ đạo thấp – LEO (Low Earth Orbit): Là các vệ tinh có độ cao
trong khoảng từ 500 đến 1500 km so với bề mặt trái đất, chu kỳ quay quanh quỹ đạo từ 95 đến 120 phút Thời gian quan sát thấy vệ tinh LEO khoảng dưới 10 phút Việc bố trí các vệ tinh LEO gần nhau có thuận lợi là thời gian để dữ liệu phát đi từ một vệ tinh đến các vệ tinh lân cận là rất ngắn, do đó tác dụng tiếp sức tương hỗ toàn cầu giữa các mạng và loại hình hội thoại vô tuyến truyền hình sẽ có hiệu quả và hấp dẫn hơn Nhưng hệ thống LEO đòi hỏi phải có khoảng 60 vệ tinh loại này mới bao trùm hết bề mặt địa cầu
1000 km 10.000 km
35.768 km
GEO (inmarsat) MEO (ICO) Inner and outer Van Allen belts
HEO
LEO
(Globalstar,
Indium)
Trang 17Vệ tinh quỹ đạo Elipse – HEO (Highly Elliptical Orbit): Là vệ tinh có quỹ
đạo hình Elipse, trong đó trái đất là một trong hai tâm
Cận điểm (Perigee): Là điểm nằm trên quỹ đạo của vệ tinh HEO gần bề mặt
trái đất nhất
Điểm cực viễn (Apogee): Là điểm nằm trên quỹ đạo của vệ tinh HEO xa bề
mặt trái đất nhất
Độ cao (Altitude): Là khoảng cách của vệ tinh so với bề mặt trái đất Các vệ
tinh có quỹ đạo tròn có độ cao không đổi còn vệ tinh quỹ đạo Elipse có độ cao thay đổi theo thời gian
Góc nâng tối thiểu (Elevation Mask): Là góc tối thiểu giữa vệ tinh với mặt
phẳng tiếp tuyến bề mặt trái đất tại trạm mặt đất mà trạm mặt đất có thể thu được tín hiệu vệ tinh
Mặt phẳng quỹ đạo (Plane of Satellite Orbit): Là mặt phẳng chứa quỹ đạo
của vệ tinh
Góc nghiêng quỹ đạo (Inclination): Là góc giữa mặt phẳng quỹ đạo vệ tinh
với mặt phẳng xích đạo của trái đất
Kênh liên vệ tinh – ISL (Inter Satellite Link): Là kênh liên lạc giữa các vệ
tinh trong không gian Thường các kênh ISL có băng thông lớn hơn rất nhiều so với các kênh liên lạc mặt đất
Kênh liên lạc mặt đất – GSL (Ground to Satellite Link): Là kênh liên lạc kết
nối giữa vệ tinh với trạm mặt đất
Trạm mắt đất (Terminal): Là các thiết bị trên mặt đất kết nối với vệ tinh Vết chân (Foot print): Là vùng phủ sóng của vệ tinh trên bề mặt trái đất
Chuyển giao nội mặt phẳng (Intraplane Handoff): Là quá trình trạm mặt đất
chuyển từ sử dụng một vệ tinh này sang sử dụng vệ tinh khác tiếp theo trong cùng mặt phẳng quỹ đạo do vệ tinh trước đang rời xa dẫn đến tín hiệu vệ tinh yếu dần đi
Trang 18Chuyển giao khác mặt phẳng: Là quá trình một vệ tinh chuyển kết nối sang
vệ tinh khác quỹ đạo
Tần số làm việc: Là tần số sóng radio vệ tinh thu hay phát để thực hiện trao đổi
thông tin Tần số làm việc của vệ tinh được phân loại theo bảng dưới đây:
Băng tần Kênh Uplink (GHz) Kênh Downlink (GHz)
vệ tinh tiêu biểu đã được triển khai thực tế [11]
Một hệ thống vệ tinh đã được đưa vào hoạt động là hệ thống Iridium, với thiết kế ban đầu là 77 vệ tinh, hiện đang hoạt động với 66 vệ tinh Đây là hệ thống vệ tinh LEO thương mại đầu tiên bao phủ toàn cầu Các vệ tinh có quỹ đạo ở độ cao 780 km so với mực nước biển, trọng lượng của một vệ tinh là khoảng 700 kg
Một đối thủ trực tiếp của Irdium là Globalstar Hệ thống này dùng ít vệ tinh hơn (48 vệ tinh) và mỗi vệ tinh lại có ít chức năng hơn Điều này làm cho các vệ tinh nhẹ hơn nhiều (khoảng 450 kg) và chi phí tổng thể toàn hệ thống
rẻ hơn Globalstar không cung cấp các ISL và không bao phủ toàn cầu, nhưng lại cho người dùng băng thông lớn hơn
Trang 19 ICO (Intermediate Circular Orbit) là một hệ thống MEO như tên gọi của nó ICO cần ít vệ tinh, 10 vệ tinh cộng thêm 2 vệ tinh dự phòng, để có thể bao phủ khắp toàn cầu Mỗi vệ tinh bao phủ gần 30% diện tích bề mặt trái đất, nhưng nhờ tăng số vệ tinh lên 10 mà hệ thống có thể hoạt động với góc nâng trung bình là 400 Do các vệ tinh có cấu tạo phức tạp hơn nên chúng nặng tới khoảng 2600 kg
Một dự án LEO rất tham vọng là Teledesic dự định cung cấp các kết nối vệ tinh toàn cầu băng thông cao với chất lượng dịch vụ tốt Trái ngược với các
hệ thống khác, mạng vệ tinh này cơ bản không thiết kế nhằm cho truy cập dùng điện thoại di động mà cho phép truy cập Internet toàn cầu qua vệ tinh
Kế hoạch ban đầu năm 1990 là 840 vệ tinh và 24 dự phòng, tới năm 1997 chuyển thành 288 vệ tinh, chia thành 12 lớp với 24 vệ tinh/lớp
1.3 Kết nối mạng qua đường truyền vệ tinh
1.3.1 Đặc điểm của đường truyền vệ tinh và các vấn đề phải giải quyết
Các tính chất của đường truyền ảnh hưởng đến hiệu suất của các giao thức giao vận bao gồm độ trễ, băng thông, tỉ lệ mất gói tin do lỗi đường truyền Khi sử dụng đường truyền vệ tinh cho mạng Internet, các nhân tố trên
có sự thay đổi rõ rệt so với mạng có dây dẫn trên mặt đất
Độ trễ lớn: Độ trễ bao gồm ba thành phần là trễ truyền (tỉ lệ thuận với chiều
dài của đường truyền), trễ xử lý và trễ hàng đợi Trong trường hợp của vệ tinh băng rộng, trễ lớn nhất là trễ truyền (propagation delay) Đối với các kết nối qua vệ tinh địa tĩnh, do khoảng cách lớn nên trễ đường truyền một chiều thường lên tới 130ms Độ trễ của đường truyền vệ tinh có thể tăng lên nếu
sử dụng FEC, vì khi sử dụng FEC trễ xử lý sẽ tăng Tuy nhiên sự thăng giáng của độ trễ này đối với các vệ tinh địa tĩnh thường được loại trừ bằng cách sử dụng bộ đệm Doppler Nhờ đó, đối với các kết nối sử dụng đường truyền vệ tinh, độ trễ giữa hai điểm gửi, nhận thường khoảng 250ms (một
Trang 20chiều) và có thể coi là không đổi Đối với các vệ tinh quỹ đạo thấp, chúng có quỹ đạo thấp hơn rất nhiều so với vệ tinh địa tĩnh do đó trễ truyền cũng thấp hơn đáng kể, quỹ đạo của vệ tinh giảm 1000km thì trễ truyền sẽ giảm khoảng 6,7ms (bằng thời gian giảm bớt khi sóng điện từ truyền ngắn hơn 1000km đi lên và 1000km đi xuống) Kết nối càng đi qua nhiều chặng vệ tinh - trạm mặt đất thì độ trễ càng lớn
Bất đối xứng: Khi xây dựng các hệ thống truyền thông vệ tinh, người ta
phải tính toán kỹ về kết cấu, năng lượng sử dụng cho vệ tinh để có thể đạt được hiệu suất cao trong không gian Khác với các trạm mặt đất có thể có công suất thu phát lớn với nguồn năng lượng dồi dào, các vệ tinh chỉ có các nguồn năng lượng hạn chế Do đó trong các hệ thống truyền thông vệ tinh có thể có sự bất đối xứng giữa đường lên (uplink) và đường xuống (downlink)
về dải thông, độ trễ Ở các hệ thống thuần GEO hay LEO thì sự bất đối xứng có thể là vì các lí do kinh tế
Tỷ suất lỗi cao: Các hệ thống vệ tinh phát triển từ những vệ tinh truyền
thông thế hệ trước có tỷ suất lỗi cao gây ra bởi các chuẩn truyền thông: trung bình là 10-7 và 10-4 trong trường hợp xấu nhất Nguyên nhân là do các chuẩn trên được tối ưu hóa cho việc truyền tín hiệu âm thanh và hình ảnh analog Với các kỹ thuật điều biến và mã hóa mới cùng với vệ tinh có công suất phát cao hơn, tỷ suất lỗi thông thường sẽ đạt được rất thấp (đạt tới 10-10) khi sử dụng vệ tinh địa tĩnh Đối với các hệ thống vệ tinh quỹ đạo thấp, tỷ suất lỗi
có thể biến động nhưng với các công nghệ hiện đại các hệ thống này sẽ được phát triển để đạt tới chất lượng truyền cũng như độ ổn định không thua kém đường truyền cáp quang Các nguyên nhân gây lỗi là do nhiễu và suy giảm tín hiệu truyền Do tín hiệu vệ tinh là sóng điện từ truyền trong không gian nên thường bị hấp thụ và suy yếu khi đi qua sương mù, mây, và đặc biệt là mưa
Trang 21 Tắc nghẽn: Do sử dụng các tần số rất cao, băng thông sóng vô tuyến rất
rộng giữa các kênh liên vệ tinh nên hiện tượng tắc nghẽn hầu như chỉ xảy ra
ở chặng giữa vệ tinh và trái đất Các kết nối này bị giới hạn bởi kênh uplink
và kênh downlink, do đó trên lý thuyết các hệ thống vệ tinh thường không bị tắc nghẽn Tuy nhiên, cổng nối giữa mạng vệ tinh với INTERNET thì lại dễ dàng bị tắc nghẽn
1.3.2 Các giải pháp khắc phục
Khi kết nối mạng với đường truyền vệ tinh sẽ phải giải quyết một loạt các bất lợi như thời gian trễ khứ hồi lớn, tỷ lệ lỗi đường truyền cao… Cần thực hiện các giải pháp để hạn chế bất lợi, tăng hiệu suất sử dụng đường truyền
i Hạn chế sự gia tăng của thời gian trễ khứ hồi (RTT)
Như đã trình bày ở trên, khoảng cách từ các trạm thu phát tín hiệu trên mặt đất tới vệ tinh tuỳ thuộc vào quỹ đạo vệ tinh và đều rất lớn Mặc dù liên kết vệ tinh sử dụng tín hiệu sóng điện từ để truyền tín hiệu với tốc độ lan truyền của ánh sáng, tuy nhiên vì khoảng cách quá lớn nên tín hiệu phải mất thời gian dài mới tới được đích Liên kết vệ tinh địa tĩnh có thời gian trễ khứ hồi trung bình vào khoảng 500ms Nói chung không có phương pháp nào làm giảm thời gian trễ truyền; tuy nhiên có thể hạn chế
sự gia tăng của thời gian khứ hồi bằng cách cố gắng làm giảm thời gian trễ xử lý và thời gian trễ hàng đợi Khi sử dụng TCP cho đường truyền vệ tinh, TCP sử dụng phương pháp khởi động chậm (slow start) để thăm dò mạng lúc bắt đầu khởi động kết nối Thời gian TCP nằm trong giai đoạn khởi động chậm tỷ lệ trực tiếp với RTT Hơn nữa, khi gói tin bị mất thì TCP sẽ thực hiện thuật toán điều khiển tắc nghẽn sẽ càng gia tăng RTT, dẫn tới làm giảm thông lượng của kết nối TCP Do đó phải lựa chọn phiên bản TCP có thuật toán điều khiển tắc nghẽn phù hợp Khi TCP phát
Trang 22không cần chờ timeout mới phát lại các gói tin bị mất, nên hạn chế sự gia tăng của trễ hàng đợi và trễ xử lý, nhờ đó hạn chế sự gia tăng của RTT
ii Sử dụng tối ưu dải thông
Tích dải thông với độ trễ (Bandwidth-Delay Product) chính là khối dữ liệu tối đa có thể truyền lên đường truyền tại một thời điểm Vì đường truyền vệ tinh có RTT lớn nên độ trễ đường truyền có khuynh hướng rất lớn Trong giao thức có sử dụng cửa sổ như TCP, giá trị của tích dải thông với độ trễ là giới hạn cho phép của kích thước cửa sổ gửi Để sử dụng đường truyền với hiệu suất 100%, kích thước cửa sổ gửi cần thiết lập bằng tích này [19]
Trong TCP, kích thước cửa sổ gửi có thể được lựa chọn trong một khoảng nhất định, giá trị nhỏ nhất là 40 bytes, giá trị lớn nhất của cửa sổ cho phép tới 64KB Với đường truyền vệ tinh GEO, thông lượng (throughput) tối đa có thể đạt tới:
Kbps ms
KB time
trip round
window advertised
t
500
64 )
Thực tế, kết nối TCP sử dụng cho đường truyền vệ tinh có băng thông lên tới 2Mbps, giá trị vừa nêu trên chỉ có 1Mbps Như vậy, để nâng cao hiệu suất thông lượng của TCP trên đường truyền vệ tinh, phải chọn kích cỡ cửa sổ gửi lớn hơn giá trị quy định 64 KB, thường áp dụng cho mạng mặt đất có RTT nhỏ
iii Hạn chế ảnh hưởng của lỗi đường truyền
Tín hiệu trên đường truyền vệ tinh phải đi qua một khoảng cách rất lớn, trong môi trường thường xuyên phát sinh nhiễu điện từ Do đó, lỗi tín hiệu trên đường truyền vệ tinh là hiện tượng bất khả kháng
Để hạn chế ảnh hưởng của lỗi đường truyền, bên nhận dữ liệu phải có khả năng kiểm tra dữ liệu nhận được có bị lỗi hay không Nếu dữ liệu có
Trang 23lỗi thì bên nhận tự thực hiện sửa lỗi (FEC) hoặc yêu cầu bên gửi nhanh chóng phát lại gói dữ liệu bị lỗi
Để thực hiện sửa lỗi ở bên nhận dữ liệu (FEC) đòi hỏi bên gửi phải đóng gói thêm các thông tin giúp bên nhận không những phát hiện được lỗi mà còn biết chính xác lỗi nằm ở vị trí nào trong dãy dữ liệu, nhờ đó tự thực hiện sửa lỗi
Trong trường hợp yêu cầu phát lại dữ liệu bị lỗi, bên nhận phải thông báo chính xác cho bên gửi biết các gói dữ liệu đã nhận được, các gói nào bị mất hoặc bị lỗi cần phát lại Dựa trên các thông báo đó, bên gửi sẽ nhanh chóng phát lại chính xác các gói dữ liệu bị mất hoặc bị lỗi, không phải phát lại toàn bộ các gói dữ liệu đã phát Đó chính là hoạt động của phiên bản SACK TCP, giúp tăng hiệu suất sử dụng đường truyền, hạn chế được ảnh hưởng của lỗi đường truyền, rất thích hợp với các đường truyền có tỷ
lệ lỗi lớn như đường truyền vệ tinh
Trang 24Chương 2 - CƠ CHẾ ĐIỀU KHIỂN LƯU LƯỢNG TRONG
GIAO THỨC TCP
2.1 Sự phát triển của mạng Internet
Với mục đích xây dựng một hệ thống mạng để kết nối các trung tâm nghiên cứu, năm 1969 Bộ Quốc phòng Mỹ đã ký hợp đồng triển khai mạng ARPANET (Advanced Research Projects Agency Network) tiền thân của Internet ngày nay ARPANET là mạng sử dụng kỹ thuật chuyển mạnh gói, ngay sau khi ra đời đã nhanh chóng phát triển, kết nối mạng của các trường đại học, các trung tâm nghiên cứu và hãng công nghiệp trên toàn nước Mỹ Mạng ARPANET cung cấp các dịch vụ truyền thông, tổ chức lưu trữ và cho phép truy nhập các tài nguyên hệ thống từ xa, đã giúp ích rất nhiều cho cộng đồng khoa học
Quá trình nghiên cứu và phát triển ARPANET đã giải quyết được rất nhiều vấn đề cơ bản của mạng máy tính như: kiểm soát lỗi, địa chỉ hóa, điều khiển lưu lượng, đảm bảo truyền thông tin cậy, an toàn thông tin trên mạng,…
Yếu tố thương mại hóa đã thúc đẩy sự phát triển nhanh chóng của ARPANET, nó đã trở thành hệ thống mạng toàn cầu Internet với hàng trăm triệu máy tính như ngày nay Các máy tính trong Internet sử dụng mô hình tham chiếu TCP/IP, đó là một tập bao gồm rất nhiều giao thức, trong đó có hai giao thức quan trọng nhất là TCP và IP
2.2 Kiến trúc mạng Internet
Các mạng máy tính hiện đại được thiết kế bằng cách phân chia cấu trúc ở mức độ cao nhằm làm giảm độ phức tạp của việc thiết kế; mạng được chia thành các tầng (layer), mỗi tầng được xây dựng dựa trên tầng bên dưới nó Trong các mạng khác nhau, số tầng, tên các tầng, nội dung của các tầng và chức năng của các tầng có thể khác nhau; tuy nhiên, mục đích của mỗi tầng là sử dụng các dịch vụ do các tầng bên dưới cung cấp, để cung cấp những dịch vụ
Trang 25nhất định cho các tầng cao hơn, sao cho các tầng này khi sử dụng các dịch vụ của nó, không cần phải quan tâm tới các thao tác chi tiết mà các dịch vụ phải thực hiện
Để các mạng máy tính khác nhau có thể truyền thông với nhau, chúng cần phải tuân theo các chuẩn Người ta đã xây dựng nên các chuẩn như vậy, chúng còn được gọi là mô hình tham chiếu, làm cơ sở chung cho các nhà thiết
kế dựa vào khi thiết kế mạng Hai mô hình tham chiếu quan trọng là OSI và TCP/IP sẽ được trình bày ở các phần dưới đây
2.2.1 Mô hình tham chiếu ISO OSI
Mô hình tham chiếu cho việc kết nối các hệ thống mở OSI (Reference Model for Open Systems Interconnection) do Tổ chức Tiêu chuẩn Quốc tế ISO (International Standard Organization) đề nghị năm 1983, thường được gọi ngắn gọn là mô hình OSI Đây là bước tiến đầu tiên tới sự chuẩn hóa quốc tế các giao thức khác nhau về truyền thông, giải quyết việc kết nối các hệ thống mở, là các
hệ thống tuân theo các chuẩn được chỉ rõ, do đó các hệ thống này có khả năng truyền thông với các hệ thống khác tuân theo các chuẩn giống nó Mô hình OSI gồm bảy tầng, có cấu trúc như sau:
7 Application Giao thức tầng 7 Ứng dụng 7
6 Presentation Giao thức tầng 6 Trình diễn 6
4 Transport Giao thức tầng 4 Giao vận 4
Trang 26Tầng Vật lý (Physical Layer) Tầng vật lý giải quyết các vấn đề ghép nối
cơ khí, điện và giao thức để có thể khởi tạo, duy trì và kết thúc các liên kết vật
lý giữa các thiết bị truyền thông Tầng này liên quan đến việc truyền dòng bit không có cấu trúc giữa các thực thể truyền thông bằng kênh truyền vật lý
Tầng Liên kết dữ liệu (Data Link Layer) Có nhiệm vụ thiết lập, duy trì,
huỷ bỏ các liên kết dữ liệu, kiểm soát lỗi truyền, điều khiển lưu lượng, điều khiển truy cập môi trường truyền thông
Tầng Mạng (Network Layer) Giải quyết nhiều vấn đề phức tạp như:
chọn đường và chuyển tiếp thông tin với công nghệ mạng thích hợp, giao tiếp giữa các mạng và điều khiển tắc nghẽn (congestion control); trong đó chọn đường là vấn đề quan trọng nhất
Tầng Giao vận (Transport Layer) Tầng này thực hiện việc truyền tin,
điều khiển lưu lượng và điều khiển tắc nghẽn đầu cuối - đầu cuối (end-to-end), thực hiện ghép kênh và phân kênh
Tầng Phiên (Session Layer) Tầng phiên tổ chức và đồng bộ việc trao
đổi dữ liệu giữa các tiến trình ứng dụng; cho phép thiết lập, duy trì, đồng bộ, huỷ bỏ các phiên truyền thông giữa các ứng dụng
Tầng Trình diễn (Presentation Layer) Tầng này giải quyết các vấn đề
liên quan đến cú pháp và ngữ nghĩa của thông tin được truyền, chuyển đổi cú pháp dữ liệu để đáp ứng yêu cấu truyền dữ liệu trong môi trường Tầng này cũng thực hiện các dịch vụ như nén hoặc mã hoá dữ liệu
Tầng Ứng dụng (Application Layer) Tầng này có nhiệm vụ cung cấp
các phương tiện để người sử dụng truy nhập vào môi trương OSI; cung cấp các dịch vụ hỗ trợ cho các ứng dụng không thuộc mô hình OSI, thí dụ: thư điện tử (email), truyền tệp (ftp), www
Truyền dữ liệu trong mô hình OSI: Khi một ứng dụng trên một máy
tính cần gửi dữ liệu cho ứng dụng trong một máy tính khác trên mạng, nó sẽ
Trang 27trao dữ liệu cho tầng ứng dụng, tầng ứng dụng có thể gắn thêm một khối dữ liệu
có cấu trúc xác định, gọi là header, vào đầu gói số liệu của nó rồi gửi xuống tầng trình diễn Tầng trình diễn có thể chuyển đổi gói số liệu này theo các cách khác nhau và có thể bổ sung header của nó rồi gửi kết quả xuống tầng phiên bên dưới Đối với tầng này, nó không phân biệt header của tầng trên với dữ liệu trong gói số liệu mà nó nhận được Quá trình này cứ tiếp tục cho tới khi dữ liệu truyền xuống tầng vật lý, tại đó dữ liệu mới thực sự được truyền tới máy nhận Tại máy nhận, các header được lần lượt loại bỏ khi gói số liệu đi qua các tầng
từ dưới lên trên, cho tới khi nó đi đến ứng dụng nhận Tầng nào phát hiện ra lỗi thì yêu cầu phát lại ngay tại tầng đó
Đơn vị dữ liệu theo mô hình tham chiếu OSI Tại mỗi tầng của mô hình
OSI, các thực thể ngang hàng có thể trao đổi với nhau các đơn vị dữ liệu Mỗi đơn vị dữ liệu bao gồm một trường dữ liệu và một phần gọi là header, có vai trò như chiếc “phong bì” để chứa trường dữ liệu Header là phần đầu của mỗi đơn
vị dữ liệu, chứa các địa chỉ cần thiết để có thể gửi đơn vị này tới đích, ngoài ra,
nó còn chứa các thông tin điều khiển Tại mỗi tầng của mô hình, đơn vị dữ liệu này thường có một tên gọi riêng, chẳng hạn, tại tầng Liên kết dữ liệu, là khung tin (frame), tại tầng mạng, là gói số liệu (packet), tại tầng giao vận, là phân đoạn (segment) Tuy nhiên, trong rất nhiều tài liệu, người ta hay dùng một thuật ngữ chung là gói số liệu; chúng ta cũng sẽ sử dụng thuật ngữ gói số liệu theo nghĩa như vậy
Trang 28Tầng giao vận
Tại tầng này, người ta định nghĩa hai giao thức kiểu đầu cuối - đầu cuối
là TCP (Transmission Control Protocol) và UDP (User Datagram Protocol) TCP là giao thức hướng kết nối, bảo đảm, nó vận chuyển dòng byte sinh ra từ máy (nguồn) tới một máy tùy ý khác (đích) trong liên mạng mà không có lỗi TCP phân mảnh dòng byte từ các tầng trên đi xuống thành các gói số liệu riêng biệt rồi chuyển từng gói số liệu này xuống cho tầng Internet Tại máy đích, tiến trình TCP nhận và thực hiện lắp ráp các gói số liệu nhận được lại thành dòng
Ethernet Token Bus Token Ring FDDI
ARP Internet Protocol (IP)
ICMP
Transmision Control Protocol (TCP)
User Datagram Protocol (UDP)
RIP
IEEE802.3 IEEE802.4 IEEE802.5 ANSI X3T95
Trang 29byte rồi chuyển lên tầng trên TCP có các chức năng điều khiển lưu lượng và
điều khiển tắc nghẽn UDP là giao thức không hướng kết nối, không bảo đảm
(không có sự biên nhận cho gói số liệu UDP), dành cho các ứng dụng không muốn sử dụng các chức năng điều khiển lưu lượng và phân phát các gói số liệu đúng thứ tự của TCP mà muốn tự cung cấp các chức năng này UDP được sử dụng rộng rãi trong các ứng dụng kiểu dùng một lần, khách/chủ và các ứng dụng trong đó việc phân phát tin nhanh chóng quan trọng hơn việc phân phối tin chính xác
Tầng Internet
Tầng Internet có chức năng tương tự tầng mạng trong mô hình OSI Nhiệm vụ của tầng Internet là định tuyến gói số liệu, điều khiển lưu lượng và điều khiển tắc nghẽn Mỗi gói số liệu có thể theo các con đường khác nhau để tới đích; tại đích, thứ tự nhận các gói số liệu có thể khác với thứ tự lúc chúng được phát đi từ nguồn, do đó tầng Giao vận bên trên tầng Internet phải giải quyết vấn đề thứ tự các gói số liệu Tầng Internet định nghĩa một khuôn dạng gói số liệu và giao thức chính là giao thức IP
Tầng Host-to-Network
Bên dưới tầng Internet là một khoảng trống lớn, mô hình tham chiếu
TCP/IP thực tế hầu như không nói gì về tầng này, ngoài việc chỉ ra rằng máy
tính (host) phải nối với mạng bằng cách sử dụng một số giao thức để có thể gửi
các gói số liệu IP đi trên mạng Tầng này không được định nghĩa và nó khác nhau trên các máy tính khác nhau cũng như trên các mạng khác nhau
2.3 Tổng quan về giao thức TCP
TCP là giao thức đảm bảo truyền thông tin cậy hướng kết nối - một kết nối
ảo được thiết lập trước khi các thực thể trên 2 máy tính trong mạng bắt đầu truyền tin Giao thức TCP phức tạp chủ yếu bởi:
TCP phải quản lý đúng số tuần tự tính theo byte của dòng số liệu
Trang 30 TCP phải tối ưu hóa hiệu suất truyền bằng cách giám sát và điều khiển lưu lượng gửi tin từ thực thể gửi tới thực thể nhận, đảm bảo tự thích ứng với trạng thái của đường truyền được chia sẻ với các kết nối khác
TCP phải đảm bảo trao đổi số liệu tin cậy và chính xác giữa thực thể cuối của mạng chính nhờ các yếu tố sau đây:
o Đối thoại khi thu phát: Mỗi khi gửi một gói số liệu, bên nhận phải thông báo nhận đúng sau một khoảng thời gian nhất định Nếu không, gói số liệu được coi là nhận sai và được phát lại
o Kiểm tra số liệu thu phát: Số liệu gửi được kiểm tra bằng thuật toán quy định Byte kiểm tra (Checksum) được gửi cùng với số liệu phát và được so sánh với byte kiểm tra tính lại khi thu Trong trường hợp sai lệch, có nghĩa là có lỗi xảy ra trên đường truyền, thực thể thu thông báo kết quả thu cho thực thể phát và yêu cầu gửi lại
o Kiểm tra số tuần tự: Vì các gói TCP được truyền thành các gói IP
và các gói IP có thể đến đích không theo thứ tự phát (IP là giao thức không hướng kết nối) nên thực thể TCP nhận phải lập lại trật
tự các gói số liệu thu được, hủy bỏ các gói số liệu trùng lặp khi cần
và chuyển các gói số liệu đó theo đúng trật tự phát cho các ứng dụng
o Điều khiển lưu lượng: Mỗi thực thể của kết nối TCP đều có một vùng đệm hạn chế Thực thể TCP nhận chỉ cho phép thực thể phát gửi một lượng số liệu đủ với vùng đệm thu của mình Điều này sẽ ngăn cản thực thể TCP phát lại nhanh, làm tràn vùng đệm của thực thể TCP thu nhận
Các thực thể ứng dụng sử dụng dịch vụ truyền dẫn tin cậy của TCP mô tả ở trên để trao đổi số liệu Chú ý rằng, thực thể ứng dụng và thực thể TCP có bộ
Trang 31đệm riêng của mình để lưu giữ tạm thời số liệu trong quá trình xử lý Cách thức chuyển tiếp số liệu giữa hai bộ đệm trên là yếu tố quyết định hiệu suất chuyển tiếp số liệu của hệ thống TCP Số liệu có thể truyền toàn bộ hoặc một phần từ
bộ đệm ứng dụng tới bộ đệm TCP, trước khi quá trình phát được khởi động; số liệu thu từ kết nối TCP có thể chuyển tiếp tức thời từ bộ đệm thu TCP tới bộ đệm ứng dụng hoặc chỉ khi tỷ lệ phần bộ đệm bị chiếm dụng so với tổng dung lượng bộ đệm đạt tới một giá trị nào đó Các giao thức vận chuyển quy định về cách thức trao đổi số liệu giữa các thực thể cùng mức chức năng, chứ không quy định việc thực hiện cụ thể như thế nào
2.3.1 Cấu trúc gói tin TCP
Hình 2.3 Gói số liệu TCP với phần tiêu đề giả Cấu trúc gói số liệu TCP gồm phần tiêu đề TCP “giả” (Pseudo header TCP) mô tả trong hình 2.3 và gói số liệu TCP “thực” (TCP Segment) được mô
tả trong hình 2.4 Phần tiêu đề giả cần thiết cho việc xây dựng gói số liệu IP, bao gồm các thông tin về địa chỉ IP nguồn, địa chỉ IP đích, số liệu thuộc giao thức TCP (trường protocol có giá trị 0x06) và độ dài của gói TCP thực:
IP Source
Pseudo header
IP Destination Protocol Length
Header
TCP
Segment
Data
Trang 32Ý nghĩa của các trường của gói số liệu TCP thực:
Soure Port: Số hiệu cổng TCP bên phát
Destination Port: Số hiệu cổng TCP bên đích; các số hiệu cổng cùng với
địa chỉ IP nguồn và địa chỉ IP đích trong gói số liệu IP định danh duy nhất hai tiến trình ở hai đầu kết nối TCP
Sequence number: Số tuần tự phát, định danh byte đầu tiên của phần số
liệu thuộc gói số liệu TCP trong luồng số liệu từ thực thể TCP gửi đến thực thể TCP nhận Số tuần tự phát là khoảng cách tương đối của byte đầu tiên phần số liệu với byte đầu tiên của dòng byte; đó là số không dấu
32 bit, có giá trị nằm trong khoảng từ 0 đến 232
-1
o Nếu ta coi dòng byte là luồng số liệu một chiều từ một ứng dụng này tới ứng dụng kia thì TCP đánh số tất cả các byte với các giá trị
gọi là số tuần tự (sequence number)
o Khi một kết nối được thiết lập trường số tuần tự chứa giá trị khởi tạo ISN (Initial Sequence Number) được thực thể TCP chọn cho kết nối này Byte số liệu đầu tiên sẽ có số tuần tự bằng ISN +1
Acknowlegement: Vị trí tương đối của byte cuối cùng đã nhận đúng bởi
thực thể nhận cộng thêm 1 Giá trị của trường này còn được gọi là số tuần
tự thu Giá trị của trường này đúng khi bit cờ ACK =1
Data Offset: Khoảng cách tương đối của trường số liệu với phần tiêu đề
của TCP (TCP header) tính theo từ 32 bit Thông thường trường này có giá trị bằng 5 vì độ dài thông thường của phần tiêu đề TCP là 20 bytes
Reserved: Luôn được đặt là 0, để dùng cho tương lai
FLAGs: Có 6 bit cờ trong phần tiêu đề TCP Một hay nhiều cờ có thể
được thiết lập tại cùng một thời điểm
o URK = 1: Thông báo giá trị trường Urgent Pointer đúng
o ACK = 1: Thông báo giá trị trường Acknowledgment đúng
Trang 33o PSH = 1: Thực thể nhận phải chuyển số liệu này cho ứng dụng tức thời
o RST = 1: Tái khởi tạo kết nối, dùng để kết thúc kết nối
o SYN = 1: Đồng bộ trường số thứ tự, dùng để thiết lập kết nối TCP
o FIN = 1: Thông báo thực thể gửi đã kết thúc gửi số liệu
Windows size: Độ lớn cửa sổ bên thu, quy định tổng số byte số liệu mà
thực thể thu có thể nhận được (đồng nghĩa với độ lớn bộ đệm thu) tính khởi đầu từ giá trị trường số tuần tự thu (Acknowlegment Number)
Checksum: Kiểm tra tổng, là giá trị bù 1 của tổng các nhóm 16-bit trong
phần đầu và phần số liệu TCP Giá trị này tính cả 12 byte tiêu đề giả của TCP
Urgent Pointer: Vị trí tương đối của byte trong trường số liệu TCP cần
được xử lý đầu tiên Giá trị trường này đúng khi bit cờ URG = 1
Options: Tuỳ chọn thường được dùng hiện nay là quy định về độ dài lớn
nhất MSS (Maximum Segment Size) của một gói số liệu TCP; có thể khai báo tuỳ chọn SACK tại trường này
Pad: Độn thêm vào phần tiêu đề, để độ lớn của nó là bội của 4 byte
Data: Số liệu của ứng dụng TCP
Trang 34Hình 2.4 Cấu trúc gói số liệu TCP
2.3.2 Cơ chế hoạt động của TCP
2.3.2.1 Thiết lập kết nối
Kết nối TCP được thiết lập trên cơ sở phương thức bắt tay ba bước Tiến trình bắt đầu khi trạm làm việc (Agent A) yêu cầu thiết lập một kết nối TCP bằng cách gửi một gói TCP với có cờ SYN = 1, gọi tắt là gói điều khiển SYN,
và giá trị khởi tạo số tuần tự ISN của mình Giá trị ISN là số 32 bit và được tăng mỗi khi có một kết nối mới được yêu cầu tạo ra (giá trị này quay về 0 khi nó đạt tới giá trị 232) Trong gói điều khiển SYN này còn chứa số hiệu cổng TCP của phần mềm dịch vụ mà tiến trình trạm làm việc muốn kết nối (bước 1)
Mỗi thực thể kết nối TCP đều có một giá trị ISN mới, số này được tăng theo thời gian Vì một kết nối TCP mới có thể dùng lại số hiệu cổng và địa chỉ
IP đã được sử dụng trước đó, do đó việc thay đổi giá trị ISN giúp các kết nối có cùng một địa chỉ kết nối tránh được việc dùng lại các số liệu đã ôi (stale) vẫn còn đang được truyền trong mạng Internet nhưng thuộc một kết nối cũ
Trang 35Hình 2.5 Phương thức bắt tay ba bước - thiết lập kết nối
Sau khi nhận được gói điều khiển SYN và ở trạng thái sẵn sàng chấp nhận kết nối, thực thể TCP nhận của phần mềm dịch vụ (Agent B) gửi lại gói SYN với giá trị ISN của mình, và đặt bit cờ ACK=1 để thông báo rằng thực thể nhận đã nhận được giá trị ISN của thực thể gửi (bước 2)
Cuối cùng, Agent A trả lời Agent B khi nhận được tín hiệu SYN của Agent B bằng một ACK cuối cùng, khẳng định đã nhận được giá trị ISN của Agent B Bằng cách này, các thực thể TCP trao đổi một cách tin cậy các giá trị ISN của nhau và sẵn sàng trao đổi số liệu Chú ý rằng không có gói điều khiển SYN nào trong 3 bước trên chứa số liệu của thực thể ứng dụng, tất cả các số liệu điều khiển được trao đổi đều nằm trong phần tiêu đề của gói điều khiển TCP (bước 3)
2.3.2.2 Chấm dứt phiên làm việc
Để chấm dứt phiên làm việc, thực thể TCP (Agent A trên hình 2.6) gửi yêu cầu chấm dứt kết nối với cờ FIN cho đối tác truyền thông của nó Vì kết nối TCP là song công nên mặc dù nhận được yêu cầu chấm dứt phiên làm việc (mà thực chất là thông báo hết số liệu để gửi), thực thể đối tác (Agent B trên hình 2.6) vẫn có thể tiếp tục truyền số liệu cho đến khi không còn số liệu để gửi và thông báo cho thực thể TCP rằng yêu cầu kết thúc kết nối với cờ FIN của mình Tóm lại, kết nối TCP chỉ thực sự kết thúc khi thực thể nhận yêu cầu chấm dứt kết nối gửi trả lại cho thực thể yêu cầu một gói tin cũng với cờ FIN
Trang 36Hình 2.6 Phương thức bắt tay ba bước - kết thúc kết nối
2.4 Một số thuật toán điều khiển lưu lượng trong TCP
Hiện tượng tắc nghẽn số liệu biểu hiện rõ nhất bằng việc gia tăng RTT của các gói số liệu khi di chuyển trong mạng, hoặc thực thể TCP phát bị hết giờ (timeout), hoặc thực thể phát nhận được một số biên nhận lặp Để hạn chế hiện tượng tắc nghẽn số liệu, trong TCP sử dụng các thuật toán điều khiển lưu lượng sau: “Khởi động chậm”, “Tránh tắc nghẽn”, “Phát lại nhanh”, “Khôi phục nhanh”
2.4.1 Thuật toán “Khởi động chậm” – SS (Slow Start)
Đặc trưng của thuật toán “Khởi động chậm” là phải định nghĩa thêm khái niệm “Cửa sổ tắc nghẽn” (congestion window), ký hiệu là cwnd, cho thực thể TCP phát Một khi kết nối TCP được thiết lập, cwnd được gán giá trị bằng 1 (đơn vị kích thước gói tin), có độ lớn được thông báo bởi thực thể TCP bên nhận, độ dài mặc định là 512 Byte [RFC 2001]
Thực thể TCP phát bắt đầu phát với cwnd = 1, gửi một gói dữ liệu đầu tiên và đợi biên nhận Khi nhận được biên nhận ACK đầu tiên, thực thể phát tăng giá trị cửa sổ cwnd thành 2, gửi 2 gói dữ liệu, và đợi Khi nhận được 2 biên nhận tiếp theo, với mỗi biên nhận TCP sẽ gia tăng cửa sổ cwnd thêm 1 Lúc đó
Trang 37giá trị của cwnd sẽ là 4 và TCP có thể gửi 4 gói tin cùng lúc Các biên nhận cho các gói tin này sẽ gia tăng cwnd thành 8 Như vậy chỉ sau 4 vòng (4 * RTT), TCP đã gia tăng cửa sổ cwnd thành 16, cho phép gửi 16 gói tin Do đó, sau log2N vòng là TCP có thể gửi N gói tin Quá trình trên được lặp lại cho đến khi thoả mãn một trong các điều kiện sau:
cwnd ssthresh (ssthresh: ngưỡng chuyển đổi từ giai đoạn khởi động chậm sang giai đoạn tránh tắc nghẽn)
2.4.2 Thuật toán “Tránh tắc nghẽn” – CA (Congestion Avoidance)
Dấu hiệu của hiện tượng mất gói tin do tắc nghẽn trên đường truyền to-end là thời gian RTT tăng quá mức hoặc bên nhận nhận được liên tiếp các biên nhận lặp (dup ACK), cụ thể như sau:
end- Nếu có gói số liệu bị mất tại một chặng nào đó trên đường truyền trong mạng (do tràn bộ đệm), sẽ dẫn đến việc thực thể gửi TCP bị timeout và phải thực hiện phát lại gói số liệu bị mất
Nếu thực thể phát nhận được nhiều biên nhận (ACK) cho cùng một gói tin, điều đó cho biết rằng tại trạm nhận, các gói số liệu đã đến, không có lỗi, nhưng không theo đúng thứ tự phát (out-of-order) do đã có một hoặc một số gói tin bị mất do tắc nghẽn trên đường truyền
Biện pháp tránh tắc nghẽn duy nhất thích hợp là giảm lưu lượng gửi gói tin vào mạng để mạng có thể ra khỏi trạng thái tắc nghẽn Thuật toán “Bắt đầu
Trang 38chậm” và thuật toán “Tránh tắc nghẽn” được phối hợp sử dụng và thường được cài đặt đồng thời như một thuật toán Hoạt động của hai thuật toán được kết hợp lại như sau:
Đặt giá trị ban đầu cwnd = 1 và ssthresh = 65.535 Byte
Thực thể TCP sử dụng cơ chế cửa sổ trượt (sliding window) để gửi dữ liệu Độ lớn của cửa sổ, ký hiệu là W, chính bằng số gói dữ liệu được gửi liên tục mà không cần chờ thông báo trả lời Thực thể TCP gửi không bao giờ phát đi số gói tin vượt quá một trong hai giá trị là cửa số tắc nghẽn cwnd và cửa sổ nhận rwnd (Receiver Window) được thông báo bởi bên nhận dữ liệu Hay nói cách khác: W=min{cwnd, rwnd}
Khi hiện tượng tắc nghẽn xuất hiện, giá trị ssthresh được điều chỉnh bằng max(2, W/2) và đặt cwnd = 1
Mỗi khi nhận được thông báo ACK, tăng giá trị cwnd lên theo 2 cách, tùy thuộc vào giai đoạn và thuật toán nào đang tiến hành:
o Nếu cwnd < ssthesh, thuật toán khởi động chậm được thực hiện: giá trị của cwnd được tăng thêm 1 đơn vị với mỗi thông báo biên nhận ACK nhận được
o Nếu cwnd = ssthesh, thuật toán tránh tắc nghẽn được thực hiện: giá trị cwnd được tăng thêm 1/cwnd với mỗi thông báo ACK nhận được
Như vậy, khi phát hiện tắc nghẽn, tốc độ mở cửa sổ phát được điều chỉnh dần dần một cách tuyến tính, trong khi ở thuật toán bắt đầu chậm (trong trường hợp không tắc nghẽn) tốc độ mở cửa sổ phát tăng theo hàm mũ Điều này đảm bảo cho TCP khả năng nhanh chóng sử dụng được hết dải thông còn “rỗi” trong pha khởi động chậm và tiếp tục thăm dò phần dải thông còn có thể sử dụng được trong pha tránh tắc nghẽn mà không làm cho tình trạng tắc nghẽn thêm trầm trọng
Trang 392.4.3 Thuật toán “Phát lại nhanh” – FRTX (Fast Retransmit)
Thực thể gửi TCP cần thực hiện phát lại một gói số liệu khi nhận biết được có gói tin bị mất hoặc được đồng hồ quản lý phát lại kích hoạt (timeout) Thuật toán phát lại nhanh cho phép thực thể phát thực hiện phát lại không cần chờ đồng hồ “timeout”, trong trường hợp nhận được nhiều hơn hai thông báo ACK lặp lại
Thông báo ACK lặp lại được tạo ra trong trường hợp thực thể nhận thông báo gói số liệu đến không đúng theo thứ tự phát và nêu ra số thứ tự gói số liệu chờ nhận Trong thực tế, thường chỉ cần từ một đến hai thông báo ACK lặp lại
là đủ thời gian để gói số liệu bị lạc đến đích và được xử lý đúng thứ tự Nếu thực thể phát nhận được nhiều hơn hai thông báo ACK lặp thì thực thể phát có
cơ sở (khá chắc chắn) để cho rằng gói số liệu đó đã bị mất và cần phát lại nhanh chóng gói số liệu bị mất đó Sau khi phát lại nhanh, thực thể phát trở về pha
“Khởi động chậm” (cwnd=1)
2.4.4 Thuật toán “Khôi phục nhanh” – FRCV (Fast Recovery)
Thuật toán khôi phục nhanh quy định việc thực hiện thuật toán tránh tắc nghẽn ngay sau khi thực hiện thuật toán phát lại nhanh, chứ không trở về pha
“Khởi động chậm” Điều này tránh cho lưu lượng số liệu trong kết nối TCP không bị giảm đột ngột, gây lãng phí dải thông của đường truyền
Thuật toán phát lại nhanh và khôi phục nhanh thường được cài đặt kết hợp với nhau như sau:
(i) Sau khi nhận được biên nhận ACK lặp thứ 3 liên tiếp, thực thể
phát kết luận rằng gói số liệu đó đã bị mất nên phát lại gói số liệu
bị mất đó chứ không chờ cho đến khi bị timeout, sau đó thiết lập ngưỡng ssthresh = max(2, cwnd/2)
Khác với FRTX, sau khi phát lại gói số liệu bị mất sẽ trở về pha
“Khởi động chậm” bằng cách đặt cwnd=1 Trong FRCV, sau khi
Trang 40phát lại gói số liệu bị mất, thực thể phát sẽ tăng cwnd=ssthresh + 3 Điều này có nghĩa là cwnd được tăng lên thêm ba gói số liệu tương ứng với ba gói số liệu đã rời mạng (thực chất là ba gói số liệu đã được nhận trong bộ đệm của thực thể nhận, tương ứng với ba thông báo ACK lặp)
(ii) Với mỗi thông báo ACK lặp tiếp theo, tăng cwnd = cwnd + 1,
tương ứng với một gói số liệu đã được nhận đúng và đi ra khỏi mạng
Thực hiện việc phát một gói số liệu, nếu cwnd và rwnd có giá trị mới và cửa sổ phát W vẫn chưa lớn hơn min{cwnd, rwnd}
(iii) Sau khi nhận được báo nhận ACK của gói dữ liệu bị mất và đã
được phát lại ở bước (i), thực thể phát TCP thiết lập lại cửa sổ cwnd được giữ trong trường ssthresh sau đó kết thúc thuật toán
2.5 Các phiên bản của giao thức TCP
2.5.1 Tahoe
Giao thức TCP nguyên thuỷ ban đầu sử dụng mô hình go-back-n (phát lại
từ gói tin thứ n) [3], trong mô hình này khi bên nhận phát hiện ra gói tin thu được không đúng thứ tự, bên nhận sẽ thông báo cho bên gửi phát lại các gói tin
từ gói tin nhận không đúng thứ tự đó [31]
Tahoe TCP là phiên bản TCP đã được cải tiến, sử dụng các thuật toán Slow-Start, Congestion Avoidance và Fast Retransmit Giao thức này còn bao gồm một sự sửa đổi bộ ước lượng thời gian khứ hồi được sử dụng để thiết lập giá trị hết giờ phát lạị, đây là một cải tiến rất hiệu quả Với Fast Retransmit, các nhà phát triển lập luận rằng sau khi nhận được một số lượng nhỏ các biên nhận lặp của cùng một gói tin TCP, bên phát dữ liệu kết luận rằng một gói dữ liệu đã
bị mất và quyết định phát lại không chờ hết giờ đồng hồ phát lại Thuật toán