29 Mayıs 2012 Salı

HTTP - Nass oluyor da oluyor? 3-way-handshake

HTTP , transport layer seviyesinde TCP'yi kullanan application layer seviyesi bir protokol. Bu da http protokolü ile haberleşmenin-iletişimin olabilmesi için öncelikle three-way-handshake denen yöntemle iletişimde bulunacak her iki ucun, http veri trafiği oluşmadan önce karşılıklı olarak MSS (Maximum Segment Size), ISN (Initial Sequence Number) gibi konularda anlaşmaya varmalarını gerektiriyor. Bir başka deyişle 3-way handshake hadisesi şuna benziyor;
İletişimi Başlatan Taraf: "Kardeşim seninle konuşmak istiyorum (bak sana SYN flag'i set edilmiş yani "1" değeri atanmış paket gönderiyorum,bari burdan anla), bu da benim initial sequence number'ım yani bu TCP seansı bu numarayla başlıyor ona göre.Bir konu daha var göndereceğim segmentlerin en büyü MSS (maximum segment size) büyüklüğünde olacak".

(wireshark ilk paketin Acknowledgement Number değerini göstermiyor ama aşağıdaki ekran görüntüsünde kırmızı çerçeve içindeki 4 byte'la gösterildiği gibi Acknowledgement Number değeri "0" dır)

İletişim kurulması istenen taraf: "Eyvallah dostum, konuşma isteğini aldım ve kabul ediyorum.Ve bunu da sana SYN ve ACK flagları set edilmiş yani "1" değeri atanmış ve senin gönderdiğin ilk paketteki sequence number değerinin bir fazlasını  yani 3828423110 değerini Acknowledgement Number alanına atayarak belirtiyorum,bir başka deyişle göndereceğin bir sonraki paketin Sequence number değerinin 3838423110 olmasını bekliyorum.Benim de kullandığım sequence number değerini göndereceğim bu paketten öğrenebilirsin (1159405294 değeri)


İletişimi Başlatan Taraf: "Ok kardeşim ben de senin SYN ve ACK flagları set edilmiş paketini aldım, sana ACK flag'i set edilmiş paketimi gönderiyorum,anlaştığımıza göre veri transferine başlayabiliriz.Göndermeni beklediğim bir sonraki paketin Sequence Number'ı da 3828423110 olacak,bana yanlış paket gönderme drop ederim tekrar göndermek zorunda kalırsın bak"
Wireshark kayıtlarından görüldüğü üzere http trafiği ve bunun öncesinde gerçekleşmesi gereken 3-way-handshake istemci bilgisayarla proxy sunucu arasında cereyan ediyor. Proxy sunucusu üzerinden herhangi bir web sitesine erişebilmemiz için benzer süreç (3-way-handshake ve http trafiği / requestler-response lar) proxy sunucumuz ile erişmek istediğimiz web sitesini barındıran web sunucusu arasında gerçekleşmeli.

En son ekran görüntüsünde de görüldüğü üzere 3. ve son paketten sonra istemci, yani iletişimi başlatan yani bizim bilgisayarımız;
"İkimiz de konuşmak istediğimize ve bu konuşmanın nasıl olacağında anlaştığımıza,bundan sonra alacağımız vereceğimiz paketin numarasını bildiğimize göre sadede gelelim, ben http://www.metu.edu.tr URL'li web sitesine erişmek istiyorum, bütün bu gürültünün sebebi buydu"
der ve karşılıklı veri alışverişi nihayet başlar.
3-way-handshake konusunu meşhur grafik olmadan bitirmek olmaz,buyrun ifinim;




İlgili Yazılarım
HTTP - Nass oluyor da oluyor? HTTP Headerlar ve HTTP Mesaj Yapısı
HTTP - Nass oluyor da oluyor? HTTP Basic Authentication
HTTP - Nass oluyor da oluyor? HTTP Windows Authentication
HTTP - Nass oluyor da oluyor? HTTP Digest Authentication
HTTP - Nass oluyor da oluyor? HTTPS - HTTP over SSL

Hiç yorum yok:

Yorum Gönder