Come si trasferiscono i bit via cavo? [chiuso]

0

Stavo affrontando il networking e non riesco a capire Come i bit vengono trasferiti su fili in primo luogo ciò che conta per ciascuno di 0's & 1's

    
posta Sigaint 04.04.2015 - 06:24
fonte

1 risposta

1

Prima di tutto non penso che appartenga a Sicurezza SE Si prega di leggere la politica di sicurezza SE per quanto riguarda le domande . È più di fisica. se sono corretto!

Ti consiglio di leggere questo articolo sulla Transizione dati che richiede una conoscenza di base di fisica Un modo semplice per trovare ulteriori informazioni sulla tua domanda senza alcuna conoscenza preliminare della fisica è capire Layer 1 .

Ma comunque più riguardo alla tua domanda. La data di trasmissione è solo variando i livelli di tensione in un circuito formato dai cavi di rete. Scoprirai che i dettagli sono diabolicamente complicati e troppo complicati da riprodurre qui. Anche i livelli di tensione utilizzati dipendono dal fatto che si tratti di un cablaggio da 10 MHz, 100 MHz o GHz. GHz utilizza cinque livelli di tensione e modulazione dell'ampiezza dell'impulso .

Il punto di partenza più semplice è probabilmente l'articolo di Wikipedia su Ethernet su doppino intrecciato . Se vuoi saperne di più su come le informazioni sono codificate guarda l' articolo Cisco su Ethernet .

Modifica: come @munchkin ha menzionato di non dimenticare Endianness e personalmente penso che sia una parte così fondamentale da comprendere.

In primo luogo, Endianness , è la memoria memorizza i dati binari oprganizzandolo unità a 8 bit (byte) che abbiamo chiamato Octec Da non confondere con Ottale E come vengono ordinati i byte all'interno di momery:

Ma per capire davvero l'endianità abbiamo bisogno di sapere word

Wiki : in informatica, parola è un termine per l'unità naturale di dati utilizzata da un particolare progettazione del processore. Una parola è una porzione di dati di dimensioni fisse gestita come un'unità dal set di istruzioni o dall'hardware del processore. Il numero di byte in una parola (la dimensione della parola, la larghezza della parola o la lunghezza della parola) è una caratteristica importante di qualsiasi progetto specifico del processore o dell'architettura del computer.

Ora, supponendo che tu sappia su Word, Memory, ecc.

Sistema Big-Endian:

**Most Significant Byte** of the word is stored in the *Smallest address given*
**Least Significant Byte** of the word is stored in the *largest address given*

Sistema little-endian:

**Most Significant Byte** of the word is stored in the *Largest address given*
**Most Significant Byte** of the word is stored in the *Smallest address given*

E quali sono queste parole dall'aspetto gradevole sono solo termini che descrivono l'ordine in cui una sequenza di byte è memorizzata nella memoria del computer.

Big-Endian System: Most Significant Byte in Smallest = 1 2 3 *Read as One-Hundred-Twenty-Three
Little-Endian System: Most Significant Byte in Largest = 1 2 3 *THREE-Hundred-Twenty-One*

Ora si avvicina e come funziona: per la dimostrazione userò questa tabella:

         *-------------*                    *-------------*
         |  Register   |                    |  Register   |
         *-------------*                    *-------------*
*--------* ▼  ▼  ▼  ▼  *           *--------*--▼--▼--▼--▼-*
|Memnory |0A 0B 0C  0D |           |Memnory | 0A 0B 0C 0D |
*--------*-------------*           *--------*--*--*--*--*-*
|        |                         |        |
*--------*                         *--------*
|a|      |                         |a|      |
*-*------*                         *-*------*
|a+1|    |                         |a+1|    |
*---*----*                         *---*----*
|a+2|    |                         |a+2|    |
*---*----*                         *---*----*
|a+3|    |                         |a+3|    |
*---*----*Big-Endian System:       *---*----*Little-Endian System:
Most Significant Byte in Smallest  Most Significant Byte in Largest

Ora, nota il seguente diagramma

         *-------------*                    *-------------*
         |  Register   |                    |  Register   |
         *-------------*                    *-------------*
*--------* ▼  ▼  ▼  ▼  *           *--------*--▼--▼--▼--▼-*
|Memnory |0A 0B 0C  0D |           |Memnory | 0A 0B 0C 0D |
*--------*-------------*           *--------*--*--*--*--*-*
|        | ▼  ▼  ▼  ▼              |        |  ▼  ▼  ▼  ▼ 
*--------* |  |  |  |              *--------*  |  |  |  | 
|a|    0A|<*  *  |  |              |a|    0 |<----------*
*-*------*    |  |  |              *-*------*  |  |  |
|a+1|  0B|<---*  |  |              |a+1|  0C|<-------*
*---*----*       |  |              *---*----*  |  |
|a+2|  0C|<------*  |              |a+2|  0B|<----*
*---*----*          |              *---*----*  |
|a+3|  0D|<---------*              |a+3|  0A|<-*
*---*----*Big-Endian System:       *---*----*Little-Endian System:
Most Significant Byte in Smallest  Most Significant Byte in Largest

Quindi, ci si potrebbe chiedere come possiamo sapere se stiamo usando Big / Little Endian?

Ora! Paga ATTENZIONE:

         *-------------*                    *-------------*
         |  Register   |                    |  Register   |
         *-------------*                    *-------------*
*--------* ▼  ▼  ▼  ▼  *           *--------*--▼--▼--▼--▼-*
|Memnory |01 02 03  04 |           |Memnory | 01 02 03  0 |
*--------*--*--*--*--*-*           *--------*--*--*--*--*-*
|        | ▼  ▼  ▼  ▼              |        |  ▼  ▼  ▼  ▼ 
*--------* |  |  |  |              *--------*  |  |  |  | 
|a|    01|<*  *  |  |              |a|    04|<----------*
*-*------*    |  |  |              *-*------*  |  |  |
|a+1|  02|<---*  |  |              |a+1|  03|<-------*
*---*----*       |  |              *---*----*  |  |
|a+2|  03|<------*  |              |a+2|  02|<----*
*---*----*          |              *---*----*  |
|a+3|  04|<---------*              |a+3|  01|<-*
*---*----*Big-Endian               *---*----*Little-Endian

Qui Elaborazione codice:

import "unsafe"
fun main() {
 var x unit32 = 0x01020304
 switch *(*byte)(unsafe.Pointer(&x)) {  //Get the address of &x & convert to pointer. (*byte)(unsafe.Pointer(&x)) convert to (*byte) type NOTE: *(*byte)(unsafe.Pointer(&x)) [Dereference][15].
 case 0x01:
   println("Big Endian")
 case 0x04:
   println("Little Endian")
  }
}

Puoi provare questo sul tuo ora per vedere. Il mio piano era per un breve approccio a Endianness ma oh, va bene!

    
risposta data 04.04.2015 - 06:29
fonte

Leggi altre domande sui tag