Dalam pelajaran/siaran ini, kita akan bercakap tentang Rangkaian.
Keupayaan untuk menyampaikan dan bertukar maklumat melalui rangkaian komunikasi dunia telah merevolusikan cara orang bekerja, bermain dan hidup. Pada permulaan abad ini, Akademi Kejuruteraan Kebangsaan A.S. menyenaraikan 20 teknologi dengan kesan masyarakat paling ketara pada abad ke-20. Senarai ini termasuk inovasi yang mengubah hidup seperti elektrifikasi, kereta dan kapal terbang. Ia juga termasuk empat teknologi komunikasi—radio dan televisyen, telefon, Internet dan komputer—yang asas teknologinya menjadi tumpuan buku ini.
Anehnya, Internet berada di kedudukan #13 sahaja, kerana ia dibangunkan pada akhir abad ini, dan jawatankuasa itu percaya kesannya yang paling ketara akan berlaku pada abad ke-21. Ramalan itu nampaknya tepat: penyebaran rangkaian wayarles dan peranti mudah alih, kebangkitan rangkaian sosial dan pada bila-bila masa, di mana-mana sahaja komunikasi telah mengubah perdagangan, hubungan sosial, malah mendorong perubahan sosial dan politik.
Komunikasi adalah asas kepada kehidupan moden. Sukar untuk membayangkan kehidupan tanpa Internet, aplikasinya atau peranti mudah alih rangkaian. Menjelang awal 2011, lebih 5 bilion telefon mudah alih telah aktif di seluruh dunia, lebih satu bilion dengan ketersambungan "jalur lebar" – melebihi bilangan pengguna elektrik, kasut, berus gigi atau tandas pada tahun 2011!
Siaran/pelajaran ini (apa sahaja panggilan anda) bertujuan untuk menerangkan cara rangkaian komunikasi berfungsi. Ini patut dikaji kerana dua sebab:
Di MIT(Institut Teknologi Massachusetts), pelajar tahun kedua mengikuti kursus sedemikian, dengan sedikit pendedahan kepada kebarangkalian dan siri Fourier.
Secara tradisinya, "komunikasi peringkat rendah" (cara maklumat bergerak merentasi satu pautan) telah dianggap sebagai topik EE, manakala "rangkaian" (membina rangkaian berbilang pautan) telah menjadi topik CS. Kursus komunikasi digital tradisional jarang menangani pembinaan rangkaian, dan kursus rangkaian komputer menganggap komunikasi melalui pautan fizikal sebagai kotak hitam. Buku ini bertujuan untuk merapatkan jurang ini, memberikan pemahaman menyeluruh tentang kedua-dua aspek.
Kami akan merangkumi sistem komunikasi hujung ke hujung: daripada sumber dengan maklumat untuk dihantar, kepada paket (mesej dipecahkan untuk penghantaran), kepada bit ("0" atau "1"), kepada isyarat (bentuk gelombang analog dihantar melalui pautan seperti wayar, gentian, radio atau gelombang akustik). Kami akan memeriksa rangkaian yang pelbagai: pautan titik ke titik yang mudah, media kongsi dengan berbilang nod dan rangkaian berbilang hop yang lebih besar disambungkan untuk membentuk rangkaian yang lebih besar.
Tiga cabaran adalah penting kepada komunikasi digital: kebolehpercayaan, perkongsian dan kebolehskalaan. Bahagian pengenalan ini memfokuskan pada dua yang pertama.
Banyak faktor yang menyebabkan komunikasi tidak boleh dipercayai. Kami akan mengkaji teknik untuk meningkatkan kebolehpercayaan, yang kesemuanya menggunakan lebihan untuk mencapai kebolehpercayaan dengan komponen yang tidak boleh dipercayai, bergantung pada kegagalan komponen bebas.
Cabaran utama ialah mengatasi hingar, gangguan, ralat bit, kehilangan paket (daripada ralat yang tidak dapat dibetulkan, limpahan baris gilir atau kegagalan pautan/perisian), yang semuanya merendahkan kualiti komunikasi.
Selain kebolehpercayaan, kelajuan juga penting. Teknik kebolehpercayaan sering menggunakan redundansi, mengurangkan kelajuan. Banyak sistem komunikasi mengimbangi kebolehpercayaan dan kelajuan.
Kelajuan komunikasi telah meningkat secara mendadak, daripada kilobit sesaat pada awal 1980-an kepada 100 Megabit sesaat secara wayarles dan 1-10 Gigabit sesaat berbanding pautan berwayar hari ini.
Kami akan meneroka sebab komunikasi tidak boleh dipercayai dan cara menanganinya, menggunakan kod pembetulan ralat, mengendalikan gangguan antara simbol, protokol penghantaran semula dan penghalaan toleransi kesalahan.
Pautan khusus untuk setiap pasangan nod sangat mahal. Perkongsian adalah penting. Kami akan mengkaji perkongsian pautan titik ke titik, media kongsi dan rangkaian berbilang hop.
We'll cover sharing a medium (relevant to Ethernet, WiFi, cellular networks, and satellite networks), modulation/demodulation (transmitting over different frequencies), and medium access control (MAC) protocols (rules governing network node behavior). We'll explore time sharing (each node transmits for a dedicated time) and frequency sharing (dividing bandwidth). Then we'll move on to multi-hop networks, where many communications share links, orchestrated by switches.
Key questions include how multiple communications share the network, how messages traverse the network, and how to ensure reliable communication across a multi-hop network.
Sharing techniques and reliability mechanisms determine network efficiency. Efficiency can be framed as minimizing cost for given requirements or maximizing "useful work" (aggregate throughput, throughput variation, and average delay/latency) for a given network. This post focuses on throughput and latency.
Scalability (designing networks that handle large sizes) is important. This post touches upon it briefly, leaving detailed discussion for later lessons.
The lesson is divided into four parts: the source, and the abstractions of bits, signals, and packets, studied in that order.
Claude Shannon's theory of information (developed in the late 1940s) is a groundbreaking idea that has transformed many technological fields, especially communication systems and networks. This chapter introduces the intuition behind information, defines it mathematically, and links it to entropy, a property of data sources.
These concepts enable efficient data compression before communication or storage, allowing for recovery of the original data without distortion. A core idea is source coding, which maps each symbol from a data source to a codeword with desirable properties. A message is a sequence of symbols. Our focus is lossless source coding, where the original message can be perfectly recovered from an uncorrupted transmission.
Shannon, building on Hartley's work, realized that information can be defined generally, independent of the application or message semantics. Communication involves a sender (S) choosing and sending one of several possible messages to a receiver (R). For example, S could indicate the British arrival route:
If each choice is equally likely (no prior knowledge), the information conveyed is 1 bit. This bit can encode the choice. 1000 such independent events can be encoded with 1000 bits.
If prior knowledge suggests a higher probability for one choice (e.g., land due to a storm), then the less likely message (sea) conveys more information. Similarly, a temperature of 75°F in Boston in January is more informative than 32°F.
Information about an event depends on its probability (p). Lower probability (less likely event) implies higher information.
Hartley defined information (I) as:
I = log(1/p) = -log(p) (2.1)
The base-2 logarithm is used, and the unit of information is a bit. The logarithmic function ensures additivity: information from two independent events A and B (probabilities pA and pB) adds up:
IA IB = log(1/pA) log(1/pB) = log(1/(pA*pB)) = log(1/P(A and B))
Entropy (H) quantifies the expected information from a set of mutually exclusive events. If event i has probability pi:
H(p1, p2, ... pN) = Σ pi * log(1/pi) (2.2)
Entropy is measured in bits and represents the average uncertainty. For two mutually exclusive events with probabilities p and 1-p:
H(p, 1-p) = -p*log(p) - (1-p)*log(1-p) (2.3)
H(p)는 p = 1/2를 기준으로 대칭이며 p = 1/2에서 최대 1비트입니다. H(0) = H(1) = 0. 엔트로피는 항상 음수가 아니며 H(p1, p2, ... pN) ≤ log N입니다.
소스 코딩은 메시지를 효율적으로 인코딩합니다. 많은 메시지에는 표준 인코딩(ASCII, 이미지 픽셀, 오디오 샘플)이 있습니다. 고정 길이 인코딩으로 쉽게 조작할 수 있습니다.
그러나 이러한 인코딩은 비효율적일 수 있습니다. 영어 텍스트에서는 'e'가 'x'보다 더 자주 나타납니다. 더 적은 비트로 'e'를 인코딩하고 더 많은 비트로 'x'를 인코딩하면 평균 메시지 길이를 줄일 수 있습니다. 이는 정보 개념과 일치합니다. 즉, 빈도가 높은 기호(pi가 높음)는 더 적은 정보를 전달하고 더 적은 비트가 필요합니다.
코드는 정보를 비트 시퀀스로 매핑합니다. 코드워드는 코드의 비트 시퀀스입니다. 소스 코드는 인코딩된 메시지 길이를 정보 내용(엔트로피)에 맞춰 데이터를 압축하는 것을 목표로 합니다.
예: 1000개 등급(A, B, C, D)을 확률로 인코딩:
고정 길이 인코딩: 2비트/등급(총 2000비트). 디코딩은 간단하지만 비효율적입니다.
가변 길이 인코딩(예): A=10, B=0, C=110, D=111. 길이는 메시지에 따라 다릅니다. 디코딩에는 순차적 처리가 필요합니다. 이 예제 코드는 최적이 아닙니다.
이상적으로 압축은 정보를 표현하는 데 필요한 비트만 사용합니다. 엔트로피(식 2.2)는 모호성을 방지하는 데 필요한 평균 비트 수의 하한을 제공합니다. 더 적은 비트를 전송하면 수신자에서 해결되지 않은 선택이 발생합니다.
등급 예시에서 등급당 예상되는 정보는 1.626비트입니다. 1000개 등급을 인코딩하려면 평균 1626비트가 필요합니다. 예제 가변 길이 코드는 1667비트를 사용하므로 최적이 아닙니다. 등급의 인코딩 시퀀스는 압축을 향상시킬 수 있습니다.
좋은 코드를 찾는 것은 어렵습니다. 때로는 상황별 코드가 매우 효율적일 수 있습니다(예: 발신자와 수신자가 모두 모든 소네트를 알고 있는 경우 단 8비트를 사용하여 셰익스피어 소네트를 인코딩).
압축은 여러 가지 장점을 제공합니다.
압축은 일반적으로 엔드 투 엔드 기능(애플리케이션 계층)이지만 데이터가 압축 가능하고 중복성이 포함된 경우 링크 계층에도 적용될 수 있습니다. 다음 장에서는 Huffman 코드와 LZW(Lempel-Ziv-Welch) 압축을 다룹니다.
이 장에서는 메시지 압축(메시지가 일련의 기호임)을 위한 두 가지 소스 코딩 알고리즘, 즉 허프만 코딩과 Lempel-Ziv-Welch(LZW)에 대해 설명합니다. 허프만 코딩은 기호 확률이 알려져 있고 독립적일 때 효율적입니다. LZW는 적응형이므로 확률에 대한 사전 지식이 필요하지 않습니다. 둘 다 널리 사용됩니다(GIF, JPEG, MPEG, MP3 등).
코드는 알파벳(텍스트, 픽셀 강도 또는 추상 기호)의 기호를 코드워드에 매핑합니다. 바이너리 코드워드는 많은 통신 채널에 편리합니다.
예: 6.02의 인코딩 등급: A=1, B=01, C=000, D=001. 일련의 등급은 0010001110100001로 전송되고 "DCAAABCB"로 디코딩될 수 있습니다.
순간 코드: 기호는 해당 코드워드가 수신되는 즉시 해독됩니다. 위의 등급 인코딩은 즉각적입니다. 순간적이지 않은 코드는 앞을 내다보거나 끝에서부터 디코딩해야 하므로 디코딩하기가 더 어렵습니다.
코드 트리 및 접두어 없는 코드: 코드 트리는 코드를 시각화합니다. 이진 코드 트리에서 가장자리에는 0 또는 1로 레이블이 지정됩니다. 루트에서 기호까지의 경로는 해당 인코딩을 제공합니다. 접두사가 없는 코드는 리프 노드에만 기호가 있으므로 코드워드가 다른 코드워드의 접두사가 되지 않도록 합니다. 접두어가 없는 코드는 즉시 적용됩니다.
예상 코드 길이(L): 확률 pi 및 코드워드 길이 li를 갖는 N 기호의 경우: L = Σ pi * 리. 압축에는 L이 작은 코드가 바람직합니다. 최적 코드에는 최소 L이 있습니다. Shannon은 L ≥ H(엔트로피)를 보여주며, 엔트로피를 달성하는 코드는 점근적으로 존재합니다.
허프만 코드는 주어진 기호 확률에 따라 효율적인 인코딩을 제공합니다. 가능성이 높은 기호는 코드가 더 짧아집니다.
Huffman의 알고리즘은 가능성이 가장 낮은 기호부터 시작하여 상향식 코드 트리를 구축합니다.
Pokok kod yang terhasil mentakrifkan kod panjang berubah-ubah.
Pengekodan Huffman ringkas berdasarkan kebarangkalian huruf mempunyai had. Pengekodan mudah suai, yang melaraskan kepada kandungan mesej, boleh berprestasi lebih baik. LZW ialah algoritma penyesuaian yang popular.
LZW membina jujukan simbol pemetaan jadual rentetan kepada/dari indeks N-bit. Jadual (2^N entri) dimulakan dengan jujukan bait tunggal (0-255). Pengekodan:
Penyahkod membina semula jadual apabila ia menerima kod, membolehkannya memulihkan mesej asal.
Pemerhatian LZW:
Bab ini menerangkan komunikasi analog dan digital, memfokuskan pada masalah dengan analog dan rasional untuk digital. Ia membentangkan kaedah untuk menghantar dan menerima data digital melalui pautan komunikasi analog (perlu kerana pautan fizikal pada asasnya adalah analog pada tahap terendah). Ia juga memperkenalkan model komunikasi berlapis: mesej → paket → bit → isyarat, yang menjadi asas untuk seluruh buku.
Teknologi komunikasi membolehkan pengguna (manusia atau aplikasi) bertukar-tukar mesej. Sumber data boleh menjadi digital (cth., data jana komputer) atau analog (cth., video, audio, data sensor). Sistem moden sering mendigitalkan semua data, tanpa mengira sumbernya.
Komunikasi digital cemerlang kerana dua sebab:
Walau bagaimanapun, pautan fizikal adalah analog, memerlukan penukaran digital-ke-analog dan analog-ke-digital.
Perwakilan analog memetakan dengan baik kepada sifat pautan fizikal. Contoh:
TV hitam-putih: Pencahayaan imej (warna kelabu) diwakili oleh paras voltan (0V = hitam, 1V = putih).
Telefon analog: Gelombang bunyi ditukar kepada isyarat elektrik.
Isyarat analog boleh dihantar pada tahap voltan/intensiti/panjang gelombang yang berbeza, diukur dengan mudah oleh penerima.
Tiada pautan komunikasi bebas ralat. Bunyi dan herotan mengganggu isyarat, dan ralat ini terkumpul merentasi pelbagai peringkat penghantaran (kesan melata). Ini menjadikan sistem analog sukar untuk dibina dengan pasti, terutamanya yang kompleks. Isyarat digital menangani masalah ini.
Isyarat digital menggunakan nilai diskret untuk mewakili bit, membolehkan perbezaan yang mantap daripada hingar. Isyarat binari menggunakan dua voltan: V0 untuk "0" dan V1 untuk "1". V0 dan V1 mesti diasingkan secukupnya untuk mengendalikan bunyi.
Penerima menggunakan voltan ambang (Vth = (V0 V1) / 2) untuk memetakan voltan yang diterima kepada bit (voltan < Vth → "0", voltan ≥ Vth → "1"). Mengukur berhampiran Vth dengan tepat adalah sukar, tetapi tidak penting jika V0 dan V1 berjauhan.
传输信号是保持特定时间的固定电压波形。 连续信号由离散时间样本表示。 采样率(每秒采样数)由发送者和接收者商定。 采样间隔是采样之间的时间。
发送方和接收方必须就时钟速率达成一致。位在时钟转换时发送。 Samples_per_bit 是每比特的样本数。接收器从接收到的样本中的转换推断时钟边沿。
挑战:
接收方时钟可能比发送方时钟稍快或稍慢。 接收器根据转换动态调整其采样索引:
初始校正由传输开始时交替的 0 和 1 训练序列辅助。
8b/10b 解决 DC 平衡和频繁转换问题。它将 8 位符号映射到 10 位传输符号,确保:
编码过程:
一个通信系统涉及几个模块:Mapper(比特到信号)、Demapper(信号到比特)、Channel Coding(纠错)、Channel Decoding。消息被分成数据包并通过多个链路传输。 三个关键抽象是数据包、位和信号。 本书重点关注这些内容以及它们在通信网络中的交互。
本章讨论可靠数字通信的技术,重点是添加冗余以应对通信通道和存储介质中不可避免的位错误。 核心概念是通道编码:在发送方编码并在接收方解码以纠正错误或检测不可纠正的错误。 本章重点介绍错误校正代码,特别是线性块代码和(后来的)卷积代码。
二进制对称信道 (BSC) 模型使用单个参数 ε(位翻转概率)来表征位错误,其中传输的位以概率 ε 翻转,独立于其他位。 ε 可以凭经验估计。 大小为 S 位的数据包的数据包错误概率 (PER):
PER = 1 - (1 - ε)^S (5.1)
当 ε
现实世界的通道可能会出现突发错误,其中错误概率取决于历史记录(如果最近的位也出错,则错误概率更高)。
A 重复代码 将位 b 编码为 n 个 b 副本。 码率为1/n。 最大似然解码 根据收到的码字选择最有可能的消息。对于 BSC,这意味着选择与接收到的码字具有最多共同位的码字。
重复码的解码错误概率(见原文公式5.3)。概率随着码率呈指数下降,但由于开销较高而效率低下。
两个 n 位字之间的汉明距离 (HD) 是不同位位置的数量。对于单纠错 (SEC),任何两个有效码字之间的 HD 必须至少为 3。具有最小汉明距离 D 的代码可以检测 D-1 错误并纠正底层(D/2 -1) 错误。
线性块码 (n, k) 使用消息位上的线性函数(加权和)将 k 位消息映射到 n 位码字。 代数块代码在块内执行此类操作。 (n,k,d)码表示具有最小汉明距离“d”的分组码。码率 = k/n。
线性码要求任意两个码字之和也是一个码字。 全零码字存在于任何线性码中。线性分组码的最小汉明距离等于最小非零码字的权重(1的数量)。 二进制线性代码使用模2算术(伽罗瓦域F2)。
奇偶校验 是位的模 2 和。 偶校验码为每条消息添加一个奇偶校验位,使码字具有偶校验。这会检测到单个错误 (HD=2)。
矩形奇偶校验码将 k 位排列到 r x c 数组中,并添加行和列奇偶校验。码字:消息行奇偶校验列奇偶校验。长度:n = rc r c。该代码是 SEC 代码 (HD=3)。 解码涉及检查行和列奇偶校验,如果两个奇偶校验都指示错误,则纠正相应的位。
任何线性代码都可以转换为系统代码(消息位后跟奇偶校验位)。对于 SEC,奇偶校验组合的数量 (2^(n-k)) 必须大于或等于可纠正情况的数量 (n 1):
n 1 ≤ 2^(n-k) (5.6)
奇偶校验位计数至少随消息位呈对数增长。
汉明码是具有对数奇偶校验位增长的高效 SEC 代码。 每个奇偶校验位保护多个数据位,单个错误会产生独特的奇偶校验错误组合。
校正子位 (Ei) 在接收器处通过检查奇偶校验来计算。综合症位的组合表示错误位(如果有)。
汉明码构造:
作为二进制数处理的校正子位((7,4) 示例中的 E3E2E1)给出了要纠正的位的索引。
注意:这只是 Web 开发所需的信息。对于 Sysops 来说,网络及其基础知识是两个学期的课程。
The above is the detailed content of How does the Internet Work? Part 2. For more information, please follow other related articles on the PHP Chinese website!