Trong những năm qua, nhóm nghiên cứu giao thức Multipath TCPMP TCP của tổ chức IETF đã và đang phát triển các phần mở rộng đa đường dẫn ở giao thức TCP,cho phép các đầu cuối sử dụng nhiề
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Môn học: TRUYỀN THÔNG KHÔNG DÂY
Trang 2MỤC LỤC
DANH MỤC TỪ VIẾT TẮT 3
PHẦN MỞ ĐẦU 4
CHƯƠNG I: TỔNG QUAN VỀ GIAO THỨC TCP 5
1.1 Giới thiệu TCP 5
1.2 Cấu trúc TCP Segment 5
1.3 Quá trình hoạt động của giao thức TCP 8
1.4 Điều khiển luồng trong TCP 11
1.4.1 Stop-and-wait 11
1.4.2 Sliding Window 12
1.5 Điều khiển tắc nghẽn trong TCP 15
1.5.1 Slow Start 15
1.5.2 Congestion Avoidance 15
1.5.3 Fast Recovery 16
1.5.4 Fast Retransmit 16
CHƯƠNG 2: TỔNG QUAN VỀ GIAO THỨC MULTIPATH TCP 17
2.1 Nguyên nhân ra đời của MP TCP 17
2.2 Lợi ích của MP TCP 17
2.3 Những mục tiêu đặt ra khi thiết kế MP TCP 17
2.4 Mô hình phân chia chức năng của MP TCP 19
2.5 Các thành phần chính trong MP TCP 20
CHƯƠNG 3: HOẠT ĐỘNG CỦA GIAO THỨC MP TCP 23
3.1 Các loại bản tin trong MP TCP 23
3.2 Quá trình thiết lập kết nối 24
3.3 Khởi tạo luồng con mới 27
3.4 Quản lý đường dẫn 28
3.4.1 Thêm địa chỉ(Add Address) 29
3.4.2 Xóa địa chỉ(Remove Address) 30
3.5 Quá trình truyền dữ liệu 31
3.5.1 Ánh xạ số thứ tự dữ liệu(Data Sequence Mapping) 31
3.5.2 Báo nhận dữ liệu 31
Trang 33.5.4 Xem xét phía bên gửi 32
3.5.5 Điều khiển tắc nghẽn(congestion control) 32
3.5.6 Các chính sách về luồng con 33
3.5.7 Truyền lại 33
3.6 Đóng kết nối 33
CHƯƠNG 4: ĐIỀU KHIỂN TẮC NGHẼN 35
4.1 Các nguyên nhân gây ra tắc nghẽn 35
4.2 Khái niệm điều khiển tắc nghẽn 35
4.3 Thuật toán điều khiển tắc nghẽn trong giao thức MP TCP 35
4.3.1 Các yêu cầu đối với thuật toán 35
4.3.2 Các thuật toán điều khiển tắc nghẽn trong MP TCP 36
KẾT LUẬN 37
TÀI LIỆU THAM KHẢO 38
Trang 4DANH MỤC TỪ VIẾT TẮT
Trang 5PHẦN MỞ ĐẦU
Hiện nay hạ tầng Internet đang thay đổi rất nhiều so với thời điểm ban đầu lúc nó
ra đời Khi giao thức TCP/IP được thiết kế, các thiết bị đầu cuối chỉ có một giao diệnkết nối(single interface) Ngày nay, hầu hết phương tiện kết nối internet đều có nhiềuhơn một giao diện, điển hình là những chiếc điện thoại thông minh được trang bị với
cả 3G và Wi-Fi Người dùng mong đợi rằng việc sử dụng những thiết bị sẽ tăng khảnăng dự phòng cũng như hiệu năng thực hiện nhưng thực tế không phải luôn luôn nhưvậy Hơn 95% tổng lưu lượng truy cập Internet vẫn còn được điều khiển bởi giao thứcTCP và TCP liên kết mỗi kết nối với một giao diện duy nhất Điều này có nghĩa rằngbản thân giao thức TCP không hiệu quả và trong suốt trong việc sử dụng các giao diện
có sẵn trên một đầu cuối multihomed
Vấn đề multihoming nhận được rất nhiều sự chú ý trong cộng đồng nghiên cứu
và IETF trong những năm qua Nhiều giải pháp đã được đưa ra, tuy nhiên chúng vẫncòn ở giai đoạn thử nghiệm và không chắc rằng các giải pháp trên sẽ được triển khairộng rãi Các giải pháp ở tầng Transport cũng đã được phát triển, đầu tiên là mở rộngTCP Tuy nhiên, phần mở rộng này chưa bao giờ được triển khai Giao thức SCTP(Stream Control Transmission Protocol) được thiết kế với mục đích multihoming.Một số mở rộng của giao thức SCTP cho phép các đầu cuối truyền thông tin trên nhiềuđường dẫn cùng một lúc Mặc dù được thực thi trong một số hệ điều hành, giao thứcSCTP vẫn không được sử dụng rộng rãi bên cạnh các ứng dụng cụ thể Các hạn chếchính của giao thức SCTP trên mạng Internet toàn cầu đầu tiên là việc các ứng dụngphải thay đổi để có thể sử dụng SCTP Thứ hai, một số khâu trong mạng truyền thôngchẳng hạn như NAT hoặc Firewall không hiểu giao thức SCTP và ngăn chặn tất cả cácgói tin SCTP
Trong những năm qua, nhóm nghiên cứu giao thức Multipath TCP(MP TCP) của
tổ chức IETF đã và đang phát triển các phần mở rộng đa đường dẫn ở giao thức TCP,cho phép các đầu cuối sử dụng nhiều đường dẫn thông qua nhiều giao diện, để thựchiện truyền các gói tin trên một kết nối duy nhất Đây có lẽ là phần mở rộng đầy thamvọng nhất với TCP được tiêu chuẩn hóa trong IETF
Trang 6CHƯƠNG I: TỔNG QUAN VỀ GIAO THỨC TCP
1.1 Giới thiệu TCP
Transmission control protocol (TCP) là một giao thức truyền thông mạng đượcthiết kế để gửi các gói dữ liệu qua Internet TCP là một trong những giao thức được sửdụng nhiều nhất trong truyền thông mạng kỹ thuật số và là một phần của bộ giao thứcInternet, thường được gọi là TCP/IP TCP là giao thức nằm ở tầng 3 trong mô hìnhnày Còn trong mô hình lý thuyết OSI thì TCP là giao thức nằm ở tầng 4
TCP là một giao thức hướng kết nối TCP đảm bảo kết nối end-to-end giúpchuyển giao dữ liệu giữa các nút riêng biệt Trước khi truyền dữ liệu, TCP tạo ra mộtkết nối giữa các nút nguồn và đích và giữ nó sống cho đến khi kết thúc
TCP cung cấp khả năng chống tắc nghẽn, nghĩa là giao thức có khả năng thíchứng với tình trạng hiện tại của mạng để điều chỉnh lượng dữ liệu gửi đi cho phù hợp.TCP cung cấp kết nối full-duplex, nghĩa là có thể đồng thời nhận và gửi dữ liệucùng một lúc
1.2 Cấu trúc TCP Segment
TCP truyền dữ liệu theo dòng byte, chia nó ra thành nhiều phần và thêm vào mộttiêu đề TCP (TCP header) tạo ra một phân đoạn TCP (TCP segment) Sau đó các TCPsegment được đóng gói vào IP datagram và trao đổi với các peer khác
Thuật ngữ TCP segment dùng để chỉ Protocol Data Unit (PDU) ở tầng 4Transport trong mô hình OSI, còn ở tầng 3 thì PDU được gọi là packet, ở tầng 2 gọi làframe
Một TCP segment bao gồm một segment header và một phần dữ liệu TCPheader chứa 10 trường bắt buộc, và một trường tùy chọn mở rộng
Phần dữ liệu theo sau header Nội dung của nó là các dữ liệu payload được mangcho ứng dụng Chiều dài của phần dữ liệu không được quy định trong TCP segmentheader Nó có thể được tính bằng cách lấy tổng chiều dài IP datagram trừ đi tổng chiềudài TCP header và IP header
Trang 7a) TCP header
Hình 1-1: Cấu trúc các trường trong phần TCP header.
Ý nghĩa các trường của TCP header:
Cổng gửi (Source port) - 16 bits: xác định cổng gửi.
Cổng nhận (Destination port) - 16 bits: xác định cổng nhận.
Số thứ tự (Sequence number) - 32 bits: có hai vai trò:
Nếu cờ SYN (SYN flag) được bật(1), thì đây là số thứ tự ban đầu (initsequence number được sinh ra bởi hệ điều hành) Số thứ tự của byte dữ liệu tiếp theobằng với số xác nhận vừa nhận được và bằng với số thứ tự trước đó cộng thêm 1
Nếu cờ SYN là tắt (0), thì đây là số thứ tự tích lũy của byte dữ liệu đầu tiêncủa segment này cho phiên hiện tại
Acknowledgment number (32 bits): nếu cờ ACK (ACK flag) được bật thì giá
trị của trường này là số thứ tự tiếp theo mà bên nhận mong đợi Điều này thừa nhận đãnhận tất cả các byte trước đó (nếu có) Các ACK đầu tiên dùng để xác nhận số thứ tựban đầu của bên vừa gửi, không có dữ liệu
Data offset (4 bits): Trường có độ dài 4 bít qui định độ dài của phần header (tính
theo đơn vị từ 32 bít) Phần header có độ dài tối thiểu là 5 từ (160 bit) và tối đa là 15 từ(480 bít)
Reserved (3 bits): để sử dụng trong tương lai và cần được thiết lập về 0.
Flags (9 bits) (hay Control bits):
URG: Cờ cho trường Urgent pointer
ACK: Cờ cho trường Acknowledgement
Trang 8 PSH: Hàm Push
RST: Thiết lập lại đường truyền
SYN: Đồng bộ lại số thứ tự
FIN: Không gửi thêm số liệu
Window size (16 bits): kích thước của cửa sổ nhận, xác định số lượng các đơn
vị kích thước cửa sổ (theo mặc định, byte) mà người gửi của phân khúc nàyhiện đang sẵn sàng nhận (xem Flow control và Window Scaling)
Checksum (16 bits): 16 bit của trường checksum được dùng để kiểm tra lỗi
của header và data
Urgent pointer (16 bits): Nếu cờ URG bật thì giá trị trường này chính là số từ
16 bít mà số thứ tự gói tin (sequence number) cần dịch trái.
Options (Variable 0–320 bits, divisible by 32).
b) Phần dữ liệu:
Hình 1-2: TCP pseudo-header
Trường cuối cùng không thuộc về header Giá trị của trường này là thông tindành cho các tầng trên (trong mô hình 7 lớp OSI) Thông tin về giao thức của tầng trênkhông được chỉ rõ trong phần header mà phụ thuộc vào cổng được chọn
Trang 91.3 Quá trình hoạt động của giao thức TCP
Hình 1-3: Sơ đồ trạng thái của TCP – phiên bản đơn giản hóa
SYN-SENT: (client) đại diện chờ đợi một yêu cầu kết nối phù hợp sau khi
đã gửi một yêu cầu kết nối
SYN-RECEIVED: (máy chủ) đại diện chờ đợi một xác nhận thừa nhận yêucầu kết nối sau khi cả hai nhận được và gửi một yêu cầu kết nối
Trang 10 ESTABLISHED: (cả máy chủ và máy khách) đại diện cho một kết nối mở,
dữ liệu nhận được có thể được chuyển cho người sử dụng Các trạng thái bình thườngtrong giai đoạn truyền dữ liệu của kết nối
FIN-WAIT-1: (cả máy chủ và máy khách) đại diện chờ đợi một yêu cầuchấm dứt kết nối từ TCP từ xa hoặc xác nhận yêu cầu chấm dứt kết nối gửi trước đây
FIN-WAIT-2: (cả máy chủ và máy khách) đại diện chờ đợi một yêu cầuchấm dứt kết nối từ TCP từ xa
CLOSE-WAIT: (cả máy chủ và máy khách) đại diện chờ đợi một yêu cầuchấm dứt kết nối từ người dùng địa phương
CLOSING: (cả máy chủ và máy khách) đại diện chờ đợi một xác nhận yêucầu chấm thúc kết nối từ TCP từ xa
LAST-ACK: (cả máy chủ và máy khách) đại diện chờ đợi xác nhận yêu cầuchấm dứt kết nối trước đó gửi cho TCP từ xa (trong đó bao gồm xác nhận yêu cầuchấm dứt kết nối của nó)
TIME-WAIT: (hoặc máy chủ hoặc máy khách) đại diện chờ đợi đủ thờigian để chắc chắn là TCP từ xa đã nhận được xác nhận yêu cầu chấm dứt kết nối của
nó [Theo RFC 793 một kết nối có thể ở lại trong TIME-WAIT tối đa là bốn phút đượcbiết đến như một MSL (đoạn tuổi thọ tối đa).]
CLOSED: (cả máy chủ và máy khách) đại diện không có trạng thái kết nối
ở tất cả
a) Thiết lập kết nối
Hình 1-4: Sơ đồ thiết lập kết nối
Trang 11Hình 1-5: Quá trình thiết lập kết nối 2 phía
Để thiết lập một kết nối, TCP sử dụng một quy trình bắt tay 3 bước (3-wayhandshake) Đầu tiên Server mở cổng và đợi Client kết nối Quy trình bắt tay 3 bướcxảy ra như sau:
1 Client gửi gói tin SYN (gói tin TCP) tới server yêu cầu thiết lập kết nối
Trong gói tin này, tham số sequence number được gán cho một giá trị ngẫu nhiên X (X
ở đây là init sequence number của máy client, init sequence number được tạo ra từthuật toán của riêng mỗi hệ điều hành)
2 Server hồi đáp bằng cách gửi lại phía client gói tin SYN-ACK, trong gói tinnày, tham số acknowledgment number được gán giá trị bằng X + 1, tham số sequencenumber được gán ngẫu nhiên một giá trị Y (Y ở đây là init sequence number của máyserver)
3 Để hoàn tất quá trình bắt tay ba bước, client tiếp tục gửi tới server bản tinACK với sequence number được gán cho giá trị bằng X + 1 còn tham sốacknowledgment number được gán giá trị bằng Y + 1
Kết nối được thiết lập
b) Truyền dữ liệu
Một số đặc điểm cơ bản của TCP để phân biệt với UDP:
Truyền các gói dữ liệu theo đúng thứ tự
Truyền lại các gói dữ liệu mất trên đường truyền
Kiểm soát luồng: giới hạn tốc độ bên gửi truyền dữ liệu để đảm bảo truyềnđáng tin cậy Bên nhận liên tục báo bên gửi có thể được nhận bao nhiêu dữ liệu (điềukhiển bởi các cửa sổ trượt) Khi bộ đệm bên nhận đầy, thông điệp acknowledgmenttiếp theo để giá trị window size về 0 để ngăn việc truyền dữ liệu để cho dữ liệu trong
bộ đệm được xử lý
Điều khiển tắc nghẽn
Trang 12c) Kết thúc kết nối
Hình 1-6: Quá trình kết thúc kết nối
Để kết thúc kết nối hai bên sử dụng bắt tay bốn bước, mỗi bên của kết nối kếtthúc một cách độc lập Khi một thiết bị đầu cuối muốn dừng lại nửa chừng, nó gửi mộtgói FIN, đầu kia xác nhận lại bằng gói ACK Vì vậy, một quá trình kết thúc tiêu biểu
sẽ có 2 cặp gói tin trao đổi
Một kết nối có thể tồn tại ở dạng "nửa mở": một bên đã kết thúc gửi dữ liệu nênchỉ nhận thông tin, bên kia vẫn tiếp tục gửi
1.4 Điều khiển luồng trong TCP
Trong giao tiếp dữ liệu, điều khiển luồng là quá trình quản lý tỉ lệ truyền tải dữliệu giữa hai node để ngăn chặn bên gửi nhanh làm tràn bộ đệm bên nhận chậm Nócung cấp một cơ chế cho bên nhận để kiểm soát tốc độ truyền tải, do đó các nút nhậnkhông bị quá tải với các dữ liệu từ node truyền Điều khiển luồng nên được phân biệtvới điều khiển tắc nghẽn, được sử dụng để điều khiển luồng dữ liệu khi tắc nghẽn đãthực sự xảy ra
1.4.1 Stop-and-wait
Điều khiển luồng Stop-and-wait là hình thức đơn giản nhất của điều khiển luồng.Bên nhận cho biết đã sẵn sàng để nhận dữ liệu cho mỗi khung, thông điệp được chiathành nhiều khung Bên gửi đợi một ACK sau mỗi khung một khoảng thời gian nhấtđịnh (gọi là thời gian chờ - timeout) Điều đó đảm bảo rằng bên nhận đã nhận đượckhung chính xác Nó sẽ gửi các khung tiếp theo sau khi đã nhận được ACK
Trang 13a) Hoạt động
1 Bên gửi: Truyền một khung duy nhất tại một thời điểm.
2 Bên nhận: Truyền tin báo nhận (ACK) khi nó nhận được một frame.
3 Bên gửi: nhận ACK trong thời gian chờ.
b) Ưu điểm và nhược điểm của Stop-and wait
- Ưu điểm: Lợi thế duy nhất của phương pháp này là sự đơn giản của nó.
- Nhược điểm: Bên gửi cần phải chờ đợi ACK sau mỗi khung nó truyền đi Đây là
nguyên nhân của sự kém hiệu quả
Stop and wait cũng thiếu hiệu quả khi phải truyền gửi lâu hơn Truyền lâu hơn là
cơ hội cho nhiều khả năng lỗi trong giao thức này
Cấu trúc của cửa sổ được mô tả như sau:
Hình 1-7: Cửa sổ trượt
Trang 14Phần tô đen là phạm vi của cửa sổ gồm có cửa trước và cửa sau cùng di chuyển
theo một chiều
Kích thước của cửa sổ là chiều của cung giới hạn từ cửa sau đến cửa trước Kích thước của cửa sổ có thể thay đổi Khi cửa trước di chuyển, cửa sổ được mởrộng ra Ngược lại khi cửa sau di chuyển, kích thước của cửa sổ bị thu hẹp lại và nólàm cho cửa sổ thay đổi vị trí, trượt / quay quanh một tâm của vòng tròn
Kích thước nhỏ nhất của cửa số là 0, khi đó cửa trước và cửa sau nằm cùng một
vị trí Giả sử, có n=2k vị trí cho các cửa, khi đó kích thước tối đa của cửa sổ là n-1(không là n để phân biệt với kích thước là 0)
Khi kích thước của cửa sổ trượt là 1, ta có giao thức stop-and-wait
Giả sử ta dùng k bit để đánh số thứ tự cho các khung Ta sẽ có 2k khung, đánh số
từ 0 đến 2k-1 Khi đó cửa sổ trượt sẽ được chia thành 2k vị trí tương ứng với 2k khung.Đối với cửa sổ gởi, các vị trí nằm trong cửa sổ trượt biểu hiện số thứ tự của cáckhung mà bên gởi đang chờ bên nhận báo nhận Phần bên ngoài cửa sổ là các khung
có thể gởi tiếp Tuy nhiên phải đảm bảo rằng, cửa sổ gởi không được vượt quá kíchthước tối đa của cửa sổ
Đối với bên nhận, các vị trí nằm trong cửa sổ biểu hiện số thứ tự các khung mà
nó đang sẳn sàng chờ nhận
Kích thước tối đa của cửa sổ biểu thị dung lượng bộ nhớ đệm của bên nhận cóthể lưu tạm thời các gói tin nhận được trước khi xử lý chúng Giả sử bên nhận có mộtvùng bộ nhớ đệm có khả năng lưu trữ 4 khung nhận được Khi đó, kích thước tối đacủa cửa sổ sẽ là 4
Vấn đề kế tiếp cần phải quan tâm là bên nhận sẽ làm gì nếu khung bị lỗi
Giải pháp đơn giản là truyền lại tất cả các khung bắt đầu từ khung thứ N bị lỗi.Nếu có những khung khác được nhận trong khoảng thời gian này thì chúng đều bị bỏ
qua Đây gọi là giao thức Go-Back-N.
Giải pháp thứ hai là chỉ truyền lại những khung bị lỗi, và chờ đến khi nó được
gởi lại trước khi tiếp tục việc gởi tin, gọi là giao thức Selective Repeat.
Cơ chế phát lại theo nhóm(Go-Back-N):
Giao thức Go-Back-N thì rất đơn giản Khi một khung bị lỗi Bên nhận bỏ quakhung Vì không một báo nhận nào gởi về cho bên nhận nên sự kiện quá thời gian xảy
ra, bên gởi phải gởi lại khung bị lỗi và toàn bộ các khung phía sau nó
Ví dụ:
Trang 15Hình 1-8: Giao thức Go-Back-N
Trong ví dụ trên, bên nhận phát hiện ra khung số 2 bị lỗi nó bỏ qua các khungsau đó (3,4,5,6,7,8), chỉ chờ nhận lại khung số 2 Phía bên gởi chờ báo nhận từ bênnhận cho đến khi quá thời gian, nó sẽ thực hiện gởi lại các khung 2, 3, 4, 5, 6,
Cơ chế phát lại có lựa chọn(Selective repeat)
Trong giao thức này, khung bị lỗi bị bỏ đi, nhưng các khung nhận tốt sau đó đềuđược lưu lại tạm thời trong vùng nhớ đệm Khi quá thời gian, bên gởi chỉ gởi lại khung
cũ nhất chưa được báo nhận Nếu khung này đến nơi chính xác, bên nhận có thểchuyển lên tầng mạng tất cả các khung đã được lưu vào bộ nhớ đệm theo đúng thứ tự.Trong giao thức này, bên nhận sử dụng khung Báo không nhận NAK (NegativeAcknowledge) khi phát hiện ra khung bị lỗi, ví dụ lỗi CRC, sai thứ tự gói tin NAK sẽđược gởi về bên nhận trước khi sự kiện quá thời gian báo nhận của khung bị lỗi xảy ra.Nhờ đó tăng được hiệu xuất truyền tin
Hình 1-9: Giao thức Selective Repeat với cửa sổ trượt lớn hơn 1
Trong ví dụ trên các khung 0, 1 được nhận tốt và đã được báo nhận, còn khung
số 2 thì bị lỗi trên đường truyền Khi khung số 3 đến, tầng liên kết dữ liệu phát hiện lỗi
về số thứ tự khung chờ nhận, vì thế nó gởi khung NAK cho khung số 2 và lưu tạm thờikhung số 3 vào vùng nhớ đệm Tương tự, các khung 4 và 5 cũng được lưu lại mà chưachuyển lên tầng mạng (vì phải chờ nhận khung số 2)
Khi khung NAK 2 đến bên gởi, nó truyền lại ngay khung số 2
Trang 16Khi khung số 2 đến bên nhận, nó đã có đủ các khung 2,3,4,5 theo đúng thứ tự vìthế nó chuyển 4 khung này lên tầng mạng theo một thứ tự đúng đắn Đồng thời bênnhận gởi về bên gởi khung ACK 5 để báo rằng đã nhận tốt đến khung số 5.
Trong trường hợp khung NAK2 bị mất, không đến được bên gởi, thì sự kiện quáthời gian sẽ xảy ra Khi đó bên gởi cũng chỉ gởi lại khung số 2 mà thôi
1.5 Điều khiển tắc nghẽn trong TCP
Hiện tại TCP dùng 4 thuật toán liên kết chặt chẽ với nhau là: Slow Start,Congestion Avoidance, Fast Recovery và Fast Retransmit để điều khiển tắt nghẽn
Hình 1-10: Các thuật toán điều khiển tắc nghẽn
1.5.1 Slow Start
Nó còn được gọi là giai đoạn tăng trưởng theo cấp số nhân
Congestion window (cwnd) được gán bằng 1 MSS (maximum segment size).Congestion window được gửi tăng theo cấp số nhân cho đến khi mất gói tin hoặcvượt quá một ngưỡng ssthresh, với ssthresh ở đây là ngưỡng cwnd do TCP quản lý.Nếu mất gói tin, thuật toán sẽ đặt lại ngưỡng slow start bằng 1 nửa congestionwindow hiện tại và đưa congestion window về 1 MMS
Nếu cwnd vượt quá ngưỡng ssthresh thì thuật toán bước vào trạng tháiCongestion avoidance
Nếu nhận được 3 ACK trùng thì bước vào trạng thái Fast Recovery
1.5.2 Congestion Avoidance
Trang 17Nếu nhận được ACK thì cwnd = MSS2/cwnd.
Nếu bị mất gói tin thì đặt lại ngưỡng slow start bằng 1 nửa congestion windowhiện tại và đưa congestion window về 1 MMS và bắt đầu lại Slow Start
Nếu nhận 3 gói ACK trùng thì giảm cwnd xuống 1 nửa thay vì giảm về 1,ngưỡng ssthresh sẽ bằng với cwnd lúc này, chuyển sang Fast Recovery
1.5.3 Fast Recovery
Trong trạng thái này, TCP sẽ truyền lại các gói tin bị mất và chờ đợi ACK củatoàn bộ cửa sổ truyền trước khi bước vào Congestion avoidance, ssthresh bằng vớicwnd lúc này
Nếu không có ACK, TCP sẽ đợi timeout và đặt lại ngưỡng bằng một nửa cwnd,đưa cwnd về 1 MSS, bước vào trạng thái slow start
1.5.4 Fast Retransmit
Khi bên gửi nhận được 3 gói tin ACK trùng thì nó sẽ chuyển sang trạng thái FastRetransmit nghĩa là không cần chờ timeout và bước vào trạng thái Fast Recovery
Trang 18CHƯƠNG 2: TỔNG QUAN VỀ GIAO THỨC MULTIPATH
TCP
2.1 Nguyên nhân ra đời của MP TCP
Ngày nay, những giao thức hiện tại chủ yếu đều chạy trên nền tảng TCP/IP vốnchỉ dùng một đường duy nhất để truyền dẫn giữa 2 host Điều này dẫn đến những hạnchế trong việc tận dụng tối ưu tài nguyên hệ thống, điều khiển tắc nghẽn và cân bằngtải
Multipath TCP ra đời với ý tưởng giải quyết những vấn đề trên Thay vì dùngmột đường đi như thường lệ, ta sẽ dùng cùng một lúc nhiều đường đi để truyền dẫn dữliệu, vừa tăng được thông lượng, vừa cân bằng được tải trọng giữa các đường với nhau
và giảm thiểu được số lần đụng độ dẫn đến tắc nghẽn
có thể được cải thiện rất nhiều Những cải tiến như vậy cũng sẽ làm giảm chi phí đầu
tư cơ sở hạ tầng mạng Bằng cách ứng dụng chia sẻ tài nguyên, những tài nguyên sẵn
có có thể được gộp lại như một nguồn tài nguyên duy nhất dành cho người sử dụng.Multipath được triển khai nhằm mục đích đạt được một số mục tiêu của nguồntài nguyên tổng hợp bằng cách sử dụng đồng thời nhiều đường dẫn trên mạng Hai lợiích chủ yếu của truyền thông Multipath là :
-Tăng khả năng phục hồi: bằng cách cung cấp nhiều đường dẫn khác nhau -Tăng hiệu quả của việc sử dụng tài nguyên: qua đó nâng cao năng lực mạng
lưới có sẵn trong hệ thống mạng
2.3 Những mục tiêu đặt ra khi thiết kế MP TCP
a) Mục tiêu về chức năng
Cải thiện thông lượng của hệ thống (throughput): MPTCP hoạt động trên cơ
sở truyền trên nhiều đường dẫn, tuy nhiên một kết nối MPTCP sau khi được thiết lậpphải có thông lượng lớn hơn thông lượng của một kết nối TCP đơn lẻ tốt nhất Nóingắn gọn, việc triển phải MPTCP phải có kết quả khả quan hơn là việc lựa chọn rađường đi tốt nhất và gửi theo đường đi đó
Cải thiện khả năng phục hồi và chịu lỗi (resilience): MPTCP cho phép mọi
Trang 19end-to-end end-to-end
thường Nhờ có cơ chế này mà MPTCP vẫn đảm bảo được hệ thống hoạt động thôngsuốt khi có sự cố xảy ra trên một trong những đường dẫn đó Ngoài ra, khả năng phụchồi của một kết nối MPTCP phải nhanh hơn bất kỳ một kết nối TCP đơn lẻ nào
Cân bằng tải và điều khiển tắc nghẽn: Dễ dàng nhận thấy việc truyền dẫn bằng
nhiều con đường khác nhau góp một phần không hề nhỏ vào việc tránh tắc nghẽn trênđường truyền Đương nhiên việc điều khiển tắc nghẽn không chỉ đơn giản như thế,chúng ta còn cần phải giải quyết rất nhiều vấn đề phát sinh khác như kiểm soát tắtnghẽn trên từng luồng con, hoặc ngăng ngừa thắt cổ chai ở hai bên đầu kết nốiMPTCP… Muốn làm được điều đó, MPTCP phải sử dụng các thuật toán kiểm soát tắcnghẽn riêng (sẽ nói ở sau)
b) Mục tiêu về sự tương thích
Ngoài các mục tiêu chức năng được liệt kê ở trên, giao thức TCP Multipath phảiđáp ứng một số mục tiêu tương thích để hỗ trợ triển khai trên mạng Internet ngày nay
Tương thích với ứng dụng: Khả năng tương thích ứng dụng là sự ảnh hưởng
của MPTCP tới các ứng dụng thông thường vẫn chạy trên nên TCP Để đạt được điềunày, đầu tiên MP TCP phải thiết kế theo cùng một mô hình dịch vụ như TCP : gửi thứ
tự, tin cậy, theo byte Hơn nữa như đã đề cập, một kết nối MP TCP cung cấp cho cácứng dụng có thông lượng phải không thấp hơn một kết nối TCP đơn lẻ trên bất kỳ mộttrong đường dẫn nào có sẵn của nó
Tương thích với tầng mạng: Khái niệm tương thích với tầng mạng và tương
thích với các thiết bị hoạt động ở tầng mạng nghĩa là Multipath TCP phải tương thíchvới mạng Internet ngày nay bao gồm khả năng truyền qua các middlebox sẵn có như :firewall, NAT, và các proxy nâng cao hiệu suất Điều này yêu cầu phải xây dựng giaothức với các chức năng có thể dò và truyền qua các middlebox
Hình 2-1: Mô hình kiến trúc Internet truyền thống