Kurumsal Network Kurulumu

Ethernet Nedir? Çerçeve Yapısı, Hızlar ve Kablo Çiftleri

Ethernet nedir, nasıl çalışır? İki makine arasında yakaladığım çerçevelerle alanları, 64 baytlık dolguyu, FCS'i, hız ailesini ve kablonun dört çiftini anlattım.

İlker Pehlivan

Ethernet, bir binadaki bilgisayarların, switch’lerin ve diğer ağ cihazlarının yerel ağda (LAN) veriyi kabloya nasıl koyacağını tanımlayan IEEE 802.3 standardıdır. Hem verinin sarıldığı kalıbı, yani çerçeveyi, hem de o çerçevenin kabloda hangi hızda ve hangi sinyalle taşınacağını tanımlar. Ofisinizde duvardaki prize takılan kablo, masanızdaki ağ kartı ve dolaptaki switch aynı dili konuşur. Havadaki kablosuz paket de erişim noktasına varınca bu dile çevrilir: erişim noktası onu aynı MAC adresleriyle bir Ethernet çerçevesine aktarıp kabloya verir.

Adını, 1973’te ilk tasarımı yapan Robert Metcalfe koydu. 19. yüzyıl fizikçileri, boşluğun “ether” adını verdikleri görünmez bir ortamla dolu olduğunu düşünüyordu. Işığın bu ortamın içinde yayıldığını sanıyorlardı; sonradan böyle bir ortamın olmadığı anlaşıldı.

Metcalfe’ın ilk ağında bütün bilgisayarlar tek bir ortak kabloya bağlıydı ve birinin gönderdiği sinyal kablo boyunca yayılıp hepsine ulaşıyordu. Kablo, fizikçilerin ışık için hayal ettiği ether gibi, sinyali herkese taşıyan ortak bir ortamdı; Metcalfe adı buradan aldı. Bu adla bir şey daha söylüyordu: sistem belli bir kablo türüne bağlı değildi, aynı kurallar başka ortamlarda da çalışabilirdi. Bugün aynı çerçevenin bükümlü bakır çiftlerde ve fiberde taşınması bu fikrin tuttuğunu gösteriyor. Standart 1983’te IEEE 802.3 olarak onaylandı.

Bu yazıda iki sanal makine arasında gidip gelen çerçeveleri yakalayıp dört şeyi ölçüyorum:

  1. Çerçevenin alanları. Yakalamada hangi alanlar görünüyor, hangileri hiç görünmüyor?
  2. En küçük çerçeve. 42 baytlık bir çerçeve karşı tarafa kaç bayt olarak varıyor?
  3. FCS. Kart, çerçevenin sonundaki sağlama değerini göstermeye zorlanınca ne çıkıyor?
  4. Hız. Ağ kartı hangi hızları ve hangi çift yön modlarını ilan ediyor?

Kümenin benzetmesiyle switch bir süpermarket şubesidir ve Ethernet, şubenin koli standardıdır. Hangi tedarikçiden gelirse gelsin her koli aynı kurala uyar. Barkod hep aynı yerde durur, koli belli bir boyun altına inmez ve üstünde ağırlığı yazar. Teslim alan görevli koliyi açmadan önce tartar. Eşleme şöyle:

  • Koli çerçevedir.
  • Barkod kolinin gideceği adresi, yani hedef MAC adresini taşır.
  • İçerik damgası koliyi hangi ekibin açacağını söyler; çerçevede bu işi EtherType alanı yapar.
  • Ağırlık etiketi FCS’tir. Alan taraf koliyi tartar, tutmazsa açmadan atar.
  • Kâğıt dolgu, küçük bir ürünü standart koliye yerleştirirken boşluğu doldurur. Kısa çerçeveye eklenen dolgu baytları (padding) da aynı işi görür.
Ethernet benzetmesi: süpermarket şubesinin teslim alanında paketleyici küçük bir kavanozu standart koliye kâğıt dolguyla yerleştiriyor, bandın öbür ucundaki görevli gelen koliyi terazide tartıyor
Her koli aynı standartta yola çıkar ve alan taraf açmadan önce tartar. Ethernet çerçevesi de küçükse dolguyla büyütülür, alan kart da FCS'i kontrol etmeden içini açmaz.

Ethernet, kurumsal ağ protokolleri yazımızda sıraladığımız bütün protokollerin altında duran zemindir. Kablolu ağda DHCP’nin, DNS’in ve Kerberos’un her mesajı kabloya bir Ethernet çerçevesinin içinde çıkar. Bu yazı kurumsal network kurulumu hizmetimizin en alttaki katmanını anlatır.

Ethernet Hangi Katmanda Çalışır? Kablo ve Çerçeve

Ethernet, OSI modelinin en alttaki iki katmanında çalışır. OSI modeli, ağ iletişimini kablodan uygulamaya kadar yedi katmana bölen bir başvuru modelidir ve Ethernet bu yedi katmanın ikisini tek başına üstlenir:

  • Fiziksel katman (1), kablonun kaç çiftinin kullanılacağını ve bitlerin hangi hızda, hangi elektrik sinyaliyle gönderileceğini belirler.
  • Veri bağlantı katmanı (2), bitlerin çerçeve adı verilen kalıplara nasıl dizileceğini ve her çerçevenin hangi karta gideceğini MAC adresiyle belirler.

Switch ikinci katmanda çalışır; çerçevenin başındaki MAC adresine bakıp onu doğru porta gönderir. Bu işi switch nedir yazımızda lab switch’imin adres tablosuyla anlattık. IP adresi ise bir üst katmanın, üçüncü katmanın işidir ve paketi ağlar arasında taşır. MAC adresi aynı yerel ağdaki bir sonraki durağı bulur. İkisinin iş bölümünü IP adresi yazımızda ayrıca ele aldık.

Ortak bir standart olmasaydı her ağ kartı ancak kendi üreticisinin cihazıyla konuşurdu. 1980’lerde durum biraz buydu. Token Ring ve ARCNET gibi başka yerel ağ teknolojileri aynı binada Ethernet’le anlaşamıyordu. Ethernet bükümlü çift bakır kablo üzerinde ucuz ve basit kalarak bu yarışı kazandı. Bugün yeni bir dizüstü bilgisayarın ağ kartıyla on yıllık bir switch’in ilk saniyede anlaşması bundandır.

Ethernet Çerçevesi: Yakalamada Görünen ve Görünmeyen Alanlar

Ethernet’in ikinci katmandaki işi çerçevedir: kabloya çıkan her verinin sarıldığı kalıp. Bir Ethernet çerçevesi sırasıyla hedef MAC adresi, kaynak MAC adresi, tip alanı, veri ve sağlama değeri taşır. Kabloda çerçevenin önünde bir de kartların birbirine ayak uydurduğu bir giriş dizisi yürür.

AlanBoyNe işe yararYakalamada
Preamble ve SFD8 baytAlan kartın saatini gelen sinyale oturtur, çerçevenin başladığını haber verirGörünmez
Hedef MAC6 baytÇerçevenin gideceği kartın adresiGörünür
Kaynak MAC6 baytÇerçeveyi gönderen kartın adresiGörünür
EtherType2 baytVerinin içindeki protokolGörünür
Veri (payload)46-1500 baytTaşınan paket, gerekirse dolguylaGörünür
FCS4 baytÇerçevenin yolda bozulup bozulmadığını gösteren sağlama değeriGörünmez

Bunu gerçek bir çerçevede görmek için vmsw01 ve vmsw02 adlı iki Linux sanal makinesini aynı sanal kablonun iki ucuna bağladım ve birinden ötekine tek bir ping gönderdim. Alan tarafta tcpdump ile yakaladım. -e seçeneği Ethernet başlığını da yazdırır, -XX çerçevenin baytlarını onaltılık sayılarla döker:

Bash
sudo tcpdump -i port1 -e -n -XX
Çıktı
23:17:07.814515 00:50:56:3a:01:01 > 00:50:56:3a:02:01, ethertype IPv4 (0x0800), length 98: 10.99.0.1 > 10.99.0.2: ICMP echo request, id 1758, seq 1, length 64
	0x0000:  0050 563a 0201 0050 563a 0101 0800 4500  .PV:...PV:....E.
	0x0010:  0054 8753 4000 4001 9e8d 0a63 0001 0a63  .T.S@.@....c...c
...

Dökümün ilk 14 baytı Ethernet başlığıdır ve onaltılık dökümün ilk satırında yan yana durur. Okunacak yerler şunlar:

  1. 0050 563a 0201 hedef MAC adresidir; çerçeve vmsw02’nin kartına gidiyor.
  2. 0050 563a 0101 kaynak MAC adresidir, yani vmsw01’in kartı. İlk üç bayt (00:50:56) üreticiye ayrılmış önektir; burada sanal makinelerin kartlarına hipervizörün verdiği önek duruyor.
  3. 0800 EtherType’tır ve içeride bir IPv4 paketi olduğunu söyler.
  4. 4500 ile başlayan kısım IPv4 paketinin kendisidir. Ethernet onun içine bakmaz, olduğu gibi taşır.
  5. length 98 çerçevenin boyudur: 14 baytlık Ethernet başlığı, 20 baytlık IP başlığı, 8 baytlık ICMP başlığı ve 56 baytlık ping verisi.

Örnekteki mağaza şubesinde de barkod hep aynı yerde durur ve görevli koliyi açmadan nereye gideceğini okur. MAC adresinin karşı cihazdan nasıl öğrenildiğini MAC ve IP adresinin iş bölümünü anlattığımız bölümde gerçek paket dökümleriyle gösterdik.

EtherType Nedir? Çerçevenin İçeriğini Söyleyen Alan

EtherType, alan kartın çerçevenin içindeki veriyi hangi yazılıma teslim edeceğini söyleyen iki baytlık alandır. Kart 0x0800 görünce çerçeveyi IP yazılımına, 0x0806 görünce ARP’a verir. İçerik damgası da böyledir: gıda kolisini gıda ekibi, kırtasiye kolisini kırtasiye ekibi açar.

Bir kablonun üzerinde ne tür çerçevelerin dolaştığını görmek için iki makineyi hiç trafik üretmeden 30 saniye dinledim. Boş sanılan kablo boş değildi:

Bash
sudo timeout 30 tcpdump -i port1 -w sessiz.pcap
sudo tcpdump -r sessiz.pcap -e -n
Çıktı
23:16:20.551110 00:50:56:3a:02:01 > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
23:16:20.724115 00:50:56:3a:01:01 > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
...

30 saniyede port başına 61 çerçeve geçti; 60’ı 0x8809, biri 0x86dd taşıyordu. İki makine iki bağlantısını tek bir hat gibi kullanmak için saniyede bir LACP sinyali gönderiyor; hedef adres 01:80:c2:00:00:02 da bu sinyallere ayrılmış çok noktaya yayın adresidir. Ping’i ekleyince iki tip daha göründü:

EtherTypeProtokolLab’da nereden geldi
0x0800IPv4ping
0x0806ARPping’den önce karşı tarafın MAC adresini sorma
0x86ddIPv6işletim sisteminin kendiliğinden gönderdiği yönlendirici arama mesajı
0x8809Slow Protocols (LACP)iki makinenin bağlantı birleştirme sinyali

Bu iki baytın bir tarihçesi var. İlk IEEE 802.3 standardı aynı alana çerçevenin uzunluğunu yazıyordu. İki kullanım bugün yan yana yaşar ve alan kart ayrımı değere bakarak yapar. 1500 ve altı uzunluk, 1536 (0x0600) ve üstü tip sayılır. Uzunluk biçimini bugün de kullanan en tanıdık trafik STP’dir; STP yazımızdaki yakalamada BPDU’lar 802.3, length 39: LLC diye görünür.

Preamble ve FCS: Yakalamada Görünmeyen İki Alan

Tablodaki iki alan hiçbir sıradan yakalamada görünmez: çerçevenin önündeki 8 baytlık preamble ve sonundaki 4 baytlık FCS.

Preamble, 7 bayt boyunca tekrarlanan 10101010 dizisi ile çerçevenin başladığını haber veren 1 baytlık başlangıç işaretinden (SFD, Start Frame Delimiter) oluşur. Alan kart bu diziyle saatini gelen sinyale oturtur ve işi bitince onu atar; dizi işletim sistemine hiç ulaşmaz. Depoya yanaşan kamyonun geri vites düdüğü de koliden önce gelir ve depo kaydına girmez.

FCS (Frame Check Sequence), çerçevenin hedef adresinden verinin sonuna kadar bütün baytlarından hesaplanan 4 baytlık bir CRC-32 sağlama değeridir. Gönderen kart hesaplayıp çerçevenin sonuna ekler, alan kart aynı hesabı yeniden yapar. Sonuç tutmazsa çerçeve atılır. Kolinin ağırlık etiketi de böyle çalışır.

Alan taraftaki ping çerçevesinin kablodaki hâli: preamble ve SFD 8 bayt, hedef MAC 6, kaynak MAC 6, EtherType 2, veri 84 ve FCS 4 bayt, toplam 110 bayt. tcpdump bunların hedef MAC'ten verinin sonuna kadar olan 98 baytını gösterir. FCS'in sağlama değerini hesapladığı bölge de tam bu 98 bayttır. Preamble ile FCS'in kendisi yakalamada görünmez. Alan taraftaki ping çerçevesi, kablodaki hâliyle Preamble+SFD 8 bayt Hedef MAC 6 bayt Kaynak MAC 6 bayt EtherType 2 bayt Veri 84 bayt FCS 4 bayt Kabloya çıkan: 8 + 98 + 4 = 110 bayt tcpdump'ın gösterdiği: 98 bayt (length 98) FCS'in sağlamasını hesapladığı bölge: aynı 98 bayt Kesikli kutuları alan kart işletim sistemine vermeden atar; yakalamada bu yüzden görünmezler. Alan taraftaki ping çerçevesinin kablodaki hâli: preamble ve SFD 8 bayt, hedef MAC 6, kaynak MAC 6, EtherType 2, veri 84 ve FCS 4 bayt, toplam 110 bayt. tcpdump bunların hedef MAC'ten verinin sonuna kadar olan 98 baytını gösterir. FCS'in sağlama değerini hesapladığı bölge de tam bu 98 bayttır. Preamble ile FCS'in kendisi yakalamada görünmez. Alan taraftaki ping çerçevesi Preamble+SFD 8 bayt Hedef MAC 6 bayt Kaynak MAC 6 bayt EtherType 2 bayt Veri 84 bayt FCS 4 bayt Kabloya çıkan: 110 bayt tcpdump'ın gösterdiği: 98 bayt FCS'in hesapladığı bölge: aynı 98 bayt Kesikli kutuları alan kart işletim sistemine vermeden atar.
Kabloya çıkan çerçeve yakalamada görünenden 12 bayt uzundur: öndeki 8 baytı ve sondaki 4 baytlık FCS'i kart atar. FCS'in sağlamasını hesapladığı bölge ise tcpdump'ın gösterdiği bölgenin tam kendisidir.

Kartlar FCS’i işletim sistemine teslim etmeden önce keser; tcpdump’ın onu göstermemesi bundandır. Linux’ta kartın bu dört baytı bırakması istenebilir. Beklenen sonuç açıktır. İki makine arasında hiçbir şey bozulmadığına göre her çerçevenin sonunda doğru bir sağlama değeri durmalıdır. Alan tarafta kartı buna zorladım:

Bash
sudo ethtool -K port1 rx-fcs on rx-all on

Ardından aynı ping’leri yeniden gönderdim. Gelen çerçevelerin her biri dört bayt uzadı. ARP 60’tan 64’e, ping 98’den 102’ye, en büyük çerçeve 1514’ten 1518’e çıktı. Son dört baytı Python’un zlib.crc32 işleviyle kendi hesapladığım değerle karşılaştırdım:

Çıktı
03-fcs-port1.pcap 102 FCS kayitta: 00000000 hesap: 268d8899 FARKLI
03-fcs-port1.pcap 102 FCS kayitta: 00000000 hesap: 820746ff FARKLI
03-fcs-port1.pcap 1518 FCS kayitta: 00000000 hesap: 48d9205b FARKLI
03-fcs-port2.pcap 64 FCS kayitta: 00000000 hesap: 11ae7aba FARKLI
03-fcs-port2.pcap 64 FCS kayitta: 00000000 hesap: 8449df34 FARKLI

Beş çerçevenin beşinde FCS alanı sıfır. Sanal kart dört baytlık yeri açıyor ama içini doldurmuyor, çünkü iki sanal makine arasında elektrik sinyali de bozulabilecek bir kablo da yok. Hipervizör çerçeveyi bellekten belleğe kopyalar. Sağlama değeri, ancak bir şeyin yolda bozulabildiği yerde anlam taşır.

Gerçek bir kabloda FCS’in işini switch’in hata sayacında gördüm. Switch port teşhisi yazımızda bilerek duplex uyuşmazlığı kurduğumda bozuk gelen çerçeveler FCS-Err sayacında birikti. Bağlantı açıktı, ping geçiyordu; bozulmayı yalnız bu sayaç gösterdi.

Benzetme burada kopuyor. Örnekteki mağaza şubesinde görevli ezik koliyi tedarikçiye geri gönderir ve tutanak tutar. Ethernet bozuk çerçeveyi sessizce atar, gönderene haber vermez, yeniden de istemez. Kaybı fark edip veriyi yeniden göndermek üst katmandaki TCP’nin işidir.

Ethernet Çerçeve Boyutu: En Az 64, En Çok 1518 Bayt

Çerçevenin alanlarını ve sonundaki sağlama değerini gördük. Standart bu alanlara bir de boy sınırı koyar. Bir Ethernet çerçevesi FCS dahil en az 64, en çok 1518 bayttır. Veri alanı bu yüzden 46 ile 1500 bayt arasında kalır. VLAN etiketi taşıyan çerçevede üst sınır 1522 bayta çıkar; o dört baytın çerçevenin neresine girdiğini 802.1Q etiketini anlattığımız bölümde gösterdik.

En Küçük Ethernet Çerçevesi: 42 Bayt Gitti, 60 Bayt Geldi

Verisi 46 bayttan kısa kalan çerçeve, gönderen kart tarafından sonuna sıfır baytlar eklenerek 60 bayta tamamlanır; FCS ile birlikte 64 olur. Bu eklemenin adı dolgudur (padding).

En kısa çerçevelerden biri ARP isteğidir: 14 bayt başlık ve 28 bayt ARP, toplam 42 bayt. Aynı ARP isteğini iki uçta aynı anda yakaladım. Gönderen vmsw01’deki kayıt şöyle:

Çıktı
23:17:07.815114 00:50:56:3a:01:01 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 10.99.0.2 tell 10.99.0.1, length 28

Alan vmsw02’de aynı çerçeve:

Çıktı
23:17:07.813628 00:50:56:3a:01:01 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: Request who-has 10.99.0.2 tell 10.99.0.1, length 46
	0x0000:  ffff ffff ffff 0050 563a 0101 0806 0001  .......PV:......
	0x0010:  0800 0604 0001 0050 563a 0101 0a63 0001  .......PV:...c..
	0x0020:  0000 0000 0000 0a63 0002 0000 0000 0000  .......c........
	0x0030:  0000 0000 0000 0000 0000 0000            ............

İki makinenin saatleri arasında 1-2 milisaniyelik fark var; alan tarafın zaman damgasının daha erken görünmesi bundandır. Karşılaştırmada üç şey öne çıkıyor:

  1. Gönderen tarafta çerçeve 42 bayttır. tcpdump çerçeveyi kart ona dokunmadan önce görür.
  2. Alan tarafta aynı çerçeve 60 bayttır. Fazlalık, 0x0020 satırında 0a63 0002’den sonra başlayan 18 baytlık sıfırlardır. Wireshark’ın komut satırı sürümü tshark aynı baytları Padding diye ayrıca adlandırıyor.
  3. Ters yön de aynı sonucu verdi. vmsw02’nin kendi ARP isteği onun yakalamasında 42, vmsw01’de 60 bayttı.

Yazılım 42 bayt verir, karşı taraf 60 bayt alır. Kolide de durum aynıdır. Küçük kavanoz standart koliye kâğıt dolguyla konur; alan görevli dolguyu atar ve kavanozu alır. ARP yazılımı da kendi 28 baytını alır, 18 bayt sıfır çöpe gider.

Peki alt sınır neden 64 bayt? Sebebi Ethernet’in ilk yıllarındaki paylaşılan kablodur. O kabloda iki kart aynı anda gönderirse sinyaller çarpışır ve gönderen kartın bunu fark etmesi gerekir. Fark edebilmesi için de kartın, çarpışmanın haberi kablonun en uzak ucundan dönene kadar hâlâ gönderiyor olması gerekir.

10 Mbps’te bu süre 512 bit, yani 64 bayt olarak hesaplandı. Bugünün switch’li ağında her kablo yalnız iki kart arasındadır, iki yön aynı anda akar ve çarpışma olmaz. Sınır yine de eski cihazlarla uyum için yerinde kaldı. İki yönün aynı anda ya da sırayla akmasının neyi değiştirdiğini full ve half duplex yazımızda anlattık.

En Büyük Ethernet Çerçevesi ve MTU 1500

Ethernet’in veri alanı en çok 1500 bayttır ve bu sayıya MTU (Maximum Transmission Unit) denir. Başlıkla birlikte çerçeve 1514, FCS ile 1518 bayt olur. Sınırı ping’le yokladım; -M do seçeneği paketin parçalanmasını yasaklar:

Bash
ping -c 1 -s 1472 -M do 10.99.0.2
ping -c 1 -s 1473 -M do 10.99.0.2
Çıktı
PING 10.99.0.2 (10.99.0.2) 1472(1500) bytes of data.
1480 bytes from 10.99.0.2: icmp_seq=1 ttl=64 time=0.942 ms
...
PING 10.99.0.2 (10.99.0.2) 1473(1501) bytes of data.
ping: local error: message too long, mtu=1500

1472 baytlık veri, 8 baytlık ICMP ve 20 baytlık IP başlığıyla tam 1500 bayt eder; yakalamada bu ping length 1514 diye göründü. Bir bayt fazlası yola hiç çıkmadı. İşletim sistemi paketi kabloya koymadan geri çevirdi.

Yolun ortasında daha küçük bir MTU olduğunda ne olduğunu ve ICMP kapatılınca bağlantının neden sessizce koptuğunu ICMP yazımızın MTU bölümünde anlattık. VPN tünelinin her paketten yediği 54 bayt da aynı sınırın hesabıdır.

Örnekteki mağaza şubesinde koli de belli bir boyu aşamaz; daha büyük yük palete konur. Ethernet’te bunun adı jumbo frame’dir ve veri alanını 9000 bayta kadar büyütür, ama yoldaki her cihazın desteklemesini ister. Lab bilgisayarımın ağ kartı sürücüsünde bu ayar 9014 Bytes seçeneğiyle duruyor ve kapalı geliyor.

Runt ve Giant: Sınırın Dışında Kalan Ethernet Çerçeveleri

Sınırın iki yanında kalan çerçevelerin de adı vardır. 64 bayttan kısa gelen çerçeveye runt, 1518 bayttan uzun gelene giant denir. İkisi de hata sayılır ve alan port onları iletmez. Switch’ler bu çerçeveleri, sağlama değerinin tutup tutmadığına göre ayrı sayaçlara yazar:

SayaçBoyFCSGenellikle ne anlatır
Undersize64 bayttan kısasağlamGönderen kart dolgu eklememiş
Fragment64 bayttan kısabozukYarıda kesilmiş çerçeve, çoğunlukla çarpışma
Oversize1518 bayttan uzunsağlamJumbo açık bir cihaz, sınırı 1518 olan bir porta gönderiyor
Jabber1518 bayttan uzunbozukSusmadan gönderen, bozuk bir kart

Bu dört ad RMON standardından (RFC 2819) gelir. Runt ve giant sözcüklerini her üretici bu sayaçlardan farklı birine bağlayabilir, bu yüzden kendi switch’inizdeki tanıma bakın.

Runt’ı yarım çift yön ölçümünde gördüm: çarpışan kart gönderdiği çerçeveyi yarıda keser ve switch her turda binden fazla kırıntı saydı. Yarım çift yönde bu normaldir. Tam çift yönlü bir portta runt görüyorsanız kabloya ve duplex ayarına bakın.

Giant’ı lab switch’inde ürettim. Bilgisayarın kartında jumbo frame’i açtım ve switch’in adresine 8.000 baytlık, parçalanması yasak on ping gönderdim; kablodaki çerçeve 8.046 bayttı. Switch’in sınırı varsayılan 1518 bayttayken on pingin hiçbiri cevap almadı ve port şunları saydı:

Switch Konsol Çıktısı
gmsw01#show interfaces counters gi1/0/2
...
Received packets dropped > MTU: ............... 30
...
gmsw01#show interfaces gi1/0/2
...
MTU Size : .................................... 1518
...
Jabbers Received............................... 10
...
Total Received Packets Not Forwarded........... 10

On çerçeve düştü. Jabbers Received ve Total Received Packets Not Forwarded bunu birebir gösterdi; Received packets dropped > MTU ise aynı on çerçeveyi üç kez saydı. Bu switch’te çerçeve sınırı port başına değil, bütün portlar için tek bir ayarla büyütülüyor:

Switch Konsolu
configure
system jumbo mtu 9216

Ayardan sonra aynı on ping cevap aldı ve hiçbir hata sayacı artmadı. Jumbo frame’i yalnız bir uçta açmak gerçek giant üretir. Sunucuda ya da storage cihazında açtıysanız yoldaki switch’lerin sınırını da büyütün.

İkinci deneme beklemediğim bir şey gösterdi. Bilgisayarın kartına VLAN 10 etiketi koydurdum, switch portunu trunk yaptım ve etiketli çerçeveyi bayt bayt büyüttüm. Etiketli 1518 bayt temiz geçti. 1519 ve 1522 baytta pinglerin 20’de 20’si cevap aldı, yani çerçeveler iletildi. Switch onları yine de giant sayaçlarına yazdı:

Switch Konsol Çıktısı
gmsw01#show interfaces counters gi1/0/2
...
Received packets dropped > MTU: ............... 60
Transmitted packets dropped > MTU: ............ 20
...
gmsw01#show interfaces gi1/0/2
...
Jabbers Received............................... 40
...
Total Received Packets Not Forwarded........... 0

Standart etiketli çerçeveye 1522 bayta kadar izin verir ve çerçeve buna uygun olarak iletildi. Sayaç ise 1518’i aşan her etiketli çerçeveyi “düşürüldü” diye yazdı; sınırı 9216’ya çıkarmak da bu sayımı durdurmadı. İki switch portunu kabloyla bağlayıp birini trunk, öbürünü önce access sonra trunk yaptığımda da aynı sayım çıktı. Örnekteki mağaza şubesinde görevli koliyi teslim alıyor, ama deftere yine “boy aşımı” diye yazıyor.

Yani bu switch’te giant sayacı iki ayrı şeyi aynı adla sayıyor: atılan jumbo çerçeveyi ve trunk’tan geçen tam boy etiketli çerçeveyi. Switch’lerin birbirine trunk ile bağlandığı her ağda ikincisi sıradan trafikle birikir.

Bir portta giant sayacı artıyorsa iki durumu şöyle ayırın:

  1. Trafiği sınayın. Aynı boyda, parçalanması yasak bir ping gönderin: Windows’ta ping -f -l 1472 192.168.10.2, Linux’ta ping -M do -s 1472 192.168.10.2. Cevap geliyorsa çerçeve iletiliyordur.
  2. İletilmeyen sayacına bakın. Bu switch’te Total Received Packets Not Forwarded gerçek düşüşte giant sayısıyla birlikte arttı, iletilen etiketli çerçevede sıfırda kaldı.

Hata sayaçlarını hangi sırayla okuyacağınızı switch port teşhisi yazımızda anlattık.

Ethernet Hızları: 10 Mbps’ten 10 Gigabit’e

Çerçevenin biçimi 1980’lerden bu yana neredeyse hiç değişmedi. Değişen, o çerçevenin kabloda ne hızla taşındığıdır. Bugün aynı ofiste 100 Mbps’lik bir yazıcı ile 10 Gbps’lik bir sunucu aynı çerçeveyle konuşabiliyorsa sebebi budur:

Standart adıHızKabloKullanılan çiftIEEE eki, yılı
10BASE-T10 MbpsCat3 ve üstü2802.3i, 1990
100BASE-TX100 MbpsCat5 ve üstü2802.3u, 1995
1000BASE-T1 GbpsCat5e ve üstü4802.3ab, 1999
2.5GBASE-T, 5GBASE-T2,5 ve 5 GbpsCat5e, Cat64802.3bz, 2016
10GBASE-T10 GbpsCat6A (100 m), Cat6 (55 m’ye kadar)4802.3an, 2006

1000BASE-T Nedir? BASE-T Adları Nasıl Okunur?

1000BASE-T, bükümlü çift bakır kablo üzerinde 1000 Mbps, yani 1 Gbps hızla çalışan gigabit Ethernet standardıdır. Adın her parçası bir şey söyler:

  • Baştaki sayı hızı Mbps cinsinden verir: 10, 100, 1000.
  • BASE, baseband demektir. Kablo tek bir sinyal taşır ve sinyal bir taşıyıcı frekansa bindirilmeden doğrudan tele verilir.
  • T, twisted pair, yani bükümlü çift bakır kablodur. 100BASE-TX’teki X, kullanılan kodlama ailesini gösterir.

Fiber standartlarında T’nin yerini ışığın türünü ve mesafeyi gösteren harfler alır; 10GBASE-SR kısa mesafeli çok modlu fiberdir.

Ağ Kartı Hangi Hızları İlan Ediyor?

Kablonun iki ucundaki kartlar bağlanır bağlanmaz bildikleri hızları birbirine ilan eder ve ikisinin de bildiği en yüksek hızda anlaşır. Bu anlaşmanın adı otomatik anlaşmadır (auto-negotiation). Lab makinelerinden birinin kartının ne ilan ettiğini ethtool ile okudum:

Bash
sudo ethtool port1
Çıktı
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
...
	Speed: 1000Mb/s
	Duplex: Full
	Auto-negotiation: on

Kart beş mod biliyor ve karşı taraf da gigabit bildiği için 1000Mb/s ile Full’da anlaşmış. Listede bir boşluk var. 10 ve 100 Mbps’in yarım çift yönlü (Half) sürümü var, 1000 Mbps’inki yok. Lab bilgisayarımın gerçek ağ kartının sürücüsünde de gigabit için tek seçenek tam çift yöndür. Bunun sebebini full ve half duplex yazımızda ele aldık.

Otomatik anlaşma bir uçta kapatılırsa ne olduğunu da ölçtüm. Switch port teşhisi yazımızda switch tarafını elle sabitlediğimde bağlantı açık kaldı, ama yük altında cevapların üçte biri yolda kayboldu.

Ethernet Kablosu: Dört Çiftin Hangisi Ne Taşır?

Hız tablosunun “kullanılan çift” sütunu kablonun içini anlatır. Bir Ethernet kablosunda dört bükümlü çift, yani sekiz tel vardır. Hepsinin kullanılıp kullanılmadığı hıza bağlıdır:

  • 10BASE-T ve 100BASE-TX iki çift kullanır. 1-2 numaralı pinlerdeki çift gönderir, 3-6 numaralı pinlerdeki çift alır; 4-5 ve 7-8 boşta durur.
  • 1000BASE-T ve üstü dört çiftin dördünü de kullanır ve her çift aynı anda iki yöne veri taşır.

Aynı tel çiftinden aynı anda iki yöne sinyal geçmesi ilk bakışta imkânsız görünür. Kart bunu yankı gidermeyle (echo cancellation) çözer. Teldeki toplam sinyalden kendi gönderdiğini çıkarır ve geriye karşı tarafın sinyali kalır.

Ağ kartı ile switch arasındaki dört çift. 100BASE-TX'te 1-2 çifti karttan switch'e, 3-6 çifti switch'ten karta taşır; 4-5 ve 7-8 çiftleri boştadır. 1000BASE-T'de dört çiftin dördü de aynı anda iki yöne taşır ve kart kendi gönderdiğini teldeki sinyalden çıkarır. 4-5 ya da 7-8 çifti kopuksa gigabit kurulamaz; kart hız düşürebiliyorsa bağlantı 100 Mbps'te kalır. 100BASE-TX: iki çift, her biri tek yöne Ağ kartı Switch 1-2 gönderir 3-6 alır 4-5 boşta 7-8 boşta 1000BASE-T: dört çift, her biri iki yöne Ağ kartı Switch 1-2 3-6 4-5 7-8 Gigabit'te kart kendi gönderdiğini teldeki toplam sinyalden çıkarır (yankı giderme). Ağ kartı ile switch arasındaki dört çift. 100BASE-TX'te 1-2 çifti karttan switch'e, 3-6 çifti switch'ten karta taşır; 4-5 ve 7-8 çiftleri boştadır. 1000BASE-T'de dört çiftin dördü de aynı anda iki yöne taşır ve kart kendi gönderdiğini teldeki sinyalden çıkarır. 4-5 ya da 7-8 çifti kopuksa gigabit kurulamaz; kart hız düşürebiliyorsa bağlantı 100 Mbps'te kalır. 100BASE-TX: iki çift, her biri tek yöne Ağ kartı Switch 1-2 gönderir 3-6 alır 4-5 boşta 7-8 boşta 1000BASE-T: dört çift, her biri iki yöne Ağ kartı Switch 1-2 3-6 4-5 7-8 Gigabit'te kart kendi gönderdiğini teldeki sinyalden çıkarır (yankı giderme).
100 Mbps'te iki çift boşta durur, gigabit'te dördü de çalışır ve her biri aynı anda iki yöne taşır. Kopuk bir 4-5 ya da 7-8 çifti bu yüzden 100 Mbps'i bozmaz, gigabit'i bozar.

Kablonun dört çiftini koridordaki dört şerit gibi düşünebilirsiniz; 100 Mbps iki şeridi, gigabit dördünü kullanır. Benzetme burada ikinci kez kopuyor. Gerçek bir şeritte aynı anda iki yöne araç geçmez, gigabit Ethernet’in her çifti ise tam olarak bunu yapar.

Bu fark tanıdık bir belirti doğurur. Kablo çalışıyor görünür, ışık yanar ve internet gelir; yalnız bağlantı hızı 100 Mbps’te kalır.

1-2 ve 3-6 çiftleri sağlamken 4-5 ya da 7-8 çiftlerinden biri kopuk ya da yanlış sonlanmışsa kartlar gigabit’te anlaşamaz. Kartın hız düşürme (downshift) özelliği varsa bağlantı 100 Mbps’te kurulur, yoksa hiç kurulmaz ya da gidip gelir. Bu davranışı lab’da ölçmedim; elimde tek çifti kopuk bir kablo yoktu.

Bağlantınız 100 Mbps’te kalıyorsa şu sırayla bakın:

  1. Karşı ucu kontrol edin. Switch portu ya da aradaki eski bir cihaz 100 Mbps’se kablo suçsuzdur.
  2. Kabloyu değiştirip hızı yeniden okuyun. Windows’ta Get-NetAdapter çıktısındaki LinkSpeed, switch’te port durum tablosu bağlantı hızını gösterir.
  3. Kabloyu switch’ten test edin. Birçok yönetilebilir switch kablonun çiftlerini tek tek ölçer; switch’ten kablo testinin neyi ölçüp neyi ölçmediğini ayrıca yazdık.

Kablonun kategorisi (Cat5e, Cat6, Cat6A) bu çiftlerin hangi hızı hangi mesafede taşıyabileceğini belirler. Bakır Ethernet’te üst sınır, kordonlar dahil 100 metredir. Kategori seçimini, 90+10 kuralını ve portların 10 Mbps’te kilitli kaldığı bir kablo vakasını yapısal kablolama yazımızda anlattık.

Ethernet ile Wi-Fi Farkı: Aynı Adres, Farklı Çerçeve

Buraya kadar hep kablo konuştuk. Ofisteki cihazların önemli bir kısmı ise kabloya hiç dokunmadan bağlanır. Wi-Fi (IEEE 802.11) Ethernet değildir, ama Ethernet’le aynı MAC adreslerini kullanır ve erişim noktası iki dünya arasında çevirmenlik yapar.

Havadaki çerçevenin kendine ait bir başlığı vardır. Arada bir erişim noktası durduğu için dört adres alanına kadar yer ayırır ve tek bir alıcıya giden her çerçeve havada karşı taraftan bir alındı onayı bekler.

Erişim noktası bu çerçeveyi alır ve aynı kaynak ve hedef MAC adresleriyle bir Ethernet çerçevesine çevirip kabloya verir. Switch dizüstü bilgisayarın adresini, kabloyla bağlanmış gibi görür. Kümenin benzetmesinde erişim noktası şubenin kapısıdır; dışarıdan nasıl gelirse gelsin içeride her ürün şubenin kolisine aktarılır.

Farkı Windows kendisi de söylüyor. Lab bilgisayarımın Wi-Fi kartını okudum:

PowerShell
Get-NetAdapter -Name "Wi-Fi" | Select-Object Name, MediaType, LinkSpeed, FullDuplex
Çıktı
Name  MediaType     LinkSpeed FullDuplex
----  ---------     --------- ----------
Wi-Fi Native 802.11 780 Mbps       False

Okunacak iki sütun var:

  1. MediaType kartın ortamını söyler. Wi-Fi kartı Native 802.11, aynı bilgisayarın kablolu kartı ise 802.3, yani Ethernet raporluyor.
  2. FullDuplex asıl farktır. Wi-Fi kartı False diyor, çünkü havadaki kanal aynı erişim noktasına bağlı herkesin sırayla konuştuğu tek bir ortamdır. Yukarıda ethtool ile okuduğum kablolu kart ise Duplex: Full ile iki yönü aynı anda taşıyordu.

780 Mbps kartın radyo bağlantı hızıdır, taşıyabileceği veri değil; kanalı paylaşan herkesin payı ondan düşülür. Kablosuz tarafın kapsama ve kapasite tasarımını kablosuz ağ tasarımı yazımızda anlattık.

Sonuç: Ethernet Çerçevesi Aynı Kaldı, Hız Bin Kat Arttı

Ethernet, yerel ağda verinin hangi kalıba sarılacağını ve kabloda nasıl taşınacağını tanımlayan IEEE 802.3 standardıdır. Çerçevesi 1980’lerden bu yana aynıdır: hedef adres, kaynak adres, tip, veri ve FCS. Bakır kabloda hız ise 10 Mbps’ten 10 Gbps’e, bin kat arttı.

Lab’daki ölçümler bu kalıbın görünmeyen kurallarını gösterdi. 42 baytlık bir ARP isteği karşı tarafa 60 bayt olarak vardı, çünkü gönderen kart onu dolguyla standart boya tamamladı. 1472 baytlık ping 1514 baytlık çerçeveye sığdı, bir bayt fazlası kabloya çıkmadı. FCS sanal kartta boş kaldı; işini ancak gerçek bir kabloda, switch’in hata sayacında gösterdi.

Süpermarket şubesinin koli standardı da böyle işler. Barkod hep aynı yerde durur, küçük ürün dolguyla gelir ve her koli açılmadan önce tartılır. Kablodaki bir sorun ise bazen tek bir şeritten başlar. Bağlantınız 100 Mbps’te kalıyorsa önce karşı uca, sonra kablonun dört çiftine bakın.

Ethernet Hakkında Sık Sorulan Sorular

Hayır. Ethernet, bir binanın içindeki yerel ağda cihazların veriyi kabloya nasıl koyacağını tanımlayan IEEE 802.3 standardıdır. İnternet ise ağları birbirine bağlayan IP ağıdır. Bilgisayarınızdan modeme ya da firewall'a kadar olan yol Ethernet'tir (ya da Wi-Fi); modemden sonrası operatörün hattıdır ve orada başka teknolojiler çalışır.
En sık sebep kablonun dört çiftinden birinin sorunlu olmasıdır. 100 Mbps Ethernet yalnız iki çift kullanır, 1 Gbps ise dördünü birden. 4-5 ya da 7-8 numaralı tellerden biri kopuk ya da yanlış sonlanmışsa kart gigabit'te anlaşamaz ve 100 Mbps'e iner. Önce karşı ucun, yani switch portunun 100 Mbps olmadığını kontrol edin, sonra kabloyu değiştirip hızı yeniden okuyun ya da kabloyu switch'in kablo testiyle ölçün.
FCS dahil 1518 bayttır: 14 bayt başlık, en çok 1500 bayt veri ve 4 bayt FCS. VLAN etiketi taşıyan çerçevede bu sınır 1522 bayta çıkar. Alt sınır 64 bayttır. Lab'da parçalanması yasaklanmış 1472 baytlık bir ping 1514 baytlık çerçeve olarak yakalandı; bir bayt fazlası ise kabloya hiç çıkmadı.
Aynı sınıftaki cihazlarda Ethernet daha kararlıdır, çünkü switch portunda iki yön aynı anda akar ve hattı kimseyle paylaşmazsınız. Wi-Fi'da ise erişim noktasına bağlı herkes aynı kanalı sırayla kullanır. Lab bilgisayarımın Wi-Fi kartı 780 Mbps bağlantı hızı ve FullDuplex False raporluyor; kablolu gigabit kart ise 1 Gbps'te tam çift yönlü çalışıyor.
İlker Pehlivan
Yazan

BT Danışmanı | Ağ, Sistem ve Güvenlik Yönetimi

İlker Pehlivan, karmaşık BT altyapılarını ölçeklenebilir ve güvenli sistemlere dönüştürür. Buradaki rehberleri kendi laboratuvarında kurup ölçerek yazar.

LinkedIn

Benzer Makaleler

Kurumsal Network Kurulumu altındaki diğer 114 makale