Lab2: HTTP

Wireshark Lab: IP
Supplement to Computer Networking: A Top-Down
Approach, 6th ed., J.F. Kurose and K.W. Ross
“Tell me and I forget. Show me and I remember. Involve me and I
understand.” Chinese proverb
© 2005-21012, J.F Kurose and K.W. Ross, All Rights Reserved
Bu labta IP protokolünü araştıracağız ve IP datagramı üzerine yoğunlaşacağız.
“traceroute” programı koşumu ile alınan ve gönderilen IP datagram izini analiz edeceğiz,
IP parçalanmasına (fragmentation) detaylı olarak bakacağız.
1. traceroute komutunun çalıştırılmasından sonra paketlerin
yakalanması
Bu labta IP datagram izi üretmek için traceroute programını kullanacağız. Traceroute bir
veri paketinin gönderilmek istenildiği adresi ulaşıncaya kadar gecen sürede, veri
paketinin hangi hostlar üzerinden geçtiğini ve IP kaynak yönlendirme seçeneğinin hangisi
olduğunu görmemizi sağlayan bir ağ programı/aracıdır. Traceroute aracı tüm unix benzeri
işletim sistemlerinde bulunur. Microsoft windows tabanlı işletim sistemlerinde tracert,
traceroute ile aynı fonksiyonlara sahiptir.
Traceroute, IP başlığındaki TTL (time-to-live) alanını ve ICMP (Internet Control
Message Protocol) kullanır. TTL, IP başlığında 8 bitlik alana sahiptir. İlk değeri gönderen
tarafından atanır ve bu değer, üzerinden geçtiği her hopta yönlendirici tarafından azaltılır.
TTL alanının amacı sonsuz yönlendirme olmasını engellemektir. Bir yönlendirici TTL
alanı 0 ya da 1 olan bir veri paketi almış ise paketi başka bir yere yönlendirmez ve
kaynak hostuna ICMP “zaman aşımı” mesajı gönderir. ICMP mesajına sahip olan veri
paketi yönlendiricinin IP adresini kaynak adresi olarak alır. Traceroute, hedef hosta TTL
alan değeri 1 olan veri paketi gönderir. Veri paketini alan yönlendirici, TTL değerini
düşüremediği için hedefe giden yoldaki diğer yönlendiriciye yönlendirme yapmaz ve
geriye ICMP “zaman aşımı” mesajını gönderir. Böylece ilk yönlendiricinin IP adresini
bulur. Traceroute diğer adımda hedef hosta TTL değeri 2 olan veri paketi gönderir ve
yoldaki ikinci yönlendiricinin IP adresini bulur. Bu yolla hedef hosta ulaşılıncaya kadarki
yönlendiriciler tanımlanır. Veri paketi son hedefe ulaştığında ICMP “zaman aşımı”
mesajı oluşturulmaz. Son hedefi tanımlamak için trauceroute, gönderdiği veri paketinin
hedef portunu kullanılmayan bir port numarası seçer. Seçtiği port numarası, hedefteki
hiçbir uygulama tarafından kullanılmadığı için hedef host, veri paketini aldığında ICMP
”ulaşılamayan port“ mesajını oluşturur. Böylece gidilecek son host tanımlanır.
Windows tabanlı işletim sistemleri için arayüze de sahip tracert benzeri pingplotter
programını (indirmek için http://www.pingplotter.com) çalıştırarak IP datagramlarını elde
edelim.
Aşağıdakileri sırası ile yapınız:
 Wireshark’ı açıp paket yakalamayı başlatınız
 Pingplotter’ı açıp hedef olarak “gaia.cs.umass.edu” yazınız. “# of times to Trace”
kısmına 3 [belirli sayıda iz yakalamak için. Örneğin biz burada farklı büyüklükte
paketler göndererek 3 kere trace/iz elde edeceğiz] yazınız, Edit-> Options>Packet Options kısmından paket büyüklüğünü 56 byte (default) olarak belirleyip
çalıştırınız. Aşağıdaki gibi bir ekran göreceksiniz.
Daha sonra paket büyüklüğünü 2000 yaparak Resume butonuna basıp yeniden
çalıştırınız. Son olarak 3500 yaparak çalıştırınız.

Daha sonra Wireshark ile paket yakalamayı durdurunuz.
2. Yakalanan ize bakış
Yakalanan paketler içinde Windows makine kullanıyorsanız bilgisayarınızdan gönderilen
birçok ICMP Echo Request paketi, Unix makine kullanıyorsanız birçok UDP segmenti
göreceksiniz. Ayrıca gönderilen paketlere cevap olarak ara yönlendiricilerden gelen
ICMP TTL-exceeded mesajlarını da göreceksiniz. İlk ICMP Echo Request mesajını seçip
detaylı bilgi için Internet Protocol kısmını inceleyerek aşağıdaki soruları cevaplayınız.
1.
2.
3.
4.
Bilgisayarınız IP adresi nedir?
IP paket başlığındaki üst katman protocol alanı değeri nedir?
IP başlık büyüklüğü nedir? IP datagram payload büyüklüğü kaç bayttır?
Bu IP datagramı parçalanmış (fragmented) mıdır? Nasıl olduğunu açıklayınız?
Yakalanan paketleri IP kaynak adreslerine göre sıralayın (Source sütununa tıklayarak ok
aşağıda olacak şekilde) bilgisayarınızdan gönderilen ilk ICMP Echo Request
mesajınıseçerek aşağıdaki soruları cevaplandırınız.
5. IP datagram başlık alanlarından hangileri ICMP mesajları gönderilirken devamlı
değişmek zorundadır/değişmelidir?
6. Hangileri sabit kalmaktadır? Hangileri sabit kalmak zorunda, hangileri
değişebilir?
7. IP datagramı içindeki “Identification” alanındaki değeri her ICMP mesajı için
inceleyiniz?
Bilgisayarınıza cevap olarak gelen ICMP TTL-exceeded mesajlarını ilk atlamadan
itibaren ilerleyerek inceleyin.
8. “Identification” ve TTL alanlarındaki değerler nedir?
9. Bilgisayarınıza cevap olarak gelen ICMP TTL-exceeded mesajları için bu iki
değer aynı mı kalmakta değişmekte midir? Araştırınız.
IP Datagram Parçalanma (Fragmentation)
Tekrar yakalanan paketleri zaman göre sıralayarak aşağıdaki soruları cevaplayınız.
10. pingplotter da paket büyüklüğünü 2000’e değiştirdikten sonraki ilk ICMP Echo
Request mesajını bulunuz. Bu mesaj birden fazla IP datagramına parçalanmış
mıdır?
11. Parçalanmış IP datagramlarından ilk fragment’i print edin. IP başlığındaki hangi
değer datagramın parçalandığını gösterir? Hangi bilgi fragment’in ilk veya
sonraki olduğunu gösterir? Bu datagarımın uzunluğu kaçtır?
12. Parçalanmış IP datagramlarından ikinci fragment’i print edin. IP başlığındaki
hangi değer datagramın ilk parça olmadığını gösterir? Daha fazla fragment var
mı? Nasıl anlarız?
13. IP başlığındaki hangi alanlar bu iki fragment için farklıdır?
Wireshark Lab: Ethernet ve ARP
Bu bölümde Ethernet protokolünü ve ARP(Address Resolution Protocol) protokolünü
inceleyeceğiz.
1. Ethernet çerçevelerinin yakalanması ve analiz edilmesi



Wireshark’da paket yakalamayı başlatın.
Tarayıcınıza http://gaia.cs.umass.edu/wireshark-labs/HTTP-ethereal-labfile3.html yazınız.
Paket yakalamayı durdurun. Bilgisayarınızdan gönderilen HTTP GET istek
paketini bularak aşağıdaki soruları cevaplayınız.
1. Bilgisayarınızın 48-bitlik Ethernet adresi nedir?
2. Ethernet çerçevesindeki 48-bitlik hedef adresi nedir? Bu adres
“gaia.cs.umass.edu”e ait Ethernet adresi midir? Hangi cihaz Ethernet adresi olarak
bu bilgiye sahiptir?
3. 2-baytlık çerçeve tipi alanı (Frame type field) için hexadecimal değeri söyleyiniz?
HTTP cevap mesajının ilk baytını içeren Ethernet çerçevesinin içeriğine göre aşağıdaki
soruları cevaplayınız.
4. Ethernet kaynak adresinin değeri nedir? Bu adres bilgisayarınızın veya
gaia.cs.umass.edu’nun mu adresi? Hangi cihaz Ethernet adresi olarak bu bilgiye
sahiptir?
5. Ethernet çerçevesindeki hedef adresi nedir? Bu adres bilgisayarınızın adresi mi?
6. 2-baytlık çerçeve tipi alanı (Frame type field) için hexadecimal değeri söyleyiniz?
7. Ethernet çerçevesindeki CRC alanının hexadecimal değeri nedir?
2. ARP (Address Resolution Protocol)
Bu bölümde ARP’yi ele alacağız.
ARP Önbellekleme (Caching)
Address Resolution Protocol (ARP), hem bir protokol hem de bir araç olarak
kullanılabilir. ARP protokol, paket oluşumu sırasında IP adresini MAC adresine
çözümlemek için kullanılır. ARP aracı ise ARP protokol tarafından kullanılan ARP cache
yapısını yönetmek için kullanır. Broadcast trafiğini azaltmak için, ARP tarafından
oluşturulan Cache içinde MAC adresi tutulur. TCP/IP bu kullanım yapılarında ilk olarak
Cache içini kontrol eder.
Windows komut isteminden (command promt) arp –a yazılarak ARP Cache listesinde
bulunan her bir bilgisayarın IP adresi ve MAC adresi (fiziksel adres) görülebilir.
8. Yukarıdaki komut, komut isteminden çalıştırıldıktan görülen her bir sütunun ne
anlama geldiğini açıklayınız?
9. arp -s InetAddr EtherAddr komutu ile IP adresinden (InetAddr) Ethernet adresine
(EtherAddr)dönüşüm yapan yeni bir entry eklenebilir. Doğru IP adresi girilip
uzak arayüz (interface) için yanlış Ethernet adresi girilirse ne olur?
10. Bir entry’nin ARP cache’nde kalması için tanımlanan default süre nedir?