- How does a protocol contain type system, methods, constructors and etc? Where are these things defined?
Tutti questi devono essere definiti nelle specifiche del protocollo stesso. Non tutti i protocolli hanno un sistema di tipi, metodi o costruttori e non esiste un consenso generale su come dovrebbero apparire (specialmente il sistema dei tipi) nel contesto dei protocolli di comunicazione.
- How does my OS system knows which tcp port is for AMQP and other protocols based on TCP/IP? Is there some sort of mapping in the OS?
In linea di principio, ogni protocollo può essere associato a qualsiasi porta esistente. Esiste solo una convenzione sulla possibilità di raggiungere determinati protocolli su una porta specifica, come la porta 80 per il protocollo HTTP.
Il programma che fornisce un server per un particolare protocollo (come HTTP, AMQP o un protocollo che si trova sopra quello) in genere indica al sistema operativo su quale porta vuole ricevere i dati del protocollo.
- How does my OS even know about protocol? Do I install something without knowing?
Dipende dal protocollo in questione. Alcuni protocolli (come IP, TCP e UDP) sono visti come così basilari e onnipresenti che ogni SO viene di default con un'implementazione per loro.
Alcuni altri protocolli (come HTTP o SMTP) sono in genere implementati nei programmi dello spazio utente e non sono noti al sistema operativo.
Altri protocolli che devono essere utilizzati come blocchi di base per la creazione di altri protocolli potrebbero essere forniti come librerie che è necessario installare separatamente (e potrebbero diventare una parte installata predefinita del sistema operativo se diventano abbastanza popolari). AMQP sembra essere in quest'ultima categoria.