Programmering av datanettverk - Computer network programming

Datanettverksprogrammering innebærer å skrive dataprogrammer som gjør det mulig for prosesser å kommunisere med hverandre over et datanettverk .

Forbindelsesorientert og tilkoblingsfri kommunikasjon

Svært generelt kan det meste av kommunikasjonen deles i forbindelsesorientert og tilkoblingsfri . Enten en kommunikasjon er tilkoblingsorientert eller tilkoblingsfri, defineres av kommunikasjonsprotokollen , og ikke av API for programmering av applikasjoner . Eksempler på forbindelsesorienterte protokoller inkluderer Transmission Control Protocol (TCP) og Sequenced Packet Exchange (SPX) , og eksempler på forbindelsesløse protokoller inkluderer User Datagram Protocol (UDP) , "raw IP" og Internetwork Packet Exchange (IPX) .

Klienter og servere

For tilkoblingsorientert kommunikasjon har kommunikasjonspartier vanligvis forskjellige roller. En part venter vanligvis på innkommende forbindelser; denne parten blir vanligvis referert til som " server ". En annen part er den som initierer forbindelse; denne parten blir vanligvis referert til som " klient ".

For tilkoblingsfri kommunikasjon venter vanligvis en part ("server") på en innkommende pakke, og en annen part ("klient") blir vanligvis forstått som den som sender en uønsket pakke til "server".

Populære protokoller og APIer

Nettverksprogrammering dekker tradisjonelt forskjellige lag av OSI / ISO-modellen (det meste av programmeringsnivå tilhører L4 og oppover). Tabellen nedenfor inneholder noen eksempler på populære protokoller som tilhører forskjellige OSI / ISO-lag, og populære APIer for dem.

OSI / ISO-lag Protokoll API
L3 (nettverk) IP Rå stikkontakt
L4 (transport) TCP , UDP , SCTP Berkeley stikkontakter
L5 (økt) TLS OpenSSL
L7 (søknad) HTTP Diverse

Se også

Referanser

  • W. Richard Stevens: UNIX Network Programming , Volume 1, Second Edition: Networking APIs: Sockets and XTI, Prentice Hall, 1998, ISBN   0-13-490012-X