11
Wireshark lab: TCP tin2k50 1 TÌM HI ỂU GIAO THỨC TCP A)Gi ới thiệu giao thức TCP Mô hình phân t ầng OSI -Dựa vào mô hình phân t ầng OSI: TCP l à một giao thức ở tầng giao vận (transport layer). Được sử dụng trong truyền dữ liệu giữa các ứng dụng. -Khi sử dụng giao thức TCP trong truyền dữ liệu. Dữ liệu sẽ được chia thành các đoạn tin-TCP segment Application (HTTP,Mail…) Transport (UDP,TCP…) Network (IP,ICMP…) Datalink (Ethernet,ADSL…) Physica (blts…)

Wireshark Lap TCP-1

Embed Size (px)

Citation preview

Page 1: Wireshark Lap TCP-1

Wireshark lab: TCP tin2k50

1

TÌM HIỂU GIAO THỨC TCPA)Giới thiệu giao thức TCP

Mô hình phân tầng OSI-Dựa vào mô hình phân tầng OSI: TCP là một giao thức ở tầnggiao vận (transport layer). Được sử dụng trong truyền dữ liệu giữacác ứng dụng.

-Khi sử dụng giao thức TCP trong truyền dữ liệu. Dữ liệu sẽ được chia thành các đoạn tin-TCPsegment

Application(HTTP,Mail…)

Transport(UDP,TCP…)

Network(IP,ICMP…)

Datalink(Ethernet,ADSL…)

Physica(blts…)

Page 2: Wireshark Lap TCP-1

Wireshark lab: TCP tin2k50

2

- Hai ứng dụng dùng TCP phải thiết lập một kết nối TCP tr ước khi dữ liệu có thể được truyền.Mỗi kết nối sẽ tồn tại giữa một cặp TCP socket với socket đ ược định nghĩa như là sự kết hợp củađịa chỉ IP, cổng được dùng, giao thức lớp vận chuyển. Quá trình thiết lập kết nối, khởi tạo socketbao gồm giá trị cổng nguồn và cổng đích, chỉ số tuần tự và ACK. Hình dưới mô tả tiến trình bắttay ba bước trong thiết lập một kết nối TCP và quá trình hủy một kết nối TCP .

Page 3: Wireshark Lap TCP-1

Wireshark lab: TCP tin2k50

3

B)Wireshark Lab: TCPTrong bài lab này chúng ta sẽ khám phá cách hoạt động TC P một cách chi tiết. Chúng ta sẽ l àmđược vậy nhờ phân tích các dấu vết các TCP segment đ ã gửi và nhận trong chuyển giao một file150KB từ máy tính của bạn đến một server từ xa. Chúng ta sẽ nghiên cứu cách sử dụng chuỗi sốcủa TCP và thừa nhận các số miễn là việc truyền dữ liệu là chắc chắn. Chúng ta sẽ thấy các thuậttoán điều khiển tắc nghẽn của TCP - slow start và sự tránh tắc nghẽn; và chúng ta sẽ thấy ngườinhận của TCP đã công khai cơ cấu điều khiển luồng. Chúng ta cũng sẽ cài đặt sự kết nối TCPtrong thời gian ngắn, và sẽ khám phá sự thực hiện của kết nối TCP giữa máy tính và server từ xa.

I)Bắt sự truyền một gói TCP đồ sộ từ máy tính của bạn đến một servertừ xa Trước khi bắt đầu sự thăm dò của chúng ta về TCP, chúng ta cần sử dụng wireshark để thu đ ượcdấu tích của sự truyền TCP của một file từ máy tính của bạn đến server từ xa. Bạn sẽ phải truynhập vào một tranh web mà cho phép bạn nhập vào tên một file được lưu trên máy tính của bạn,và sau đó truyền file đến web server sử dụng ph ương thức HTTP POST. Chúng ta sử dụngphương thức POST hơn là phương thức GET khi chúng ta muốn truyền một lượng dữ liệu lớn từmáy tính đến một máy tính khác. Dĩ nhiên bạn sẽ chạy wireshark suốt thời gian thu dấu tích củacác đoạn TCP được gửi và nhận từ máy tính của bạn.Hãy thực hiện các bước sau:-Khởi động trình duyệt web của bạn. Truy nhập vào: http://gaia.cs.umass.edu/wireshark -labs/alice.txt và lấy một bản copy mã ASCII của Alice in Wonderland. Lưu trữ file này ở đâu đótrên máy tính của bạn.-Tiếp theo truy nhập vào trang http://gaia.cs.umass.edu/wireshark -labs/TCP-wireshark-file1.html-Bạn sẽ thấy màn hình sau:

Page 4: Wireshark Lap TCP-1

Wireshark lab: TCP tin2k50

4

-Sử dụng nút browse trong form để nhập tên của file (với đường dẫn đấy đủ) trên máy tính củabạn chứa Alice in Wonderland. Vẫn chưa nhấn nút “upload alice.txt file”.-Bây giờ khởi động wireshark và bắt đầu bắt gói tin.-Trở lại trình duyệt web của bạn, nhấn vào nút “Upload alice.txt file” để upload file đến servergaia.cs.umass.edu. Một khi file đã được upload, một thông điệp chúc mừng ngắn sẽ hiển thị tr êntrình duyện web của bạn.-Dừng bắt gói tin bằng wireshark. Wireshark window của bạn sẽ trông t ương tự như windowdưới đây:

Page 5: Wireshark Lap TCP-1

Wireshark lab: TCP tin2k50

5

II) A first look at the captured trace (cái nhìn đầu tiên về dấu tích đãđược bắt)

Đầu tiên, hãy lọc những gói tin hiển thị trong wireshark window bởi việc nhập “tcp” v àocửa sổ filter trên đỉnh của cửa sổ wiresharkBạn sẽ thấy một chuỗi các thông điệp TCP v à HTTP giữa máy tính của bạn vàgaia.cs.umass.edu. Bạn sẽ thấy cái bắt tay 3 bước đầu tiên chứa một thông điệp SYN. Bạnsẽ thấy một thông điệp HTTP POST v à một chuỗi thông điệp “HTTP Continuation” đ ượcgửi từ máy tính đến ga ia.cs.umass.edu. Gọi lại từ thảo luận của chúng ta trong b ài labHTTP Wireshark, điều đó không giống như một thông HTTP Continuation –đây là cáchwireshark chỉ ra rằng có nhiều đoạn TCP được sử dụng để mang một thông điệp HTTP.Bạn sẽ thấy các đoạn TCP ACK được trả về từ gaia.cs.umass.edu đến máy tính của bạn.Hãy trả lời câu hỏi sau:1)Địa chỉ IP và cổng TCP nào được sử dụng bởi máy tính của bạn để truyền file đếngaia.cs.umass.edu?Để trả lời câu hỏi này bạn hãy chọn một thông điệp HTTP và xem xét chi tiết gói tin TCPđược sử dụng để mang thông điệp HTTP nay.Trả lời:Từ hình đó bạn có thể thấy-Địa chỉ IP của máy tính khách l à: 58.10.77.120-Cổng TCP: 5010

2)Địa chỉ IP của gaia.cs.umass.edu là gì? Cổng nào được dùng để gửi và nhận các đoạnTCP cho kết nối này?Trả lời:-Địa chỉ IP của gaia.cs.umass.edu l à: 128.119.245.12-Cổng để gửi và nhận các đoạn TCP là cổng 80III) TCP BasicsHãy trả lời các câu hỏi sau về các đoạn TCP:4)-Chuỗi số của đoạn TCP SYN được sử dụng để khởi tạo kết nối TCP giữa máy khách vàgaia.cs.umass.edu là 0.

-Cái để chỉ ra đoạn như một SYN segment là: Syn: Set=1

Page 6: Wireshark Lap TCP-1

Wireshark lab: TCP tin2k50

6

5)-Chuỗi số của đoạn SYNACK được gửi bởi gaia.cs.umass.edu đến máy tính khách trongtrả lời SYN là: 0

-Giá trị của trường ACKnowledgement trong đoạn SYNACK l à: 1-Cái để chỉ ra đoạn như một đoạn SYNACK là: Syn: Set =1 và Acknowledgment: Set =1

6)-Chuỗi số của đoạn TCP chứa lệnh HTTP POST là FRAME 4.( Note that in order to find thePOST command, you’ll need to dig intothe packet content field at the bottom of the Wiresharkwindow, looking for asegment with a “POST” within its DATA field.)

Page 7: Wireshark Lap TCP-1

Wireshark lab: TCP tin2k50

7

7)Xem xét đoạn TCP chứa HTTP POST như đoạn đầu tiên trong kết nối TCP.-Chuỗi số của 6 đoạn đầu tiên trong kết nối TCP (bao gồm cả đoạn chứa HTTP POST) là:

HTTP POST segment is No. 4,5,7,8,10,11. ACK segment is No. 6,9,12,14,15,16. Segment 1 Sequence Number is 1Segment 2 Sequence Number is 777

Segment 3 Sequence Number is 2203Segment 4 Sequence Number is 3629Segment 5 Sequence Number is 5055Segment 6 Sequence Number is 6481

send time ACK RTT Segment 1 0.359375 0.703125 0.34375 Segment 2 0.359375 0.734375 0.375 Segment 3 0.703125 1.062500 0.359375Segment 4 0.703125 1.093750 0.390625Segment 5 0.734375 1.109375 0.375Segment 6 0.734375 1.140625 0.40625

Calculated EstimatedRTT : EstimatedRTT = 0.875 * EstimatedRTT + 0.125 * Sa mpleRTTEstimatedRTT of Segment 1 = 0.34375EstimatedRTT of Segment 2 = 0.875 * 0.34375 + 0.125 *0.375 = 0.3475EstimatedRTT of Segment 3 = 0.875 * 0.3475 + 0.125 *0.359375 = 0.3489EstimatedRTT of Segment 4 = 0.875 * 0.3489 + 0.125 *0.390625 = 0.3541

EstimatedRTT of Segment 5 = 0.875 * 0.3541 + 0.125 *0.375 = 0.3567 EstimatedRTT of Segment 6 = 0.875 * 0.3567 + 0.125 * 0.40625 = 0.3628

HTTP POST segment

Page 8: Wireshark Lap TCP-1

Wireshark lab: TCP tin2k50

8

8) Chiều dài của mỗi đoạn TCP trong 6 đoạn TCP đầu ti ên?Chiều dài của đoạn TCP đầu tiên là 776 bytes và chiều dài của các đoạn TCP khác là 1426 bytes

9) Lượng nhỏ nhất vùng buffer có sắn đã thông báo ở bên nhận cho toàn bộ dấu tích? Bên nhậncó thiếu buffer để bên gửi tiết lưu lại không?Trả lời: nhỏ nhất vùng buffer có sắn đã thông báo ở bên nhận cho toàn bộ dấu tích là 5840 bytes(First Connection) . Bên nhận không thiếu buffer. 10) Có cứ sự truyền lại các đoạn trong dấu tích không? Bạn đ ã kiểm tra gì để trả lời câu hỏinày?Trả lời: Không có sự truyền lại các đoạn trong dấu tích file. Để kiểm tra điều n ày em đã kiểm trasự truyền lại các đoạn từ Time - Sequence Graph (stevens)

Page 9: Wireshark Lap TCP-1

Wireshark lab: TCP tin2k50

9

11) Bao nhiêu dữ liệu người nhận thừa nhận tại một ACK?Trả lời: acknowledged sequence number acknowledged data

ack1 1 776 ack2 777 1426 ack3 2203 1426 ack4 3629 1426 ack5 5505 1426 ack6 6481 1426 ack7 7907 1062 . . .

. . . . . .

12. Thông lượng (số bytes được truyền trên một đơn vị thời gian) trong kết nối TCP? Giải thíchlàm thế nào tính được giá trị này? average throughput of a connection = (0.75*W)/RTTTrả lời: Thông lượng trung bình của một kết nối = (0.75*W)/RTT W is window size ( bytes )W là kích thước windowRTT là round-trip time (thời gian gửi một gói tin TCP đến khi nhận đ ược ACK cho gói tinđó)

window size của đoạn đầu tiên là 65535 .RTT của đoạn đầu tiên là 0.34375 .Thông lượng trung bình của kết nối = (0.75*65535 )/0.34375

= 142,985.45 bytes/sec= 142 Kbytes/sec

Page 10: Wireshark Lap TCP-1

Wireshark lab: TCP tin2k50

10

IV) Điều khiển tắc nghẽn trong TCPBây giờ hãy khảo sát lượng dữ liệu được gửi trong một đơn vị thời gian từ client đến server.Hơn nữa hãy tính dữ liệu thô trong wireshark window. Chúng ta s ẽ sử dụng tiện ich vẽ đồi thịTCP của wireshark – Time-Sequence-Graph(Stevens) để vẽ ra đồ thị dữ liệu

Chọn một đoạn TCP trong danh sach các gói tin đ ã bắt của wireshark. Sau đó chọnmenu : Statistics->TCP Stream Graph-> Time-Sequence-Graph(Stevens)

Tại đây mỗi điểm thể hiện một đoạn TCP, vẽ đồ thị sequence number của đoạn hay thời gian m ànó được gửi đi.13) Hãy sử dụng công cụ đồ vẽ đồ thị Time -Sequence-Graph(Stevens) để hiển thị sequencenumber cũng như thời gian của đoạn được gửi từ client đến gaia.cs.umass.edu server. Bạn có thểnhận biết điểm đầu và điểm kết thúc của đoạn slowstart của TCP v à sự tiếp quản tránh tắc nghẽnở đâu không? Nhận xét các cách m à bằng cách đó dữ liệu đều đặn khác với cách c ư xử lí tưởnghóa của TCP mà chúng ta đã nghiên cứu trong bài text.Trả lời:Nó có thể chuyển động trên một mạng (bottle-neck link). Khi TCP kết nối giữa bên gửi và bênnhận, nó có một giá trị(đó là một window size) mà được sử dụng để sửa giá trị thông tin có thểđể gửi đến các người nhận. vị vậy window size là một giá trị thỏa thuận giữa bên gửi và bênnhận có bao nhiêu trong đoạn trước khi gửi14) Trả lời từng câu trong 2 câu hỏi ở tr ên cho dấu tích mà bạn tập hợp khi truyền một file từmáy tính của bạn đến gaia.cs.umass.eduTrả lời: Khi có nhiều di chuyển trên mạng. Người gửi TCP phải sử dụng thuật toán AIMD đểgiảm giá trị window size.

Page 11: Wireshark Lap TCP-1

Wireshark lab: TCP tin2k50

11