Tel köpekbalığı

TCP Paket Yakalama Analizi

TCP Paket Yakalama Analizi

TCP nedir?

TCP (İletim Kontrol Protokolü), bağlantı yönelimli bir aktarım katmanı protokolüdür.

Bu makalenin amacı:

TCP'nin tamamını anlamak kolay bir iş değil. Bu yazımızda Wireshark üzerinden TCP'nin temel paket alışverişlerini anlamaya çalışacağız. Teori internet üzerinden okunabilir. Paket yakalama analizine daha fazla odaklanacağız.

TCP neden ünlüdür??

TCP'nin bu kadar ünlü olmasının birçok nedeni vardır:

  1. TCP bağlantı odaklı bir protokoldür, bu nedenle güvenilirlik çok yüksektir.
  2. TCP, tıkanıklığı kendi başına kontrol edebilir.
  3. TCP hatayı algılayabilir.
  4. TCP, akış kontrol protokolünü kullanır.
  5. TCP gecikme ACK özelliklerine sahiptir.
  6. TCP seçici ACK özelliğine sahiptir.
  7. TCP, verim iyileştirme için Windows çağırma özelliğine sahiptir.

TCP'yi bu kadar ünlü yapan daha pek çok özellik vardır.

TCP'nin Analizi:

TCP çerçeveleri oluşturmak için bazı adımları izleyeceğiz.

Aşama 1: TCP paketleri oluşturmanın basit yolu, herhangi bir HTTP web sitesine erişmektir. Bunun nedeni, HTTP'nin bir uygulama katmanı protokolü olması ve temel taşıma katmanı protokolü olarak TCP kullanmasıdır.

HTTP hakkında bilgi edinmek için aşağıdaki bağlantıyı takip edin

https://linuxhint.com/http_wireshark/

Adım 2: Wireshark'ı başlatın.

Aşama 3: Aşağıdaki bağlantıyı herhangi bir tarayıcıda açın.

http://gaia.cs.kütle.edu/wireshark-labs/alice.Txt

4. Adım: Wireshark'ı durdurun ve TCP'yi filtre olarak koyun.

Adım 5: ANALİZ

Şimdi TCP 3-yollu el sıkışma paketlerini görmeliyiz. İşte basit diyagram.

Çerçeve 1: SYN [Senkronizasyon]

SYN, istemciden sunucuya gelen ilk pakettir. bizim durumumuzda 192.168.1.6 istemci [Tarayıcıyı açtığımız sistem] ve gaia.cs.kütle.edu sunucudur.

İşte SYN çerçevesindeki bazı önemli alanlar

İstemcinin yeteneklerini sunucuya göndermek için SYN çerçevesi gereklidir.

Çerçeve 2: SYN+ACK [Senkronizasyon + Onay ]

SYN, ACK, sunucudan istemciye gelen ikinci pakettir.

İşte SYN, ACK çerçevesindeki bazı önemli alanlar

SYN, ACK çerçevesi, sunucunun yeteneklerini istemciye göndermek için gereklidir.

Artık istemci ve sunucu yeteneklerini paylaştılar.

Çerçeve 3: ACK [Teşekkür ]

ACK, istemciden sunucuya gelen üçüncü pakettir. Bu temelde istemciden sunucuya bir onaydır ve ayrıca sunucu tarafından gönderilen yeteneklerin kabulüdür.

İşte ACK için önemli alanlar.

İstemci ve sunucu arasında paylaşılan önemli bilgileri kontrol edelim:

müşterisunucu

Pencere Boyutunu Al: 64240 Bayt                          Pencere Boyutunu Al: 29200 Bayt

Maksimum segment boyutu: 1460 bayt                         Maksimum segment boyutu: 1412 bayt

Çuval İzin Verildi: Evet                                                 Çuval İzin Verildi: Evet

Pencere ölçeği: 8 (256 ile çarpın)                          Pencere ölçeği: 7 (128 ile çarpın)

Değerlerde farklılıklar olduğunu fark ettik. İstemci veya sunucu diğerlerinin yeteneklerini kabul ederse, 3 yönlü anlaşma başarılı olur.

TCP Başlığı:

TCP başlığının önemli alanları şunlardır:

  1. Kaynak bağlantı noktası (16 bit): Bu gönderme bağlantı noktası.
Örnek: Kaynak Bağlantı Noktası: 50026 (50026)
  1. Hedef bağlantı noktası (16 bit): Bu alıcı bağlantı noktası.
Örnek: Hedef Bağlantı Noktası: http (80)
  1. Sıra numarası (32 bit):
Örnek: Sıra numarası: 0    (göreceli sıra numarası)
  1. Onay numarası (32 bit): ACK bayrağı ayarlanmışsa, bu alanın değeri, ACK göndericisinin beklediği bir sonraki sıra numarasıdır.
Örnek: Onay numarası: 0
  1. Başlık Uzunluğu: Başlık boyutu 20 bayt ve maksimum 60 bayt arasında değişebilir.
Örnek: 1000… = Başlık Uzunluğu: 32 bayt (8)
  1. İşaretler (9 bit):
Misal:
… = Ayrılmış: Ayarlanmadı
… 0… = Nonce: Ayarlanmadı
… 0… = Tıkanıklık Penceresi Azaltılmış (CWR): Ayarlanmadı
… 0… = ECN-Eko: Ayarlanmadı
… 0… = Acil: Ayarlanmadı
… 0… = Onay: Ayarlanmadı
… 0… = Bas: Ayarlanmadı
… 0… = Sıfırla: Ayarlanmadı
… 1. = Syn: Ayarla
… 0 = Fin: Ayarlanmadı
  1. Pencere boyutu (16 bit): Bu, bayt cinsinden alma penceresinin boyutudur.
Örnek: Pencere boyutu değeri: 64240
  1. Sağlama toplamı (16 bit):

Başlığın hata kontrolünde kullanılır.

Örnek: Sağlama toplamı: 0x436f
  1. Acil işaretçi (16 bit):

Bu, son acil veri baytını gösteren sıra numarasından bir sapmadır.

Örnek : Acil işaretçi: 0
  1. Seçenekler:
Misal:
TCP Seçeneği - Maksimum segment boyutu: 1460 bayt
TCP Seçeneği - İşlemsiz (NOP)
TCP Seçeneği - Pencere ölçeği: 8 (256 ile çarpın)
TCP Seçeneği - SACK'e izin verilir

Gözlem:

SYN'nin TCP Başlık boyutu 32 Bayttır.

SYN'nin TCP Başlık boyutu, ACK 32 Bayttır.

ACK'nin TCP Başlık boyutu, seçenek alanlarına sahip olmadığı için 20 Bayttır.

TCP Verileri:

İşte TCP verileri ve TCP ACK için açıklama içeren ekran görüntüsü. Burada TCP gecikme ACK özelliğini görebiliriz. Sunucu, istemciye üç TCP veri paketi gönderdi ve istemci, sunucuya üç TCP veri paketinin tümünü aldığını söylemek için bir gecikmeli ACK gönderdi. Bu nedenle TCP ACK'de [ekran görüntüsündeki paket numarası 96] ACK=14121 görüyoruz, bu da istemcinin 14121 bayta kadar aldığı anlamına gelir.

Referans:

TCP'nin temel teorisi için bkz

https://tr.wikipedia.org/wiki/Transmission_Control_Protocol

How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...
How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...