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.
我们将介绍共享介质(与以太网、WiFi、蜂窝网络和卫星网络相关)、调制/解调(通过不同频率传输)和介质访问控制 (MAC) 协议(管理网络节点行为的规则) 。我们将探讨时间共享(每个节点在专用时间内进行传输)和频率共享(划分带宽)。然后我们将转向多跳网络,其中许多通信共享链接,由交换机协调。
关键问题包括多个通信如何共享网络、消息如何穿越网络以及如何确保跨多跳网络的可靠通信。
共享技术和可靠性机制决定网络效率。效率可以定义为最小化给定要求的成本或最大化给定网络的“有用工作”(聚合吞吐量、吞吐量变化和平均延迟/等待时间)。这篇文章重点讨论吞吐量和延迟。
可扩展性(设计处理大尺寸的网络)很重要。这篇文章简要介绍了它,为后面的课程留下详细讨论。
本课程分为四个部分:源代码以及位、信号和数据包的抽象,按顺序学习。
克劳德·香农 (Claude Shannon) 的信息理论(发展于 20 世纪 40 年代末)是一个开创性的想法,它改变了许多技术领域,特别是通信系统和网络。本章介绍信息背后的直觉,以数学方式定义信息,并将其与熵(数据源的属性)联系起来。
这些概念可以在通信或存储之前实现高效的数据压缩,从而可以在不失真的情况下恢复原始数据。 核心思想是源编码,它将数据源中的每个符号映射到具有所需属性的代码字。消息是符号序列。我们的重点是无损源编码,可以从未损坏的传输中完美恢复原始消息。
香农在哈特利工作的基础上,意识到信息可以被普遍定义,独立于应用程序或消息语义。通信涉及发送者 (S) 选择几种可能的消息之一并将其发送给接收者 (R)。例如,S可以表示英国到达路线:
如果每个选择的可能性相同(没有先验知识),则传达的信息为 1 位。该位可以对选择进行编码。 1000 个这样的独立事件可以用 1000 位进行编码。
如果先验知识表明一种选择的概率较高(例如,由于风暴而选择陆地),那么可能性较小的消息(海洋)会传达更多信息。 同样,波士顿 1 月份 75°F 的气温比 32°F 的气温更能提供信息。
有关事件的信息取决于其概率 (p)。较低的概率(不太可能发生的事件)意味着较高的信息。
Hartley 将信息 (I) 定义为:
I = log(1/p) = -log(p) (2.1)
采用以2为底的对数,信息单位为比特。 对数函数确保可加性:来自两个独立事件A和B(概率pA和pB)的信息相加:
IA IB = log(1/pA) log(1/pB) = log(1/(pA*pB)) = log(1/P(A 和 B))
熵 (H) 量化一组互斥事件的预期信息。如果事件 i 的概率为 pi:
H(p1, p2, ... pN) = Σ pi * log(1/pi) (2.2)
熵以位为单位测量,代表平均不确定性。对于概率为 p 和 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.
線形コード では、任意の 2 つのコードワードの合計もコードワードである必要があります。 すべてゼロのコードワードは、どの線形コードにも存在します。線形ブロック コードの最小ハミング距離は、ゼロ以外のコードワードの最小の重み (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) は、受信側でパリティをチェックすることによって計算されます。シンドローム ビットの組み合わせは、エラーのあるビット (存在する場合) を示します。
ハミングコードの構築:
2 進数として扱われるシンドローム ビット ((7,4) の例では E3E2E1) は、修正するビットのインデックスを与えます。
注: これは Web 開発に必要な単なる情報です。 Sysops の場合、ネットワークとその基礎は 2 学期制のコースです。
Atas ialah kandungan terperinci Bagaimanakah Internet Berfungsi? Bahagian 2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!