Tìm hiểu giao thức Multipath TCP - pdf 21

Chia sẻ miễn phí cho các bạn tài liệu: Tìm hiểu giao thức Multipath TCP
CÁC TỪ VIẾT TẮT 4
PHẦN MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VỀ GIAO THỨC TCP 3
1.1 Giao thức TCP 3
1.2 Cấu trúc gói tin TCP 4
1.2.1 Cấu trúc trong phần mào đầu gói tin TCP 4
1.2.2 Cấu trúc phần dữ liệu trong gói tin TCP 6
1.3 Hoạt động của giao thức TCP 6
1.3.1 Thiết lập kết nối 7
1.3.2 Truyền dữ liệu 8
1.3.3 Kết thúc kết nối 9
1.4 Điều khiển lưu lượng trong TCP. 14
1.4.1 Điều khiển tắc nghẽn 14
a. Pha khởi động chậm (slow – start) 14
b. Pha truyền lại nhanh (fast retransmit) 15
c. Pha phục hồi nhanh (fast recovery) 16
1.4.2 Pha tránh tắc nghẽn (congestion avoidance) 17
CHƯƠNG 2: TỔNG QUAN VỀ GIAO THỨC MULTIPATH TCP(MP TCP) 19
2.1 Tại sao cần có giao thức MP TCP 19
2.2 Các khái niệm mở đầu 19
Trước khi tìm hiểu và nghiên cứu giao thức MP TCP, những khái niệm sau phải được làm rõ: 19
- Multihomed: 19
Là những máy chủ có nhiều giao diện vật lý(ví dụ 3G, wifi,..), qua đó nó được gắn nhiều địa chỉ IP. Khác với máy chủ single-homed là máy chủ chỉ có một giao diện vật lý duy nhất. 19
2.3 Các cơ chế đa đường 20
2.4 Những lợi ích, mục tiêu của MP TCP 21
2.4.1 Lợi ích 21
2.4.2 Mục tiêu của giao thức MP TCP 21
2.5 Ảnh hưởng của MP TCP đối với hiệu suất TCP 24
2.6 Nền tảng kiến trúc MP TCP 25
2.7 Mô hình phân chia chức năng MP TCP 27
2.8 Các module chi tiết của tầng con MPTCP 30
2.9 Giao diện Path Manager/Multipath Scheduler 34
CHƯƠNG 3: HOẠT ĐỘNG CỦA GIAO THỨC MP TCP 36
3.2 Khởi tạo kết nối MP TCP 38
Để hiểu rõ giao thức MP TCP khởi tạo một kết nối như thế nào ta sẽ tìm hiểu hoạt động tổng quát của MP TCP qua kịch bản đơn giản sau : 38
3.3 Khởi tạo một luồng con mới 41
3.4 Quản lý đường dẫn 44
3.4.1 Thêm địa chỉ(Add Address) 45
3.4.2 Xóa địa chỉ(Remove Address) 46
3.5 Truyền dữ liệu trong MP TCP 47
3.5.1 Ánh xạ số thứ tự dữ liệu(Data Sequence Mapping) 47
3.5.2 Báo nhận dữ liệu 49
3.5.3 Cửa sổ nhận(Receive Window) 49
3.5.4 Điều khiển tắc nghẽn(congestion control) 50
3.5.5 Xem xét phía bên gửi 51
3.5.6 Các chính sách về luồng con 51
3.5.7 Truyền lại 52
3.6 Đóng một kết nối MP TCP 52
CHƯƠNG 4: ĐIỀU KHIỂN TẮC NGHẼN 54
TRONG GIAO THỨC MP TCP 54
4.1 Đặt vấn đề 54
4.2 Vấn đề tắc nghẽn trong mạng 54
4.2.1 Các nguyên nhân gây ra tắc nghẽn 54
4.2.2 Khái niệm điều khiển tắc nghẽn 55
4.2.3 Các tiêu chí đánh giá thuật toán điều khiển tắc nghẽn 55
4.3 Thuật toán điều khiển tắc nghẽn trong TCP 56
4.4 Thuật toán điều khiển tắc nghẽn trong MP TCP 56
4.4.1 Các yêu cầu đối với thuật toán 56
4.4.2 Các thuật toán điều khiển tắc nghẽn trong MP TCP 58
4.4.3 Thuật toán điều khiển tắc nghẽn kết hợp 65
CHƯƠNG 5: MÔ PHỎNG MP TCP 68
5.1 Giới thiệu cài đặt phần mềm htsim 68
5.1.1 Giới thiệu htsim 68
5.1.2 Cài đặt htsim và các tool liên quan 68
5.2 Thực hiện mô phỏng 69
5.2.1 Mô phỏng với topo Multipath Dumbbell 70
5.2.2 Mô phỏng với topo Nút thắt cổ chai( Shared Bottleneck) 77
5.2.3 Mô phỏng với topo Fence 81
KẾT LUẬN 84
TÀI LIỆU THAM KHẢO 85
2. A. Ford, C. Raiciu, M. Handley (2012), “TCP Extensions for Multipath Operation with Multiple Addresses” 85
4. Alan Ford, Costin Raiciu, Sebastien Barre, Janardhan Iyengar, Bryan Ford(2010), “Architectural Guidelines for Multipath TCP Development” 85
12. Nick McKeown (2008), “Introduction to Computer Networks” 85

PHẦN MỞ ĐẦU

Internet đang thay đổi. Khi chồng giao thức TCP/IP được thiết kế, các đầu cuối chỉ có một giao diện kết nối(single interface) và chỉ những thiết bị định tuyến(routers) được trang bị một số giao diện vật lý. Ngày nay, hầu hết các đầu cuối có nhiều hơn một giao diện và sự phổ biến của những chiếc điện thoại thông minh được trang bị với cả 3G và wifi sẽ mang lại một số lượng ngày càng tăng của các máy chủ multihomed(máy chủ có nhiều giao diện) trên Internet.Người dùng thường mong đợi rằng việc sử dụng những host multihomed sẽ tăng khả năng dự phòng cũng như hiệu năng thực hiện. Thật không may, trong 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ức TCP 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ằng bả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.
Các vấn đề multihoming đã nhận được rất nhiều sự chú ý trong cộng đồng nghiên cứu và cộng đồng IETF trong những năm qua. Các giải pháp ở tầng Network như shim6 hay là Host Identity Protocol (HIP) đã được đề xuất và thực hiện. Tuy nhiên, chúng vẫn cò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 khai rộ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ộng TCP. 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ức SCTP vẫn không được sử dụng rộng rãi bên cạnh các ứng cô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 chính là việc các ứng dụng phải thay đổi để có thể sử dụng SCTP. Thứ hai, một số khâu trong mạng truyền thông chẳng hạn như NAT hay Firewall không hiểu giao thức SCTP và ngăn chặn tất cả các gó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ực hiệ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 tham vọng nhất với TCP được tiêu chuẩn hóa trong IETF.
Đối với tất cả các giao thức trên Internet, sự thành công của nó sẽ không chỉ phụ thuộc vào các đặc điểm kỹ thuật giao thức mà còn phụ thuộc vào sự khả thi trong việc sử dụng bởi những ứng dụng thực tế.
Hiện tại, công việc của em là quản trị và phát triển hệ thống mail, hệ thống tổng đài PBX ... Đây là những hệ thống ứng dụng của chồng giao thức TCP/IP. Với mục đích nghiên cứu những giải pháp, cơ chế cung cấp chất lượng dịch vụ để phục vụ công việc chuyên môn, đề tài ban đầu em chọn là “ Cung cấp chất lượng dịch vụ cho mạng TCP/IP”. Tuy nhiên để có một công trình mới mẻ và tối ưu theo sự hướng dẫn của TS. Ngô Quỳnh Thu, em quyết định định hướng nghiên cứu theo đề tài “Tìm hiểu giao thức Multipath TCP”. Luận văn này không thể hoàn thành nếu không có những định hướng và chỉ bảo tận tình của TS. Ngô Quỳnh Thu. Em xin chân thành Thank cô giáo TS. Ngô Quỳnh Thu!
Hà Nội, tháng 3-2012
Hà Văn Đạt










CHƯƠNG 1 TỔNG QUAN VỀ GIAO THỨC TCP

1.1 Giao thức TCP
TCP ( Transmission Control Protocol ) là giao thức nằm ở tầng 4 trong mô hình 7 lớp OSI (tầng 3 trong mô hình TCP/IP). Nó là giao thức hướng liên kết tức là khi truyền dữ liệu, bên gửi và bên nhận TCP thương lượng và thiết lập một kết nối logic tạm thời, tồn tại trong suốt quá trình truyền dữ liệu. TCP nhận thông tin từ tầng trên, chia dữ liệu thành nhiều phân đoạn(segment) theo độ dài quy định và chuyển các phân đoạn xuống cho các giao thức tầng mạng để định tuyến, bên nhận TCP sẽ xác nhận mỗi phân đoạn nhận được bằng bản tin ACK gửi lại bên gửi, nếu bên gửi không nhận được ACK thì phân đoạn này sẽ được gửi lại. Bên nhận TCP sẽ khôi phục lại thông tin ban đầu dựa vào số thứ tự của dữ liệu và chuyển lên tầng trên.
Các đặc điểm của giao thức TCP:
- TCP là một giao thức có kết nối (connection-oriented): Có nghĩa là TCP thiết lập kênh kết nối trước khi truyền dữ liệu. TCP thiết lập kết nối bằng 3 bước bắt tay (3-way handshake). Cơ chế của 3 bước bắt tay sẽ được trình bày ở phần sau của luận văn.
- TCP truyền dữ liệu theo dòng byte(stream-of-bytes): Giao thức TCP truyền dữ liệu thành dòng byte liên tục bằng cách nhóm các byte vào thành các phân đoạn TCP, sau đó các phân đoạn này được gắn thêm nhãn ở tầng 3 để truyền đến đích trong mạng.
- TCP là một giao thức truyền dữ liệu tin cậy, điều đó thể hiện qua các yếu tố sau:
- TCP sử dụng khung báo nhận ACK để xác nhận từ bên nhận. Bên nhận phải phải gửi xác nhận lại cho bên gửi để thông báo rằng nó đã nhận được dữ liệu.
- TCP sử dụng một trường gọi là checksum để phát hiện dữ liệu bị lỗi
• Dữ liệu lỗi sẽ được truyền lại. TCP chỉ truyền lại dữ liệu bị lỗi hay bị mất mà không loại bỏ toàn bộ dòng dữ liệu.

• Dữ liệu được TCP đánh số thự tự. Các gói tin TCP có thể đến đích không đúng thứ tự nhưng chúng sẽ được ráp lại theo đúng thứ tự trước khi đưa lên tầng ứng dụng.
• TCP điều khiển luồng(flow-control), bên gửi và bên nhận TCP phải trao đổi, đàm phán với nhau về các thông tin liên kết nhằm ngăn chặn sự tràn bộ đệm và mất dữ liệu khi truyền.
TCP sử dụng các thuật toán điều khiển tắc nghẽn để chia sẻ dung lượng mạng giữa các người dùng.
1.2 Cấu trúc gói tin TCP
Đơn vị dữ liệu sử dụng trong TCP được gọi là Segment (phân đoạn). Khuôn dạng và nội dung của gói tin TCP gồm 2 phần :
- Phần mào đầu (Header).
- Phần dữ liệu (Data Payload).
1.2.1 Cấu trúc trong phần mào đầu gói tin TCP
Hình sau đây minh họa cấu trúc các trường trong phần mào đầu của gói tin TCP.

Hình 1 1: Cấu trúc các trường trong phần mào đầu gói tin TCP.

Trong gói tin TCP gồm nhiều trường, ý nghĩa của các trường như sau :
- Trường cổng nguồn (Source Port): Số hiệu cổng của máy gửi (trường này dài 16 bit).
- Trường cổng đích (Destination Port): Số hiệu cổng của máy đích ( trường này dài 16 bit ).
- Trường số thứ tự (Sequence Number): Số hiệu byte đầu tiên của phân đoạn từ khi bit SYN được thiết lập. Nếu bit SYN được thiết lập thì giá trị ban đầu của trường “Sequence Number” là số hiệu tuần tự khởi đầu (ISN) và byte dữ liệu đầu tiên là ISN + 1 (trường này dài 32 bit).
- Trường số báo nhận (Acknowledgment Number): Nếu cờ ACK bật thì giá trị của trường này chính là số thứ tự của byte tiếp theo mà bên nhận cần (trường này dài 16 bit).
- Trường dịch dữ liệu (Data offset): Trường có độ dài 4 bit qui định độ dài của phần mào đầu (tính theo đơn vị từ 32 bit). Phần mào đầu có độ dài tối thiểu là 5 từ (160 bit), và tối đa là 15 từ (480 bit).
- Trường dự trữ (Reserved): Các bit trong trường này dùng cho tương lai và có giá trị là 0 (trường này dài 4 bit).
- Trường cờ (flag): Gồm các bit điều khiển (dài 1 bit).
• URG: Cờ cho trường Urgent Pointer.
• ACK: Cờ cho trường Acknowledgement..
• PSH: Hàm Push.
• RST: Thiết lập lại đường truyền.
• SYN: Đồng bộ lại số thứ tự.
• FIN: Kết thúc truyền dữ liệu.
- Trường kích thước cửa sổ (Window Size): Số byte có thể nhận bắt đầu từ trường báo nhận (ACK) (trường này dài 16 bit).
- Trường kiểm tra tổng (Checksum): Gồm 16 bit kiểm tra cho cả phần mào đầu và dữ liệu.
- Trường con trỏ khẩn (Urgent Pointer): Nếu cờ URG bật thì giá trị trường này chính là số từ 16 bit mà số thứ tự trong trường “Sequence Number” cần dịch trái.
- Trường tùy chọn (Options): Đây là trường tùy chọn, nếu có thì độ dài của trường này là bội số của 32.

1.2.2 Cấu trúc phần dữ liệu trong gói tin TCP


w8MpLMvnDP403y6
- Bạn nào có tài liệu gì hay thì up lên đây chia sẻ cùng anh em.
- Ai cần tài liệu gì mà không tìm thấy ở forum, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status