Thiết lập cửa sổ chống tắc nghẽn tối đa maximal congestion Tạo ra một mạng cần mô phỏng sử dụng NS-2 giống như trên hình window size của luồng TCP là 32 gói.. - TCP/IP không chỉ gồm 2
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA ĐIỆN TỬ VIỄN THÔNG
BÁO CÁO BÀI TẬP LỚN
CƠ SỞ MẠNG THÔNG TIN
Đề tài : Kiểm tra thuật toán điều khiển luồng sử dụng TCP
Giáo viên hướng dẫn : Trương Thu Hương
Sinh viên thực hiện : Đỗ Anh Việt 20083126
Vũ Thanh Hà 20080836 Lợi Quang Hảo 20080893 Chhoeung Yean 20083634 Lương Thế Diện 20080442 Phạm Văn Phong 20081973
Hà Nội- 11/2011
Trang 2MỤC LỤC
Trang 3MỞ ĐẦU
Mạng Internet là mạng máy tính rộng lớn sử dụng nhiều công nghệmạng khác nhau và cho phép chia sẻ tài nguyên mạng một cách phântán Chính khả năng này là nguyên nhân chính đem lại sự thành công
to lớn của công nghệ Internet Trong phần lớn lưu lượng trên mạngInternet, lưu lượng TCP/IP đóng góp một phần đáng kể vì phần lớnứng dụng trên mạng Internet, ví dụ như lướt Web và truyền file, đều
sử dụng giao thức TCP/IP
Trang 4I Yêu cầu : Kiểm tra thuật toán điều khiển luồng sử
dụng TCP
TCP (Transmission Control Protocol) là giao thức cho phép truyền
dữ liệu một cách tin cậy giữa 2 máy tính bất kỳ TCP dựa vào phươngpháp điều khiển luồng theo cửa sổ trượt Mặt khác, UDP là giao thứckhông đưa ra các cơ chế truyền tin một cách tin cậy, tuy nhiên UDPlại có đặc điểm là đơn giản, trễ truyền dữ liệu nhỏ, hiệu suất truyềnlớn nên thích hợp cho các ứng dụng thời gian thực Một câu hỏi đặt ra
là khi truyền cả TCP và UDP trên mạng Internet thì 2 giao thức trênchia sẻ băng thông như thế nào, hoạt động của chúng ra sao trongtrường hợp mạng xảy ra tắc nghẽn Bài tập
này cho phép sinh viên khảo sát và trả lời các câu hỏi trên thông quacác bước như sau:
Tạo ra một mạng cần mô phỏng sử dụng NS-2 giống như trên hình
Tạo ra một mạng cần mô phỏng sử dụng NS-2 giống như trên hình
vẽ Tạo ra 2 kết nối TCP và UDP sử dụng nguồn/đích TCP và nguồn/đích UDP Nguồn của TCP sử dụng TCP Reno (TCP Reno là mộtphiên bản của TCP đã được hỗ trợ trong NS-2)
Thiết lập cửa sổ chống tắc nghẽn tối đa (maximal congestion
Tạo ra một mạng cần mô phỏng sử dụng NS-2 giống như trên hình
window size) của
luồng TCP là 32 gói
Kích thước các gói UDP và TCP là 512 bytes
Tạo ra một mạng cần mô phỏng sử dụng NS-2 giống như trên hình
Chạy mô phỏng trong 300s
Tạo ra một mạng cần mô phỏng sử dụng NS-2 giống như trên hình
Các nguồn UDP và TCP đều phát gói liên tục Luồng UDP có tốc độ
Tạo ra một mạng cần mô phỏng sử dụng NS-2 giống như trên hình
phát là 512kbit/s (sử dụng nguồn CBR)
Trang 57.1 Chạy mô phỏng và đo băng thông trung bình của luồng TCP(băng thông trung bình được tính bằng: Số byte được truyền đi củaluồng TCP/thời gian mô phỏng)
7.2 Lặp lại thí nghiệm 7.1 trong trường hợp tốc độ phát của luồnUDP là 1 Mbit/s, 2
Mbit/s, 3 Mbit/s và 4Mbit/s
7.3 Vẽ đồ thị thể hiện băng thông của TCP so sánh với băng thôngcủa UDP
7.4 Trong trường hợp tốc độ của luồng UDP là 500kbit/s và 4Mbit/s,
II Phân chia công việc
STT Họ và Tên Công việc
TCP&UDP
NỘI DUNG
A Cơ sở lý thuyết
Trang 6I Giới thiệu bộ giao thức TCP/IP
Trước khi đi vào hai giao thức TCP và UDP, ta tìm hiểu về bộ giaothức TCP/IP
- Để các máy tính có thể liên lạc với nhau qua mạng, chúng phải
cùng chung sử dụng một ngôn ngữ hay gọi là môt giao thức(Protocol) Giao thức là 1 hệ luật và chuẩn cho phép các máytính liên lạc được với nhau
- TCP/IP là viết tắt của Transmission Control Protocol (Giao thức
điều khiển truyền thông)/Internet Protocol (Giao thức Internet)
- TCP/IP không chỉ gồm 2 giao thức mà thực tế nó là tập hợp
nhiều giao thức gọi là bộ giao thức (Suite of Protocol)
- Để các máy tính trao đổi dữ liệu với nhau, TCP/IP sử dụng mô
hình truyền thông 4 tầng ( nằm trong mô hình 7 lớp OSI):
Tầng ứng dụng (Application Layer)
Tầng giao vận (Transport Layer)
Tầng liên mạng (Internet Layer)
Tầng giao diện mạng (Network Interface Layer)Mỗi giao thức của họ TCP/IP đều thuộc một trong các tầng này
II Transmission Control Protocol (TCP)
Trang 7TCP là giao thức cho phép truyền dữ liệu một cách tin cậy giữa 2 máytính bất kỳ dựa trên phương pháp điều khiển luồng theo cửa sổ trượt.Phía phát được phép phát liên tục nhiều gói Số gói cực đại được phépphát khia chưa nhận được ACK từ bên thu là W- kích thước cửa sổ.
1 Mô tả TCP
1.1 Mục đích của TCP và điều khiển luồng theo cơ chế của sổ
- Điều chỉnh tốc độ truyền các gói dữ liệu sao cho phù hơp với
băng thông khả dụng
- Tránh hiện tượng nghẽn mạng
- Tạo kết nối tin cậy bằng cách truyền lại các gói tin bị thất lạc.
Để điều khiển tốc độ truyền, số lượng các gói tin chưanhận (những gói tin mà nguồn chưa nhận được thông tinphản hồi từ đích là đã nhận được) bị giới hạn bởi một tham
số gọi là cửa sổ tắc nghẽn Điều này có nghĩa là nơi truyềncác gói tin buộc phải chờ và ngừng truyền các gói tin mà
nó truyền trước đó để chắc rằng đích đã nhận được dữ liệu
sử dụng bản tin xác nhận Để các gói tin được xác nhận và
có khả năng truyền lại khi bị thất lạc, mỗi gói tin đượctruyền đi phải có một số thứ tự
1.2 Các bản tin xác nhận
- Mục tiêu của các bản tin xác nhận:
Điều chỉnh tốc độ truyền của TCP, đảm bảo rằng các góitin chỉ được truyền khi mà các gói tin khác đã được truyền
ra khỏi mạng
Tạo đường kết nối đáng tin cậy bằng cách truyền tới nútnguồn các thông tin yêu cầu để truyền lại các gói tin khôngđến được đích
Làm thế nào mà đích đến của các gói tin biết là gói tin đó
có bị thât lạc?
Làm thế nào mà ta biết được một gói tin bị mất?
Gói ACK (Acknowlegde) chứa thông tin gì?
- Gói ACK cho nguồn gửi tin biết số thứ tự của gói tin mà đích
đang chờ Ví dụ : Giả sử gói tin 1,2, 6 đến đích theo thứ tự thì
Trang 8khi gói tin số 6 đến, đích gửi một gói tin ACK thông báo rằng
nó đang đợi gói tin số 7 Nếu gói tin số 7 đến thì đích yêu cầugói tin số 8 Giả sử gói tin số 8 bị thất lạc, gói tin số 9 có thể đếnđích được Tại thời điểm đó, đích gửi gói tin ACK có tên là
“ACK lặp” thông báo với nguồn gửi tin rằng nó chờ gói tin số 8.Phương pháp này được gọi là “ACK ẩn” (implicit ACK).Phương pháp này hiệu quả ngay cả khi mất gói tin ACK Hơnnữa, giả sử rằng gói tin ACK thông báo rằng đích đang đợi góitin số 5 bị mất Khi gói tin ACK tiếp theo đến và thông báo rằngđích đang đợi gói số 6, thì nguồn hiểu rằng đích đã nhận đượcgói số 5, vì vậy thông tin gửi bởi ACK đã bị mất được suy ra từgói tin ACK tiếp theo
- Gói tin TCP bị coi là mất nếu như:
Có 3 gói tin ACK giống nhau thông tin cho nguôn về cùngmột gói tin được gửi
Khi một gói tin truyền đi, có một đồng hộ đếm thời gian.Nếu gói tin ACK của gói tin đã được truyền không đếntrong khoảng thời gian To, có nghĩa là “quá hạn” (Time-out) và gói tin coi như bị mất Chọn To bằng cách nguồnước tính thời gian quay vòng RTT (round trip-time) trungbình bằng thời gian cần thiết cho một gói tin đến đích cộngvới thời gian cho gói tin ACK quay trở lại thông báo chonguồn
- Để giảm số lượng gói tin ACK trong hệ thống, TCP thường
xuyên sử dụng lựa chọn “ACK trễ” (delayed ACK) tại đó 1 góitin ACK được truyền chỉ cho d gói tin đến đích Tuy nhiên, trễ 1gói tin ACK đến tận khi d>1 gói tin được nhận có thể dẫn đếnviệc đình trệ hoàn toàn trong trường hợp kích thước cửa số nhỏ
Vì vậy, nếu gói tin đầu tiên (nằm trong d gói tin đang chờ đợi)đến đích thì sau một khoảng thời gian ngắt quãng (thường là100ms) nếu d gói tin vẫn chưa đến thì một bản tin ACK đượctạo thành mà không cần chờ đợi thêm nữa
Trang 91.3 Thuật toán điều khiển luồng TCP
- Thuật toán điều khiển luồng TCP sử dụng cơ chế cửa sổ và
thông báo đã nhận (ACK) đầu cuối tới đầu cuối để đảm bảotruyền tin một cách tin cậy trong mạng Bên gửi duy trì một cửa
sổ tắc nghẽn, wnd c , đây là số gói tin có thể được máy gửi đitrong khi chờ bản tin ACK từ bên nhận Sau khi nhận được góitin số liệu, bên nhận chuẩn bị một bản tin ACK để thông báocho bên gửi về các bản tin đã nhận được Bên nhận cũng thôngbáo cho bên gửi một cửa sổ nhận, wnd r , là kích thước của bộđệm dành cho kết nối này Bên gửi không được nhiều hơn } ,min{ wnd wnd r c gói tin trong khi chờ nhận bản tin ACK Cửa
sổ nhận cho phép bên nhận điều khiển luồng vì nếu bên nhậnkhông thể xử lý kịp thông tin với tốc độ hiện thời, cửa sổ nhận
sẽ được làm nhỏ đi, và bên gửi sẽ giảm tốc độ gửi của mình.Cửa sổ tắc nghẽn có nhiệm vụ điều khiển luồng trong điều kiệntắc nghẽn Việc mất gói tin được phát hiện thông qua timeoutcủa các gói tin chưa được thông báo nhận hoặc nhận được nhiềubản tin ACK giống nhau, hoặc nhận được bản tin SAC từ bênnhận Với giao thức TCP, việc mất gói tin đồng nghĩa với tắcnghẽn trong mạng vì mất gói tin được giả thiết là do tràn bộđệm do lưu lượng vượt quá dung lượng trên tuyến kết nối đầucuối tới đầu cuối Bên gửi cập nhật kích thước cửa sổ tắc nghẽnkhi nhận được bản tin ACK cho các gói tin gửi đi và khi pháthiện tắc nghẽn Sau một RTT không có tắc nghẽn, cho mỗi bảntin ACK nhận được, cửa sổ tắc nghẽn được cập nhật theo côngthức:
Trang 10 Kích thước của cửa sổ thay đổi tùy theo trạng thái củamạng Khi cửa sổ nhỏ, kích thước của nó có thể tăngnhanh chóng, nhưng khi đạt đến một giá trị nhất định thìkích thước của nó chỉ có tăng chậm Khi hiện tượng tăngnghẽn mạng được pháp hiện, kích thước cửa sổ giảmmạnh Cơ chế động này cho phép giải quyến tắc nghẽnnhanh chóng và sử dụng hiệu quả băng thông của mạng.
- Wth : ngưỡng bắt đầu chậm Cửa sổ bắt đầu ở giá trị gói tin đơn
lẻ được truyền Khi gói tin ACK của gói tin này quay trở lại, ta
có thể truyền 2 gói tin Đối với mỗi gói tin ACK của 2 gói tinnày, cửa sổ tăng thêm 1 giá trị, mục đích là khi các gói tin ACKcủa 2 gói tin này quay trở lại, ta có thể truyền 4 gói tin hay cửa
sổ tăng theo số mũ Giai đoạn này được gọi là “bắt đầu chậm”
do thay vì cửa sổ to dẫn lên nhanh chóng, nó chỉ lớn lên từ từnếu ta bắt đầu đến với giá trị W = Wth
- Nếu W = Wth , ta chuyển qua giai đoạn “tránh tắc nghẽn” Khi
đó, mỗi gói tin ACK quay lại sẽ làm cửa sổ W tăng lên [1/W].Sau khi truyền W gói tin, W tăng lên 1 Nếu ta truyền W gói tincần t thời gian thì truyền W+1 cần t+RTT và W+2 cầnt+2RTT, vv Ta thấy độ lớn của cửa sổ thay đổi tuyến tính.1.4 Mất các gói tin
- Không chỉ W động mà Wth cũng như vậy Nó được cố địnhtrong TCP khi một gói mất thì giá trị của W giảm đi một nửa
- Có một số phương pháp cải thiện TCP như sau:
Phương pháp Tahoe: Bất kể khi nào pháp hiện ra một góitin bị mất thì cửa sổ giảm giá trị xuống 1 đơn vị và giaiđoạn slow start bắt đầu Điều này làm giảm kích cỡ cửa sổnhanh chóng và cũng như vậy với tốc độ truyền tin
Phương pháp New-Reno: Cửa sổ giảm xuống 1 nếu nhưphát hiện ra gói tin bị mất trong thời gian quá hạn Khi mộtgói tin mất bị phát hiện ra thông qua gói tin ACK bị lặp,cửa sổ giám sát tắc nghẽn giảm xuống ½ Giai đoạn slowstart sẽ không khởi tạo và ta vẫ ở trạng thái “tránh tắc
Trang 112 Hoạt động của TCP
TCP đòi hỏi thiết lập kết nối trướckhi bắt đầu gửi dữ liệu
và kết thúc kết nối khi việc gửi dữ liệu hoàn tất Cụ thểTCP có ba pha:
Thiết lập kết nối
Truyền dữ liệu
Kết thúc kết nối
Sơ đồ trạng thái của TCP
III User Datagram Protocol (UDP)
Dùng UDP, chương trình trên mạng máy tính có thể gửi những
dữ liệu ngắn được gọi là datagram tới máy tính khác UDP khôngcung cấp sự tin cậy và thứ tự truyền nhận, các gói dữ liệu có thể đếnkhông đúng thứ tự hoặc mất mà không thông báo Tuy nhiên, UDP
Trang 12nhanh và hiệu quả hơn đối với những mục tiêu như kích thước nhỏ vàyêu cầu khắt khe về thời gian , hữu dụng đối với việc trả lời các truyvấn với số lượng lớn người yêu cầu.
1 Khái niệm cơ bản
- Packet: Trong truyền số liệu, một packet là một dãy các số nhị
phân, biểu diễn dữ liệu và tín hiệu điều khiển, các gói tin nàyđược truyền đi và chuyển tới một host Trong gói tín, thông tinđược sắp xếp theo một khuôn dạng cụ thể
- Datagram: Một datagram là một gói tin độc lập, tự chứa, mang
đầy đủ dữ liệu định tuyến từ nguồn tới đích mà không cần thôngtin thêm
- MTU (Maximum Transmission Unit) là một đặc trưng của tầng
liên kết, mô tả số byte dữ liệu tối đa có thể truyền trong một góitin Mặt khác, MTU là gói dữ liệu lớn nhất mà môi trường mạngcho trước có thể truyêng Ví dụ, Etherner có MTU cố định là
1500 byte Trong UDP, nếu kích thước của một datagram lớnhơn MTU, IP sẽ thực hienej phân đoạn, chia datagram thành cácphần nhỏ hơn (segment) vì vậy, mỗi đoạn có kích thước nhỏ hơnMTU
- Port:UDP sử dụng các cổng để ánh xạ dữ liệu đến một tiến trình
cụ thể đang chạy trên một máy tính UDP định hướng cho mộtpacket tại vị trí xác định bằng cách sử dụng số hiệu cổng đượcxác định trong header của datagram Các cổng được biểu diễnbởi các số 16 bit Các cổng được xem như là điểm cuối của cácliên kết logic
- TTL (Time To Live): Giá trị TTL là giá trị giới hạn trên các
router mà datagram có thể đi qua Giá trị TTL ngăn ngừa các góitin khỏi bị kẹt trong các vòng lặp định tuyến vô hạn TTL đượckhởi tạo từ bên gửi và giá trị được giảm đi bởi mỗi router quản
lý datagram Khi TTL = 0, datagram bị drop (loại bỏ)
- Multicasting là phương pháp dựa trên chuẩn có tính chất mở để
phân phối các thông tin giống nhau trên nhiều người dùng
Trang 13Multicasting là một đặc trưng chính của UDP cho phép ta truyềntin theo kiểu một – nhiều Ví dụ: gửi thư điện tử nhiều ngườinhận, đài phát thanh trên Internet….
2 Hoạt động của UDP
Khi một ứng dụng dựa trên giao thức UDP gửi một dữ liệu tớimột host khác trên mạng, UDP thêm vào một header có độ dài 8byte chữa các số liệu cổng nguồn và đích, cùng với tổng chiềudài dữ liệu và thông tin checksum IP thêm vào header của riêng
nó vào đầu mỗi datagram để tạo nên một datagram IP
+ Bit 0-15 Bit 16-31
0 Source Port Destination Port
32 Length Checksum
64 Data
- Source port: Trường này xác định cổng của người gửi thông tin
và có ý nghĩa nếu muốn nhận thông tin phản hồi từ người nhận.Nếu không dùng đến thì đặt nó bằng 0
- Destination port: Trường xác định cổng nhận thông tin và
trường này là cần thiết
- Length: Trường có độ dài 16 bit xác định chiều dài của toàn bộ
datagram : phần header và dữ liệu: Chiều dài tối thiểu là 8 bytekhi gói tin không có dữ liệu chỉ có header
- Checksum có 16 bit dùng cho việc kiểm tra lôi của phần header
và dữ liệu
Trang 14IV So sánh giữa TCP và UDP
- Giống nhau
Đều là các giao thức của bộ giao thức TCP/IP
Đều có chức năng kết nối các máy tính lại với nhau
và có thể gửi dữ liệu cho nhau
- Khác nhau: Các header của TCP và UDP khác nhau ở kích
thước (20 và 8 byte) do TCP hỗ trợ nhiều chức năng hữu ích hơn (như khả năng phục hồi lỗi) còn UDP dùng ít byte hơn
Dùng cho mạng WAN Dùng cho mạng LAN
Cần thiết lập kêt nối Không cần thiết lập kết nối
Sử dụng cơ chế điều khiển
luồng và chống tắc nghẽn
Không có cơ chế điều khiển luồng và chống tắc nghẽnKhông cho phép mất gói tin Cho phép mất gói tin
Đảm bảo việc truyền data Không đảm bảo việc truyền
dataTốc độ thấp hơn UDP Tốc độ truyền cao
B Quá trình thực hiện
1 Code
# Khoi tao
set ns [new Simulator]
# Dinh nghia mau cho cac luong du lieu
$ns color 1 Red
$ns color 2 Blue
# Tao 2 file chua thong tin bang thong
set thru(1) [open thru1.tr w]
set thru(2) [open thru2.tr w]
# Tao ra filetrace luu tat ca thong tin ve mang
set filetrace [open out.tr w]
$ns trace-all $filetrace