Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Bilgisayar Ağları Dersi Lab. 3 İçerik • TCP Protokolü • TCP bağlantı kurulumu ve sonlandırılması • “tcp-etheral-trace-1” dosyasının analizi İçerik • TCP Protokolü • TCP bağlantı kurulumu ve sonlandırılması • “tcp-etheral-trace-1” dosyasının analizi TCP Protokolü • İki veya daha fazla bilgisayarın birbiriyle haberleşmesi protokoldür. için kullanılan en yaygın TCP Protokolü • TCP/IP'de, yollanan veriler katmanlara göre paketlenerek yollanır ve alıcıda bu paketler teker teker açılıp veri ulaştırılır. • Her katmanda yollanan verinin türüne göre (eposta, dosya aktarımı) belirli protokoller görev yapar. TCP Protokolü • OSI referans modelindeki 7 katmana karşılık TCP/IP’de 4 katman mevcuttur; Application (Uygulama), Transport (Taşıma), Internet, Network Interface (Ağ Arayüzü). TCP Protokolü • Uygulama Katmanı, veriyi göndermek isteyen uygulama ve gönderilen verinin türüne göre farklı protokoller çalıştırılarak (HTTP, SMTP, FTP, Telnet, vs.) programlarla Taşıma protokollerinin haberleşmesi sağlanır. • Uygulama Katmanı Taşıma Katmanıyla portlar aracılığıyla haberleşir. Portlar numaralandırılmış standart uygulamalardır (HTTP:80, FTP:21, vs.) ve Taşıma Katmanında gelen paket içeriğinin türünün anlaşılmasında rol oynar. TCP Protokolü • Taşıma Katmanı, verinin ne şekilde gönderildiğini gösterir. TCP (Transmission Control Protocol) ve UDP (User Datagram Protocol) protokolleri bu katmanda çalışır. • TCP ve UDP iletim esnasında veriye içinde bazı kontrol bilgilerinin bulunduğu bir başlık (header) ekler. • TCP, kayıpsız veri gönderimi sağlayabilmek için kullanılan protokoldür. TCP Protokolü • Gönderilen veriler için özel bir TCP kabul paketi (TCP ACK) gönderilir ve gelmiş olan paketlerin doğruluğu kontrol edilir. • Gönderen taraf, kabul gelmediği sürece paketi tekrar gönderir, böylece gönderim sağlanmış olur. TCP’de veri iletimi için iki bilgisayar arasında Three-Way Handshake (Üç Zamanlı El Sıkışma) bağlantısı kurulur. HTTP, HTTPS, POP3, SMTP, FTP, SFTP gibi protokollerdeki veri iletimi TCP vasıtasıyla yapılır. TCP Protokolü • İnternet Katmanı, hedef veya kaynak IP adresleri veriye eklenerek verinin hangi bilgisayara gönderileceği belirlenir ve gönderilen paket Veri Bloğu (Datagram) halini alır. • IP, ICMP, IGMP, ARP gibi protokoller bu katmanda çalışır. TCP Protokolü • Ağ Arayüzü Katmanı, verinin kablo üzerinde alacağı yapıyı tanımlayarak bir ve sıfırların fiziksel olarak görüntülenmesini sağlar. • Ethernet Ağ Arayüzü Katmanında kullanılan ve veri iletiminin fiziksel görünümünü sağlayan en yaygın kablolu yerel ağ teknolojisidir. İçerik • TCP Protokolü • TCP bağlantı kurulumu ve sonlandırılması • “tcp-etheral-trace-1” dosyasının analizi TCP Bağlantı Kurulumu ve Sonlandırılması • TCP’yi incelemeye başlamadan önce, PC’nizden uzaktaki bir sunucuya bir dosyanın TCP transferinin izini (trace) elde etmek için Wireshark programını kullanmaya ihtiyacımız olacaktır. TCP bağlantı kurulumu ve sonlandırılması • Bunun için bilgisayarınızda tutulan bir dosyanın (Alice Harikalar Diyarında’nın ASCII tekstini içeren) ismini girmenizi isteyen bir web sayfasına erişim sağlamanız, daha sonra bu dosyayı http POST metodu kullanarak bir web sunucuya transfer iletmeniz gerekmektedir. TCP bağlantı kurulumu ve sonlandırılması • GET metodundan ziyade POST metodu kullanıyoruz, çünkü büyük miktarda bir veriyi bilgisayarınızdan başka bir bilgisayar/sunucuya transfer etmek istiyoruz. • Bilgisayarınızdan segment’lerinin gönderilen izini elde ve etmek alınan için TCP Wireshark programının bu süre zarfında çalışıyor olması gereklidir. TCP bağlantı kurulumu ve sonlandırılması • Aşağıdakileri sırası ile gerçekleyiniz: • Web browser’ı çalıştırıp http://gaia.cs.umass.edu/wireshark-labs/alice.txt sayfasına giriniz ve Alice Harikalar Diyarında’nın ASCII kopyasını alıp bilgisayarınızda bir yere kaydediniz. • Sonra http://gaia.cs.umass.edu/wireshark-labs/TCPwireshark-file1.html sayfasına giriniz. TCP bağlantı kurulumu ve sonlandırılması • Aşağıdaki gibi bir ekranla karşılaşacaksınız: TCP bağlantı kurulumu ve sonlandırılması • Daha önce kaydetmiş olduğunuz Alice Harikalar Diyarında’nın tekst dosyasının (alice.txt) yolunu “browse” butonunu kullanarak gösteriniz. Hemen “Upload alice.txt file” butonuna basmayınız. • Şimdi Wireshark’ı başlatıp paket yakalama işine başlayın (Capture->Start). TCP bağlantı kurulumu ve sonlandırılması • Tekrar tarayıcıya dönerek “Upload alice.txt file” butonuna basarak “gaia.cs.umass.edu” alice.txt sunucusuna dosyasının yüklenmesini sağlayınız. • Dosya yüklendikten sonra tarayıcı pencerenizde tebrikler mesajı göreceksiniz. TCP bağlantı kurulumu ve sonlandırılması • Wireshark paket yakalamayı durdurun. Wireshark ekranınız aşağıdaki gibi görünecektir. TCP bağlantı kurulumu ve sonlandırılması • Öncelikle yakalanan paketleri “tcp” yazarak filtreleyelim. • Görmeniz gereken bilgisayarınızla “gaia.cs.umass.edu” sunucusu arasındaki TCP ve HTTP mesajlar topluluğu. İlk olarak SYN mesajı içeren üç-yollu bir el sıkışma (kontrol mesajlarının değişimi) göreceksiniz. TCP bağlantı kurulumu ve sonlandırılması • HTTP POST mesajı göreceksiniz. Sonra kullandığınız Wireshark versiyonuna bağlı olarak bilgisayarınızdan “gaia.cs.umass.edu” sunucusuna gönderilen “HTTP Continuation” mesajlarını göreceksiniz. • “HTTP Continuation” mesajları, bir HTTP mesajını taşımak için birden kullanıldığını gösteriyor. fazla TCP segmentinin TCP bağlantı kurulumu ve sonlandırılması • gaia.cs.umass.edu sunucuna data transfer etmek için kullanılan istemcinin IP adresi ve TCP port numarası nedir? • gaia.cs.umass.edu sunucunun IP adresi ve TCP port numarası nedir? TCP bağlantı kurulumu ve sonlandırılması • Bu laboratuvarda ilgilenileceğinden göstermemek için HTTP’den yakalanan ziyade HTTP Analyze->Enabled TCP ile paketlerini Protocols menüsünden HTTP kutusundaki check işaretini kaldırıp OK’e basın. TCP bağlantı kurulumu ve sonlandırılması • Şimdi Wireshark penceresi aşağıdaki gibi olacaktır: TCP bağlantı kurulumu ve sonlandırılması • Bilgisayarınızla gaia.cs.umass.edu sunucusu arasında TCP bağlantısını başlatmak için kullanılan TCP SYN segmentinin dizi numarası nedir? [0] • SYN segment’ine gaia.cs.umass.edu sunucusunun göndermiş olduğu SYNACK segment’inin dizi numarası nedir? [1] • HTTP POST komutunu içeren TCP segment’inin dizi numarası nedir? Wireshark penceresinin en altındaki paket içerik alanına bakılması gerekir. (HTTP sorulduğu için tekrar Analyze>Enabled Protocols menüsünden HTTP kutusu aktif hale getirilmeli). [No:4] İçerik • TCP Protokolü • TCP bağlantı kurulumu ve sonlandırılması • “tcp-etheral-trace-1” dosyasının analizi “tcp-etheral-trace-1” dosyasının analizi • http://w3.gazi.edu.tr/~anilutku/tcp-ethereal-trace1.pcap dosyasını indiriniz. – TCP başlık alanlarını ve değerlerini bulunuz. – Kaynak ve hedef için port numaralarını bulunuz. – İstemci bilgisayarın sunucu bilgisayardan TCP bağlantı talebini yaptığı zamanı bulunuz. – İstemci bilgisayarın port numarasını nasıl belirlediğini açıklayınız.