Ngayon, magsisimula tayo sa pamamagitan ng pagtutuon sa TCP. Sa mas maagang kabanata tungkol sa layering, nabanggit natin ang isang mahalagang punto. Sa network layer at sa ibaba, mas tungkol ito sa mga koneksyon ng host-to-host, na nangangahulugang kailangang malaman ng iyong computer kung nasaan ang ibang computer upang makakonekta dito. Gayunpaman, ang komunikasyon sa isang network ay kadalasang komunikasyon sa pagitan ng mga proseso sa halip na komunikasyon sa pagitan ng mga makina. Samakatuwid, ipinakikilala ng TCP protocol ang konsepto ng port. Ang isang port ay maaari lamang sakupin ng isang proseso, na nagbibigay ng direktang komunikasyon sa pagitan ng mga proseso ng aplikasyon na tumatakbo sa iba't ibang host.
Ang gawain ng transport layer ay kung paano magbigay ng direktang serbisyo ng komunikasyon sa pagitan ng mga proseso ng aplikasyon na tumatakbo sa iba't ibang host, kaya kilala rin ito bilang isang end-to-end protocol. Itinatago ng transport layer ang mga pangunahing detalye ng network, na nagpapahintulot sa proseso ng aplikasyon na makita na parang mayroong isang lohikal na end-to-end na channel ng komunikasyon sa pagitan ng dalawang entidad ng transport layer.
Ang TCP ay nangangahulugang Transmission Control Protocol at kilala bilang isang connection-oriented protocol. Nangangahulugan ito na bago makapagsimulang magpadala ng data ang isang aplikasyon sa isa pa, kailangang magsagawa ng handshake ang dalawang proseso. Ang Handshake ay isang prosesong lohikal na konektado na nagsisiguro ng maaasahang pagpapadala at maayos na pagtanggap ng data. Sa panahon ng handshake, isang koneksyon ang itinatatag sa pagitan ng mga host ng pinagmulan at destinasyon sa pamamagitan ng pagpapalitan ng isang serye ng mga control packet at pagsang-ayon sa ilang mga parameter at panuntunan upang matiyak ang matagumpay na pagpapadala ng data.
Ano ang TCP? (Mylinking'sTapikin ang NetworkatBroker ng Pakete ng Networkmaaaring iproseso ang parehong TCP o UDP Packets)
Ang TCP (Transmission Control Protocol) ay isang protocol ng komunikasyon na nakatuon sa koneksyon, maaasahan, at nakabatay sa byte-stream na transport layer.
Nakatuon sa koneksyonAng connection-oriented ay nangangahulugan na ang komunikasyon ng TCP ay one-to-one, ibig sabihin, point-to-point end-to-end na komunikasyon, hindi tulad ng UDP, na maaaring magpadala ng mga mensahe sa maraming host nang sabay-sabay, kaya hindi makakamit ang one-to-many na komunikasyon.
MaaasahanTinitiyak ng pagiging maaasahan ng TCP na ang mga packet ay maaasahang naihahatid sa receiver anuman ang mga pagbabago sa network link, na ginagawang mas kumplikado ang format ng protocol packet ng TCP kaysa sa UDP.
Batay sa byte-streamAng katangiang nakabatay sa byte-stream 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 na, hindi ito ihahatid ng TCP sa application layer para sa pagproseso at awtomatikong maglalabas ng mga duplicate na packet.
Kapag nakapagtatag na ng koneksyon ang host A at host B, kailangan na lamang gamitin ng application ang virtual communication line upang magpadala at tumanggap ng data, kaya tinitiyak ang paghahatid ng data. Ang TCP protocol ay responsable sa pagkontrol sa mga gawain tulad ng pagtatatag, pagdiskonekta, at pagpigil ng koneksyon. Dapat tandaan na dito sinasabi natin na ang virtual line ay nangangahulugan lamang ng pagtatatag ng koneksyon, ang koneksyon ng TCP protocol ay nagpapahiwatig lamang na ang magkabilang panig ay maaaring magsimula ng paghahatid ng data, at upang matiyak ang pagiging maaasahan ng data. Ang mga routing at transport node ay hinahawakan ng mga network device; ang TCP protocol mismo ay hindi nababahala sa mga detalyeng ito.
Ang koneksyon ng TCP ay isang full-duplex service, na nangangahulugang ang host A at host B ay maaaring magpadala ng data sa magkabilang direksyon sa isang koneksyon ng TCP. Ibig sabihin, ang data ay maaaring ilipat sa pagitan ng host A at host B sa isang bidirectional flow.
Pansamantalang iniimbak ng TCP ang data 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 papunta 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 rito:
Ang send buffer ay isang bahagi ng memorya na pinapanatili ng implementasyon ng TCP sa panig ng nagpadala na ginagamit upang pansamantalang mag-imbak ng data na ipapadala. Kapag isinagawa ang three-way handshake upang magtatag ng koneksyon, ang send cache ay itinatakda 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 pinapanatili ng implementasyon ng TCP sa receiving side na ginagamit upang pansamantalang iimbak ang natanggap na data. Iniimbak ng TCP ang natanggap na data sa receive cache at hinihintay na basahin ito ng nasa itaas na application.
Tandaan na limitado ang laki ng send cache at receive cache, kapag puno na ang cache, maaaring gumamit ang TCP ng ilang estratehiya, tulad ng congestion control, flow control, atbp., upang matiyak ang maaasahang pagpapadala ng data at katatagan ng network.
Sa mga network ng kompyuter, ang pagpapadala ng datos sa pagitan ng mga host ay isinasagawa sa pamamagitan ng mga segment. Kaya ano ang isang packet segment?
Lumilikha ang TCP ng isang TCP segment, o packet segment, sa pamamagitan ng paghahati ng papasok na stream sa mga chunks at pagdaragdag ng mga TCP header sa bawat chunk. Ang bawat Segment ay maaari lamang ipadala sa loob ng limitadong oras at hindi maaaring lumampas sa Maximum Segment Size (MSS). Sa pagbaba nito, ang isang packet segment ay dumadaan sa link layer. Ang link layer ay may Maximum Transmission Unit (MTU), na siyang maximum na laki ng packet na maaaring dumaan sa data link layer. Ang maximum transmission unit ay karaniwang nauugnay sa communication interface.
Kaya ano ang pagkakaiba ng MSS at MTU?
Sa mga computer network, napakahalaga ng hierarchical architecture dahil isinasaalang-alang nito ang mga pagkakaiba sa pagitan ng iba't ibang antas. Ang bawat layer ay may iba't ibang pangalan; sa transport layer, ang data ay tinatawag na segment, at sa network layer, ang data ay tinatawag na 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 konsepto ng transport layer na tumutukoy sa maximum na dami ng data na maaaring ipadala ng isang TCP packet sa isang pagkakataon.
Tandaan na kapag ang Maximum Segment Size (MSS) ay mas malaki kaysa sa Maximum Transmission Unit (MTU), isasagawa ang IP fragmentation sa network layer, at hindi hahatiin ng TCP ang mas malaking data sa mga segment na angkop para sa laki ng MTU. Magkakaroon ng seksyon sa network layer na nakalaan para sa IP layer.
Istruktura ng segment ng TCP packet
Suriin natin ang format at nilalaman ng mga TCP header.
Numero ng pagkakasunod-sunod: Isang random na numero na nalilikha ng computer kapag ang koneksyon ay naitatag bilang paunang halaga nito kapag naitatag ang koneksyon ng TCP, at ang sequence number ay ipinapadala sa receiver sa pamamagitan ng SYN packet. Sa panahon ng pagpapadala ng data, dinadagdagan ng sender ang sequence number ayon sa dami ng data na ipinadala. Hinuhusgahan ng receiver ang pagkakasunud-sunod ng data ayon sa natanggap na sequence number. Kung ang data ay matagpuang wala sa pagkakasunud-sunod, babaguhin ng receiver ang pagkakasunod-sunod ng data upang matiyak ang pagkakasunud-sunod ng data.
Numero ng pagkilalaIto ay isang sequence number na ginagamit sa TCP upang kilalanin ang pagtanggap ng data. Ipinapahiwatig nito ang sequence number ng susunod na data na inaasahang matatanggap ng nagpadala. Sa isang koneksyon sa TCP, tinutukoy ng tagatanggap kung aling data ang matagumpay na natanggap batay sa sequence number ng natanggap na data packet segment. Kapag matagumpay na natanggap ng tagatanggap ang data, magpapadala ito ng ACK packet sa nagpadala, na naglalaman ng acknowledgement acknowledgement number. Matapos matanggap ang ACK packet, maaaring kumpirmahin ng nagpadala na ang data bago kilalanin ang reply number ay matagumpay na natanggap.
Ang mga control bit ng isang TCP segment ay kinabibilangan ng mga sumusunod:
ACK bitKapag ang bit na ito ay 1, nangangahulugan ito na ang field ng tugon sa pagkilala ay balido. Tinutukoy ng TCP na ang bit na ito ay dapat itakda sa 1 maliban sa mga SYN packet kapag ang koneksyon ay unang naitatag.
RST bitKapag ang bit na ito ay 1, ipinapahiwatig nito na mayroong exception sa koneksyon ng TCP at dapat piliting idiskonekta ang koneksyon.
SYN bitKapag ang bit na ito ay nakatakda sa 1, nangangahulugan ito na ang koneksyon ay dapat itatag at ang paunang halaga ng sequence number ay itatakda sa field na sequence number.
FIN bitKapag ang bit na ito ay 1, nangangahulugan ito na wala nang data na ipapadala sa hinaharap at ninanais na ang koneksyon.
Ang iba't ibang mga tungkulin at katangian ng TCP ay kinakatawan ng istruktura ng mga segment ng TCP packet.
Ano ang UDP? (Mylinking'sTapikin ang NetworkatBroker ng Pakete ng Networkmaaaring iproseso ang parehong TCP o UDP Packets)
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. Pinapayagan ng protocol ng UDP ang mga application na direktang magpadala ng mga encapsulated na IP packet nang hindi nagtatatag ng koneksyon. Kapag pinili ng developer na gumamit ng 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:
Mga port ng destinasyon at pinagmulanAng kanilang pangunahing layunin ay upang ipahiwatig kung aling proseso ang dapat ipadala ng UDP ang mga packet.
Laki ng paketeAng field ng laki ng packet ay naglalaman ng laki ng UDP header kasama ang laki ng data
TsekumDinisenyo upang matiyak ang maaasahang paghahatid ng mga UDP header at data. Ang papel ng checksum ay upang matukoy kung may naganap na error o corruption habang nagpapadala ng isang UDP packet upang matiyak ang integridad ng data.
Mga Pagkakaiba sa pagitan ng TCP at UDP sa Mylinking'sTapikin ang NetworkatBroker ng Pakete ng Networkmaaaring iproseso ang parehong TCP o UDP Packets
Ang TCP at UDP ay magkaiba sa mga sumusunod na aspeto:
KoneksyonAng TCP ay isang connection-oriented transport protocol na nangangailangan ng koneksyon bago mailipat ang data. Ang UDP, sa kabilang banda, ay hindi nangangailangan ng koneksyon at maaaring maglipat ng data kaagad.
Bagay ng SerbisyoAng TCP ay isang one-to-one two-point service, ibig sabihin, ang isang koneksyon ay mayroon lamang dalawang endpoint upang makipag-ugnayan sa isa't isa. Gayunpaman, sinusuportahan ng UDP ang one-to-one, one-to-many, at many-to-many interactive na komunikasyon, na maaaring makipag-ugnayan sa maraming host nang sabay-sabay.
KahusayanAng TCP ay nagbibigay ng serbisyo ng maaasahang paghahatid ng datos, tinitiyak na ang datos ay walang error, walang pagkawala, walang duplikado, at dumarating kapag kinakailangan. Sa kabilang banda, ginagawa ng UDP ang lahat ng makakaya nito at hindi ginagarantiyahan ang maaasahang paghahatid. Ang UDP ay maaaring magdusa mula sa pagkawala ng datos at iba pang mga sitwasyon habang nagpapadala.
Pagkontrol ng pagsisikip, pagkontrol ng daloyAng TCP ay may mga mekanismo ng pagkontrol sa pagsisikip at pagkontrol sa daloy, na maaaring mag-ayos ng bilis ng pagpapadala ng data ayon sa mga kondisyon ng network upang matiyak ang seguridad at katatagan ng pagpapadala ng data. Ang UDP ay walang mga mekanismo ng pagkontrol sa pagsisikip at pagkontrol sa daloy, kahit na ang network ay sobrang siksikan, hindi ito gagawa ng mga pagsasaayos sa bilis ng pagpapadala ng UDP.
Pang-itaas na bahagi ng headerAng TCP ay may mahabang haba ng header, karaniwang 20 bytes, na tumataas kapag ginamit ang mga option field. Sa kabilang banda, ang UDP ay may nakapirming header na 8 bytes lamang, kaya mas mababa ang header overhead ng UDP.

Mga Senaryo ng Aplikasyon ng TCP at UDP:
Ang TCP at UDP ay dalawang magkaibang protocol ng transport layer, at mayroon silang ilang pagkakaiba sa mga senaryo ng aplikasyon.
Dahil ang TCP ay isang connection-oriented protocol, pangunahing ginagamit ito sa mga sitwasyon kung saan kinakailangan ang maaasahang paghahatid ng data. Kabilang sa ilang karaniwang gamit ang:
Paglilipat ng file gamit ang FTP: Masisiguro ng TCP na ang mga file ay hindi mawawala at masisira habang inililipat.
HTTP/HTTPSTinitiyak ng TCP ang integridad at kawastuhan ng nilalaman ng web.
Dahil ang UDP ay isang connectionless protocol, hindi ito nagbibigay ng garantiya ng pagiging maaasahan, ngunit mayroon itong mga katangian ng kahusayan at real-time. Angkop ang UDP para sa mga sumusunod na sitwasyon:
Trapikong mababa ang pakete, tulad ng DNS (Domain Name System)Ang mga DNS query ay karaniwang maiikling packet, at mas mabilis itong matatapos ng UDP.
Komunikasyong multimedia tulad ng video at audioPara sa pagpapadala ng multimedia na may mataas na real-time na pangangailangan, ang UDP ay maaaring magbigay ng mas mababang latency upang matiyak na ang data ay maaaring maipadala sa napapanahong paraan.
Komunikasyon sa brodkastSinusuportahan ng UDP ang isa-sa-marami at marami-sa-marami na komunikasyon at maaaring gamitin para sa pagpapadala ng mga mensaheng broadcast.
Buod
Ngayon ay natutunan natin ang tungkol sa TCP. Ang TCP ay isang connection-oriented, maaasahan, at byte-stream-based transport layer communication protocol. Tinitiyak nito ang maaasahang transmission at maayos na pagtanggap ng data sa pamamagitan ng pagtatatag ng koneksyon, handshake, at acknowledgement. Gumagamit ang TCP protocol ng mga port upang maisakatuparan ang komunikasyon sa pagitan ng mga proseso, at nagbibigay ng direktang serbisyo sa komunikasyon para sa mga proseso ng application na tumatakbo sa iba't ibang host. Ang mga koneksyon ng TCP ay full-duplex, na nagpapahintulot sa sabay-sabay na bidirectional na paglilipat ng data. Sa kabaligtaran, ang UDP ay isang connectionless communication protocol, na hindi nagbibigay ng mga garantiya ng reliability at angkop para sa ilang mga senaryo na may mataas na real-time na mga kinakailangan. Magkaiba ang TCP at UDP sa connection mode, service object, reliability, congestion control, flow control, at iba pang aspeto, at magkaiba rin ang kanilang mga application scenario.
Oras ng pag-post: Disyembre-03-2024



