Kurumsal Network Kurulumu

Full Duplex ve Half Duplex Nedir? Tam ve Yarım Çift Yön

Full duplex ve half duplex nedir? Wi-Fi'ın neden yarım çift yönde çalıştığını, gigabit'te yarım çift yönün neden olmadığını ve gerçek switch'te bedelini ölçtüm.

İlker Pehlivan

Full duplex (tam çift yön), bir bağlantının iki ucunun aynı anda hem gönderip hem alabildiği çalışma kipidir. Half duplex (yarım çift yön) ise iki ucun sırayla konuştuğu kiptir; biri gönderirken öbürü bekler.

Telefon görüşmesi tam çift yönlüdür ve iki kişi aynı anda konuşabilir. Telsiz yarım çift yönlüdür; tuşa basan konuşur, öbürü dinler. Bugünün switch portları tam, Wi-Fi ise yarım çift yönde çalışır.

Türkçe arayüzlerde aynı ayar “tam çift yönlü” ve “yarım çift yönlü” diye geçer. Lab bilgisayarımın ağ kartı sürücüsü ise “Tam İkili” ve “Yarım İkili” diyor. Hepsi aynı şeyi anlatır.

Bu yazıda duplex’e dört yerden bakıyorum:

  1. Wi-Fi ve kablo. Windows aynı bilgisayarın kablosuz ve kablolu kartını nasıl raporluyor?
  2. Gigabit. Ağ kartları neden gigabit için yarım çift yön seçeneği sunmuyor?
  3. Sanal kart. Sanal bir kartı yarım çift yöne almak trafiği değiştiriyor mu?
  4. Gerçek switch. Bir uç tam, öbürü yarım çift yöndeyken ne bozuluyor; iki uç da yarım çift yöndeyken çarpışma ne zaman kayba dönüşüyor?

Kümenin benzetmesiyle switch bir süpermarket şubesidir ve duplex, şubenin kapısıdır. AVM’lerdeki dört bölmeli döner kapıdan içeri girenle dışarı çıkan aynı anda geçer; bölmeler iki yönü birbirine çarptırmaz. Yan taraftaki tek kanatlı kapıdan ise sırayla geçilir. Eşleme şöyle:

  • Döner kapı tam çift yöndür (full duplex).
  • Tek kanatlı kapı yarım çift yöndür (half duplex). Biri geçerken öbürü bekler.
  • Kapıyı aynı anda iten iki kişi yarım çift yöndeki çarpışmadır (collision). İkisi de geri çekilir ve bir süre bekleyip yeniden dener.
Full duplex ve half duplex benzetmesi: süpermarket şubesinin girişinde döner kapının bölmelerinden iki müşteri aynı anda geçiyor, yandaki tek kanatlı kapıdan biri içeri girerken öbürü kenarda sırasını bekliyor
Döner kapıdan aynı anda birden çok kişi geçer, tek kanatlı kapıdan sırayla. Switch portu döner kapıdır; Wi-Fi ve eski hub'lı Ethernet tek kanatlı kapı.

Bu yazı Ethernet yazımızın devamıdır; orada en küçük çerçevenin 64 bayt olmasını anlatırken yarım çift yöne dayandık, burada o dayanağın kendisini açıyoruz. Konu yalnız switch’e ait değildir, kablosuz ağın da temelidir. Kurumsal network kurulumu hizmetimizin kablolu ve kablosuz iki kolu da buna dayanır.

Duplex Ne Demek? Tek Yön, Yarım Çift Yön, Tam Çift Yön

Duplex, iletişimin iki yönlü olduğunu anlatan bir terimdir ve Latincede “iki katlı” anlamına gelen sözcükten gelir. Emlak ilanlarındaki dubleks ev de aynı kökten gelir. İletişimde üç kip vardır:

KipYönÖrnek
Simplex (tek yön)Yalnız bir yöneRadyo ve televizyon yayını
Half duplex (yarım çift yön)İki yöne, sıraylaTelsiz, Wi-Fi, hub’lı eski Ethernet
Full duplex (tam çift yön)İki yöne, aynı andaTelefon, switch portu

Tablodaki fark hız farkı değil, sıra farkıdır. 100 Mbps tam çift yönlü bir port iki yönde aynı anda 100’er Mbps taşır. Aynı port yarım çift yönde çalışırsa iki yönün toplamı 100 Mbps’i geçemez, çünkü bir yön konuşurken öbürü susar.

Telsiz: Bas-Konuş Yarım Çift Yöndür

Telsizde konuşmak için bas-konuş tuşuna basarsınız ve bastığınız sürece karşıyı duyamazsınız. Tuşu bıraktığınızda telsiz dinlemeye geçer. İki kişi aynı anda basarsa sinyaller karşı tarafta üst üste biner.

Telsizcilerin terimi burada kafa karıştırır. Telsizde aynı frekansta sırayla konuşmaya “simplex” denir, oysa bu çalışma biçimi veri iletişimindeki yarım çift yöndür. Röle (repeater) ise tam çift yönlü bir cihazdır; bir frekanstan dinler ve aynı anda başka bir frekanstan yayınlar. Röleyi kullananlar yine sırayla konuşur.

Half Duplex Nasıl Çalışır? Önce Dinle, Çarpışırsan Bekle

Telsizde sırayı insanlar tutar. Kabloda ise bu iş ağ kartına düşer. Kablolu Ethernet yarım çift yönde CSMA/CD (Carrier Sense Multiple Access with Collision Detection) adlı kuralla çalışır ve kural dört adımdır:

  1. Dinle. Kart göndermeden önce kabloda başka bir sinyal olup olmadığına bakar; varsa bekler.
  2. Gönder ve dinlemeye devam et. Kablo boşsa göndermeye başlar, bu sırada kabloyu dinlemeyi sürdürür.
  3. Çarpışmayı fark et. Kendi gönderdiğinden farklı bir sinyal duyarsa bir çarpışma olmuştur. Kart göndermeyi keser ve herkesin duyması için kısa bir karışıklık sinyali (jam) yayar.
  4. Rastgele bekle, yeniden dene. Çarpışan kartların her biri rastgele bir süre bekleyip yeniden dener. Çarpışma tekrarladıkça bekleme aralığı iki katına çıkar ve 16. denemede de geçemeyen çerçeve atılır.

Örnekteki mağaza şubesinde tek kanatlı kapıyı aynı anda iten iki kişi de böyle yapar. İkisi de geri çekilir, biri önce davranır. Benzetme burada kopuyor. Kapıdaki iki kişi göz göze gelip sırayı konuşur; kartlar konuşamaz, zar atar gibi rastgele bir süre seçer.

Çarpışmanın fark edilebilmesi için gönderen kartın, haberi kablonun en uzak ucundan dönene kadar hâlâ gönderiyor olması gerekir. Ethernet’in en küçük çerçeveyi 64 bayta bağlaması bundandır; hesabını Ethernet yazımızda iki makine arasında ölçtüğümüz dolguyla birlikte anlattık.

Çarpışma Alanı: Hub ve Switch Farkı

Aynı kabloyu ya da aynı hub’ı paylaşan cihazların hepsi aynı çarpışma alanındadır (collision domain). Hub gelen sinyali bütün portlarına kopyalar; on portlu bir hub’a bağlı on bilgisayar aynı tek kanatlı kapıyı paylaşır.

Switch her portu ayrı bir çarpışma alanı yapar. Portun karşısında tek bir cihaz vardır ve kimseyle sıra beklemeye gerek kalmaz. Tam çift yön bu sayede mümkündür. Hub ile switch’in farkını switch nedir yazımızda ayrıca ele aldık.

Full Duplex Nasıl Çalışır? İki Yön, Aynı Anda

Tam çift yönde CSMA/CD kapanır. Kart kabloyu dinlemez, çarpışma beklemez ve istediği an gönderir. Bunun iki şartı vardır:

  1. Kablonun iki ucunda yalnız iki cihaz bulunur. Switch portu ile bilgisayar kartı bu şartı sağlar, hub sağlamaz.
  2. İki yön birbirine karışmaz. 10 ve 100 Mbps’te gönderme ve alma ayrı tel çiftlerinden geçer. Gigabit’te aynı çiftler iki yönü birden taşır ve kart kendi sinyalini yankı gidermeyle ayırır; bunu Ethernet kablosunun dört çiftini anlattığımız bölümde açtık.
Yarım ve tam çift yönün zaman çizgisi. Yarım çift yönde iki uç tek hattı sırayla kullanır: A gönderirken B bekler, sonra B gönderir; ikisi aynı anda başlarsa çarpışır, gönderimi keser, rastgele bekler ve yeniden dener. Tam çift yönde A'dan B'ye ve B'den A'ya giden çerçeveler aynı anda akar, kimse beklemez ve çarpışma olmaz. Yarım çift yön: tek hat, sırayla A → B B → A çarpışma Biri gönderirken öbürü bekler. İkisi aynı anda başlarsa çarpışır, keser, rastgele bekler ve yeniden dener. Tam çift yön: iki hat, aynı anda A → B B → A Kimse beklemez ve çarpışma olmaz; her yön kendi hattını ayrı ayrı doldurur. zaman Yarım ve tam çift yönün zaman çizgisi. Yarım çift yönde iki uç tek hattı sırayla kullanır: A gönderirken B bekler, sonra B gönderir; ikisi aynı anda başlarsa çarpışır, gönderimi keser, rastgele bekler ve yeniden dener. Tam çift yönde A'dan B'ye ve B'den A'ya giden çerçeveler aynı anda akar, kimse beklemez ve çarpışma olmaz. Yarım çift yön: tek hat, sırayla A → B B → A çarpışma Biri gönderirken öbürü bekler. Aynı anda başlarlarsa çarpışır, rastgele bekleyip yeniden dener. Tam çift yön: iki hat, aynı anda A → B B → A Kimse beklemez ve çarpışma olmaz; her yön kendi hattını ayrı ayrı doldurur. zaman
Yarım çift yönde iki yön tek hattı sırayla kullanır ve aynı anda başlayan iki kart çarpışır. Tam çift yönde her yönün kendi hattı vardır; bekleme de çarpışma da yoktur.

Örnekteki mağaza şubesinde döner kapının bölmeleri de böyle çalışır; giren ve çıkan ayrı bölmelerdedir ve biri öbürünü beklemez.

Benzetme ikinci kez burada kopuyor. Döner kapıda iki yön aynı dönüşü paylaşır, biri yavaşlarsa öbürü de yavaşlar. Kabloda iki yön birbirinden bağımsızdır; 1 Gbps’lik bir port bir yönde tamamen doluyken öbür yönde de 1 Gbps taşır. Kapının dört bölmesini kablonun dört çiftiyle de eşlemeyin; bölmeler yönleri ayırır, gigabit’te çiftler ayırmaz.

1000BASE-T’de Yarım Çift Yön Neden Yok?

IEEE 802.3 standardı gigabit Ethernet için yarım çift yönü kâğıt üzerinde tanımlar, ama bunu sunan bir ağ kartı bulmak neredeyse imkânsızdır. Lab bilgisayarımın ağ kartı sürücüsünün sunduğu hız ve duplex seçeneklerini okudum:

PowerShell
(Get-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword "*SpeedDuplex").ValidDisplayValues
Çıktı
Otomatik Görüşme
10 Mbps Yarım İkili
10 Mbps Tam İkili
100 Mbps Yarım İkili
100 Mbps Tam İkili
1.0 Gbps Tam İkili

10 ve 100 Mbps’in iki kipi de var, gigabit’in yalnız tam çift yönü var. Sürücünün kendi iç numaraları da aynı şeyi söylüyor. Seçenekler 0, 1, 2, 3, 4, 6 diye sıralanıyor ve gigabit yarım çift yöne ayrılan 5 numara boş. Lab’daki Linux sanal makinelerin kartı da ethtool çıktısında 1000baseT/Full’u listeliyor, 1000baseT/Half’ı listelemiyor.

Sebebi yine çarpışma hesabıdır. Gigabit’te bir bit, 100 Mbps’tekinden on kat kısa sürer ve 64 baytlık çerçeve, çarpışmanın haberi kablonun uzak ucundan dönmeden biter. Standart bunu kısa çerçeveleri 512 bayta uzatan bir ekle (carrier extension) çözdü. O sırada switch’ler zaten her yerdeydi ve gigabit hub neredeyse hiç üretilmedi. 10 Gigabit ve üstünde standart yarım çift yönü hiç tanımlamaz.

Duplex Uyuşmazlığı: Otomatik Anlaşma Bozulunca

Bir bağlantının iki ucu hız ve duplex’i kendileri seçer. Kartlar bağlanır bağlanmaz bildikleri modları birbirine ilan eder ve ikisinin de bildiği en iyisinde, bugün çoğunlukla 1 Gbps tam çift yönde anlaşır. Bu anlaşmanın adı otomatik anlaşmadır (auto-negotiation).

Bir uç elle sabitlenirse o uç ilan yapmayı bırakır. Karşı taraf hattaki sinyalden hızı çıkarabilir ama duplex’i çıkaramaz; standart ona bu durumda yarım çift yönü seçmesini söyler. Sonuç duplex uyuşmazlığıdır (duplex mismatch): bir uç tam çift yönde durmadan gönderir, öbür uç yarım çift yönde çarpışma sanıp geri çekilir.

Bunu switch port teşhisi yazımızda gerçek bir switch’te ölçtüm. Switch tarafını 100 Mbps tam çift yöne sabitlediğimde bilgisayar kendiliğinden yarım çift yöne düştü. Bağlantı açık kaldı, küçük ping sorunsuz geçti. Yük altında ise switch’in gönderdiği cevapların yüzde 34’ü yolda bozuldu. Bozuk parçaları yalnız switch’in hata sayaçları gördü; Windows hiçbir şey göstermedi.

Örnekteki mağaza şubesinde tek kanatlı kapıyı döner kapı sanan görevli arabasını durmadan iter, sırayı bekleyen görevli her seferinde geri çekilir.

İki Uç da Half Duplex: Çarpışma Var, Kayıp 16. Denemede

Uyuşmazlığın zıddı, iki ucun da yarım çift yönde çalıştığı bağlantıdır. Burada çarpışma beklenir, çünkü iki uç tek hattı sırayla kullanır ve bazen aynı anda başlar. Kayıp ise beklenmez, çünkü çarpışan kart çerçevesini yeniden gönderir. Bunu aynı lab switch’inde ölçtüm. Switch portunu 100 Mbps yarım çift yöne sabitledim:

Switch Konsolu
configure
interface gi1/0/2
speed 100
duplex half
Switch Konsol Çıktısı
gmsw01#show interfaces status gi1/0/2

Port      Description     Duplex Speed   Neg  Link   Flow  M  VLAN
                                              State  Ctrl
--------- --------------- ------ ------- ---- ------ ----- -- -------------------
Gi1/0/2                   Half   100     Off  Up     Off   A  10

Bilgisayar karşı ucun ilanını duyamayınca kendiliğinden yarım çift yöne düştü; Windows 100 Mbps ve FullDuplex False gösterdi. Ardından switch’in kendi adresine 30.000 baytlık ping gönderdim, bir turda 10, bir turda 40 paralel. Tam çift yönlü kontrol için otomatik anlaşmayı açık tutup switch’e yalnız 100 Mbps ilan ettirdim (speed auto 100), böylece iki kip aynı hızda karşılaştı.

Her turda switch’in gönderdiğini saydığı çerçeveyi (show statistics) Windows’un aldığını saydığı çerçeveyle (Get-NetAdapterStatistics) karşılaştırdım. Switch kendine gelen trafiği sınırlayıp isteklerin bir kısmını hiç cevaplamadığı için tabloda yalnız gerçekten gönderdiği cevaplar sayılıyor.

DurumYükSwitch’in çarpışma sayacı (tek / çoklu / aşırı)Bilgisayara ulaşmayan çerçeveKaybolan cevap
100 Mbps tam çift yön40 paralel ping0 / 0 / 00 / 10.8800 / 518
100 Mbps yarım çift yön10 paralel ping16 / 55 / 00 / 5.2930 / 252
100 Mbps yarım çift yön40 paralel ping265 / 200 / 4545 / 11.72034 / 557

Tabloda üç şey öne çıkıyor:

  1. Çarpışma kayıp demek değildir. 10 paralel pingde switch 71 çerçevesinin en az bir kez çarpıştığını saydı ve hepsini yeniden gönderdi; bilgisayara ulaşmayan çerçeve sıfırdı. CSMA/CD’nin söz verdiği tam budur.
  2. Kayıp 16. denemede başlıyor. 40 paralel pingde 45 çerçeve 16 denemenin hiçbirinde geçemedi ve atıldı. Bilgisayara ulaşmayan çerçeve de tam 45’ti; iki tekrarında 66’ya 66 ve 33’e 33 çıktı. 30.000 baytlık bir cevap 21 çerçeveye bölünerek gider ve tek parçası eksik kalan cevap bütünüyle kaybolur; 45 çerçeve 34 cevabı düşürdü.
  3. Kaybeden hep switch oldu. O turda bilgisayarın gönderdiği 25.203 çerçevenin hepsi switch’e ulaştı, tekrarlarında da öyle. Hattı yalnız iki cihaz paylaşınca bu bilinen bir durumdur ve adı yakalama etkisidir (capture effect). Az önce başarıyla gönderen tarafın çarpışma sayacı sıfırlandığı için kısa bekler, öbürünün bekleme aralığı ise her çarpışmada büyür; biri art arda kazanırken öbürü 16’ya kadar çarpışır.

Kırıntı sayacı (UnderSize) 40 paralel pingde 1.584’e çıktı: bunlar bilgisayarın çarpışınca yarıda kestiği çerçevelerdir. FCS-Err ise hep sıfırda kaldı. Uyuşmazlıkta bu sayaç 62’ye çıkmıştı, çünkü orada çarpışma çerçevenin ortasında, geç yaşanır. Hata sayaçlarında iki durumu ayıran fark budur.

Yarım çift yönde çerçeve gönderen bilgisayar ile araya giren switch. Çerçevenin ilk 64 baytı çarpışma penceresidir. Switch bu pencerede göndermeye başlarsa bilgisayar gönderimi keser ve switch'e 64 bayttan kısa bir parça gider; switch bunu kırıntı (UnderSize) sayar. Switch 64. bayttan sonra başlarsa bu geç çarpışmadır; bilgisayar yine keser, ama switch'e uzun ve bozuk bir çerçeve gider ve FCS hatası sayılır. İki uç da yarım çift yöndeyse switch araya girmeden bekler, çarpışma yalnız çerçevenin başında olur ve yalnız kırıntı sayılır. Bilgisayarın gönderdiği çerçeve (yarım çift yön), ölçekli değil ilk 64 bayt çerçevenin geri kalanı, 1.518 bayta kadar switch burada başlarsa switch burada başlarsa (geç çarpışma) Bilgisayar keser, switch'e kısa parça gider Sayılan: kırıntı (UnderSize) Bilgisayar keser, switch'e uzun ve bozuk çerçeve gider Sayılan: FCS-Err İki uç da yarım çift yöndeyse switch araya girmez, bekler: yalnız ilk kutu yaşanır (FCS-Err 0). Yarım çift yönde çerçeve gönderen bilgisayar ile araya giren switch. Çerçevenin ilk 64 baytı çarpışma penceresidir. Switch bu pencerede göndermeye başlarsa bilgisayar gönderimi keser ve switch'e 64 bayttan kısa bir parça gider; switch bunu kırıntı (UnderSize) sayar. Switch 64. bayttan sonra başlarsa bu geç çarpışmadır; bilgisayar yine keser, ama switch'e uzun ve bozuk bir çerçeve gider ve FCS hatası sayılır. İki uç da yarım çift yöndeyse switch araya girmeden bekler, çarpışma yalnız çerçevenin başında olur ve yalnız kırıntı sayılır. Bilgisayarın gönderdiği çerçeve yarım çift yön, ölçekli değil ilk 64 bayt geri kalanı, 1.518 bayta kadar switch burada başlarsa Bilgisayar keser, switch'e kısa parça gider Sayılan: kırıntı (UnderSize) switch burada başlarsa (geç) Bilgisayar keser, switch'e uzun ve bozuk çerçeve gider Sayılan: FCS-Err İki uç da yarım çift yöndeyse switch araya girmez, bekler: yalnız ilk kutu yaşanır (FCS-Err 0).
Hangi hata sayacının artacağını, switch'in bilgisayarın çerçevesine ne zaman çarptığı belirler. İlk 64 baytta çarpan kırıntı bırakır, sonra çarpan FCS hatası.

Half Duplex Canlı Portta Değişince: Sayaç Sıfır, Kayıp Yüksek

İlk turlarımda tablo böyle çıkmadı. Switch’in çarpışma sayaçları sıfırda kaldı, cevapların %30 ile %32’si kayboldu ve ben önce bu switch’in yarım çift yönde çarpışma saymadığını düşündüm. Nedeni switch’in günlüğündeydi. Yukarıdaki iki satırı art arda yazdığımda speed 100 linki düşürüp yeniden kurmuş, duplex half ise ayağa kalkmış bir linke girmişti. Günlük en yeniden eskiye doğru okunur:

Switch Konsol Çıktısı
gmsw01#show logging | include Gi1/0/2
...
<189> Sep 29 02:36:39 gmsw01-1 TRAPMGR[trapTask]: traputil.c(735) 297 %% Link Up: Gi1/0/2
...
<189> Sep 29 02:36:39 gmsw01-1 TRAPMGR[trapTask]: traputil.c(735) 294 %% Link Down: Gi1/0/2
...
<189> Sep 29 02:36:38 gmsw01-1 TRAPMGR[trapTask]: traputil.c(735) 292 %% Link Up: Gi1/0/2
...
<189> Sep 29 02:36:36 gmsw01-1 TRAPMGR[trapTask]: traputil.c(735) 287 %% Link Down: Gi1/0/2

İlk iki satır speed 100’e aittir: link 02:36:36’da düştü, iki saniye sonra kalktı. Son iki satır duplex half’e aittir: link aynı saniye içinde düşüp kalktı. Bu ikincisi gerçek bir yeniden kuruluş değildir. Başka bir denemede link ayaktayken tam çift yönden yarıma geçtiğimde bilgisayar geçişi hiç fark etmedi ve tam çift yönde kalmaya devam etti.

Port bu hâlde Half gösteriyor ama çarpışmayı algılamıyor. Aynı iki yükü bu kurulumla da gönderdim:

KurulumYükSwitch’in çarpışma sayacı (tek / çoklu / aşırı)Bilgisayara ulaşmayan çerçeveKaybolan cevap
Link ayaktayken yarıma geçildi10 paralel ping0 / 0 / 0156 / 4.62121 / 220
Link ayaktayken yarıma geçildi40 paralel ping0 / 0 / 02.253 / 12.960168 / 617

Çarpışmalar sürüyordu; kırıntı sayacı iki yükte 130 ve 1.764’tü. Ama switch hiçbirini fark etmedi. Çarpışan çerçevesini yeniden göndermedi, sayacına yazmadı ve gönderilmiş saydı; o çerçeveler bilgisayara ulaşmadı. Doğru kurulumda çarpışma yalnız 16. denemede kayba dönüşüyordu, burada her çarpışma bir çerçeveye mal oldu. Kayıp uyuşmazlıktakine bu yüzden bu kadar yakın çıktı.

Örnekteki mağaza şubesinde kapının tabelası tek kanatlı diye değişmiş, ama görevli kuralın yarısını öğrenmiştir: kapıda sırasını bekliyor, fakat biriyle aynı anda ittiğinde geri çekilmiyor ve kapıda kalan arabayı teslim edilmiş sayıyor.

Bu durumu dört turda gördüm, ikisinde bilerek kurdum; dördünde de duplex half ayaktaki bir linke girmişti. Ayarı değiştirmeden yalnız portu kapatıp açtığımda (shutdown, no shutdown) sayaçlar çalışmaya başladı ve bilgisayara ulaşmayan çerçeve, aşırı çarpışma sayısına indi.

Kural bu yüzden basittir. İki ucu da otomatik anlaşmada bırakın. Hızı düşürmeniz gerekiyorsa otomatik anlaşmayı kapatmadan yalnız o hızı ilan ettirin. Elle sabitlemek zorundaysanız iki ucu da tam çift yöne sabitleyin, çünkü yalnız birini sabitlemek uyuşmazlık, ikisini yarım çift yöne almak yük altında kayıp üretir.

Duplex’i çalışan bir portta değiştirdiyseniz portu bir kez kapatıp açın. Yarım çift yönde trafik taşıyan bir portun çarpışma sayacı hiç artmıyorsa port çarpışmayı algılamıyor olabilir; bu switch’te dört denemenin dördünde öyleydi.

Sanal Kartta Duplex: Ayar Var, Etkisi Yok

Yarım çift yönün bir sınırı vardır: iki yönün toplamı bağlantı hızını geçemez. 100 Mbps yarım çift yönlü bir bağlantıda iki yön birlikte 100 Mbps’i aşmamalıdır. Bunu sanal makinelerde denedim. İki Linux sanal makinesinin kartlarını 100 Mbps yarım çift yöne sabitledim:

Bash
sudo ethtool -s port1 speed 100 duplex half autoneg off
sudo ethtool port1 | egrep "Speed|Duplex|Auto-neg"
Çıktı
	Speed: 100Mb/s
	Duplex: Half
	Auto-negotiation: off

Ardından iperf3 ile iki yöne aynı anda 10 saniye yük gönderdim:

Bash
iperf3 -c 10.99.0.2 --bidir -t 10
Çıktı
...
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][TX-C]   0.00-10.00  sec  2.44 GBytes  2.09 Gbits/sec  179             sender
[  5][TX-C]   0.00-10.01  sec  2.43 GBytes  2.09 Gbits/sec                  receiver
[  7][RX-C]   0.00-10.00  sec  1.43 GBytes  1.23 Gbits/sec    0             sender
[  7][RX-C]   0.00-10.01  sec  1.43 GBytes  1.23 Gbits/sec                  receiver

iperf Done.

“100 Mbps, yarım çift yön” diyen bağlantıdan bir yönde 2,09, öbür yönde aynı anda 1,23 Gbps geçti. Kartın çarpışma sayacı (collisions) sıfırda kaldı. Aynı test otomatik anlaşmada, yani “1000 Mbps, tam çift yön” etiketiyle 2,30 ve 0,76 Gbps vermişti. Etiket değişti, trafik değişmedi.

Sanal kartın arkasında bir kablo yoktur. Hipervizör çerçeveyi bir makinenin belleğinden öbürüne kopyalar; ne sırayla konuşulacak bir hat vardır ne çarpışacak bir sinyal. Sanal kartın hızı da duplex’i de bir etikettir. Sanal makinede ağ yavaşsa duplex ayarında aramayın. Duplex sorunu, fiziksel sunucunun switch’e bağlandığı gerçek kabloda aranır.

Wi-Fi Neden Yarım Çift Yöndür?

Kablolu ağda yarım çift yön bugün istisnadır, kablosuzda ise kuraldır. Bir Wi-Fi kartı aynı kanalda gönderirken dinleyemez, çünkü kendi yaydığı sinyal uzaktan gelen sinyalden kat kat güçlüdür ve onu bastırır. Kart bu yüzden çarpışmayı fark edemez ve baştan kaçınmak zorundadır.

Windows bu farkı kendisi raporluyor. 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

FullDuplex sütunu False diyor; aynı bilgisayarın kablolu kartı True raporluyor. 780 Mbps ise kartın radyo bağlantı hızıdır. Bu hız iki yön ve aynı erişim noktasına bağlı bütün cihazlar arasında paylaşılır, bu yüzden tek bir cihazın taşıyabileceği veri bunun oldukça altında kalır.

Kablosuzdaki kuralın adı CSMA/CA’dır (Collision Avoidance). Kart göndermeden önce havayı dinler, boşsa rastgele kısa bir süre daha bekler ve öyle gönderir. Karşı taraf her çerçeve için bir alındı onayı yollar; onay gelmezse kart çarpışma olduğunu varsayıp yeniden dener. Bu mekanizmanın bir binadaki access point sayısını ve kanal planını nasıl belirlediğini kablosuz ağ tasarımı yazımızda anlattık.

Ethernet’in 1980’lerdeki paylaşılan kablosu bugün havada yaşıyor. Kabloda switch tek kanatlı kapıyı döner kapıya çevirdi; havada kapı hâlâ tek kanatlıdır.

Sonuç: Duplex Hız Değil, Sıra Meselesidir

Full duplex iki yönün aynı anda aktığı, half duplex iki yönün sırayla konuştuğu kiptir. Bugünün switch portları tam çift yönde çalışır. Wi-Fi yarım çift yöndedir, çünkü bir radyo gönderirken dinleyemez. Gigabit’te yarım çift yön pratikte yoktur; lab’da baktığım iki ağ kartı da gigabit için yalnız tam çift yön sunuyor.

Ölçümler ayarın nerede anlam taşıdığını da gösterdi. Sanal kartta “yarım çift yön” etiketi trafiği hiç değiştirmedi. Gerçek switch’te ise bir ucun sabitlenmesi, bağlantıyı düşürmeden yük altındaki cevapların üçte birini bozdu. İki ucu da yarım çift yöne almak orta yükte sorunsuzdu; ağır yükte ise 16 kez çarpışan çerçeveler atıldı ve aynı 100 Mbps’te cevapların hepsini yalnız tam çift yön ulaştırdı.

Duplex’i çalışan bir porta vermek ise en sinsi durumu yarattı: port Half gösterdi, çarpışmayı saymadı ve her çarpışmada bir çerçeve kaybetti.

Süpermarket şubesinin girişinde döner kapı giren ile çıkanı aynı anda geçirir, tek kanatlı kapı sırayla. Bir switch portunun hangi kapı olduğunu iki ucun kendi aralarında anlaşması belirler. O anlaşmayı bozmayın ve iki ucu da otomatikte bırakın.

Full Duplex ve Half Duplex Hakkında Sık Sorulan Sorular

Bir bağlantının iki ucunun aynı anda hem gönderip hem alabildiği çalışma kipidir; Türkçe arayüzlerde tam çift yönlü diye geçer. 1 Gbps tam çift yönlü bir switch portu bir yönde 1 Gbps gönderirken öbür yönde de 1 Gbps alabilir. Yarım çift yönde ise iki yönün toplamı bağlantı hızını geçemez, çünkü bir yön konuşurken öbürü bekler.
Bir bağlantının iki ucunun sırayla gönderdiği çalışma kipidir; Türkçe arayüzlerde yarım çift yönlü diye geçer. Biri gönderirken öbürü bekler, bu yüzden 100 Mbps yarım çift yönlü bir bağlantıda iki yönün toplamı 100 Mbps'i geçemez. Kablolu Ethernet bu kipte CSMA/CD ile çalışır: kart önce hattı dinler, iki uç aynı anda başlarsa çarpışmayı fark eder, rastgele bir süre bekleyip yeniden dener ve 16 denemede de geçemeyen çerçeveyi atar. Bugün en çok Wi-Fi'da ve elle sabitlenmiş portlarda karşınıza çıkar.
Hayır, iki ucu da otomatik anlaşmada bırakın. Yalnız bir ucu sabitlerseniz öbür uç duplex'i anlayamaz ve yarım çift yöne düşer. Lab'da switch tarafını 100 Mbps tam çift yöne sabitlediğimde bilgisayar yarım çift yöne düştü; bağlantı açık kaldı, ama yük altında switch'in gönderdiği cevapların yüzde 34'ü yolda bozuldu. İki ucu da yarım çift yöne almak da ağır yükte cevapların yüzde 6 ile 10'unu kaybettirdi. Sabitlemek zorundaysanız iki ucu da tam çift yöne sabitleyin.
Hayır. Bir Wi-Fi kartı aynı kanalda gönderirken dinleyemez, bu yüzden aynı erişim noktasına bağlı herkes havayı sırayla kullanır. Windows da bunu raporluyor; lab bilgisayarımın Wi-Fi kartı FullDuplex False, aynı bilgisayarın kablolu kartı True diyor. 780 Mbps gibi bir bağlantı hızı, iki yönün ve kanaldaki bütün cihazların paylaştığı toplamdır.
Kablosuzda her gün kullanılır, çünkü Wi-Fi yarım çift yönlüdür. Kablolu ağda ise nadirdir: eski bir hub, 10 Mbps'lik eski bir cihaz ya da bir ucu elle sabitlenmiş bir port yarım çift yöne düşer. Gigabit ve üstünde yarım çift yön pratikte yoktur; lab'da baktığım iki ağ kartının ikisi de gigabit için yalnız tam çift yön sunuyor.
İ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