Ngayon, magsisimula tayo sa pamamagitan ng pagtutok sa TCP. Mas maaga sa kabanata sa layering, binanggit namin ang isang mahalagang punto. Sa layer ng network at sa ibaba, ito ay higit pa tungkol sa mga koneksyon sa host sa host, na nangangahulugang kailangang malaman ng iyong computer kung nasaan ang isa pang computer upang makakonekta dito. Gayunpaman, ang komunikasyon sa isang network ay kadalasang interprocess na komunikasyon sa halip na intermachine na komunikasyon. Samakatuwid, ipinakilala ng TCP protocol ang konsepto ng port. Ang isang port ay maaaring sakupin ng isang proseso lamang, na nagbibigay ng direktang komunikasyon sa pagitan ng mga proseso ng aplikasyon na tumatakbo sa iba't ibang mga host.
Ang gawain ng layer ng transportasyon ay kung paano magbigay ng mga direktang serbisyo sa komunikasyon sa pagitan ng mga proseso ng application na tumatakbo sa iba't ibang mga host, kaya kilala rin ito bilang isang end-to-end na protocol. Itinatago ng transport layer ang mga pangunahing detalye ng network, na nagpapahintulot sa proseso ng aplikasyon na makita na parang may lohikal na end-to-end na channel ng komunikasyon sa pagitan ng dalawang transport layer entity.
Ang TCP ay kumakatawan sa Transmission Control Protocol at kilala bilang isang protocol na nakatuon sa koneksyon. Nangangahulugan ito na bago magsimulang magpadala ng data ang isang application sa isa pa, kailangang makipagkamay ang dalawang proseso. Ang pakikipagkamay ay isang lohikal na konektadong proseso na nagsisiguro ng maaasahang paghahatid at maayos na pagtanggap ng data. Sa panahon ng pakikipagkamay, nagkakaroon ng koneksyon sa pagitan ng source at destination host sa pamamagitan ng pagpapalitan ng serye ng mga control packet at pagsang-ayon sa ilang parameter at panuntunan upang matiyak ang matagumpay na paghahatid ng data.
Ano ang TCP? (Mylinking'sTapikin ang NetworkatBroker ng Network Packetmaaaring magproseso ng parehong TCP o UDP Packet)
Ang TCP (Transmission Control Protocol) ay isang connection oriented, maaasahan, byte-stream based transport layer communication protocol.
Nakatuon sa koneksyon: Ang koneksyon-oriented ay nangangahulugan na ang TCP na komunikasyon ay isa-sa-isa, iyon ay, point-to-point na end-to-end na komunikasyon, hindi katulad ng UDP, na maaaring magpadala ng mga mensahe sa maraming host nang sabay-sabay, kaya hindi makakamit ang isa-sa-maraming komunikasyon.
Maaasahan: Ang pagiging maaasahan ng TCP ay nagsisiguro na ang mga packet ay maihahatid nang maaasahan sa receiver anuman ang mga pagbabago sa link ng network, na ginagawang mas kumplikado ang format ng protocol packet ng TCP kaysa sa UDP.
Byte-stream-based: Ang byte-stream-based na kalikasan ng TCP ay nagbibigay-daan para sa pagpapadala ng mga mensahe ng anumang laki at ginagarantiyahan ang pagkakasunud-sunod ng mensahe: kahit na ang nakaraang mensahe ay hindi pa ganap na natanggap, at kahit na ang mga kasunod na byte ay natanggap, hindi ihahatid ng TCP ang mga ito sa layer ng aplikasyon para sa pagproseso at awtomatikong mag-drop ng mga duplicate na packet.
Kapag nakagawa na ng koneksyon ang host A at host B, kailangan lang gamitin ng application ang virtual na linya ng komunikasyon upang magpadala at tumanggap ng data, kaya tinitiyak ang paghahatid ng data. Ang TCP protocol ay may pananagutan sa pagkontrol sa mga gawain tulad ng pagtatatag ng koneksyon, pagdiskonekta, at paghawak. Dapat tandaan na dito sinasabi namin na ang virtual na linya ay nangangahulugan lamang na magtatag ng isang koneksyon, ang TCP protocol na koneksyon ay nagpapahiwatig lamang na ang dalawang panig ay maaaring magsimula ng paghahatid ng data, at upang matiyak ang pagiging maaasahan ng data. Ang mga routing at transport node ay pinangangasiwaan ng mga network device; ang TCP protocol mismo ay hindi nababahala sa mga detalyeng ito.
Ang koneksyon sa TCP ay isang full-duplex na serbisyo, na nangangahulugan na ang host A at host B ay maaaring magpadala ng data sa parehong direksyon sa isang koneksyon sa TCP. Ibig sabihin, maaaring ilipat ang data sa pagitan ng host A at host B sa isang bidirectional na daloy.
Pansamantalang nag-iimbak ng data ang TCP sa send buffer ng koneksyon. Ang send buffer na ito ay isa sa mga cache na na-set up sa panahon ng three-way handshake. Kasunod nito, ipapadala ng TCP ang data sa send cache sa receive cache ng destination host sa naaangkop na oras. Sa pagsasagawa, ang bawat peer ay magkakaroon ng send cache at receive cache, gaya ng ipinapakita dito:
Ang send buffer ay isang lugar ng memorya na pinapanatili ng pagpapatupad ng TCP sa panig ng nagpadala na ginagamit upang pansamantalang mag-imbak ng data na ipapadala. Kapag ang three-way handshake ay ginawa upang magtatag ng isang koneksyon, ang send cache ay naka-set up at ginagamit upang mag-imbak ng data. Ang send buffer ay dynamic na inaayos ayon sa network congestion at feedback mula sa receiver.
Ang receive buffer ay isang lugar ng memorya na pinananatili ng pagpapatupad ng TCP sa receiving side na ginagamit upang pansamantalang mag-imbak ng natanggap na data. Iniimbak ng TCP ang natanggap na data sa receive cache at naghihintay para sa itaas na application na basahin ito.
Tandaan na ang laki ng pagpapadala ng cache at pagtanggap ng cache ay limitado, kapag ang cache ay puno na, ang TCP ay maaaring magpatibay ng ilang mga diskarte, tulad ng congestion control, flow control, atbp., upang matiyak ang maaasahang paghahatid ng data at katatagan ng network.
Sa mga network ng computer, ang paghahatid ng data sa pagitan ng mga host ay isinasagawa sa pamamagitan ng mga segment. Kaya ano ang isang packet segment?
Lumilikha ang TCP ng TCP segment, o packet segment, sa pamamagitan ng paghahati sa papasok na stream sa mga chunks at pagdaragdag ng TCP header sa bawat chunk. Ang bawat Segment ay maaari lamang ipadala sa loob ng limitadong panahon at hindi maaaring lumampas sa Maximum Segment Size (MSS). Sa pagbaba nito, isang packet segment ang dumadaan sa link layer. Ang link layer ay may Maximum Transmission Unit (MTU), na siyang pinakamataas na laki ng packet na maaaring dumaan sa data link layer. Ang maximum na yunit ng paghahatid ay karaniwang nauugnay sa interface ng komunikasyon.
Kaya ano ang pagkakaiba sa pagitan ng MSS at MTU?
Sa mga network ng computer, ang hierarchical architecture ay napakahalaga dahil isinasaalang-alang nito ang mga pagkakaiba sa pagitan ng iba't ibang antas. Ang bawat layer ay may ibang pangalan; sa layer ng transportasyon, ang data ay tinatawag na isang segment, at sa layer ng network, ang data ay tinatawag na isang IP packet. Samakatuwid, ang Maximum Transmission Unit (MTU) ay maaaring ituring na Maximum IP packet Size na maaaring ipadala ng network layer, habang ang Maximum Segment Size (MSS) ay isang transport layer concept na tumutukoy sa maximum na dami ng data na maaaring ipadala ng TCP packet sa isang pagkakataon.
Tandaan na kapag mas malaki ang Maximum Segment Size (MSS) kaysa sa Maximum Transmission Unit (MTU), isasagawa ang IP fragmentation sa layer ng network, at hindi hahatiin ng TCP ang mas malaking data sa mga segment na angkop para sa laki ng MTU. Magkakaroon ng isang seksyon sa layer ng network na nakatuon sa layer ng IP.
Istruktura ng segment ng TCP packet
Tuklasin natin ang format at nilalaman ng mga TCP header.
Sequence number: Isang random na numero na nabuo ng computer kapag ang koneksyon ay naitatag bilang paunang halaga nito kapag ang koneksyon ng TCP ay naitatag, at ang sequence number ay ipinadala sa receiver sa pamamagitan ng SYN packet. Sa panahon ng paghahatid ng data, dinaragdagan ng nagpadala ang sequence number ayon sa dami ng data na ipinadala. Huhusgahan ng receiver ang pagkakasunud-sunod ng data ayon sa natanggap na sequence number. Kung ang data ay napag-alamang wala sa ayos, muling ayusin ng tatanggap ang data upang matiyak ang pagkakasunud-sunod ng data.
Numero ng pagkilala: Ito ay isang sequence number na ginamit sa TCP upang kilalanin ang pagtanggap ng data. Ipinapahiwatig nito ang sequence number ng susunod na data na inaasahan na matanggap ng nagpadala. Sa isang koneksyon sa TCP, tinutukoy ng receiver kung aling data ang matagumpay na natanggap batay sa sequence number ng natanggap na segment ng data packet. Kapag matagumpay na natanggap ng receiver ang data, nagpapadala ito ng ACK packet sa nagpadala, na naglalaman ng acknowledgement acknowledgment number. Pagkatapos matanggap ang ACK packet, maaaring kumpirmahin ng nagpadala na ang data bago kilalanin ang numero ng tugon ay matagumpay na natanggap.
Kasama sa mga control bit ng isang TCP segment ang sumusunod:
ACK bit: Kapag ang bit na ito ay 1, nangangahulugan ito na ang field ng pagsagot sa pagkilala ay wasto. Tinukoy ng TCP na ang bit na ito ay dapat itakda sa 1 maliban sa mga SYN packet kapag ang koneksyon ay unang naitatag.
RST bit: Kapag ang bit na ito ay 1, ito ay nagpapahiwatig na mayroong isang pagbubukod sa koneksyon ng TCP at ang koneksyon ay dapat piliting idiskonekta.
SYN bit: Kapag ang bit na ito ay nakatakda sa 1, nangangahulugan ito na ang koneksyon ay dapat itatag at ang paunang halaga ng sequence number ay nakatakda sa sequence number field.
FIN bit: Kapag ang bit na ito ay 1, nangangahulugan ito na wala nang data na ipapadala sa hinaharap at nais ang koneksyon.
Ang iba't ibang mga function at katangian ng TCP ay kinakatawan ng istraktura ng mga segment ng TCP packet.
Ano ang UDP? (Mylinking'sTapikin ang NetworkatBroker ng Network Packetmaaaring magproseso ng parehong TCP o UDP Packet)
Ang User Datagram Protocol (UDP) ay isang protocol ng komunikasyon na walang koneksyon. Kung ikukumpara sa TCP, ang UDP ay hindi nagbibigay ng mga kumplikadong mekanismo ng kontrol. Ang UDP protocol ay nagpapahintulot sa mga application na direktang magpadala ng mga encapsulated IP packet nang hindi nagtatatag ng isang koneksyon. Kapag pinili ng developer na gamitin ang UDP sa halip na TCP, direktang nakikipag-ugnayan ang application sa IP.
Ang buong pangalan ng UDP Protocol ay User Datagram Protocol, at ang header nito ay walong byte (64 bits) lamang, na napakaikli. Ang format ng UDP header ay ang mga sumusunod:
Destination at source port: Ang kanilang pangunahing layunin ay upang ipahiwatig kung aling proseso ang UDP ay dapat magpadala ng mga packet.
Laki ng pakete: Ang field ng laki ng packet ay nagtataglay ng laki ng UDP header kasama ang laki ng data
Checksum: Dinisenyo upang matiyak ang maaasahang paghahatid ng mga UDP header at data Ang tungkulin ng checksum ay upang makita kung ang isang error o katiwalian ay naganap sa panahon ng paghahatid ng isang UDP packet upang matiyak ang integridad ng data.
Mga pagkakaiba sa pagitan ng TCP at UDP sa Mylinking'sTapikin ang NetworkatBroker ng Network Packetmaaaring magproseso ng parehong TCP o UDP Packet
Magkaiba ang TCP at UDP sa mga sumusunod na aspeto:
Koneksyon: Ang TCP ay isang connection-oriented transport protocol na nangangailangan ng koneksyon na maitatag bago mailipat ang data. Ang UDP, sa kabilang banda, ay hindi nangangailangan ng koneksyon at maaaring maglipat ng data kaagad.
Bagay sa Serbisyo: Ang TCP ay isang one-to-one two-point service, ibig sabihin, ang isang koneksyon ay may dalawang endpoint lamang upang makipag-usap sa isa't isa. Gayunpaman, sinusuportahan ng UDP ang isa-sa-isa, isa-sa-marami, at marami-sa-maraming interaktibong komunikasyon, na maaaring makipag-ugnayan sa maraming host nang sabay-sabay.
pagiging maaasahan: Ang TCP ay nagbibigay ng serbisyo ng paghahatid ng data nang mapagkakatiwalaan, tinitiyak na ang data ay walang error, walang pagkawala, hindi duplicate, at darating on demand. Ang UDP, sa kabilang banda, ay gumagawa ng pinakamahusay na pagsisikap at hindi ginagarantiyahan ang maaasahang paghahatid. Maaaring magdusa ang UDP sa pagkawala ng data at iba pang mga sitwasyon sa panahon ng paghahatid.
Kontrol ng kasikipan, kontrol ng daloy: Ang TCP ay may congestion control at flow control mechanisms, na maaaring ayusin ang data transmission rate ayon sa mga kondisyon ng network upang matiyak ang seguridad at katatagan ng data transmission. Ang UDP ay walang congestion control at flow control na mekanismo, kahit na ang network ay napakasikip, hindi ito gagawa ng mga pagsasaayos sa rate ng pagpapadala ng UDP.
Header sa itaas: Ang TCP ay may mahabang haba ng header, karaniwang 20 byte, na tumataas kapag ginamit ang mga field ng opsyon. Ang UDP, sa kabilang banda, ay may nakapirming header na 8 bytes lang, kaya ang UDP ay may mas mababang header sa itaas.
Mga Sitwasyon ng Application ng TCP at UDP:
Ang TCP at UDP ay dalawang magkaibang transport layer protocol, at mayroon silang ilang pagkakaiba sa mga sitwasyon ng aplikasyon.
Dahil ang TCP ay isang protocol na nakatuon sa koneksyon, pangunahing ginagamit ito sa mga sitwasyon kung saan kinakailangan ang maaasahang paghahatid ng data. Ang ilang mga karaniwang kaso ng paggamit ay kinabibilangan ng:
FTP file transfer: Maaaring tiyakin ng TCP na ang mga file ay hindi mawawala at masira sa panahon ng paglilipat.
HTTP/HTTPS: Tinitiyak ng TCP ang integridad at kawastuhan ng nilalaman ng web.
Dahil ang UDP ay isang protocol na walang koneksyon, hindi ito nagbibigay ng garantiya ng pagiging maaasahan, ngunit mayroon itong mga katangian ng kahusayan at real-time. Ang UDP ay angkop para sa mga sumusunod na sitwasyon:
Mababang-packet na trapiko, gaya ng DNS (Domain Name System): Karaniwang maiikling packet ang mga query sa DNS, at mas mabilis na makukumpleto ng UDP ang mga ito.
Multimedia komunikasyon tulad ng video at audio: Para sa multimedia transmission na may mataas na real-time na mga kinakailangan, ang UDP ay maaaring magbigay ng mas mababang latency upang matiyak na ang data ay maipapadala sa isang napapanahong paraan.
Komunikasyon sa broadcast: Sinusuportahan ng UDP ang isa-sa-marami at marami-sa-maraming komunikasyon at maaaring magamit para sa pagpapadala ng mga mensahe sa pag-broadcast.
Buod
Ngayon natutunan namin ang tungkol sa TCP. Ang TCP ay isang connection oriented, maaasahan, byte-stream based na transport layer communication protocol. Tinitiyak nito ang maaasahang paghahatid at maayos na pagtanggap ng data sa pamamagitan ng pagtatatag ng koneksyon, pagkakamay at pagkilala. Gumagamit ang TCP protocol ng mga port upang mapagtanto ang komunikasyon sa pagitan ng mga proseso, at nagbibigay ng direktang serbisyo sa komunikasyon para sa mga proseso ng aplikasyon na tumatakbo sa iba't ibang mga host. Ang mga koneksyon sa TCP ay full-duplex, na nagbibigay-daan sa sabay-sabay na bidirectional na paglilipat ng data. Sa kabaligtaran, ang UDP ay isang protocol ng komunikasyon na walang koneksyon na nakatuon, na hindi nagbibigay ng mga garantiya ng pagiging maaasahan at angkop para sa ilang mga senaryo na may mataas na mga kinakailangan sa real-time. Magkaiba ang TCP at UDP sa connection mode, service object, reliability, congestion control, flow control at iba pang aspeto, at iba rin ang kanilang mga senaryo ng application.
Oras ng post: Dis-03-2024