Ethereal: Web Browsing (DNS, TCP, HTTP) Mục tiêu Trong bài tập này, chúng ta sẽ phân tích kiến trúc phân tầng của các giao thức mạng bằng cách sử dụng một trình duyệt. Chúng ta kiểm tra cấu trúc header của các PDU tại tầng IP, Transport và Ứng dụng. Đặc biệt, chúng ta sẽ quan sát cách các địa chỉ và số hiệu cổng kết hợp với nhau để tạo nên các ứng dụng đầu cuối. Giao thức được kiểm tra • Địa chỉ frame, IP • Truy vấn và Hồi đáp DNS • Bắt tay 3 bước, số ACK, số thứ tự của TCP • Các thông điệp GET và Response của HTTP Tài liệu tham khảo Sách lý thuyết của thầy Hồ Đắc Phương. Tài liệu tham khảo về Ethereal/Wireshark trên website môn học. Các bước kiểm tra 1. Khởi động Ethereal/Wireshark, lựa chọn các filter tương ứng với các giao thức trên. 2. Bật trình duyệt và gõ địa chỉ URL của một website nào đó nhưng không nhấn ENTER. 3. Bật chế độ Capture của Ethereal/Wireshark 4. Truy cập vào website bằng cách nhấn Enter trong trình duyệt 5. Khi trang web được tải xong, ngừng chế độ bắt gói tin của Ethereal/Wireshark. Lưu kết quả ra file. 6. Lưu trang web đã hiển thị, dùng để tham chiếu với kết quả. Các câu hỏi phân tích giao thức Để trả lời các câu hỏi sau, dùng Ethereal/Wireshark để mở file kết quả đã lưu ở trên. 1. Các giao thức có gói tin đã được bắt • Kiểm tra cột Protocol trong bảng kết quả của cửa sổ Ethereal/Wireshark. Nếu chưa đủ 3 giao thức như đã nêu ở trên thì làm lại phần Các bước kiểm tra. 2. Gói tin IP và datagram UDP • Kiểm tra frame cho gói tin DNS đầu tiên được gửi bởi client a. Xác định địa chỉ Ethernet và IP của client. 00:17:c4:09:fa:2b 192.168.1.36 b. Nội dung của trường Type trong frame Ethernet là gì? IP (0x0800) Chuẩn cho việc chuyển gói tin IP Datagram qua mạng Ethernet c. Địa chỉ IP và Ethernet đích là gì và tương ứng với máy đích nào? 192.168.1.1, 40:4a:03:3e:6c:4a. Hãy giải thích tại sao điều này lại phụ thuộc vào cách mà máy của bạn được kết nối vào Internet. Bởi vì địa chỉ IP và Ethernet của local name server ở mỗi nơi mà máy tính kết nối với mạng là khác nhau. 1 • Kiểm tra IP header của gói tin DNS đầu tiên được gửi bởi client. a. Độ dài của header? 20 bytes, Độ dài của toàn bộ gói tin? 68 b. Xác định kiểu của giao thức. IP version 4 Kiểu và số của giao thức trong trường dữ liệu là gì? UDP(17) • Kiểm tra UDP header của gói tin DNS đầu tiên được gửi bởi client. a. Xác định số hiệu cổng tạm của máy khách 57770 và số hiệu cổng được mở ở server 53. Kiểu của giao thức tầng ứng dụng trong dữ liệu là gì? DNS (query) b. Kiểm tra xem trường độ dài trong UDP header có phù hợp với thông tin về độ dài của IP header không? Chuẩn 20 = 68 - 48 3. DNS • Kiểm tra thông điệp truy vấn DNS trong gói tin DNS được gửi bởi client. a. Trường nào cho biết đâu là thông điệp query hay response? 0x0100 Standard query, 0 = Response: Message is a query b. Thông tin gì được chứa trong thân của truy vấn? www.coltech.vnu.edu.vn: type A, class IN c. ID của giao dịch truy vấn là gì? 0x82ff d. Xác định các trường chứa kiểu và lớp của truy vấn? Type: A (Host address), Class: IN (0x0001) • Kiểm tra gói tin chứa DNS response cho truy vấn trên a. Địa chỉ IP và Ethernet của gói tin này là gì? 192.168.1.1 (40:4a:03:3e:6c:4a) b. Kích thước của gói tin IP và UDP datagram chứa response này?344, 324Có dài hơn của truy vấn không? Tất nhiên là dài hơn rùi. c. Kiểm tra xem ID của giao dịch trong thông điệp hồi đáp (response) có đúng không? 0x82ff chuẩn nè d. Bao nhiêu câu trả lời được cung cấp trong thông điệp phản hồi? So sánh số cấu trả lời với giá trị Time-to-live của chúng. 1, Time to live: 4 hours, 32 minutes, 38 seconds 4. Bắt tay ba bước TCP • Xác định frame chứa segment TCP đầu tiên trong ba bước bắt tay dùng để thiết lập kết nối giữa http client và server. a. Địa chỉ IP và Ethernet nguồn, giá trị trường giao thức và kiểu trong segment này là gì?192.168.1.36 (00:17:c4:09:fa:2b), SYN, TCP b. Địa chỉ IP và Ethernet đích của segment đầu tiên này là gì? Tương ứng với máy nào? 203.113.130.201, 40:4a:03:3e:6c:4a c. Xác định cổng tạm thời trên máy khách 49616 và kiểm tra xem cổng được mở trên server có đúng với cổng được quy định của HTTP không?80, đúng nè. d. Chiều dài của segment TCP này? 52 e. Giá trị sequence number đầu tiên cho các segment từ client đến server là gì?0 Kích thước cửa sổ ban đầu? 8192 Kích thước segment tối đa? 1460 f. Tìm ký tự hexa chứa bit cờ SYN. 0x02 • Xác định frame chứa segment thứ hai trong bắt tay 3 bước. a. Khoảng cách thời gian giữa hai lần bắt segment thứ nhất và thứ hai? Nov 17, 2010 19:03:27.177442000 - Nov 17, 2010 19:03:26.23088900 = 27.177442000 - 26.23088900 b. Xác định giá trị của các trường sau trong frame: 2 • Địa chỉ Ethernet nguồn 40:4a:03:3e:6c:4a, đích 00:17:c4:09:fa:2b và trường kiểu trong frame này Type: IP (0x0800). • Địa chỉ IP nguồn 203.113.130.201, đích 192.168.1.36 và các số hiệu cổng trong gói tin IP , nguồn 80, đích 49616 • Số ACK trong segment TCP 1 • Giá trị các bit cờ I. 0 = Congestion Window Reduced (CWR): Not set II. .0 = ECN-Echo: Not set III. 0. = Urgent: Not set IV. 1 = Acknowledgement: Set V. 0 = Push: Not set VI. .0 = Reset: Not set VII. 1. = Syn: Set VIII. 0 = Fin: Not set c. Độ dài của TCP segment? 32 d. Giá trị sequence number đầu tiên của kết nối từ server tới client 0? Kích thước segment tối đa 1460? • Xác định frame chứa segment cuối cùng trong bắt tay 3 bước a. Khoảng cách thời gian giữa hai lần bắt segment thứ hai và cuối cùng? So sánh với câu a phần trên và giải thích sự khác nhau đó. b. Xác định các giá trị sau trong segment TCP • Sequence number và ACK • Các bit cờ và kích thước của cửa sổ c. Độ dài của segment TCP thứ 3 5. HTTP GET • Xác định frame chứa thông điệp HTTP GET a. Kiểm tra xem giá trị sequence number 1 và ACK 1 trong TCP header có đúng không? b. Kiểm tra các bit cờ trong TCP header. Tại sao 2 bit cờ được bật? c. Độ dài của TCP segment 605 - 20 và payload? • Xem xét nội dung thông điệp GET a. Đếm số octet trong thông điệp và kiểm tra xem số này có phù hợp với thông tin về độ dài trong TCP header không. b. Sequence number tiếp theo trong segment ngay sau segment này từ server là gì? 6. HTTP Response • Khoảng cách thời gian giữa 2 lần bắt thông điệp GET và thông điệp Response tương ứng? • Xác định xem server trả lời bằng một thông điệp HTTP hay chỉ đơn giản là một TCP ACK segment. Xác định sequence number của segment đó? • Xem xét segment chứa thông điệp HTTP response a. Độ dài của payload trong TCP segment? b. Kiểm tra xem có cờ gnào được bật không và giải thích tại sao lại như vậy? c. Số thứ tự biên nhận trong segment tiếp theo từ client có thể là gì? • Xem xét thông điệp HTTP response a. Mã kết quả trong thông điệp HTTP response là gì? 3 . Ethereal: Web Browsing (DNS, TCP, HTTP) Mục tiêu Trong bài tập này, chúng ta sẽ phân tích kiến trúc phân tầng của. Ethereal/Wireshark 4. Truy cập vào website bằng cách nhấn Enter trong trình duyệt 5. Khi trang web được tải xong, ngừng chế độ bắt gói tin của Ethereal/Wireshark. Lưu kết quả ra file. 6. Lưu trang web đã hiển thị,. Ethereal/Wireshark trên website môn học. Các bước kiểm tra 1. Khởi động Ethereal/Wireshark, lựa chọn các filter tương ứng với các giao thức trên. 2. Bật trình duyệt và gõ địa chỉ URL của một website nào