Phân tích bắt tay 3 chiều TCP trong Wireshark

Phan Tich Bat Tay 3 Chieu Tcp Trong Wireshark



Transmission Control Protocol là một giao thức rất quan trọng trong tầng truyền tải của mô hình OSI hay TCP/IP. Có nhiều ưu điểm trong TCP như:

  • TCP thực hiện truyền lại nếu bất kỳ dữ liệu đã gửi nào không được người nhận xác nhận trong một thời gian.
  • TCP thiết lập một số kết nối trước khi gửi dữ liệu. Chúng tôi gọi kết nối đó là bắt tay 3 bước.
  • TCP có cơ chế kiểm soát tắc nghẽn.
  • TCP có thể phát hiện lỗi bằng một số phương pháp.

Chúng ta hãy tìm hiểu chủ yếu về bắt tay 3 bước của TCP. Hãy cũng tìm hiểu về các trường quan trọng trong Wireshark cho bắt tay 3 bước.







Bắt tay 3 bước

Có ba trao đổi khung xảy ra trong quá trình bắt tay 3 bước:



  1. đồng bộ hóa
  2. XEM+ACK
  3. xác nhận

Khung đầu tiên luôn được máy khách gửi đến máy chủ. Hãy để chúng tôi hiểu điều này từ một sơ đồ đơn giản:



“KHÁCH HÀNG” “CHỦ”

Frame1: Client gửi SYN frame đến server----------------------------------->

<---------------------------------------- Máy chủ gửi khung SYN+ACK tới khách hàng: Frame2

Frame3: Client gửi khung ACK đến server----------------------------------->

Chúng ta có thể thấy ba khung này trong Wireshark. Bộ lọc “tcp” có thể được sử dụng trong Wireshark để xem tất cả các khung TCP. Đây là ảnh chụp màn hình cho ba khung hình:





Bây giờ chúng ta hãy hiểu chi tiết cả ba khung hình:



đồng bộ hóa

Khung này chứa nhiều thông tin về khả năng của máy khách để thông báo cho máy chủ. Ảnh chụp màn hình sau đây hiển thị tất cả các trường quan trọng của khung SYN:

Dưới đây là các trường quan trọng cho khung SYN:

Cổng nguồn: 50602
Cảng đích: 80
Số thứ tự: 0
Số xác nhận: 0
Độ dài tiêu đề: 32 byte
Cờ: 0x002 (SYN):
Xác nhận: Chưa được đặt
Đẩy: Chưa đặt
Đặt lại: Chưa đặt
Đồng bộ hóa: Đặt  ------> Bit này được đặt vì đây là khung SYN.
Vây: Không được đặt

Cửa sổ: 65535
Con trỏ khẩn cấp: 0
Tùy chọn TCP - Kích thước phân đoạn tối đa: 1460 byte
Tùy chọn TCP - Tỷ lệ cửa sổ: 3 (nhân với 8)
Tùy chọn TCP - SACK được phép

XEM+ACK

Khung này chứa nhiều thông tin về khả năng của máy chủ để thông báo cho máy khách. Ảnh chụp màn hình sau đây hiển thị tất cả các trường quan trọng của khung SYN+ACK:

Khung này cũng xác nhận khung SYN được gửi bởi máy khách.

Dưới đây là các trường quan trọng cho khung SYN+ACK:

Cổng nguồn: 80
Cổng đích: 50602
Số thứ tự: 0
Số xác nhận: 1

Độ dài tiêu đề: 32 byte (8)
Cờ: 0x012 (SYN, ACK)
Xác nhận: Đặt
Đẩy: Chưa đặt
Đặt lại: Chưa đặt
Của anh ấy: Đặt
Vây: Không được đặt

Cửa sổ: 29200
Con trỏ khẩn cấp: 0
Tùy chọn TCP - Kích thước phân đoạn tối đa: 1412 byte
Tùy chọn TCP - SACK được phép
Tùy chọn TCP - Tỷ lệ cửa sổ: 7 (nhân với 128)

Chúng ta có thể thấy rằng các bit “Xác nhận” và “SYN” được đặt trong khung này. Điều này là do khung này là SYN+ACK.

xác nhận

Khung này là khung cuối cùng của bắt tay 3 bước và cũng là xác nhận SYN+ACK của khách hàng. Ảnh chụp màn hình sau đây hiển thị tất cả các trường quan trọng của khung ACK:

Dưới đây là các trường quan trọng cho khung ACK:

Cổng nguồn: 50602
Cảng đích: 80
Số thứ tự: 1
Số xác nhận: 1
Độ dài tiêu đề: 20 byte (5)
Cờ: 0x010 (ACK)
Khẩn cấp: Chưa đặt
Xác nhận: Đặt
Đẩy: Chưa đặt
Đặt lại: Chưa đặt
Đồng bộ hóa: Chưa đặt
Vây: Không được đặt

Cửa sổ: 32768

Ở đây, chỉ có bit “Xác nhận” được đặt vì đây là khung ACK.

Giải thích cho một số trường phổ biến quan trọng

Cổng 80 : Chúng tôi đã quan sát thấy một cổng 80 cố định trong hướng dẫn này. Đó là bởi vì đây là bản chụp HTTP và cổng 80 được cố định (phía máy chủ) cho giao tiếp HTTP.

Số thứ tự : Số thứ tự của frame đó. Đồng bộ hóa là khung hình đầu tiên nên chúng tôi có 0 làm số thứ tự.

Cờ TCP:

Nhìn nhận – Bit này được đặt nếu khung là ACK. Ví dụ: SYN+ACK, khung ACK.

đồng bộ hóa – Bit này được đặt nếu khung là một SYN. Ví dụ: SYN.

Cửa sổ : Trường này chia sẻ kích thước cửa sổ tối đa của người gửi ở chế độ nhận. Ví dụ: Chúng tôi có kích thước cửa sổ là 65535 byte trong khung SYN. Điều này có nghĩa là người nhận có thể nhận dữ liệu TCP tối đa là 65535 byte tại bất kỳ thời điểm nào.

bao được phép : Bit này được đặt nếu gửi hỗ trợ SACK [xác nhận có chọn lọc].

Kích thước phân đoạn tối đa : Chúng ta cũng có thể gọi nó là MSS. Điều này xác định khung dữ liệu tối đa mà người gửi có thể nhận được. Ví dụ: Chúng tôi nhận được MSS là 1460 byte trong khung SYN.

Phần kết luận

Chúng ta đã tìm hiểu về bắt tay 3 bước của TCP và tất cả các trường hữu ích cho các khung SYN, SYN+ACK và ACK. Nếu bạn muốn tìm hiểu thêm về TCP, bạn có thể theo liên kết RFC này https://tools.ietf.org/html/rfc793 .