પ્રસારણ નિયંત્રણ પ્રોટોકોલ

પ્રસારણ(પ્રેષણ) નિયંત્રણ પ્રોટોકોલ કે ટ્રાન્સમીશન કંટ્રોલ પ્રોટોકોલ (TCP) એ ઈન્ટરનેટ પ્રોટોકોલ સ્યુટ નો એક અતિમહત્વનો અને કેન્દ્રસ્થ પ્રોટોકોલ છે. ઈન્ટરનેટ પ્રોટોકોલ સ્યુટના અગત્યના અને મૂળભૂત બે ઘટકોમાનો એક એવો આ પ્રોટોકોલ સ્યુટમાં ઈન્ટરનેટ પ્રોટોકોલ (IP) નો સંપૂરક છે અને તેથીજ આ ઈન્ટરનેટ પ્રોટોકોલ સ્યુટ TCP/IP થી ઓળખાય છે. TCP ઓક્ટેટ(ડીજીટલ માહિતીનો એકમ) નું પ્રસારણ એક હોસ્ટ ના પ્રોગ્રામમાંથી બીજા હોસ્તના કાર્યક્રમ સુધી વિશ્વાસનિયરીતે કરે છે. મોટેભાગના ઈન્ટરનેટ કાર્યક્રમો જેવાકે, વર્લ્ડ વાઈડ વેબ (WWW), ઈ-મેલ, રીમોટ સંચાલન અને ફાઈલ પ્રસારણ TCP પ્રોટોકોલનો ઉપયોગ કરે છે, અને બીજા કાર્યક્રમો કે જેમાં વિશ્વસનીય પ્રસારણની જરૂર નથી તેવા કાર્યક્રમો યુઝર ડેટાગ્રામ પ્રોટોકોલ (UDP) નો ઉપયોગ કરે છે જે ઓક્ટેટને મોકલવા વિશ્વસનીયતા કરતા ઓછી લેટન્સી વધુ ભાર મૂકે છે. 

## ઐતિહાસિક ઉત્પત્તિ 
ઇલેક્ટ્રિકલ અને ઇલેક્ટ્રોનિક ઓફ એન્જિનિયર્સ સંસ્થા (IEEE)એ મે ૧૯૭૪મા “પેકેટ નેટવર્ક ઇન્ટરકોમ્યુંનીકેશન” નામનું એક ઉમેદવારીત પરિપત્ર જાહેર કર્યું . આ પરિપત્રના લેખકો Vint Cerf અને Bob Kahn કે જેમણે તેમાં એકથી વધારે નોડની વચ્ચે સ્ત્રોતની વહેચણી માટે ઉપયોગી પેકેટ-સ્વીચીંગ માટેના ઇન્ટરનેટવર્કિંગ પ્રોટોકોલ વિષે વર્ણન કર્યું હતુ. ટ્રાન્સમીશન કંટ્રોલ પ્રોગ્રામ (TCP) જે આ મોડેલનો કેન્દ્રીય સંચાલિત ઘટક હતો જેણે હોસ્ટોની વચ્ચે જોડાણ-આધારિત લીકો અને ડેટાગ્રામ સેવાઓ વચ્ચે જોડાણ કર્યું. આ મોનોલીથીક પ્રસારણ સંચાલન પ્રોગ્રામ પાછળથી મોડ્યુલર સ્થાપત્યવાળા જોડાણ આધારિત ટ્રાન્સમીશન કંટ્રોલ પ્રોટોકોલ અને ઇન્ટરનેત્વર્કીંગના ઈન્ટરનેટ પ્રોટોકોલ સ્તરમાં વિભાજીત થયો. 
આ મોડેલ અનૌપચારિક રીતે TCP / IP તરીકે જાણીતું બન્યું છે, જોકે, ઔપચારિક રીતે તે ઈન્ટરનેટ પ્રોટોકોલ સ્યુટ તરીકે ઓળખાય છે.

## નેટવર્કની કાર્યપ્રણાલી 
TCP પ્રોટોકોલ TCP / IP સેવામાંથી પરિવહન સ્તરને અનુલક્ષે છે. TCP એપ્લિકેશન પ્રોગ્રામ અને ઇન્ટરનેટ પ્રોટોકોલ (IP) વચ્ચે એક મધ્યવર્તી સ્તર પર એક વાર્તાલાપ સેવા પૂરી પાડે છે. એટલે કે, જયારે એપ્લીકેશન પ્રોગ્રામ મોટા જથ્થામાં ડેટાને ઈન્ટરનેટ પર IPની મદદથી એક હોસ્ટથી બીજા હોસ્ટ તરફ મોકલવાનું હોય ત્યારે તે આ મોટા જથ્થાના નાના નાના ટુકડાઓ કરી અને તેની IP અરજીઓ બનાવાને બદલે તે એક અરજી TCP ને કરે છે અને TCP આ IPની વિગતોને સંભળી લે છે. IP માહિતી ના ટુકડાઓ (જેને પેકેટ કહેવાય) ની આપ-લે કરી કાર્ય કરે છે. પેકેટ એ શ્રેણીબદ્ધ ઓક્ટેટ અને હેડર-ટ્રેઇલર લગાવેલ પેલોડથી બનેલા છે. હેડર પર પેકેટ-ગંતવ્ય હોય છે અને વૈકલ્પિક રીતે પેકેટ તેના નિર્દિષ્ઠસ્થાન સુધી પહોચે નહિ ત્યાંસુધી હેડરમાં રાઉટર દ્વારા ઉચિત ફેરફાર થયા કરે છે. પેલોડ એટલેકે IP દ્વારા પ્રસારિત થતો ડેટા તેને બોડી પણ કહેવાય છે. ટ્રેઇલર દરેક ટુકડાની અંતમાં લાગીને તેને સંપૂર્ણ બનાવે છે. 

નેટવર્કની ગીચતા, ટ્રાફિક લોડ બેલેન્સિંગ કે અન્ય અણધર્યા નેટવર્કના વર્તનના કારણે, IP પેકેટોનું ખોવાઈ જવું, તેની વધારાની નકલ બની જવી કે તેની ડીલેવરી ન થવી વિ. સમસ્યા ઊભી થાય તેવી શક્યતા છે. TCP આવી સમસ્યાઓને શોધે છે, ખોવાઈ ગયેલા ડેટાને પુનઃપ્રસારિત કરવાની અરજી કરે છે, અશ્રેણીબદ્ધ થયેલ ડેટાને ફરી ગોઠવે છે અને નેટવર્કની ગીચતાને ઓછી કરવા અન્ય સમસ્યાઓને ઘટાડવા મદદ પણ છે. TCP પ્રાપ્તકર્તા એકવાર મૂળ પ્રસારિત થયેલ ડેટા ઓક્ટેટ ની શ્રેણીઓને પુનઃએકત્રિત કરી લે છે અને તેનું પુષ્ટિકરણ પ્રસારિત કરે છે, પછી તેને એપ્લિએશન પ્રોગ્રામને મોકલી દેવાય છે. આમ, TCP નેટવર્કિંગ વિગતોના આધારે એપ્લિકેશન સંચાર કરાવે છે.

ઈન્ટરનેટના સૌથીવધુ લોકપ્રિય એપ્લીકેશનો જેવીકે, વર્લ્ડ વાઈડ વેબ (WWW), ઈ-મેલ, રીમોટ સંચાલન, પીયર-ટુ-પીયર ફાઈલ પ્રસારણ અને કેટલાક સ્ટ્રીમીંગ મીડિયા વિ. TCP પ્રોટોકોલનો વ્યાપક ઉપયોગ કરે છે.

TCPને ભૂલરહિત ડીલેવરી કરવા માટે શ્રષ્ઠ બનાવ્યો છે અને તેમાટે તેને સમય બાધ નથી તેથી જયારે અક્રમિક થયેલ સંદેશાને કે ખોવાઈ ગયેલ પુનઃપ્રસારિત થયેલ સંદેશાની રાહ જોવામાં TCP માં કોઇકવાર પ્રમાણમાં લાબા વિલંબ (સેકન્ડોમાં) આવે છે. આવા વિલંબો રીયલ-ટાઇમ એપ્લીકેશન જેવીકે વોઈસ-ઓવર-IP (VoIP) માં વ્યવહારિક રીતે યોગ્ય નથી. આ પ્રકારની એપ્લીકેશનો મોટેભાગે યુસર ડેટાગ્રામ પ્રોટોકોલ (UDP) પર આધારિત રીયલ-ટાઇમ ટ્રાન્સપોર્ટ પ્રોટોકોલ (RTP) જેવા પ્રોટોકોલોથી ચલાવવા ભલામણ કરેલ છે. 

TCP વિશ્વસનીય સ્ટ્રીમ વિતરણ સેવા છે જે ખાતરી આપે છે કે પ્રાપ્ત થયેલ ડેટા બીટ્સ અને મોકલાવેલા ડેટા બીટ્સ યોગ્ય ક્રમબદ્ધ અને સરખા છે. જયારે પેકેટ પ્રસારણ વિશ્વાસપાત્ર નથી રહેતું ત્યારે એક હકારત્મક સંદેશ તરીકે ઓળખાતી તકનીકનો ઉપયોગથી TCP જે તે પેકેટને પુનઃપ્રસારિત કરવાની ખાતરી આપે છે. આ મૂળભૂત તકનીકમાં જરૂરી છેકે દરેક પ્રાપ્તકર્તા(હોસ્ટ) જયારે તેને સંપૂર્ણ અને સહીસલામત ડેટા મળે ત્યારે તે પ્રાપ્તકર્તા(હોસ્ટ) એક સ્વીકૃતિ સંદેશનો પ્રતિસાદ મોકલે છે. ડેટા મોકલનાર(હોસ્ટ) તેણે મોકલેલા દરેક ડેટાની નોધણી કરે છે. ડેટા મોકલનાર જયારે ડેટા મોકલે છે ત્યારે તેનો પ્રસારિત સમયની પણ નોધણી કરે છે અને પ્રાપ્તકર્તા (હોસ્ટ) પાસે થી સ્વીકૃતિ સંદેશનો પ્રતિસાદ ન મળે ત્યાં સુધી મોકલનાર (હોસ્ટ) ડેટાને પુનઃપ્રસારિત કરે છે. આ પુનઃપ્રસારણ ચોક્કસ સમય સુધી ચાલે છે આ પછી પણ પ્રતિસાદ ન મળતા મોકલનાર હોસ્ટ ડેટાનું પ્રસારણ અટકાવે છે. જયારે પેકેટ ખોવાઈ કે ખરાબ થાય ત્યારે આવા ટાઇમર ની જરૂરિયાત પડે છે. 

TCP પેકેટ શબ્દનો ઉપયોગ કોઈકવાર અનૌપચારિક ઉપયોગ થાય છે, વર્તમાન પરિભાષામાં જ્યાં ખંડ(સેગ્મેન્ટ)માં જે TCP PDU, IP PDU માટે ડેટાગ્રામ  અને ડેટા લીંક સ્તર PDU માટે ફ્રેમનોં ઉપયોગ થાય છે :

ડેટાના પ્રસારણની પ્રક્રિયા TCPના બોલવા પર અને  ડેટાના બફરને દલીલો તરીકે પસાર કરીને થાય છે. TCP પેકેજો કે જે આવા બફર માંથી માહિતીને ખંડોમાં અને આવા દરેક ખંડોને તેના નિર્દિષ્ઠ સ્થાન પર મોકલવા ઈન્ટરનેટ મોડ્યુલ (એટલેકે, IP) ને બોલાવે છે. 

એક TCP ખંડ, ડેટા અને હેડર એમ બે ખંડોમાં વહેચાયેલો હોય છે. TCP હેડર ૧૦ ફરજીયાત અને એક વૈકલ્પિક ફિલ્ડ ધરાવે છે. 
ડેટાનો વિભાગ હેડરને અનુસરે છે. જેમાં કાર્યક્રમના પેલોડ ડેટા સમાયેલા છે. આ ડેટાના વિભાગની લંબાઈ નો TCP-ખંડ ના હેડરમાં ઉલ્લેખ હોતો નથી. આ લંબાઈની ગણતરી IP ડેટાગ્રામની કુલ લંબાઈમાંથી TCP હેડર અને ઇન્કેપ્સુલેટ થયેલ IP હેડરની લંબાઈને બાદ કરતા મેળવી શકાય છે. 

*ઉદભવસ્થાન પોર્ટ (૧૬ બીટ્સ) – મોકલનાર પોર્ટને ઓળખવા
*નિર્દિષ્ટસ્થાન પોર્ટ (૧૬ બીટ્સ) – મેળવનાર પોર્ટને ઓળખવા
*અનુક્રમાંક (૩૨ બીટ્સ) – બે ભાગ ભજવે છે. 
:*જો SYN flag (૧) સેટ હોયતો, આ પ્રારંભિક ક્રમ નંબર છે, પ્રથમ ડેટા બાઈટ ની વાસ્તવિક ક્રમ સંખ્યા અને તેને લગતા ACK માં સ્વીકૃતિ નંબરો ત્યાર પછીના ક્રમ વત્તા ૧ નો ઉમેરો કરે છે.
:*જો SYN flag (૦) સેટ હોયતો, આ સંચિત વર્તમાન સત્ર માટે આ સેગમેન્ટમાં પ્રથમ માહિતી બાઇટ ક્રમ નંબર છે. 
*સ્વીકૃતિ નંબર (૩૨ બીટ્સ) – જો ACK flag સેટ હોયતો, આ ફિલ્ડની કીમતનો આગલો ક્રમ મેળવનારની અપેક્ષા છે. પહેલાના તમામ બાઇટ્સની સ્વીકૃતિની રસીદો (જો હોયતો) છે. પહેલું ACK ડેટા નહિ પરંતુ, દરેક અને બીજા છેવાડાના પ્રારંભિક ક્રમ નંબર પોતે સ્વીકારે છે.
*ડેટા ઓફસેટ(૪ બીટ્સ) – ૩૨-બીટ્સના શબ્દોમાં TCP-હેડરનું માપ સ્પષ્ટ કરે છે. હેડરનું ન્યૂનતમ માપ ૫ શબ્દો છે, મહતમ ૧૫ શબ્દો છે જેથી બાઈટમાં જોઈએતો તેનું ન્યૂનતમ માપ ૨૦ બાઈટ અને મહતમ ૬૦ બાઈટ થાય. હેડરમાં વિકલ્પોની ૪૦ બાઈટ સુધી પરવાનગી મળે છે. આ ફિલ્ડ તેનું નામ TCP સેગ્મેન્ટ થી વાસ્તવિક ડેટાના TCP ઓફસેટ પરથી મેળવે છે.
*અનામત (૩ બીટ્સ) – ભવિષ્યના ઉપયોગ માટે અને શૂન્ય સેટ હોવી જોઈએ.
*ફ્લેગ (૯ બીટ્સ) (ઉર્ફ નિયંત્રણ બીટ્સ) – ૯ ૧-બીટ ફ્લેગ સમાવે છે.
:*NS(૧ બીટ) – ECN-નોન્સ અનાવરણ સામે રક્ષણ માટે (RFC 3540 દ્વારા હેડરમાં ઉમેરાયું)
:*CWR(૧ બીટ) – કન્જેશન વિન્ડો રીડ્યુસ (CWR) ફ્લેગ મોકલનાર હોસ્ટ મોકલેલ TCP સેગ્મેન્ટ ECE ફ્લેગ સાથે છે અને કન્જેશન કંટ્રોલ પદ્ધતિને જવાબ આપવા સેટ કરે છે. (RFC 3168 દ્વારા હેડરમાં ઉમેરાયું)
:*ECE (૧ બીટ) – ECN-ઇકો સૂચવે છે 
::*જો SYN ફ્લેગ (૧) સેટ થયું હોયતો, TCP પિયર ECN સક્ષમ છે.
::*જો SYN ફ્લેગ (૦) સેટ થયું હોયતો, તે પેકેટ કન્જેશન અનુભવી ફ્લેગ IP હેડરમાં સામાન્ય પ્રસારણ દરિમયાન સેટ થાય છે. (RFC 3168 દ્વારા હેડરમાં ઉમેરાયું)
*URG(૧ બીટ) – સૂચવે છેકે, અર્જન્ટ નિર્દેશક ફિલ્ડ નોધપાત્ર છે.
*ACK (૧ બીટ) – સૂચવે છે કે, સ્વીકૃતિ ફિલ્ડ અર્થપૂર્ણ છે. બધા પેકેટો પછી પ્રારંભિક SYN પેકેટ ક્લાયન્ટ દ્વારા મોકલવામાં આવે છે તે માટે આ ફ્લેગ સેટ થયો હોવો જોઈએ.
*PSH (૧ બીટ) – કાર્ય માટે દબાણ કરે છે. મેળવનાર એપ્લીકેશનને બફરમાં રહેલ ડેટાને દબાણ માટે કહે છે.
*RST (૧ બીટ) – કનેક્શન રીસેટ કરે છે.
*SYN (૧ બીટ) – અનુક્રમ નંબરનો સમન્વય કરે છે. દરેક છેવાડાથી માત્ર એક જ પહેલું પેકેટ આવા ફ્લેગ સાથે મોકલાય છે. કેટલાક બીજા ફ્લેગો આ ફ્લેગ પર પોતાની કિમતો બદલે છે, અને કેટલાક ફ્લેગો આ ફ્લેગ સેટ હોય માટેજ માન્ય છે અને સેટ ના હોય ત્યારે બીજા માટે માન્ય થાય છે. 
*FIN (૧ બીટ) – મોકલનાર તરફથી વધુ ડેટા નથી. 
*વિન્ડો કદ (૧૬ બીટ્સ) – પ્રાપ્ત વિન્ડોનું કદ, જે વિન્ડોનું કદ દર્શાવે છે (મૂળભૂત બાઇટ્સ દ્વારા) (સ્વીકૃતિ ફિલ્ડ માં અનુક્રમ સંખ્યા પછી) જે આ સેગ્મેન્ટને મોકલનારને હાલમાં પ્રાપ્ત કરવા તૈયાર છે.
*ચકાસણી (૧૬ બીટ્સ) – ૧૬-બીટ્સ ની ચકાસણી ફિલ્ડ હેડર અને ડેટાની ભૂલ ચકાસણી માટે વપરાય છે.
*ત્વરિત નિર્દેશક (૧૬ બીટ્સ) – જો URG ફ્લેગ સેટ કર્યો હોયતો, આ ૧૬-બીટ્સનું ફિલ્ડ ક્રમિક સંખ્યા ના ઓફસેટ છે જે છેલ્લા ત્વરિત ડેટા બાઈટને સૂચવે છે.
*વિકલ્પો (ચલ ૦-૩૨૦ બીટ્સ, ૩૨ દ્વારા વિભાજીત) – આ ફિલ્ડની લંબાઈ ડેટા ઓફસેટ ફિલ્ડ દ્વારા નક્કી થાય છે. વિકલ્પો ત્રણ ફિલ્ડ સુધી હોય છે : ઓપ્શન-કાઈન્ડ (૧ બાઈટ), ઓપ્શન-લંબાઈ (૧ બાઈટ), ઓપ્શન-ડેટા (ચલ). ઓપ્શન-કાઈન્ડ એ વિકલ્પ પ્રકાર સૂચવે છે અને આજ ફિલ્ડ છે કે જે વૈકલ્પિક નથી. આપને કયા પ્રકારના વિકલ્પ સાથે વ્યવહાર કરો છો, તેના પર આગળની બે ફીલ્ડો સેટ થાય: ઓપ્શન-લંબાઈ ઓપ્શનની કુલ લંબાઈ દર્શાવે છે, અને ઓપ્શન-ડેટા ઓપ્શનની કીમત દર્શાવે છે, જો લાગુ હોયતો. દા.ત. જો ઓપ્શન-કાઈન્ડ બાઈટ  ૦x01 ની હોય જે સૂચવે છે કે, આ પેડીંગ માટે NO-Op ઓપ્શનનો ઉપયોગ થયો છે, અને ત્યાર પછી ઓપ્શન-લંબાઈ કે ઓપ્શન-ડેટાની જરૂર નથી. જો ૦ બાઈટની હોયતો, તે End-of-Option છે, અને 0x02 મહતમ સેગ્મેન્ટ કદ ઓપ્શન દર્શાવે છે, ત્યારબાદ તેની MSS ફિલ્ડનીલંબાઈ (જે 0x04 હોવો જોઈએ). નોધી લો કે, આ લંબાઈ આપલે ઓપ્શનની કુલ લંબાઈ છે, જેમાં ઓપ્શન-કાઈન્ડ અને ઓપ્શન-લંબાઈ બાઇટ્સનો સમાવેશ થયો છે. તેથી જયારે MSS ની કિમંત મોટેભાગે ૨ બાઈટમાં દર્શાવાય છે, ફિલ્ડની લંબાઈ ૪ બાઈટમાં(+૨ બાઈટ કાઈન્ડ અને લંબાઈ). ટુકમાં, MSS ઓપ્શન ફિલ્ડની 0x05B4 કિમંત TCP ઓપ્શન વિભાગમાં (0x02 0x04 0x05B4) રીતે દર્શાવશે.
*પેડીંગ – TCP હેડર પેડીંગ નો ઉપયોગ TCP હેડરના સમાપનની ખાતરી કરાવે છે અને ૩૨ બીટ સરહદપર ડેટાની શરૂઆત થાય છે. પેડીંગ ૦ થી બનેલો છે. 
જયારે ઓપ્શન જોડે SYN કર્યો ત્યારે તેઓ નીચે પ્રમાણે [SYN] સૂચવાય છે. ઓપ્સન-કાઈન્ડ અને પ્રમાણભૂત લંબાઈ પ્રમાણે આપવામાં આવે છે.
:*૦ (૮ બીટ્સ) – ઓપ્શન લીસ્ટ સમાપ્ત
:*૧ (૮ બીટ્સ) – ક્રિયા નહિ. (NOP, પેડીંગ) આનો ઉપયોગ સારી કામગીરી માટે ૩૨-બીટ સીમાઓ પર વિકલ્પ ફિલ્ડને કતારમાં ગોઠવવા થાય છે.
:*૨,૪,SS (32 બીટ્સ) – મહતમ સેગ્મેન્ટ કદ
:*૩,૩,S (૨૪ બીટ્સ) – વિન્ડો માપ.
:*૪, ૨ (૧૬ બીટ્સ) – પસંદગીના સ્વીકૃતોને જ પરવાનગી આપે છે.
:*૫,N, BBBB,EEEE,.... (ચલ બીટ્સ, જ્યાં N = ૧૦, ૧૮, ૨૬ કે ૩૪ હોઈ શકે) પસંદગી એક્નોલેજમેન્ટ (SACK) આ પ્રથમ બે બાઇટ્સ ૧-૪ બ્લોકસની યાદીને અનુસરે છે. 
:*૮, ૧૦, TTTT, EEEE (૮0 બીટ્સ) – ટાઇમસ્ટેમ્પ અને પાછલા ટાઇમસ્ટેમ્પનો પડઘો હોય છે.
:*૧૪, ૩, S (૨૪ બીટ્સ) – વૈકલ્પિક TCP ચકાસણી વિનંતી.
:*૧૫, N, . . . . (ચલ બીટ્સ) - વૈકલ્પિક TCP ચકાસણી ડેટા.
(બાકીના વિકલ્પો અપ્રચલિત, પ્રાયોગિક, હજુ સુધી પ્રમાણિત થવાની બાકી કે વણસોંપાયેલી છે.)

## પ્રોટોકોલની કામગીરી 
TCP પ્રોટોકોલની કામગીરીને  ત્રણ તબક્કાઓમાં વિભાજીત કરી શકાય છે. ડેટા પરિવહનના તબક્કામાં દાખલ થવા પહેલા જોડાણો યાગ્ય રીતે મલ્ટી-સ્ટેપ હેન્ડશેક પ્રક્રિયા(જોડાણ સ્થાપના)માં સ્થાપિત થયેલા હોવા જરૂરી છે. ડેટાના પરિવહન સંપૂર્ણ થયા બાદ, જોડાણ ને રદ કરતી પ્રક્રિયા સ્થાપિત થયેલ આભાસી સરકીટો અને તેની સાથે જોડાયેલ તમામ સાધનોને (જોડાણમાંથી) મુક્ત કરે છે.

TCP જોડાણ ઓપેરેટીંગ સિસ્ટમ દ્વારા એક પ્રોગ્રામિંગ ઇન્ટરફેસ મારફતે વ્યવસ્થાપિત થાય છે કે જે સંદેશાવ્યવહાર માટેના અંતિમ બિંદુ તરીકે રજૂ થાય છે જેને ઈન્ટરનેટ સોકેટ તરીકે ઓળખાય છે. 

;સાંભળો (LISTEN) : (સર્વર) કોઈપણ રીમોટ હોસ્ટના TCP અને પોર્ટ તરફથી મળતી જોડાણ અરજીને સ્વીકારવા રાહ જોઈ છે.

;SYN-મોકલ્યું : (ક્લાયન્ટ) કનેક્શન અરજી મોકલ્યા બાદ મેળ-ખાતી જોડાણ અરજીની રાહ જુએ છે.

;SYN-પ્રાપ્ત : (સર્વર) મેળવાયેલી અને મોકલેલ (બંને) જોડાણ અરજીઓ મેળવ્યા બાદ જોડાણ અરજીની સ્વીકૃતિ ની ખાતરી માટે રાહ જુએ છે.

;(જોડાણ) સ્થાપિત : (સર્વર અને ક્લાયન્ટ બંને) સામાન્ય જોડાણ સ્થાપિત થાય છે જેમાં ડેટાનું આદાન પ્રદાન ચાલુ થાય છે. મેળવાયેલા ડેટા ઉપયોગકર્તાને મોકલાવાય છે. સામાન્ય અવસ્થામાં આ તબક્કામાં ડેટા ટ્રાન્સફર થાય છે.

;સમાપ્ત-થોભો-૧ : (સર્વર અને ક્લાયન્ટ બંને) રીમોટ TCP તરફથી મળતી જોડાણ રદ(સમાપ્ત) કરવાની અરજી કે આગળ મોકલેલ જોડાણ રદ કરવાની અરજીની સ્વીકૃતિ ની રાહ જોઈ છે.

;સમાપ્ત-થોભો-૨ : (સર્વર અને ક્લાયન્ટ બંને) રીમોટ TCP તરફથી મળતી જોડાણ રદ(સમાપ્ત) કરવાની અરજીની રાહ જોઈ છે.

;બંધ-થોભો : (સર્વર અને ક્લાયન્ટ બંને) સ્થાનિક ઉપયોગકર્તા તરફથી જોડાણ રદ કરવાની અરજીની રાહ જુએ છે.

;બંધ : (સર્વર અને ક્લાયન્ટ બંને) રીમોટ TCP તરફથી જોડાણ રદ કરવાની અરજીની સ્વીકૃતિ ની રાહ જુએ છે. 

;અંતિમ-ACK : (સર્વર અને ક્લાયન્ટ બંને) રીમોટ TCPને(જેમાં પોતાના જોડાણને રદ કરવાની અરજીની સ્વીકૃતિ પણ સમ્મલિત હોય છે.) છેલ્લે મોકલેલ જોડાણ રદ કરવાની અરજી માટે રાહ જુએ છે.

;સમય-થોભો : (ક્યાંતો સર્વર અથવા ક્લાયન્ટ) તેની જોડાણ રદ કરવાની અરજીની સ્વીકૃતિ રીમોટ TCP એ સ્વીકાર કરવા પુરતો સમય સુનિશ્ચિત કરવા રાહ જુએ છે.

;બંધ(થયું) (સર્વર અને ક્લાયન્ટ બંને) : દર્શાવે છે કે બધ્ધા જોડાણો બંધ થાયા છે. 
### જોડાણ સ્થાપના 
જોડાણ સ્થાપિત કરવા TCP ત્રિમાર્ગીય હેન્ડશેકનો ઉપયોગ કરે છે. ક્લાયન્ટ સર્વર જોડે જોડાણ કરવા પ્રયત્ન કરે તે પહેલા, સર્વર પોતાની સાથે જોડાણો કરવા માટે પોર્ટને બાંધે(Bind) છે અને ત્યાંથી સંભાળવા(Listen) માટે તૈયાર થાય છે આને જોડાણ માટે Passive Open થવું કહેવાય છે. એકવાર પેસીવ-ઓપન (આમાં માત્ર એક જ સર્વર તરફથી પહેલ થતી હોવાથી) સ્થાપિત થયા બાદ, ક્લાયન્ટ તરફથી થતા પ્રયત્નને લીધે તે જોડાણ સક્રિય(Active Open) થાય છે. જોડાણ સ્થાપિત થવા માટે ત્રિમાર્ગીય (કે ૩ પગલાઓ) હેન્ડશેક થાય છે :

#SYN: ક્લાયન્ટ જયારે SYN સર્વરને મોકલે ત્યારે એક્ટીવ-ઓપન (Active-Open) ઘટે છે. ક્લાયન્ટ તેના સેગ્મેન્ટની ક્રમિક કિમંત યાર્દ્ચ્છિત રીતે ધારોકે (ક) નક્કી કરે છે.
#SYN-ACK: સર્વર પ્રતિસાદમાં ક્લાયન્ટને SYN-ACK આપે છે. તેને મળેલ ક્રમ નંબર (ક) માં ૧ ઉમેરી સર્વર સ્વીકૃતિ નંબર (ક+૧) સેટ કરે છે અને સર્વરની ક્રમિક કિમંત યાર્દ્ચ્છિત રીતે ધારોકે (ખ) નક્કી કરે છે અને ક્લાયન્ટને મોકલે છે.
#ACK: અંતમાં, ક્લાયન્ટ સર્વરને ACK પાછી મોકલે છે. ક્રમિક-સંખ્યા મળેલ સ્વીકૃતિ કિમંતો ને સુયોજિત કરે છે. એટલેકે, (ક+૧) અને સ્વીકૃતિ-સંખ્યા મળેલ ક્રમિક-સંખ્યાથી એક વધારે છે (ખ+૧)
આ જ સમયે જોઈએતો, સર્વર અને ક્લાયન્ટ બંનેને જોડાણની સ્વીકૃતિ મળી છે. ૧,૨ પગલાઓ એક દિશા માટે જોડાણ પરિમાણ (ક્રમિક સંખ્યા) સ્થાપે છે અને તેને સ્વીકૃતિ (જાણ કરે) આપે છે. ૨, ૩ પગલાઓ વળતી દિશામાં જોડાણ પરિમાણ (ક્રમિક સંખ્યા) સ્થાપે છે અને તેની સ્વીકૃતિ (જાણ કરે) આપે છે, આ સાથે બેતરફી (Full-Duplex) સંદેશવ્યવહાર (વાર્તાલાપ) સંભવે છે. 

TCP સંપૂર્ણ બે-તરફી (Full Duplex) સેવા પૂરી પાડે છે, કે જેમાં ડેટા એક જ સમયે બંને દિશામાં પ્રવાહિત થાય છે. 

### જોડાણનો અંત 
ચાર-માર્ગીય હેન્ડશેકની મદદથી જોડાણનો અંત થાય છે, દરેક બાજુના જોડાણનો અંત સ્વતંત્ર રીતે થાય છે. જયારે છેવટનાબિંદુઓ અંત ઈચ્છે છે તે સ્થિતિ હાફ-ઓફ-કનેક્શન કહેવાય જેમાં FIN પેકેટ બીજા છેવાળે મોકલાય છે, બીજો છેડો ACK પેકેટ મોકલી તેની સ્વીકૃતિ આપે છે. આથી, લાક્ષણિક ટીયર-ડાઉન (જોડાણના અંતની પ્રક્રિયા) માટે દરેક છેડાના TCP પરથી FIN અને ACK સેગ્મેન્ટોની જોડ જરૂરી છે. FIN/ACK આ બંનેના આદાન-પ્રદાન પરથી તારણ નીકળે છે કે, જે બાજુ પહેલું FIN મોકલે છે તે પહેલા ચોક્કસ સમયસમાપ્તિ સુધી રાહ જોવાનું પેકેટ મેળવે છે સમયનો અંત થતા જોડાણ બંધ કરે છે. આ સમયગાળા દરિમયાન જે તે સ્થાનિક પોર્ટ નવા જોડાણ માટે અનુપલબ્ધ થાય છે. જોડાણ બંધ થતા તે ઉપલબ્ધ થાય છે.

જોડાણ અધખુલ્લું (Half-Open) હોઈ શકે છે, જેમકે જે કિસ્સામાં એક બાજુના છેડેથી જોડાણનો અંત થયો હોય પરંતુ જોડાણની બીજી તરફ જોડાણ હું યથાવત હોયતો આને અધખુલ્લા જોડાણ કહી શકાય. આવા જોડાણમાં જે બાજુએ જોડાણનો અંત કર્યો છે તે બીજા ડેટા કે માહિતી બીજી તરફ મોકલવા સક્ષમ નથી પરંતુ તેને અંત નથી કર્યો તે ડેટા મોકલવા સક્ષમ છે. બંધ થયેલ બાજુ ડેટાનું વાંચન જ્યાં સુધી બીજી બાજુનો અંત ન થાય ત્યાં સુધી કરે છે. ત્રિ-માર્ગીય હેન્ડ-શેક દ્વારા જોડાણનો અંત શક્ય છે કે, જયારે હોસ્ટ (અ) FIN સેગ્મેન્ટ હોસ્ટ (બ) ને મોકલે અને હોસ્ટ (બ) તેનો વળતો જવાબ FIN અને ACK (માત્ર બે પગલાઓ એક માં) મોકલે છે અને હોસ્ટ (અ) તેનો જવાબ ACK સાથે આપે છે. આ કદાચ સૌથી સામાન્ય પદ્ધતિ છે.

એ શક્ય છે કે બંને હોસ્ટો FIN એકસાથે મોકલે છે બાદમાં બંને માત્ર ACK માટે હોય છે. આને દ્વિ-માર્ગીય હેન્ડ-શેક ગણી શકાય ત્યારથી FIN/ACK ક્રમ સમાંતર અને બંને દિશામાં કરાય છે. કેટલાક હોસ્ટના TCP સ્ટેક કદાચ એક-માર્ગીય (Half-Duplex) બંધ ક્રમ અમલમાં મુકે છે જેમકે, Linux કે HP-UX. જો હોસ્ટ સક્રિય જોડાણ એના તરફથી બંધ કરે છે, પણ તેના સ્ટેક માં પહેલેથી રહેલા ડેટા (જે લીંક પરથી મળેલ) વાંચતું નથી, આ હોસ્ટ FIN ની બદલે એક RST મોકલે છે. (RFC 1122 માં વિભાગ ૪.૨.૨) આ TCP એપ્લીકેશન ને ખાતરી આપે છેકે તેને મોકલેલ બધા ડેટાને રીમોટ એપ્લીકેશન વાંચશે અને રિમોટ હોસ્ટ તરફથી FINની રાહ જોશે અને પછી જોડાણને સક્રિય બંધ કરે છે. જોકે, રીમોટ TCP સ્ટેક કનેક્શન એબોર્ટીગ RST અને ડેટા લોસ RST વચ્ચે તફાવત કરતો નથી. 

કેટલાક એપ્લીકેશન પ્રોટોકોલો કદાચ OSI મોડેલ સ્તરોનું TCP ઉઘાડ/બંધ હેન્ડ-શેક કે જે એપ્લીકેશન પ્રોટોકોલ ને ઉઘાડ/બંધ કરતા હેન્ડ-શેક થી ઉલ્લંઘન કરે છે – આ સઘળું સક્રિય બંધ વખતે RST સમસ્યા પર શોધી શકો છો. ઉદાહરણ તરીકે,
 S = connect (remote);
 send (S, data);
 close (S);
ઉપર આપેલા સામાન્ય કાર્યક્રમ પ્રવાહ માટે, એક TCP/IP સ્ટેક કે જે ઉપર વર્ણવેલ સાથે બાહેંધરી નથી આપતું કે બધા ડેટા અન્ય એપ્લીકેશન માટે આવે છે.

### સ્ત્રોત્રનો વપરાશ 
મોટાભાગના અમલીકરણો ચાલતી ઓપેરેટિંગ સિસ્ટમમાં ચાલતી પ્રક્રિયાને સત્ર સાથે જોડે છે અને તેની કોષ્ઠકમાં નોધ કરે છે. કારણકે, TCP પેકેટોમાં સત્ર ઓળખનો સમાવેશ થતો નથી, બંને છેડાઓની ઓળખાણ સત્ર માં ક્લાયન્ટ દ્વારા સંબોધન(એડ્રેસ) અને પોર્ટ પરથી થાય છે. સર્વર બાજુએ રહેલા સત્રોની સંખ્યા સર્વરની મેમોરી પર આધારિત છે અને તે નવા જોડાણો માટે વધી શકે છે. પણ, ક્લાયન્ટે તેના પહલા SYN (સર્વરને) મોકલવા પહેલા યાદ્ચ્છિક રીતે પોર્ટની ફાળવણી કરેલી જ હોવી જોઈએ. આ ફળવાયેલો પોર્ટ (ક્લાયન્ટને) પૂરા વાર્તાલાપ દરિમયાન રહે છે અને આથી તે ક્લાયન્ટ તે (રોકાયેલ) જ પોર્ટ પરથી બીજું કનેક્શન કરી શકતો નથી. જો બિનજરૂરી જોડાણો બંધ કરવામાં એપ્લીકેશન નિષ્ફળ જાયતો, ક્લાયન્ટ સ્ત્રોત વગર કાર્ય કરે છે અને નવા TCP જોડાણો કરવા અસમર્થ બને છે (બીજી એપ્લીકેશન માંથી પણ).
બંને છેડાઓએ અજાણા પેકેટોને સ્વીકારવા જ જોઈએ અને તેના માટે જગ્યા ફાળવવી જોઈએ.

### ડેટા સ્થાનાંતરિત 
TCP ની કેટલીક લાક્ષણિકતાઓ જે TCP ને યુસર ડેટાગ્રામ પ્રોટોકોલ (UDP) થી  અલગ કરે છે.
*ક્રમિક ડેટા સ્થાનાંતર – નિર્દિષ્ટ હોસ્ટ ક્રમ અનુસાર ફરીથી ગોઠવણી કરે છે. 
*ફલો નિયંત્રણ – ડેટાના વિશ્વસનીય વિતરણની બાંયધરી માટે ડેટા મોકલનારના ડેટા ના પ્રવાહ ને માર્યાદિત કરે છે. મેળવનાર હોસ્ટ સતત કેટલા ડેટા મેળવ્યા તેના સંકેતો મોકલનારને આપ્યા કરે છે. (સ્લાઈડીંગ વિન્ડો દ્વારા નિયંત્રિત). જયારે મેળવનાર હોસ્ટની બફર મેમોરી ભરાઈ જાય ત્યારે ટ્રાન્સફર રોકવા જે આગામી સ્વીકૃતિમાં ૦ નો સમાવેશ કરે છે અને બફરમાં રહેલ ડેટા પર પ્રક્રિયા કરવાની મંજૂરી આપે છે. 

### TCP સમયનોંધો 
TCP સમયનોધો, RCF 1323માં વ્યખ્યાતીત છે, જે TCPને સેગ્મેન્ટો ક્યારે મોકલાયા હતા તે નક્કી કરવા મદદ કરે છે. TCP  સમયનોંધ સામાન્ય રીતે સીસ્ટમની ઘડિયાળ પ્રમાણે ગોઠવાયેલ હોતી નથી પરંતુ કોઈક યાદ્છિક કીમતથી શરૂઆત પામેલ હોય છે. ઘણી ઓપેરેટીંગ સિસ્ટમ કમ્પ્યુટર સિસ્ટમની ઘડિયાળનો સમય (મિલી-સેકન્ડ) વિતતા સમયનોંધમાં વધારો કરશે, જોકે, RFC આ માટે પ્રમાણસર પ્રયત્નો કરશે. 

સમયનોંધના બે ફિલ્ડ છે.

 ૪-બાઈટની – મોકલનારની સમયનોંધની કિમંત (મારી સમયનોંધ)
 ૪-બાઈટની – વળતા પ્રતિ જવાબની સમયનોંધ ની કિમંત (તમારા તરફથી તરતની મળેલ સમયનોંધ.)

TCP પ્રોટેક્શન અગેન્સ્ટ રેપડ સ્વીક્વંસ નંબર્સ (PAWS) (અવિરત ક્રમિક સંખ્યાઓ સામે રક્ષણ) નામના અલ્ગોરીથમનો ઉપયોગ કરે છે. વધુ વિગત માટે RFC 1323 જુઓ. PAWS નો ઉપયોગ જયારે TCP વિન્ડોનું માપ શક્ય ક્રમિક સંખ્યા (૨^૩૨) થી વધે ત્યારે થાય છે. જયારે સંભવિત પેકેટનું પુન:પ્રસારણ થાય થાઉં હોય ત્યારે તે એક પ્રશ્ન પુછાય કે “આ ક્રમિક સંખ્યા પહેલા ૪ જીબી માં હતી કે બીજા માં ?” અને સમયનોંધ ના ઉપયોગથી ગાંઠ તૂટે છે. 

RFC 1323 ના વિભાગ ૨.૨ માં ખોટી રીતે દર્શાવ્યુ છે કે, વિન્ડો માપ ૨^૧૪ સુધીનું જ એટલે કે ૧ જીબી (આ સાચું છે પણ, ક્રમિક સંખ્યાની સીમા ૪ જીબી જેટલી છે). સાથે Eifel શોધન અલ્ગોરીથમ (RFC 3522) TCP સમય-નોંધ નો ઉપયોગ કરી નક્કી કરે છે કે, જો પુન:પ્રસારણ થાય છે કારણકે સેગ્મેન્ટો ખોવાય જાય છે કે અક્રમિક થાય છે. 

### અર્જન્ટ (તાકીદના) ડેટા 
અર્જન્ટ ડેટા TCP એ પ્રોટોકોલ સ્ટ્રીમ આધારિત છે. આનો અર્થ એ થાય કે માહિતી બાઇટ્સ એક સ્ટ્રીમ તરીકે અરજી પ્રક્રિયામાંથી TCP માટે રજૂ કરવામાં આવે છે. ડેટા દરેક બાઈટ પ્રવાહમાં એક સ્થિતિ ધરાવે છે. જો કે, તે પ્રસંગે એક અરજી કાર્યક્રમ તાકીદના બાઇટ્સ મોકલે છે. આનો અર્થ એ થાય કે અરજી કાર્યક્રમ ડેટા નો ભાગ મોકલીને પ્રાપ્ત એપ્લિકેશન કાર્યક્રમ ને ક્રમ બહાર વાંચવા માંગે છે.

આ ઉકેલ માટે મોકલનાર તેના બીટ સમૂહ સાથે એક URG બીટ મોકલે છે. આ બીટ દ્વારા મોકલનાર એપ્લીકેશન પ્રોગ્રામ મેળવનાર TCPને જણાવે છે કે, પ્રવાહનો આ ભાગ અર્જન્ટ છે. મોકલનાર TCP એક સેગ્મેન્ટ બનાવે છે અને તેની શરૂઆતમાં અર્જન્ટ ડેટા ભરે છે અને બાકીના ભાગમાં સામાન્ય ડેટા બફરમાંથી ભરે છે. હેડરની ફિલ્ડમાં તાકીદનું નિર્દેશક દર્શાવે છે કે અહી અર્જન્ટ ડેટા નો અંત થાય છે અને સામાન્ય ડેટા શરૂ થાય છે. 

જયારે મેળવનાર TCP સેગ્મેન્ટ જોડે URG બીટ મેળવે છે ત્યારે તે અર્જન્ટ ડેટા ને સેગ્મેન્ટમાંથી તાકીદના નિર્દેશકની મદદથી છુટા કરે છે અને તેને મેળવનાર એપ્લીકેશન પ્રોગ્રામ સુધી પહોચાડે છે. (ક્રમ બહાર વાંચીને)

### ક્રમ બહાર (out of order) સેગ્મેન્ટ 
જયારે એક સેગ્મેન્ટને (પહોચવામાં) વિલંબ થાય, ગુમ થાય કે તેને છોડી દેવામાં આવે ત્યારે તેના પગલે સેગ્મેન્ટોને ક્રમ બહાર ઘોષિત કરી દેવામાં આવે છે. મૂળભૂત રીતે TCP ને બધા અક્રમિક સેગ્મેન્ટોને કાઢી નાખવા ડીઝાઇન કર્યો હતો, તેનું પરિણામ એ આવ્યું કે, ગુમ થયેલ સેગ્મેન્ટ સાથે તે પછીના સેગ્મેન્ટોનું પુન:પ્રસારણ કરવું પડતું. આજે મોટેભાગેના બધા ઉપકરણો અક્રમિક સેગ્મેન્ટો ને ફગાવી દેતું નથી પણ તેને હંગામી ધોરણે સંગ્રહ કરી તેને અક્રમિક નામ આપે છે અને ખોવાયેલ સેગ્મેન્ટોને પહોચવાની(મેળવવાની) રાહ જુએ છે. નોંધીલો, કે આ અક્રમિક સેગ્મેન્ટોને પ્રક્રિયા સુધી મોકલતું નથી. TCP સેગ્મેન્ટોને ક્રમમાજ પ્રક્રિયામાં મોકલવાની ખાતરી આપે છે.

## નબળાઈઓ 
TCP જુદી જુદી રીતે હુમલાઓનો ભોગ બની શકે છે. TCP પર થયેલ સંપૂર્ણ સુરક્ષા આકરણી ના પરિણામોને ૨૦૦૯માં પ્રદશિત કર્યા હતા.  અને હાલમાં તેને IETF અપનાવી રહ્યું છે. 

### સેવાનો અસ્વીકાર (Denial of Service) 
દુષિત હુમલાખોર તરફથી બનાવટી IP એડ્રેસોની મદદ લઇને વારંવાર હેતુપૂર્વક SYN પેકેટો સર્વર પર મોકલવામાં આવે છે, સર્વર આ SYN પેકેટો(કે જેના સ્ત્રોત IP જુદા જુદા અને બનાવટી હોય છે) ને વળતો જવાબ SYN+ACK સાથે આપે છે. આવા પેકેટો નો મારો વારંવાર અને મોટા પ્રમાણમાં હુમલાખોર દ્વારા થાય છે જેથી સર્વરના ઘણાબધા સ્ત્રોતોનો બિન-જરૂરી ઉપયોગ થાય છે આ ઉપયોગ થોડા સમય પછી તેની ચરમસીમા પર પહોચતા સર્વરની કાર્ય-પ્રણાલી ખોરવાઈ છે કે સર્વર કાર્ય કરતુ બંધ થાય છે. આને SYN ફલડ હુમલો કહે છે. આવી સમસ્યાઓ ના ઉકેલ મા SYN કુકીઝ અને ક્રીપ્ટોગ્રાફિક કોયડાઓનો સમાવેશ થાય છે. સ્ટોકસ્ટ્રેસ પણ આ જ પ્રકારનો હુમલો છે, જે સિસ્ટમના સ્ત્રોતોના વ્યવસ્થાપનના પ્રદર્શનમાં ઘટાડો કરે છે.  ઉન્નત પ્રકારના DoS હુમલાઓમાં સંડોવાયેલા TCP Persist ટાઈમર કે જેનું વિશ્લેષણ Phrack#66 પર થયું હતું. 

### જોડાણનું અપહરણ 
હુમલાખોર દ્વારા એક TCP સત્રને છુપાઈને અવલોકવામાં આવે છે અને તેના પેકેટોને અડધેથી પુન:દિશામાન કરાય છે આને જોડાણનું અપહરણ કહી શકાય. આમ કરવા માટે હુમલાખોર બહારની તરફ જતી સંચારની ક્રમિક સંખ્યાઓનો અભ્યાસ કરે છે અને તેના જેવા આગામી ખોટા સેગ્મેન્ટો બનાવી પ્રવાહિત કરે છે. આવા સરળ અપહરણનું પરિણામ એ આવે છે કે, જે તે ખામીવાળું પેકેટ બીજા છેડે સ્વીકારાય છે અને જયારે મેળવનાર હોસ્ટ જોડાણના બીજા છેડે જાણ કરે છે કે તેને એક પેકેટ વધુ મળ્યું છે અને તેઓ સુમેળ ખોઈ નાખે છે. અપહરણ કદાચ ARP કે રાઉટીંગ હુમલાઓ સાથે જોડાયેલ છે જેઓ પેકેટના પ્રવાહ- નિયંત્રણની પરવાનગી આપે છે, જેથી કહી શકાય કે, TCP જોડાણના અપહરણ માટે નિયંત્રણ અહીંથી મળે છે.  

જયારે પ્રારંભિક ક્રમિત સંખ્યા સરળતાથી વિચારી શકાતી RFC 1948 પહેલા ત્યારે જુદા IP એડ્રેસનો સ્વાંગ સરળ હતો. આથી હુમલાખોર આડસટ્ટે પેકેટોની ઘટમાળોને મોકલી આપતા મેળવનાર હોસ્ટને એમ લાગે છે આ પેકેટો જુદા જુદા IP એડ્રેસ પરથી આવી રહ્યા છે અને તેની પુરતી ખાતરી થતી નથી તે ARP કે રાઉટીંગ હુમલાઓ છે.

## TCP પોર્ટ 
TCP જોડાણના છેવાડાના હોસ્ટ કે ઈન્ટરનેટ સોકેટ વચ્ચે પોર્ટ નંબરનો ઉપયોગ કરી મોકલનાર અને મેળવનાર એપ્લીકેશનને ઓળખે છે. જોડાણની દરેક બાજુ મોકલનાર કે મેળવનાર એપ્લીકેશન વડે ૧૬-બીટના પોર્ટ નંબર (૦-૬૫૫૩૫)થી અનામત થયેલ હોય છે. આવી પહોચેલ TCP ડેટા પેકેટ તેના સોકેટની મદદથી તેની સાથેનો સલગ્ન ચોક્કસ પોર્ટને ઓળખી લે છે આ સોકેટ સ્ત્રોત હોસ્ટ અડ્રેસ, સ્ત્રોત પોર્ટ, નિર્દિષ્ટ એડ્રેસ સ્ત્રોત અને નિર્દિષ્ટ પોર્ટની મેળવણી હોય છે. આનો અર્થ એ થાય કે સર્વર કમ્પ્યુટર અનેક સેવાઓ સાથે અનેક ગ્રાહકો સાથે સાથે પૂરી પાડે છે શકે છે, લાંબા તરીકે ક્લાઈન્ટ એક ગંતવ્ય બંદર વિવિધ સ્ત્રોત પોર્ટ પરથી કોઇ પણ એક સાથે જોડાણો શરૂ કાળજી લે છે.

પોર્ટ એડ્રેસના મુખ્યત્વે ત્રણ પ્રકાર છે : જાણીતા પોર્ટ, નોંધાયેલા પોર્ટ અને ક્રિયાશીલ/ખાનગી પોર્ટ. જાણીતા પોર્ટની સોંપણી ઈન્ટરનેટ એસાઈન નંબર ઓથોરીટી (IANA) કરે છે. મોટેભાગે જાણીતી એપ્લીકેશન સર્વર તરીકે ચાલતી હોય છે અને પરોક્ષ રીતે આ પોર્ટ સાથે સલગ્ન જોડાણની રાહ જોયા કરે છે. કેટલાક ઉદાહરણો : FTP(20 & 21), SSH(22), Telnet (23), SMTP(25), SSL(443) અને HTTP (80). નોધાયેલ પોર્ટનો ઉપયોગ મોટેભાગે અંતિમ (છેવટના) વપરાશકર્તાની એપ્લીકેશન દ્વારા થાય છે. આ પોર્ટ નંબરની મદદથી આવી એપ્લીકેશનો તેના ક્લાયન્ટ હોસ્ટ જોડે જોડાણ સાધે છે. ખાનગી પોર્ટ નંબર વપરાશકર્તા પોત્તાના અંગત નેટવર્કમાં પોતાની રીતે આપી શકે છે. જયારે એકથી વધારે ક્લાયન્ટ હોસ્ટ, જાણીતા પોર્ટ ધરાવતી એપ્લીકેશન સર્વર જોડે જોડાણ કરે ત્યારે જુદા જુદા ક્લાયન્ટો જુદા જુદા ક્રિયાશીલ(Dynamic) પોર્ટનો ઉપયોગ કરે છે.

## વાયરલેસ નેટવર્કો માં TCP 
TCP વાયર આધારિત નેટવર્ક માટે શ્રેષ્ઠ છે. કોઈપણ પેકેટ નુકશાન પાછળ નેટવર્ક કન્જેશનને જવાબદાર ગણી અને સાવચેતી સ્વરૂપે ભીડ વિન્ડો માપ નાટકીય રીતે ઘટે છે. જો કે, વાયરલેસ લીન્કોના અનુભવથી જોઈ શકાયું છે કે તેમાં સામાન્ય રીતે કે કોઈક વાર ડેટા નુકશાની થાય છે જેની પાછળ લીંક નું લુપ્ત થવું, શેદોઇન્ગ, હેન્ડ ઓફ કે બીજી રેડીઓની અસરો ગણી શકાય પણ ડેટા-ભીડ ગણી ન શકાય. 

વાયરલેસ સમસ્યા, નિરાકરણ લાવવા માટે સંખ્યાબંધ વૈકલ્પિક ભીડ નિયંત્રણ એલ્ગોરિધમ્સ જેવાકે, વેગાસ, વેસ્ટવુડ, Veno અને સાન્ટા ક્રૂઝ નીમદદ લેવાય છે.

## સંદર્ભો 
શ્રેણી:કમ્પ્યુટર વિજ્ઞાન