Ana içeriğe geç

Bölüm 48:Bitten Sinyale

10 dakikalık okumaGüncelleme:

Ağlar'a “Sen”i Katmak yazısının parçası: adres çubuğuna yazdığın tek bir isteğin peşinden bakırla fiberin fiziğine kadar inen uzun bir teknik yolculuk.

Tüm bölümler
  1. Giriş
  2. Adres Çubuğundan İsteğe
  3. Paket Anahtarlamalı Yol
  4. İsimden Adrese
  5. Önbellek, Tazelik ve Güven
  6. Port Numarası ve Soket
  7. Bağlantısız Taşıma: UDP
  8. Üç Adımlı El Sıkışma
  9. Simetrik Şifreleme
  10. Açık Anahtarlı Kriptografi
  11. TLS El Sıkışması
  12. Sertifika Zinciri
  13. HTTP Mesajının Anatomisi
  14. Durum, Çerez ve Oturum
  15. HTTP/2'den HTTP/3'e
  16. İçerik Dağıtım Ağları
  17. Diğer Uygulama Protokolleri
  18. Katmanlı Mimari
  19. Kapsülleme ve Başlıklar
  20. Paket Yakalama ve Çözümleme
  21. Ağ Arayüz Kartı
  22. Fiziksel Adresleme
  23. Hata Sezme ve CRC
  24. Adres Çözümleme: ARP
  25. Anahtarlama ve Ortam Erişimi
  26. Ağ Topolojileri
  27. Sanal Yerel Ağlar
  28. Kablosuz Erişim: 802.11
  29. Radyo Kanalı ve Kapasite
  30. Kablosuz Ağ Güvenliği
  31. Hücresel Ağlar
  32. Spektrum ve Kuşaklar
  33. Hareketlilik ve Aktarma
  34. Adres Kiralama: DHCP
  35. Adresin Anatomisi
  36. Adres Tükenmesi ve IPv6
  37. Yönlendirici Mimarisi
  38. Kuyruk Yönetimi
  39. Cihaz Yapılandırma
  40. Yönlendirme Protokolleri
  41. Kontrol Düzlemi ve SDN
  42. Ağ İzleme ve Yönetimi
  43. Alanlar Arası Yönlendirme
  44. Adres Çevirisi
  45. Ara Kutular
  46. Tünelleme ve IPsec
  47. Güvenlik Duvarları
  48. Operatör ve Metro Ağları
  49. Bitten Sinyale
  50. Çoklama Teknikleri
  51. İletim Ortamları
  52. Kablo Sonlandırma
  53. Fiber Optik İletim
  54. Bakır Erişim Ağı: DSL
  55. Pasif Optik Ağlar
  56. Kablo Erişim Ağları
  57. Denizaltı Kabloları
  58. Veri Merkezi Ağları
  59. Kapsülleme Çözme
  60. Güvenilir Aktarım
  61. Tıkanıklık Denetimi
  62. Trafik Çözümleme
  63. Gecikme Bütçesi
  64. Son Söz

Şimdiye kadar paketi hep bir nesne gibi anlattım. Kasten basitleştirdim.

Bakırın üstünde paket diye bir şey yok. Orada yalnızca değişen bir gerilim var, ya da bir ışık dalgası. Peki bir bit tam olarak hangi dalga biçimine dönüşüyor?

Telde bit yok, gerilim var

Sinyal, bilgi taşıyan bir fiziksel büyüklük. Karşına üç biçimden biriyle çıkıyor: iletken üzerinde ilerleyen bir elektrik gerilimi, ortamda yol alan bir ışık örneği, bir de havada yayılan elektromanyetik dalga.

Paket metro halkasında bir etiketle taşınıyordu; o etiket de sonunda bu üç biçimden birine iner. Havada ise çerçeve bir kanal üzerinden veriliyordu; oradaki taşıyıcı da elektromanyetik bir dalgadır. Fizik aynı, ortam farklı.

Analog sinyal iki uç arasında sonsuz sayıda ara değer alabiliyor. Sayısal sinyalde böyle bir serbestlik yok; genlik değerleri önceden belirlenmiş ve sayılı.

Fiziksel katman bir anlaşma katmanıdır. İki taraf gerilim seviyesinde ve bit süresinde aynı kuralı paylaşmıyorsa iletim hiç başlamaz. Kablo takılı, ışıklar yanıyor, tek bir bayt geçmiyor. Sahada canını en çok sıkacak arıza tablosu budur, çünkü bakınca her şey yolunda görünüyor.

En sade anlaşmanın adı NRZ. Bakırda dijital 1’i tipik olarak +5 V ya da +3,3 V ile gösteriyorsun, dijital 0’ı ise 0 V ile. Optik ortamda aynı kural ışığa çevrilir: 1 parlak ışık, 0 karanlıktır. Işık kaynağının kendisi de bir tavan koyar: LED’ler en çok 600 MHz’e kadar çalışır. Bilgi doğrudan seviyenin kendisinde durur. NRZ-L bugün de asenkron RS-232 haberleşmesinde kullanılıyor.

Bir bitin süresi veri hızının tersidir. 1 Gbit/s’te bir bit 1 nanosaniye sürer; 10 Gbit/s’te aynı bit 100 pikosaniyeye iner. Yüz pikosaniye, ışığın bir buçuk santimetre yol aldığı süre — alıcının kararını o pencerenin içinde vermesi gerekiyor.

Alıcı sembol sınırını nereden bilir?

Saati ayrı bir telle de taşıyabilirsin, ama her hat için ikinci bir tel çekmek pahalıya patlar. Alternatifi saati sinyalin kendisine gömmek. Bunun çalışması için gelen sinyalde yeterli seviye geçişi bulunması gerekiyor; alıcı sembol sınırlarını ancak o geçişlerden çıkarabiliyor.

NRZI farksal bir kodlama: bilgiyi mutlak seviyede değil, aralık başındaki geçişin varlığında tutuyor. Kutuplamayı ters bağlasan bile anlam bozulmuyor. Gürültü altında bir geçişi saptamak, bir değeri eşikle karşılaştırmaktan daha güvenilir olabilir.

Bipolar-AMI başka bir yol seçiyor: sıfır için hiçbir şey göndermiyor, bir için sırayla pozitif ve negatif darbe yolluyor. Ardışık birler kutup değiştirdiği için doğru akım bileşeni kendiliğinden sıfırlanıyor. Yan ürünü asıl işinden bile hoş: kutup sırasının bozulması tek başına bir hata işareti sayılıyor. Hat kodunun kendisi basit bir hata sezme mekanizmasını bedavaya taşıyabilir.

Manchester kodlaması bu işi daha ileri götürüyor: her bit aralığının tam ortasına zorunlu bir geçiş koyuyor. Sıfırda yüksekten alçağa iniyorsun, birde alçaktan yükseğe çıkıyorsun. Dalga biçimi aslında saat sinyali ile verinin XOR’udur.

Farksal Manchester’da aralık ortasındaki geçiş her zaman durur. Bit değerini belirleyen şey aralık sonundaki geçişin varlığıdır. Token-Ring bu şemayı 4 ve 16 Mbit/s hızlarında kullandı. İki fazlı kodların ortak özelliğini tek cümlede toplayabilirsin: her bit süresinde en az bir geçiş garanti ediliyor. Bu yüzden onlara kendi kendine saatleyen kodlar deniyor.

Bedeli var. Manchester senkronizasyonu kolaylaştırır ama sembol hızını bit hızının iki katına çıkarır ve gereken bant genişliğini aynı oranda büyütür. Klasik 10 Mbit/s Ethernet hattı bu yüzden 20 Mbaud sinyal akıtıyordu. Yani kablodan istediğin her bit için iki sembol ödüyordun ve yük %100’e çıkıyordu.

Aynı bit dizisinin farklı kodlamalarda nasıl göründüğünü karşılaştıralım:

Aynı bit dizisi, üç hat kodlaması
Aynı sekiz bit, üç dalga biçimibit dizisi10110010NRZ-LNRZIManchesterGeçiş sayısı: NRZ-L 5 · NRZI 3 · Manchester 10Manchester her bit süresinde en az bir geçiş garanti eder; bedeli iki kat sembol hızıdır.
Sekiz bitlik dizi. Üç kulvar da aynı diziyi taşıyor: 1 0 1 1 0 0 1 0. Kesikli dikey çizgiler bit sınırları; iki çizgi arası bir bit süresi kadar.
  1. Sekiz bitlik dizi. Üç kulvar da aynı diziyi taşıyor: 1 0 1 1 0 0 1 0. Kesikli dikey çizgiler bit sınırları; iki çizgi arası bir bit süresi kadar.
  2. NRZ-L: seviye bilgidir. Bir yüksek gerilim, sıfır alçak gerilim. Ardışık aynı bitlerde hiç geçiş yok; uzun bir dizide alıcı sembol sınırını kaybedebilir.
  3. NRZI: bilgi geçişte. Seviyenin kendisi anlam taşımıyor. Aralık başında geçiş varsa bir, yoksa sıfır; kutuplama ters bağlansa da okunan dizi değişmiyor.
  4. Manchester: orta geçiş şart. Her bit aralığının ortasında zorunlu bir geçiş var: sıfır yüksekten alçağa, bir alçaktan yükseğe. Dalga, saat ile verinin XOR'u.
  5. Faturayı baud ödüyor. Bu dizide NRZ-L beş, Manchester on geçişle iniyor. Garanti edilen sekiz orta geçişin bedeli iki kat sembol hızı: 10 Mbit/s hat 20 Mbaud akıtır.

Bir sembol kaç bit taşır?

Hat kodlaması, veri bitlerinden sinyal elemanlarına yapılan eşlemedir. İyi bir kod yüksek frekans bileşenlerini azaltır, çünkü daha az bant genişliği ister. Doğru akım bileşeninin olmaması da ayrıca istenir.

Buradan iki ayrı büyüklük çıkıyor. Modülasyon hızı baud ile ölçülür ve saniyedeki sinyal elemanı sayısını verir. Veri hızı ise saniyedeki bit sayısıdır. Bir sembol birden çok bit taşıyabiliyorsa veri hızı sembol hızının üstüne çıkar.

4B/5B tam bunu yapar. Her 4 bitlik bloğu 5 bitlik bir sembole çevirir. 100 Mbit/s’lik veri akışı hatta 125 Mbaud’a dönüşür. Yük %25 olur. Aynı iş Manchester ile yapılsaydı 200 Mbaud gerekirdi; şema sembol hızından %37,5 tasarruf ediyor.

5 bitle 32 sembol üretebiliyorsun ve bunların 16’sını veriye ayırıyorsun. Kalanını IDLE gibi denetim sembolleri olarak kullanıyorlar. Bu yüzden bir Fast Ethernet hattı veri yokken bile susmaz; boşta da 125 Mbaud IDLE akıtır. Ağ kartının ışığı hiçbir şey yapmazken de yanıyorsa sebebi bu.

100BASE-TX’in hat işaretlemesi MLT-3’tür. Sinyal artı, sıfır ve eksi olmak üzere üç seviyeden birinde durur. Seviye değişimi bir, değişmemesi sıfır demektir. Bir tam dalga dört sembol süresi aldığı için 125 Mbaud’luk akış kablodan yalnızca 31,25 MHz ister. Kazanç sembol hızında değil, frekanstadır. Karıştırma aynı amaca hizmet ediyor: veriyi rastgeleleştiriyor, yayılan enerji tek bir frekansta toplanmıyor ve geçiş yoğunluğu artıyor.

şemaeşlemeyüknerede
Manchester1 bit → 2 sembol%10010 Mbit/s Ethernet
4B/5B + MLT-34 bit → 5 sembol%25100BASE-TX
8B/10B8 bit → 10 bit%251000 Mbit/s hat
64B/65B + PAM1664 bit → 65 bit%1,562510GBASE-T

Tabloya yukarıdan aşağı bakınca bir eğilim göreceksin: hız arttıkça blok kodlamanın bedeli küçülüyor. 8B/10B her 8 bitlik baytı 10 bitlik bir kod grubuna çeviriyor. 1.024 kod grubunun 256’sı veri taşır, kalanı denetimdir. 1000 Mbit/s’lik hat böylece 1.250 Mbaud’a çıkar. Kod grupları hem yeterli geçiş taşıyor hem de zaman içinde bir ile sıfır sayısını dengeliyor; sinyal yolunda birikimli bir yanlılık oluşmuyor.

1000BASE-T başka bir yoldan gider. Kodlaması 4D-PAM5: dört boyutlu kafes modülasyonu ile beş seviyeli darbe genliği modülasyonunun birleşimi. Her çifte sembol başına 2 bit koyuyor ve dört çifti aynı anda çalıştırıyor; 125 Mbaud ile 1000 Mbit/s’e ulaşıyor. Dikkat et, sembol hızı Fast Ethernet’in üstüne hiç çıkmıyor.

10GBASE-T iki koldan birden çalışıyor. Önce 64 bitlik öbekleri 65 bitlik bloklara çeviriyor. Blok kodlamanın yükü %25’ten %1,5625’e iner. Sonra 16 seviyeli darbe genliği modülasyonuyla sembol hızını 800 Mbaud’a indirir. Çift başına 2,5 Gbit/s ve sembol başına 3,125 bit düşer.

Faturayı kablo ödüyor: 10GBASE-T Cat6’da 250 MHz, Cat6A’da 500 MHz bant genişliği istiyor. Cat6 ile erişebildiğin mesafe de 100 metrede kalmıyor, yaklaşık 55 metreye iniyor. Belirtilen en kötü durum bit hata oranı ise 10 üzeri -12’dir. Ortalama her trilyon bitte en fazla bir hata.

Kanalın tavanını kim koyuyor?

Bant genişliği, hattın taşıyabildiği frekans aralığı demek. Bant genişliğini bir kapasite ölçüsü olarak kullanmıştık; buradaki tanımı onun fiziksel karşılığı olarak oku. Fourier’e göre her periyodik sinyali sinüslerin toplamı olarak yazabilirsin. Dar bantlı bir kanal ise o toplamın üst harmoniklerini kesiyor.

Bir kare dalga ve onun yalnızca ilk beş ile ilk on beş harmonikle kurulmuş iki yaklaşımı üst üste çizilmiş. Harmonik sayısı azaldıkça kenarlar yuvarlanıp dalgalanıyor; dar bantlı bir kanalın sinyale yaptığı da budur.Alınan şekil gönderilene benzemez.

Nyquist sınırı gürültüsüz bir kanal için tavanı çiziyor ve iki şeye bakıyor: kanalın bandı ile sembol başına kullanılan seviye sayısı. Bandı iki katına çıkarmak sinyal hızını da iki katına çıkarıyor; seviye sayısı ise hıza çok daha cimri katkı yapıyor.

4.000 Hz’lik kanalda seviye sayısıtaşınabilen hız
28.000 bit/s
416.000 bit/s
824.000 bit/s
1632.000 bit/s

Tablo iki oranı yan yana koyuyor. Seviye sayısını iki katına çıkarmak hıza her seferinde yalnızca 8.000 bit ekliyor: ikiden dörde geçmek hızı ikiye katlıyor, sekizden on altıya geçmek ise yalnızca üçte bir artırıyor. Getiri azalırken alıcının işi zorlaşıyor, çünkü seviyeler birbirine yaklaşıyor. Sınırı çizen şey de burada devreye giriyor: gürültü.

Modülasyon derinliği gürültüyle sınırlanıyordu; aynı tavan bakır telde de geçerlidir. O tavanın adı Shannon sınırı ve iki büyüklüğe bakıyor: kanalın bandı, bir de sinyalin gürültüye göre ne kadar güçlü olduğu.

Aynı 4.000 Hz’lik kanalda, sinyal gürültünün yüz katıysa tavan yaklaşık 26.600 bit/s çıkıyor. Sekiz seviyeli işaretlemenin verdiği 24.000 bit/s bu tavanın altında kalıyor; on altı seviyenin istediği 32.000 bit/s ise duvara çarpıyor. Nyquist “kaç sembol geçirebilirim” sorusunu, Shannon “her sembole kaç bit yükleyebilirim” sorusunu cevaplıyor.

Asıl ders sayıda değil, iki büyüklüğün eşit güçte olmamasında. Bandı iki katına çıkarırsan kapasite de iki katına çıkıyor — doğrudan orantılı. Ama vericinin gücünü iki katına çıkarmak kapasiteye yalnızca kırıntı ekliyor; gücü yüz katına çıkarsan bile kazanç, bandı ikiye katlamanın verdiği kadar bile olmayabiliyor.

Bu tek gözlem, kablosuz kuşakların her seferinde daha geniş kanal peşinde koşmasını ve spektrumun bu kadar pahalı olmasını açıklıyor: güç ucuz, bant pahalı, ve kapasiteyi büyüten bant.

İkinci gözlem şaşırtıcı. Sinyal gürültü kadar zayıf olsa bile kapasite sıfıra düşmüyor; hertz başına yaklaşık bir bit kalıyor. Gürültü iletişimi imkânsız kılmıyor, yalnızca pahalılaştırıyor.

Shannon erişilebilir teorik tavandır. Beyaz gürültü varsayar; darbe gürültüsünü ve bozulmaları hesaba katmaz. Pratikte hep altında kalınır.

DerinleşmeShannon sınırının denklemi ve o 26.600 sayısı nereden çıkıyor?

Sınır tek satırda yazılıyor:

C = B × log₂(1 + S/N)

C saniyedeki bit, B hertz cinsinden bant genişliği, S/N ise sinyal gücünün gürültü gücüne oranı. Logaritmanın tabanının iki olması tesadüf değil: cevabı bit cinsinden istiyoruz ve bir bit tam olarak iki olasılık arasındaki seçim.

Hesaba girmeden önce bir birim tuzağı var. Veri sayfalarında sinyal-gürültü oranı hep desibelle verilir, formül ise düz oran ister. Çevirmek gerekiyor: 20 dB demek, sinyalin gürültünün yüz katı olması demek. Her 10 dB bir sıfır ekliyor — 10 dB on kat, 30 dB bin kat.

Şimdi 4.000 Hz’lik kanalı koy:

C = 4.000 × log₂(1 + 100) = 4.000 × 6,66 ≈ 26.600 bit/s

Ana metindeki iki gözlem de doğrudan denklemin şeklinden çıkıyor. B çarpan olarak dışarıda duruyor, yani onu ikiye katlamak sonucu ikiye katlıyor. S/N ise logaritmanın içinde; onu ikiye katlamak sonuca yalnızca 4.000 × 1 = 4.000 bit/s ekliyor. Bandı %50 genişletmek, gücü on kat artırmaktan daha çok kazandırıyor.

Sınırın kendisi bir varış noktası da değil, bir sözdür: bu hızın altında kalan her hız için, hatayı istediğin kadar küçültecek bir kodlama vardır. Shannon o kodlamanın nasıl bulunacağını söylemiyor — yalnızca var olduğunu kanıtlıyor. Sonraki yetmiş yılın hata düzeltme kodları o kanıtın peşinden gitti.

Termal gürültü iletkendeki elektronların rastgele hareketinden doğar. Hattın tabiatındadır ve ortadan kaldırılamaz. Gücü de bant genişliğiyle doğru orantılıdır. Döngüsel artıklık denetimi ters dönmüş bir biti yakalıyordu; o bitin neden ters döndüğü buraya kalmıştı. Beş ayrı mekanizma sayılır: zayıflama, gecikme bozulması, yansıma, diyafoni ve gecikme oynaması. Bozulmanın miktarı sinyalin frekansına ve genliğine bağlıdır.

Bir telden akan sinyal etrafında manyetik alan üretir. Komşu telde bu alan yeni bir sinyal indükler. Adı diyafoni (crosstalk); Türkçe kaynaklarda çapraz karışma da denir. Empedans uyumsuzluğunda ise sinyalin bir kısmı geri yansır ve hatta duran dalga oluşur. Sonlandırma bu yüzden süs değildir.

Zayıflama ve yükseltme logaritmik ölçekte, desibelle ölçülür. Güç için 10log, gerilim için 20log alınır. 3 dB iki kat, 20 dB yüz kat, 30 dB bin kat demektir. Kendi makinende bu katmanın uçlarını görebilirsin.

ethtool eth0                   # hız, çift yönlülük, port türü, desteklenen bağlantı kipleri
cat /sys/class/net/eth0/speed  # yalnızca hız, megabit cinsinden

Çıktıdaki hız ve port türü, kartın hangi hat kodlamasında anlaştığını dolaylı olarak söyler. Bakır ile fiber arasındaki fark orada görünür.

Özet

Peki, ne öğrendik?

  • Sinyal fiziksel bir büyüklüktür: bilgi bir gerilimde, bir ışık örneğinde ya da bir elektromanyetik dalgada taşınır ve bit diye bir nesne telde bulunmaz.
  • Hat kodlaması bitten dalga biçimine giden eşlemedir: aynı dizi NRZ-L’de başka, Manchester’da başka görünür ve seçim saatle bant genişliği arasında yapılır.
  • İki fazlı kodlar saati sinyalin içine gömer: her bit süresindeki zorunlu geçiş senkronizasyonu bedavaya verir, faturayı iki kat sembol hızıyla keser.
  • Blok kodlama bu faturayı ucuzlatır: 4B/5B ve 8B/10B yükü dörtte bire, 64B/65B ise yüzde birbuçuğa indirir ve çok seviyeli işaretleme sembol başına bit sayısını büyütür.
  • Kanalın tavanını fizik koyar: Nyquist gürültüsüz durumu, Shannon gürültülü durumu sınırlar ve termal gürültü hattın tabiatında olduğu için hiç yok edilemez.

Şu anda telde saniyede milyarlarca kez değişen bir gerilim var ve o gerilim tek bir konuşmayı taşıyor. Peki aynı telde aynı anda kaç konuşma birden gidebilir?

49. bölüme devam et: Çoklama Teknikleri