Protokollat

Ovatko protokollat ohjelmakoodia? Vaikka joku TCP/IP-protokolla esimerkiksi. Mikä niiden olomuoto on todellisuudessa? :D Palvelinohjelmiston ohjelmakoodiako?
10292
Äänestä

Muut lukivat myös

Vastaukset 10

Vanhimmat
  • Missä kohtaa antamissasi linkeissä vastattiin aloittajan kysymykseen?

    Äänestä

Suomen kirjoitusjärjestelmäkin on protokolla vaikka sitä ei sellaiseksi sanota. Siinäkin on määritelty kirjaimet ja miten niistä muodostetaan sanoja ja lauseita niin että voidaan välittää tai säilöä tietoa.

Äänestä

Jokainen viesti internetissä sisältää useita kerroksia käsittävän protokollapinon, joiden päällä varsinainen viesti kuljetetaan.

Teoreettisessa ISO OSI-mallissa on 7 kerrosta.
http://fi.wikipedia.org/wiki/OSI-malli

Käytännössä tavallisessa TCP/IP-nettiviestissä on 5 kerrosta:
1. varsinainen viesti,
2. HTTP-kerros,
3. TCP-kerros,
4. IP-kerros ja
5. datalinkkikerros (esim. ETHERNET-protokolla, vaihtuu siirtotien mukaan)
(lisäksi fyysinen kerros (=siirtotie/johto), mitä pitkin viesti kulloinkin kulkee).

Jos tämä pino käännetään poikittain niin että datalinkkikerrors tulee ekana ja varsinainen viesti viimeisenä, nähdään että internetissä viesti sisältää 4 otsikkoa: ETHERNET(uloin), IP, TCP, HTTP, ennen varsinaista viestiä.

Joka kerrosta käsittelee oma ohjelmakoodinsa. Esim. lähtöpäässä selain lisää HTTP-otsikon: mm protokolla/kohde, viestin pituus, selain, keksit, ja antaa viestin alaspäin.,TCP-käsittelijä omansa (mm lähde ja kohdeportit, tilan, sekvenssinron ja checksumman) ja antaa viestin alaspäin, IP-käsittelijä omansa (mm. lähde ja kohde IP-osoitteet). Kohteen IP-osoite saadaan DNS-kyselyllä, ja sen jälkeen viesti annetaan alaspäin datalinkille, yleensä ETHERNET, mikä lisää vielä oman otsikkonsa (mm MAC). Viesti siirtyy datalinkissä MAC-MAC-siirtona. Reititystaulu määrää mihin osoitteeseen viesti lähtee: oletusreitittimeen, jos kohde ei ole kotiverkon osoite, ja siellä ylös IP-kerrokseen, missä on uusi reititystaulu. Siellä viesti voidaan NATata, eli sen lähde-IP muuttaa (NATtaus talletetaan että paluuviesti osataan ohjata oikein). Sitten viesti kulkee internetissä sen reititinten reititystaulujen mukaan, mahdollisesti erilaisia datalinkkejä vaihdellen (ETHERNET-otsiko tilalle vaihdetaan muita protokollia), läpi internetin, kunnes kohde-IP-osoitteessa se annetaan ylös kohdeportin sovellukselle.

Äänestä
  • Kiitos vastauksesta :)

    "Joka kerrosta käsittelee oma ohjelmakoodinsa" Päättelen tästä, että protokollat siis toteutetaan ohjelmakoodissa eli se on se niiden varsinainen olemus, jota hain. Miten ihmeessä joku osaa ohjelmoida tuollaisia juttuja, ihan käsittämätöntä?

    Äänestä

  • aloittaja. kirjoitti:

    Kiitos vastauksesta :)

    "Joka kerrosta käsittelee oma ohjelmakoodinsa" Päättelen tästä, että protokollat siis toteutetaan ohjelmakoodissa eli se on se niiden varsinainen olemus, jota hain. Miten ihmeessä joku osaa ohjelmoida tuollaisia juttuja, ihan käsittämätöntä?

    Jonkunlaista ohjelmakoodia tarvitaan noiden verkkoprotokollien käsittelyssä. Tietokoneissa sen hoitaa käyttöjärjestelmä joka sisältää tuon koodin, erilaisissa sulautetuissa laitteissa se koodi voi olla esimerkiksi verkkoliitäntämodulissa omalla piirillään.

    Äänestä

Lyhyesti ja yksinkertaistetusti sanottuna protokolla tässä yhteydessä tarkoittaa käytäntöja, standardeja ja tekniikoita joiden avulla kaksi (tai useampi) ohjelma/laite keskustelee keskenään.

Protokolla ei ole ohjelmakoodia vaan ennemminkin "yhteinen kieli/säännöstö" jolla keskustellaan. Tetokoneet ovat melko ranttuja ja arvailujen varaa ei usein ole, jonka vuoksi tarvitaan täsmällisiä sääntöja yksinkertaisilta tuntuvienkin viestien välittämiseen. Ohjelmakoodi toteuttaa protokollan vaatimat määritykset omassa päässään, jos se mielii keskustella toisen ohjelman/laitteen kanssa.

Äänestä
  • Aloitus oli kyllä huolimattomasti muotoiltu. Tiedän mitä tarkoitetaan sanalla protokolla, vaikka aloituksesta saa eri kuvan. Tarkoitin lähinnä sitä miten nuo protokollat saadaan käytännössä aikaan eli toteutetaan? Sitä tarkoitin "niiden olemuksella".

    Äänestä

  • Kiitos vastauksesta sullekin :)

    Äänestä

Julkiset protokollat kuten internet-protokollat ovat kansainvälisesti sovittuja ja tarkasti määriteltyjä standardeja, ja sen perusteella ohjelmoitu/ohjelmoitavissa.

Käyttöjärjestelmät sisältävät nykyään mm. TCP/IP-protokolla-kerrokset, ja niiden päälle on suhteellisen helppo tehdä ylemmän tason protokollia tai sovelluksia, esim. yksinkertainen http-client ja -server.

Usein protokollista puhuttaessa tarkoitetaankin portti-protokollia mm. http, smtp. Kun selain lähettää http-sanoman, se menee pelkällä osoitteella perille, koska http-protokollan tiedetään olevan portissa 80 (se voisi olla muussakin portissa, mutta tällöin portti pitäisi kirjoittaa selaimessa osoitteeseen ja lisäksi avata erikseen palomuureissa, ja siitä tulisi sekaannuksia). Eli yleensä portti ilmaisee protokollan.

Vaativa protokolla toteutetaan koodaamalla sille tilakone, esimerkkinä TCP. Siinä on aloitus (kättely), lähetykset (ikkunan verran paketteja kerrallaan ml. virheentarkistus), lopetus ja tarvittavat timeoutit.

http://en.wikibooks.org/wiki/File:New_tcp_action1.JPG

Toiminnallisesti TCP-lähetystä voi verrata kirjan lähetykseen. TCP lähettää siitä luvun (ikkunan) verran sivuja (paketteja) kerrallaan ja odottaa sitten kuittausta toisesta päästä, ennen kuin lähettää seuraavan luvun. Sivut voivat mennä eri reittejä kohteeseen, missä kohteen TCP kasaa niistä luvun ja kuittaa. Näin alku ja loppupään TCPt keskustelevat keskenään ja siirto menee hallitusti (kaikkia sivuja ei lähetetä kontrolloimattimasti putkeen zap, zap, zap.. mikä tukkisi reitittimen tai loppupään). Välillä olevat reitittimet eivät koske TCP-protokollaan, ne tutkivat vain IP-protokollaotsikkoa sivun (paketin) välitykseen yksi kerrallaan.

Äänestä

Kommentoi aloitusta


Tyhmä kysymys kirjoitti:

Ovatko protokollat ohjelmakoodia? Vaikka joku TCP/IP-protokolla esimerkiksi. Mikä niiden olomuoto on todellisuudessa? :D Palvelinohjelmiston ohjelmakoodiako?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu