このレッスン/投稿では、ネットワークについて話します。
世界中の通信ネットワークを介して情報を配信および交換できる機能は、人々の働き方、遊び方、生活の仕方に革命をもたらしました。今世紀の変わり目に、米国国立工学アカデミーは、20 世紀で最も社会に大きな影響を与えた 20 のテクノロジーをリストしました。このリストには、電化、自動車、飛行機など、生活を変えるイノベーションが含まれていました。また、ラジオ、テレビ、電話、インターネット、コンピューターという 4 つの通信技術も含まれており、その技術的基盤が本書の焦点です。
驚くべきことに、インターネットは今世紀後半に開発され、その最も重大な影響は 21 世紀に起こると委員会が信じていたため、順位は 13 位に過ぎませんでした。この予測は正確であるようです。ワイヤレス ネットワークとモバイル デバイスの普及、ソーシャル ネットワークの台頭、いつでもどこでも通信できるようになったことで、商業や社会的つながりが変化し、さらには社会的および政治的変化さえも引き起こされました。
コミュニケーションは現代生活の基本です。インターネット、そのアプリケーション、またはネットワーク接続されたモバイル デバイスのない生活を想像するのは困難です。 2011 年初頭までに、世界中で 50 億台以上の携帯電話が使用され、そのうち 10 億台以上が「ブロードバンド」接続に対応しており、これは 2011 年の電気、靴、歯ブラシ、トイレを備えた人口を超えています。
この投稿/レッスン (どのように呼んでも構いません) は、通信ネットワークがどのように機能するかを説明することを目的としています。これは 2 つの理由から研究する価値があります:
MIT (マサチューセッツ工科大学) では、2 年生が確率とフーリエ級数に触れるこのようなコースを受講します。
伝統的に、「低レベル通信」(単一リンク上で情報がどのように移動するか) は EE のトピックとみなされ、「ネットワーキング」(複数のリンクのネットワークの構築) は CS のトピックとされてきました。従来のデジタル コミュニケーション コースではネットワーク構築についてはほとんど取り上げられず、コンピュータ ネットワーク コースでは物理リンクを介した通信がブラック ボックスとして扱われます。本書は、このギャップを埋めることを目的としており、両方の側面の包括的な理解を提供します。
通信システムをエンドツーエンドで取り上げます: 送信する情報を含むソースから、パケット (送信用に分解されたメッセージ)、ビット (「0」または「1」)、信号 (アナログ波形)ワイヤー、ファイバー、無線、音波などのリンクを介して送信されます)。シンプルなポイントツーポイント リンク、複数のノードによる共有メディア、さらに大規模なネットワークを形成するために接続された大規模なマルチホップ ネットワークなど、多様なネットワークを検討します。
デジタル コミュニケーションの中心となるのは、信頼性、共有、拡張性という 3 つの課題です。この導入セクションでは、最初の 2 つに焦点を当てます。
コミュニケーションの信頼性を低下させる要因は数多くあります。私たちは、信頼性を向上させるための技術を研究します。その技術はすべて、独立したコンポーネントの障害に依存して、信頼性の低いコンポーネントで信頼性を実現する冗長性を採用しています。
主な課題は、通信品質を低下させるノイズ、干渉、ビット エラー、パケット損失 (修正不可能なエラー、キューのオーバーフロー、リンク/ソフトウェア障害による) を克服することです。
信頼性に加えて、スピードも重要です。信頼性技術では冗長性が使用されることが多く、速度が低下します。多くの通信システムは信頼性と速度のバランスを保っています。
通信速度は、1980 年代初頭のキロビット/秒から、無線では毎秒 100 メガビット、今日では有線リンクでは毎秒 1 ~ 10 ギガビットまで劇的に増加しました。
通信の信頼性が低い理由と、エラー訂正コードの使用、シンボル間干渉の処理、再送信プロトコル、およびフォールトトレラントなルーティングを使用して、その問題に対処する方法を探ります。
すべてのノードペアの専用リンクは法外に高価です。共有は不可欠です。ポイントツーポイント リンク、共有メディア、マルチホップ ネットワークの共有について研究します。
Nous aborderons le partage d'un support (pertinent pour Ethernet, WiFi, les réseaux cellulaires et les réseaux satellite), la modulation/démodulation (transmission sur différentes fréquences) et les protocoles de contrôle d'accès au support (MAC) (règles régissant le comportement des nœuds de réseau) . Nous explorerons le partage de temps (chaque nœud transmet pendant un temps dédié) et le partage de fréquence (division de la bande passante). Nous passerons ensuite aux réseaux multi-sauts, où de nombreuses communications partagent des liens, orchestrés par des commutateurs.
Les questions clés incluent comment plusieurs communications partagent le réseau, comment les messages traversent le réseau et comment garantir une communication fiable sur un réseau multi-sauts.
Les techniques de partage et les mécanismes de fiabilité déterminent l'efficacité du réseau. L'efficacité peut être définie comme une minimisation des coûts pour des exigences données ou une maximisation du « travail utile » (débit global, variation du débit et délai/latence moyen) pour un réseau donné. Cet article se concentre sur le débit et la latence.
L'évolutivité (concevoir des réseaux qui gèrent de grandes tailles) est importante. Cet article en parle brièvement, laissant une discussion détaillée pour les leçons ultérieures.
La leçon est divisée en quatre parties : la source et les abstractions des bits, des signaux et des paquets, étudiées dans cet ordre.
La théorie de l'information de Claude Shannon (développée à la fin des années 1940) est une idée révolutionnaire qui a transformé de nombreux domaines technologiques, notamment les systèmes et réseaux de communication. Ce chapitre présente l'intuition derrière l'information, la définit mathématiquement et la relie à l'entropie, une propriété des sources de données.
Ces concepts permettent une compression efficace des données avant la communication ou le stockage, permettant la récupération des données d'origine sans distorsion. Une idée centrale est le codage source, qui mappe chaque symbole d'une source de données à un mot de code avec des propriétés souhaitables. Un message est une séquence de symboles. Notre objectif est le codage source sans perte, où le message original peut être parfaitement récupéré à partir d'une transmission non corrompue.
Shannon, s'appuyant sur les travaux de Hartley, s'est rendu compte que les informations peuvent être définies de manière générale, indépendamment de la sémantique de l'application ou du message. La communication implique qu'un expéditeur (S) choisisse et envoie l'un des nombreux messages possibles à un destinataire (R). Par exemple, S pourrait indiquer la route d'arrivée britannique :
Si chaque choix est équiprobable (aucune connaissance préalable), l'information véhiculée est de 1 bit. Ce bit peut coder le choix. 1 000 de ces événements indépendants peuvent être codés avec 1 000 bits.
Si des connaissances antérieures suggèrent une probabilité plus élevée pour un choix (par exemple, terre en raison d'une tempête), alors le message le moins probable (mer) transmet plus d'informations. De même, une température de 75°F à Boston en janvier est plus informative que 32°F.
Les informations sur un événement dépendent de sa probabilité (p). Une probabilité plus faible (événement moins probable) implique des informations plus élevées.
Hartley a défini l'information (I) comme :
I = log(1/p) = -log(p) (2.1)
Le logarithme base 2 est utilisé, et l'unité d'information est un peu. La fonction logarithmique assure l'additivité : les informations de deux événements indépendants A et B (probabilités pA et pB) s'additionnent :
IA IB = log(1/pA) log(1/pB) = log(1/(pA*pB)) = log(1/P(A et B))
L'entropie (H) quantifie les informations attendues à partir d'un ensemble d'événements mutuellement exclusifs. Si l'événement i a une probabilité pi :
H(p1, p2, ... pN) = Σ pi * log(1/pi) (2.2)
L'entropie est mesurée en bits et représente l'incertitude moyenne. Pour deux événements mutuellement exclusifs avec des probabilités p et 1-p :
H(p, 1-p) = -p*log(p) - (1-p)*log(1-p) (2.3)
H(p) est symétrique autour de p = 1/2, avec un maximum de 1 bit à p = 1/2. H(0) = H(1) = 0. L'entropie est toujours non négative et H(p1, p2, ... pN) ≤ log N.
Le codage source encode efficacement les messages. De nombreux messages ont des codages standards (ASCII, pixels d'image, échantillons audio). Ce sont des encodages de longueur fixe, faciles à manipuler.
Cependant, ces encodages peuvent être inefficaces. Dans le texte anglais, « e » apparaît plus fréquemment que « x ». Le codage de « e » avec moins de bits et de « x » avec plus de bits peut raccourcir la longueur moyenne des messages. Cela correspond au concept d'information : les symboles fréquents (pi plus élevés) transmettent moins d'informations et nécessitent moins de bits.
Un code mappe les informations en séquences de bits. Un mot de code est une séquence de bits dans le code. Les codes sources visent à compresser les données en faisant correspondre la longueur du message codé au contenu de l'information (entropie).
Exemple : encoder 1000 notes (A, B, C, D) avec probabilités :
Encodage de longueur fixe : 2 bits/grade (total 2000 bits). Le décodage est simple, mais inefficace.
Encodage à longueur variable (exemple) : A=10, B=0, C=110, D=111. La longueur dépend du message. Le décodage nécessite un traitement séquentiel. Cet exemple de code n'est pas optimal.
Idéalement, la compression utilise uniquement les bits nécessaires pour représenter les informations. L'entropie (équation 2.2) fournit la limite inférieure du nombre moyen de bits nécessaire pour éviter toute ambiguïté. Envoyer moins de bits conduit à des choix non résolus au niveau du récepteur.
Dans l'exemple des notes, les informations attendues par note sont de 1,626 bits. Le codage de 1 000 notes nécessite en moyenne 1 626 bits. L'exemple de code de longueur variable utilise 1 667 bits, il n'est donc pas optimal. Les séquences de codage des notes peuvent améliorer la compression.
Trouver de bons codes est un défi. Parfois, des codes spécifiques au contexte peuvent être très efficaces (par exemple, encoder des sonnets de Shakespeare en utilisant seulement 8 bits si l'expéditeur et le destinataire connaissent tous les sonnets).
La compression offre plusieurs avantages :
La compression est généralement une fonction de bout en bout (couche application), mais peut également être appliquée au niveau de la couche liaison si les données sont compressibles et contiennent de la redondance. Le chapitre suivant couvre les codes de Huffman et la compression Lempel-Ziv-Welch (LZW).
Ce chapitre traite de deux algorithmes de codage source pour la compression des messages (où un message est une séquence de symboles) : le codage de Huffman et le codage de Lempel-Ziv-Welch (LZW). Le codage de Huffman est efficace lorsque les probabilités des symboles sont connues et indépendantes. LZW est adaptatif et ne nécessite aucune connaissance préalable des probabilités. Les deux sont largement utilisés (GIF, JPEG, MPEG, MP3, etc.).
Un code mappe les symboles d'un alphabet (texte, intensités de pixels ou symboles abstraits) en mots de code. Les mots de passe binaires conviennent à de nombreux canaux de communication.
Exemple : Encodage des notes en 6.02 : A=1, B=01, C=000, D=001. Une séquence de notes pourrait être transmise sous la forme 0010001110100001, décodée comme "DCAAABCB".
Codes instantanés : Un symbole est décodé dès la réception de son mot de passe. Le codage des notes ci-dessus est instantané. Les codes non instantanés nécessitent de regarder vers l'avant ou de décoder depuis la fin, ce qui les rend plus difficiles à décoder.
Arbres de codes et codes sans préfixe : Un arbre de codes visualise les codes. Dans un arbre de code binaire, les arêtes sont étiquetées par 0 ou 1. Le chemin de la racine vers un symbole donne son codage. Les Codes sans préfixe ont des symboles uniquement au niveau des nœuds feuilles, garantissant qu'aucun mot de code n'est le préfixe d'un autre. Les codes sans préfixe sont instantanés.
Longueur de code attendue (L) : Pour N symboles avec probabilités pi et longueurs de mots de code li : L = Σ pi * li. Les codes avec un petit L sont souhaitables pour la compression. Un code optimal a un minimum de L. Shannon a montré que L ≥ H (entropie) et que les codes atteignant l'entropie existent asymptotiquement.
Les codes de Huffman fournissent un codage efficace compte tenu des probabilités des symboles. Les symboles plus probables obtiennent des codes plus courts.
L'algorithme de Huffman construit l'arborescence des codes de bas en haut, en commençant par les symboles les moins probables :
결과 코드 트리는 가변 길이 코드를 정의합니다.
문자 확률을 기반으로 한 단순한 허프만 코딩에는 한계가 있습니다. 메시지 내용에 맞게 조정되는 적응형 인코딩이 더 나은 성능을 발휘할 수 있습니다. LZW는 널리 사용되는 적응형 알고리즘입니다.
LZW는 N비트 인덱스 간 심볼 시퀀스를 매핑하는 문자열 테이블을 구축합니다. 테이블(2^N 항목)은 단일 바이트 시퀀스(0-255)로 초기화됩니다. 인코딩:
디코더는 코드를 수신하면 테이블을 다시 작성하여 원본 메시지를 복구할 수 있습니다.
LZW 관찰:
이 장에서는 아날로그의 문제점과 디지털의 이론적 근거를 중심으로 아날로그와 디지털 통신을 설명합니다. 아날로그 통신 링크(물리적 링크는 기본적으로 가장 낮은 수준에서 아날로그이기 때문에 필요함)를 통해 디지털 데이터를 보내고 받는 방법을 제시합니다. 또한 이 책의 나머지 부분의 기초를 형성하는 메시지 → 패킷 → 비트 → 신호 등 계층형 통신 모델을 소개합니다.
통신 기술을 통해 사용자(사람 또는 애플리케이션)가 메시지를 교환할 수 있습니다. 데이터 소스는 본질적으로 디지털(예: 컴퓨터 생성 데이터)이거나 아날로그(예: 비디오, 오디오, 센서 데이터)일 수 있습니다. 최신 시스템은 소스에 관계없이 모든 데이터를 디지털화하는 경우가 많습니다.
디지털 커뮤니케이션은 두 가지 이유로 탁월합니다.
그러나 물리적 링크는 아날로그이므로 디지털에서 아날로그로, 아날로그에서 디지털로 변환이 필요합니다.
아날로그 표현은 물리적 링크 속성에 잘 매핑됩니다. 예:
흑백 TV: 영상 휘도(회색 음영)는 전압 레벨(0V = 검정색, 1V = 흰색)로 표시됩니다.
아날로그 전화기: 음파가 전기 신호로 변환됩니다.
아날로그 신호는 다양한 전압/강도/파장 수준으로 전송될 수 있으며 수신기에서 쉽게 측정할 수 있습니다.
오류가 없는 통신 링크는 없습니다. 잡음과 왜곡은 신호를 교란시키며 이러한 오류는 여러 전송 단계에 걸쳐 누적됩니다(계단 효과). 이로 인해 아날로그 시스템, 특히 복잡한 시스템을 안정적으로 구축하기가 어렵습니다. 디지털 신호로 이 문제를 해결할 수 있습니다.
디지털 신호는 이산 값을 사용하여 비트를 표시하므로 잡음과의 확실한 구별이 가능합니다. 바이너리 신호는 "0"에 대해 V0, "1"에 대해 V1이라는 두 가지 전압을 사용합니다. 노이즈를 처리하려면 V0와 V1을 충분히 분리해야 합니다.
수신기는 임계 전압(Vth = (V0 V1) / 2)을 사용하여 수신된 전압을 비트(전압
Isyarat penghantaran ialah bentuk gelombang voltan tetap yang dipegang untuk masa tertentu. Isyarat berterusan diwakili oleh sampel masa diskret. kadar sampel (sampel sesaat) dipersetujui oleh pengirim dan penerima. Selang sampel ialah masa antara sampel.
Penghantar dan penerima mesti bersetuju dengan kadar jam. Bit dihantar pada peralihan jam. Samples_per_bit ialah bilangan sampel setiap bit. Penerima membuat kesimpulan tepi jam daripada peralihan dalam sampel yang diterima.
Cabaran:
Jam penerima mungkin lebih laju sedikit atau lebih perlahan daripada jam pengirim. Penerima melaraskan indeks pensampelannya secara dinamik berdasarkan peralihan:
Pembetulan awal dibantu oleh urutan latihan 0s dan 1s berselang-seli pada permulaan penghantaran.
8b/10b menangani baki DC dan peralihan yang kerap. Ia memetakan simbol 8-bit kepada simbol penghantaran 10-bit, memastikan:
Proses pengekodan:
Sistem komunikasi melibatkan beberapa modul: Mapper (bit kepada isyarat), Demapper (isyarat kepada bit), Pengekodan saluran (pembetulan ralat), Penyahkodan saluran. Mesej dipecahkan kepada paket dan dihantar melalui berbilang pautan. Tiga abstraksi utama ialah paket, bit dan isyarat. Buku ini memberi tumpuan kepada ini dan interaksi mereka dalam rangkaian komunikasi.
Bab ini membincangkan teknik untuk komunikasi digital yang boleh dipercayai, memfokuskan pada menambah redundansi untuk memerangi ralat bit yang tidak dapat dielakkan dalam saluran komunikasi dan media storan. Konsep teras ialah pengekodan saluran: pengekodan pada penghantar dan penyahkodan pada penerima untuk membetulkan ralat atau mengesan ralat yang tidak boleh dibetulkan. Bab ini memfokuskan pada kod pembetulan ralat, khususnya kod blok linear dan (kemudian) kod konvolusi.
Model Binary Symmetric Channel (BSC) mencirikan ralat bit dengan satu parameter, ε (kebarangkalian bit-flip), di mana bit yang dihantar terbalik dengan kebarangkalian ε, secara bebas daripada bit lain. ε boleh dianggarkan secara empirik. Kebarangkalian ralat paket (PER) untuk paket bersaiz S bit:
PER = 1 - (1 - ε)^S (5.1)
Apabila ε << 1: PER ≈ Sε (5.2)
Saluran dunia sebenar mungkin mempamerkan ralat pecah di mana kebarangkalian ralat bergantung pada sejarah (lebih tinggi jika bit terbaru juga dalam ralat).
A kod ulangan mengekod bit b sebagai n salinan b. kadar kod ialah 1/n. Penyahkodan kemungkinan maksimum memilih mesej yang berkemungkinan besar diberikan kata kod yang diterima. Untuk BSC, ini bermakna memilih kata kod dengan bit yang paling banyak persamaan dengan yang diterima.
Kebarangkalian ralat penyahkodan untuk kod ulangan (lihat Persamaan 5.3 dalam teks asal). Kebarangkalian berkurangan secara eksponen dengan kadar kod tetapi tidak cekap kerana overhed yang tinggi.
Jarak hamming (HD) antara dua perkataan n-bit ialah bilangan kedudukan bit yang berbeza. Untuk pembetulan ralat tunggal (SEC), HD antara mana-mana dua kata kod yang sah mestilah sekurang-kurangnya 3. Kod dengan jarak Hamming minimum D boleh mengesan D-1 ralat dan lantai yang betul(D/2 -1) ralat.
선형 블록 코드 (n, k)는 메시지 비트에 대한 선형 함수(가중치 합)를 사용하여 k비트 메시지를 n비트 코드워드로 매핑합니다. 대수 블록 코드는 블록 내에서 이러한 작업을 수행합니다. (n,k,d) 코드는 최소 해밍 거리 'd'를 갖는 블록 코드를 나타낸다. 코드율 = k/n.
선형 코드에서는 두 코드워드의 합도 코드워드가 되어야 합니다. 모두 0인 코드워드는 모든 선형 코드에 존재합니다. 선형 블록 코드의 최소 해밍 거리는 0이 아닌 가장 작은 코드워드의 가중치(1의 수)와 같습니다. 이진 선형 코드 모듈로-2 연산(Galois Field 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)는 패리티를 확인하여 수신기에서 계산됩니다. 신드롬 비트의 조합은 잘못된 비트(있는 경우)를 나타냅니다.
해밍 코드 구성:
참고: 이는 웹 개발에 필요한 정보일 뿐입니다. Sysops의 경우 네트워크와 그 기초는 2학기 과정입니다.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!