Dec 18, 2012

0 TCP/IP. Kā arī TCP, IP atsevišķi.



Lai saņemtu, nosūtītu informāciju ,aplikācijas/iekārtas izmanto TCP/IP protokolu. Protams tiek izmantoti arī citi protokoli, taču šajā pierakstā , tiek runāts par TCP/IP un atsevišķi izķidātas atšķirības starp TCP un IP.

Kāpēc šāds ieraksts? Elementāri. Pēdējā laikā, pāris reizes man ir uzdoti dīvaini jautājumi.
Piemēram :

  • "Ar ko atšķirās TCP no IP?", 
  • "Vai IP var strādāt bez TCP un otrādāk?"
  • "Vai datus var nosūtīt tikai lietojot IP protokolu?"

Mēs visi esam gudri, mākam lasīt angliski,esam par šo tēmu lasījuši, bet nekad neesam iedziļinājušies.
Es lietoju TCP/IP protokolu jau ~15.gadus un domāju ka zinu , kas "lācītim vēderā".
OSI modelis, UDP, TCP/IP kopumā, u.t.t. Taču sīkākas detaļas, tur gaida grābekļa princips..
Piemēram es, intervijas laikā sajaucu ARPANET protokola principus ar IP protokola principiem.
Shit happens..anyway..
Taču , skumīgākais ir tas :
 "Ja tu zini kā lietot telefonu, tad tev ir tikai miglaina nojauta par to , kā viņš strādā".
Šī frāze ir no kādas filmas, bet diemžēl tā ir patiesa.
No otras puses, ne vienmēr ir jāzin, kā strādā tas ko tu lieto, galvenais ir tas, ka tu labi māki to lietot.


Ņemam talkā WikiPedia :


TCP paketes uzbūve
Transmission Control Protocol; TCP ir viens no galvenajiem interneta protokoliem. TCP ļauj tīkla datoru programmām izveidot savienojumus no vienas uz otru, caur kurām var pārsūtīt datus. Atšķirībā no UDP, šis protokols garantē drošu un secīgu datu pārraidi. TCP arī atšķir dažādu programmu savienojuma datus (lietojot portu numurus).
TCP ir internetā plašāk lietotais transporta slāņa protokols. Programmas TCP piegādā baitu plūsmas, kas tiek sadalītas atbilstoša izmēra segmentos (kuru izmēru parasti nosaka kanāla slāņa MTU (maximum transmission unit)). Iegūtās paketesTCP tālāk piegādā IP nosūtīšanai caur tīklu. TCP pārbauda, vai paketes nav pazaudētas katrai paketei pieliekot sequence number, kuru arī lieto lai pārliecinātos, ka dati ir piegādāti sākotnējā secībā. Par sekmīgi saņemtajām paketēm, TCP sūta atpakaļ apstiprinājumus (acknowledgement). Ja sūtītājs laicīgi (kamēr nav iestājies taimauts) nesaņem apstiprinājumu, paketi uzskata par pazaudētu un nosūta vēlreiz. TCP pārbauda vai paketes dati nav bojāti, lietojot kontrolsummu.
TCP nav optimizēts lietošanai bezvadu tīklos. Pieņem, ka visi pakešu zudumi (packet loss) rodas nepietiekamas datu kanāla caurlaidības dēļ. Bezvadu tīklos pakešu zudumi rodas lielākoties citu iemeslu dēļ. Tas samazina TCP ātrumu šādos apstākļos, jo pēc katras pazaudētās paketes TCP samazina sūtīšanas ātrumu.
Lai arī TCP ir internetā visplašāk lietotais transporta slāņa protokols, ir daži pielietojumi, kur tas nav piemērots (tur lieto UDP):
  • TCP nodrošina secīgu datu pārraidi, ja daļa datu pazūd, tos pārsūta velreiz un tas rada aizķeršanos. Dažiem pielietojumiem (spēles, voip) šāda aizķeršanās ir nevēlamāka kā datu zudumi.
  • TCP ir relatīvi sarežģīts protokols, lai atvērtu savienojumu vien vajag 3 paketes (no kurām neviena nenes derīgos datus). Vēl, TCP darbināšanai vajag vairāk atmiņas nekā UDP (tam nav nozīmes datoriem, bet var būt nozīme PXE).


IP paketes uzbūve
Interneta protokol: (IP) ir tīkla slāņa datu pārraides protokols, kuru lieto internetā. Tas ir galvenais protokols, kas nodrošina interneta integritāti.
Augšējā līmeņa protokolu (TCP, UDP, utt) dati tiek ievietoti IP paketēs, kuras tālāk nosūta uz apakšējā līmeņa protokolu (ethernet, PPP, utt). IP pakete satur datus par to, no kurienes tā nāk (source adress) un uz kurieni to sūtīt (destination adress). Pirms paketes nosūtīšanas nav nepieciešama nekāda speciāla sagatavošana (atšķirībā no savienojumu (connection) bāzētiem tīkliem)).
Tā, kā IP nodrošina protokola abstrakciju (augstāko līmeņu protokoliem nav nepieciešams zināt kādus apakšējā līmeņa protokolus lieto datu pārsūtīšanai), to var lietot heterogēnos tīklos (tur kur ir lietotas vairākas datu pārraides tehnoloģijas), jo tas neietekmē augšējā līmeņa protokolus. Dažādiem kanāla slāņa protokoliem var būt dažādas adresācijas metodes (un dažiem var nebūt nekādas). Tas rada nepieciešamību pārveidot IP adresi kanāla slāņa protokola adresē, šādiem mērķiem lieto ARP protokolu.
Intertīkla protokols negarantē pakešu nogādi līdz galam. Vienīgā lieta, ko IP pārbauda ir paketes headera kontrolsumma, ja tā neatbilst, paketi izmet. Paketes otrā galā var pienākt sajauktā secībā, var dublēties, var nepienākt nemaz (packet loss). Šīs problēmas risina transporta slāņa protokoli.
Ja transports slāņa protokols piegādā datus pārāk lielos gabalos (lielāki kā maksimālais pieļaujamais kanāla slāņa paketes izmērs), IP nodrošina fragmentāciju. (sašķeļ datus pa vairākām paketēm). Šādus fragmentus IP pēc tam sakārto sākotnējā secībā.

Iztirzājums

!TCP protokols atbild par datu paketes piegādi adresātam.!
Protokols sadala datus paketēs, lai atvieglotu datu pārsūtīšanu.
TCP protokols pārsūta datus atkārtoti, ja tie ir saņemti bojāti. Tad tiek pārsūtītas tikai tās paketes, kuras nav sasniegušas adresātu, tādējādi nav jāpārsūta viss fails/datu masīvs, bet tikai konkrētās bojātās/zudušās paketes.
Piemēram , ja jūsu interneta pieslēgums ir sliktas kvalitātes, t.i zudumi pārraidē.
To var redzēt, palaižot komandu PING.

Ping caurums-request timed out
Šajā piemērā redzams, ka ir viens tautā sauktais "caurums", jeb kļūda pārraidē.
Tātad ja uz šo adresi tiek sūtīti dati, izmantojot TCP/IP protokolu, tad šīs paketes/paketi , nāksies pārsūtīt.
Protokols to dara automātiski, saņemot apstiprinājumu no saņēmēja, vai visas nosūtītās paketes ir saņemtas.
Ja saņēmējs atsūta atskaiti, ka tādas un tādas paketes ir kļūdainas, tās tiek sūtītas atkārtoti.



!IP protokols atbild par loģisko adresāciju.! 
T.i - sūtītāja IP adrese un saņēmēja IP adrese.
Tālāk šos datus nodod TCP protokolam.
Parasti kļūdaini uzskata, pēc IP protokola paketes attēlojuma, ka laukā DATA ir dati. 
Taču šis lauks nes tikai tīkla diagrammas.


Kopsavilkums un atbildes.


Atbilde uz jautājumu :  "Ar ko atšķirās TCP no IP?"
  • TCP protokols atbild par datu paketes piegādi adresātam. IP protokols atbild par loģisko adresāciju.

Atbilde uz jautājumu : "Vai IP var strādāt bez TCP un otrādāk?"
  • Šie protokoli nevar pilnvērtīgi strādāt katrs pats par sevi.

Atbilde uz jautājumu : "Vai datus var nosūtīt tikai lietojot IP protokolu?"
  • Nē, nevar. IP protokols neparedz šādu iespēju.Šo funkciju veic TCP protokols.

0 comments :

Post a Comment

Comment: