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

વિકિપીડિયામાંથી
પ્રસારણ નિયંત્રણ પ્રોટોકોલ
આંતરાષ્ટ્રીય ધોરણ
ઉદ્યોગLAN,WAN,ઈન્ટરનેટ
સુસંગત હાર્ડવેરમોબાઈલ ફોન, કમ્પ્યુટર, પ્રિન્ટર, લેપટોપ, વાયરલેસ નેત્વર્કીંગ ઉપકરણો


પ્રસારણ(પ્રેષણ) નિયંત્રણ પ્રોટોકોલ કે ટ્રાન્સમીશન કંટ્રોલ પ્રોટોકોલ (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 પ્રોટોકોલનો વ્યાપક ઉપયોગ કરે છે.

OSI મોડેલમાં થતી ઇન્કેપ્સુલેશનની સમજ

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

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

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

TCP ખંડ(સેગ્મેન્ટ)નું માળખું[ફેરફાર કરો]

પ્રસારણ નિયંત્રણ પ્રોટોકોલ ડેટા વહેણ(સ્ટ્રીમ) માંથી ડેટા ને લઈને તેને નાના ભાગોમાં વહેચે છે અને તે દરેક ભાગમાં TCP મથાળાને ઉમેરીને તેને TCP ખંડ બનાવે છે. બાદમાં, આ TCPખંડ ઈન્ટરનેટ પ્રોટોકોલ (IP) ડેટાગ્રામમાં ઇન્કેપ્સ્યુલેટ થાય છે. TCPખંડએ પિયર વચ્ચે TCP દ્વારા માહિતીની આપલે માટે વપરાતા પેકેટ છે. [૩]

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

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

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

TCP હેડર (મથાળું)
'ઓફસેટ ઓક્ટેટ
ઓક્ટેટ બીટ ૧૦ ૧૧ ૧૨ ૧૩ ૧૪ ૧૫ ૧૬ ૧૭ ૧૮ ૧૯ ૨૦ ૨૧ ૨૨ ૨૩ ૨૪ ૨૫ ૨૬ ૨૭ ૨૮ ૨૯ ૩૦ ૩૧
ઉદગમસ્થાન પોર્ટ ગંતવ્યસ્થાન પોર્ટ
૩૨ અનુક્રમાંક
૬૪ સ્વીકૃતિ નંબર (જો ACK સેટ હોયતો)
૧૨ ૯૬ ડેટા ઓફસેટ અનામત
0 0 0
N
S
C
W
R
E
C
E
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
વિન્ડો માપ
૧૬ ૧૨૮ ચકાસણી ત્વરિત નિર્દેશક (જો URG સેટ હોયતો)
૨૦
...
૧૬૦
...
વિકલ્પો (જો ડેટા ઓફસેટ > ૫. જો જરૂરી હોયતો ૦ બાઇટ્સ પેડના અંતમાં જોડાય છે.)
...
  • ઉદભવસ્થાન પોર્ટ (૧૬ બીટ્સ) – મોકલનાર પોર્ટને ઓળખવા
  • નિર્દિષ્ટસ્થાન પોર્ટ (૧૬ બીટ્સ) – મેળવનાર પોર્ટને ઓળખવા
  • અનુક્રમાંક (૩૨ બીટ્સ) – બે ભાગ ભજવે છે.
  • જો 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 પ્રોટોકોલની કામગીરીને ત્રણ તબક્કાઓમાં વિભાજીત કરી શકાય છે. ડેટા પરિવહનના તબક્કામાં દાખલ થવા પહેલા જોડાણો યાગ્ય રીતે મલ્ટી-સ્ટેપ હેન્ડશેક પ્રક્રિયા(જોડાણ સ્થાપના)માં સ્થાપિત થયેલા હોવા જરૂરી છે. ડેટાના પરિવહન સંપૂર્ણ થયા બાદ, જોડાણ ને રદ કરતી પ્રક્રિયા સ્થાપિત થયેલ આભાસી સરકીટો અને તેની સાથે જોડાયેલ તમામ સાધનોને (જોડાણમાંથી) મુક્ત કરે છે.

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

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

જોડાણ સ્થાપના[ફેરફાર કરો]

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

  1. SYN: ક્લાયન્ટ જયારે SYN સર્વરને મોકલે ત્યારે એક્ટીવ-ઓપન (Active-Open) ઘટે છે. ક્લાયન્ટ તેના સેગ્મેન્ટની ક્રમિક કિમંત યાર્દ્ચ્છિત રીતે ધારોકે (ક) નક્કી કરે છે.
  2. SYN-ACK: સર્વર પ્રતિસાદમાં ક્લાયન્ટને SYN-ACK આપે છે. તેને મળેલ ક્રમ નંબર (ક) માં ૧ ઉમેરી સર્વર સ્વીકૃતિ નંબર (ક+૧) સેટ કરે છે અને સર્વરની ક્રમિક કિમંત યાર્દ્ચ્છિત રીતે ધારોકે (ખ) નક્કી કરે છે અને ક્લાયન્ટને મોકલે છે.
  3. ACK: અંતમાં, ક્લાયન્ટ સર્વરને ACK પાછી મોકલે છે. ક્રમિક-સંખ્યા મળેલ સ્વીકૃતિ કિમંતો ને સુયોજિત કરે છે. એટલેકે, (ક+૧) અને સ્વીકૃતિ-સંખ્યા મળેલ ક્રમિક-સંખ્યાથી એક વધારે છે (ખ+૧)

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

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

જોડાણનો અંત[ફેરફાર કરો]

TCPમાં જોડાણનો અંત.

ચાર-માર્ગીય હેન્ડશેકની મદદથી જોડાણનો અંત થાય છે, દરેક બાજુના જોડાણનો અંત સ્વતંત્ર રીતે થાય છે. જયારે છેવટનાબિંદુઓ અંત ઈચ્છે છે તે સ્થિતિ હાફ-ઓફ-કનેક્શન કહેવાય જેમાં 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 કરે છે.

પોર્ટ પ્રોટોકોલ વર્ણન
એકો (Echo) એકો મળેલા ડેટાગ્રામને પાછુ મોકલનારને મોકલે છે.
ડીસકાર્ડ (Discard) મળેલા કોઈપણ ડેટાગ્રામ ને કાઢી નાખે છે.
૧૧ ઉપયોગકર્તાઓ (Users) સક્રિય ઉપયોગકર્તાઓ
૧૩ ડેટાઇમ (Daytime) તારીખ અને સમય માટે
૧૭ અવતરણ (Quote) દિવસના અવતરણ માટે.
૧૯ Chargen અક્ષરોની શબ્દમાળા આપે છે.
૨૦ FTP, ડેટા ફાઈલ ટ્રાન્સફર પ્રોટોકોલ (ડેટા જોડાણ)
૨૧ FTP, નિયંત્રણ ફાઈલ ટ્રાન્સફર પ્રોટોકોલ (જોડાણ નિયંત્રણ)
૨૩ ટેલનેટ ટર્મિનલ નેટવર્ક
૨૫ SMTP સિમ્પલ મેઈલ ટ્રાન્સફર પ્રોટોકોલ
૫૩ DNS ડોમેન નેઈમ સર્વર
૬૭ BOOTP બૂટસ્રેપ પ્રોટોકોલ
૭૯ ફિંગર ફિંગર
૮૦ HTTP હાયપરટેક્ષટ ટ્રાન્સફર પ્રોટોકોલ
૧૧૧ RPC રીમોટ પ્રોસીજર કોલ

વિશ્વસનીય પ્રસારણ[ફેરફાર કરો]

TCP એક વિશ્વસનીય ટ્રાન્સપોર્ટ પ્રોટોકોલ છે. આ પ્રોટોકોલ મોલાવેલ કે મેળવેલ સેગ્મેન્ટોની નોંધણી રાખે છે, આ સેગ્મેન્ટના મથાળામાં સેગ્મેન્ટ ક્રમાંક માટે કોઈ પણ ફિલ્ડ હોતી નથી તેની જગ્યાએ બે ફિલ્ડ હોય છે – અનુક્રમ સંખ્યા અને સ્વીકૃતિ સંખ્યા. આ બે ફીલ્ડો સેગ્મેન્ટ સંખ્યા ને બદલે બાઈટ સંખ્યા ને અનુસરે છે. TCP જોડાણમાં રહેલ દરેક પ્રસારિત ડેટા બાઈટને નંબર આપે છે. આ નંબરીંગ દરેક દિશામાં સ્વતંત્ર હોય છે અને આ નંબરીંગ યાદ્છિક રીતે પેદા થયેલ નંબર હોય છે. અનુક્રમ નંબર ચકાસે છે કે, દરેક હોસ્ટ તરફથી મોકલેલ બાઈટ પ્રસારણ દરિમયાન કોઈપણ ક્ષતિ પામ્યા વગરના, ખોવાયા નથી ને ત્યારબાદ તેની ફરીથી ક્રમઅનુસાર ગોઠવણી થાય છે. દરેક પેલોડ બાઈટના પ્રસારણ સાથે અનુક્રમ સંખ્યા પણ વધે છે. ત્રિ-માર્ગીય હેન્ડ-શેક ના પ્રથમ બે પગલાઓમાં બંને હોસ્ટ શરૂવાતી અનુક્રમ નંબર (Initial Sequence Numbar - ISN) ની આપલે કરે છે. આ સંખ્યા(નંબર) ઇચ્છાધીન હોય છે, અને અણધારી રીતે TCP અનુક્રમ અનુમાનિત હુમલાઓ (TCP sequence prediction attacks) ને ટાળે છે.

TCP મુખ્યત્વે એક સંચિત સ્વીકૃતિ યોજના (Cumulative Acknowledgment Scheme) ઉપયોગ કરે છે, જ્યાં મેળવનાર સ્વીકૃતિ મોકલે છે જે દર્શાવે છે કે, મેળવનારને આગળના બધા મોકલાવેલ (મોકલનાર તરફથી) ડેટા મળી ગયેલ છે. મોકલનાર જે સેગમેન્ટમાં માહિતી ક્ષેત્રમાં પ્રથમ પેલોડ બાઇટ ક્રમ નંબર માટે અનુક્રમ નંબર ક્ષેત્ર સુયોજિત કરે છે, અને રીસીવર એક આગામી બાઇટ તેઓ પ્રાપ્ત અપેક્ષા ના ક્રમ નંબર સ્પષ્ટ સ્વીકૃતિ મોકલે છે. દા.ત. મોકલનાર હોસ્ટ ૧૦૦ ક્રમાંક ધરાવતા ચાર પેલોડ બાઈટના સેગ્મેન્ટો મોકલે છે. ત્યારબાદના ક્રમાંક ૧૦૦, ૧૦૧, ૧૦૨ અને ૧૦૩ બને છે. જયારે આ સેગ્મેન્ટો મેળવનાર હોસ્ટમાં આવી પહોચે છે ત્યારે તે મોકલનાર હોસ્ટને ૧૦૪ નો સ્વીકૃતિ ક્રમાંક જ્યાં સુધી આગલો સેગ્મેન્ટ ના મળે ત્યાં સુધી મોકલે છે.

વધુમાં, સંચિત સ્વીકૃતિઓ - TCP મેળવનાર પણ વધુ માહિતી મેળવવા પસંદગીની સ્વીકૃતિઓ મોકલે છે. જો મોકલનારને ખબર પડે કે, ખોવાઈ ગયેલા નેટવર્કને લીધે ડેટા પહોચ્યો નથી તો ડેટાનું, પુન:પ્રસારણ કરે છે.

ભૂલ–નિયંત્રણ[ફેરફાર કરો]

TCP ભૂલ-નિયંત્રણની મદદથી વિશ્વસનીયતા આપે છે. ભૂલ-નિયંત્રણમાં બગડેલા(ભ્રષ્ટ), ખોવાયેલા, ક્રમિક ના હોય એવા અને ડુપ્લીકેટ સેગ્મેન્ટોને શોધવાની પદ્ધતિઓનો સમાવેશ કરેલ છે. ભૂલ-નિયંત્રણ આ ભૂલોને શોધ્યા બાદ સુધારવાનું છે. TCP ભૂલની શોધ અને તેની સુધારણા તેના ત્રણ સાધનોથી કરે છે : ચકાસણી (Checksum), સ્વીકૃતિ (Acknowledgment) અને ટાઈમ-આઉટ (Time-Out).

ચકાસણી

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

સ્વીકૃતિ

TCP સ્વીકૃતિ-રસીદનો ઉપયોગ ડેટા સેગ્મેન્ટ મળ્યો છે તેની ખાતરી કરવા માટે કરે છે. નિયંત્રણ સેગ્મેન્ટો જેઓ ડેટાનું વહન કરતા નથી પણ ક્રમાંક સંખ્યા અને સ્વીકૃતિ નો વપરાશ કરે છે. ACK સેગ્મેન્ટની કયારેય સ્વીકૃતિ રસીદ હોતી નથી. ACK સેગ્મેન્ટો ક્રમ નંબર કે સ્વીકૃતિ રસીદ નો વપરાશ કરતા નથી.

પુનપ્રસારણ

સેગ્મેન્ટનું પુન:પ્રસારણ ભૂલ-નિયંત્રણ પદ્ધતિના કેન્દ્રસ્થ સ્થાને છે. જયારે સેગ્મેન્ટ પ્રસારણ દરિમયાન દૂષિત થાય, ખોવાય જાય કે વિલંબિત થાય તો તેનું પુન:પ્રસારણ થાય છે. આધુનિક ઉપકરણોમાં, બે પ્રસંગો પર સેગ્મેન્ટનું પુન:પ્રસારણ થાય છે : ૧. જયારે પુન:પ્રસારણ ટાઈમર સમાપ્ત થાય ત્યારે ૨. જયારે મોકલનાર ત્રણ ડુપ્લીકેટ ACK મેળવે ત્યારે. ACK સેગ્મેન્ટ માટે પુન:પ્રસારણ ટાઈમર સુયોજિત નથી.

ફ્લો નિયંત્રણ[ફેરફાર કરો]

TCP સ્લાઈડીંગ વિન્ડોનો ઉપયોગ કરી ફલો-નિયંત્રણ હાથ ધરે છે. મોકલનાર તરફથી મોકલતા ડેટા ને મેળવનાર ના ડેટા નિયંત્રણ દ્વારા ઝીલાય છે. આનાથી મોકલનાર તરફથી (આવતા) વધી જતા ડેટાનું નિયંત્રણ કરવા End-to-End ફ્લો નિયંત્રણ પ્રોટોકોલનો ઉપયોગ કરે છે. TCP ક્રમાંક આપવાની પધ્ધતિથી બાઈટ આધારિત ફલો નિયંત્રણ કરે છે. TCP ફલો નિયંત્રણ માટે વિવિધ પર્યાવરણો અનુસાર તેની વાર્તાલાપની ઝડપ માં વધારો ઘટાડો કરે છે. ઉદાહરણ તરીકે, જયારે કોઈ કમ્પ્યુટર કોઈ સ્માર્ટફોનને ડેટા મોકલે ત્યારે ફોનની ડેટા મેળવવાની ક્રિયા ધીરી હોવાથી ફોન ડેટા-પ્રવાહને નિયંત્રિત કરે છે. [૨]

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

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

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

(ડેટાની) ગીચતા નિવારણ (નિયંત્રણ)[ફેરફાર કરો]

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

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

આધુનિક અમલીકરણો ધરાવતું TCP ચાર અલગોરિધમ વાપરે છે: ધીમી-શરૂઆત, ભીડ પરિહાર, ઝડપી પુન:પ્રસરણ અને ઝડપી પુન:પ્રાપ્તિ. (RFC 5681)

વધારામાં, મોકલનાર અનુમાનિત રી-ટ્રાન્સમીશન ટાઈમઆઉટ (RTO) નો ઉપયોગ કરે છે આ RTO મેળવનાર અને મોકલનાર વચ્ચેના અનુમાનિત રાઉન્ડ-ટ્રીપ-ટાઈમ(RTT) આધારિત છે. આ ટાઈમરના વર્તન વિષે RFC 6298માં વિવરણ છે. TCP નુકશાન નિયંત્રિત કરવા તેની વિશ્વાસપાત્રતા વધારવા ભૂલો ઘટાડે છે, ભીડ ની વ્યવસ્થા કરે છે. TCP કન્જેશન પરિહાર અલગોરિધમનો ફેરફારો હોય છે.

મહતમ સેગ્મેન્ટ કદ[ફેરફાર કરો]

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

પસંદગીયુક્ત સમર્થન[ફેરફાર કરો]

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

આવી સમસ્યાને દુર કરવા TCP પસંદગીયુક્ત સ્વીકૃતિ (SACK) નામના વિકલ્પનો ઉપયોગ કરે છે જે RFC 2018 માં વ્યાખ્યાયિત છે. જે મેળવનારને યોગ્ય રીતે મળેલ વિરત સેગ્મેન્ટના બ્લોકના સ્વીકાર માટે પરવાનગી આપે છે. વધુમાં, છેલ્લા સલગ્ન ક્રમ નંબરના બાઈટ ને સફળતાપૂર્વક પ્રાપ્ત થાય છે. સ્વીકૃતિઓ SACK બ્લોકને એક નંબર આપે છે. જ્યાં દરેક SACK બ્લોકને ભારપૂર્વક શરૂવાત અને અંતના ક્રમિક નંબરો અપાય છે જે સેગ્મેન્ટો મેળવનારને યોગ્યરીતે મળે છે. ઉપરના ઉદાહરણમાં, મેળવનાર SACK જોડે ક્રમિક નંબર ૧૦૦૦ અને ૯૯૯૯ મોકલે છે. તેથી મોકલનાર માત્ર પહેલું સેગ્મેન્ટ પુન: મોકલે છે.

SACK નો વિકલ્પ ફરજીયાત નથી તે ત્યારે જ ઉપયોગમાં આવે છે જયારે જો બંને પક્ષો તેને ટેકો આપતા હોય. જયારે જોડાણના સ્થપાન વખતે આની વાટાઘાટો થાય છે. SACK, જે TCP મથાળા ના વૈકલ્પિક ભાગ વાપરે છે. (વધુ માહિતી માટે જુઓ : #TCP ખંડ(સેગ્મેન્ટ)નું માળખું) SACK નો બહોળા પ્રમાણમાં ઉપયોગ થાય છે – દરેક લોકપ્રિય TCP સ્ટેક તેને ટેકો આપે છે. પસંદગીયુક્ત સમર્થનનો ઉપયોગ સ્ટ્રીમ કંટ્રોલ ટ્રાન્સમીશન પ્રોટોકોલ (SCTP)માં થાય છે.

વિન્ડો માપન[ફેરફાર કરો]

ઊંચા બેન્ડવિડ્થ નેટવર્ક્સ વધુ કાર્યક્ષમ ઉપયોગ માટે મોટી TCP વિન્ડો માપ ઉપયોગ કરી શકે છે. જે TCP વિન્ડો માપ ક્ષેત્ર માહિતીના ફ્લો નિયંત્રિત અને તેની કિંમત 2 વચ્ચે અને 65.535 બાઇટ્સ સુધી મર્યાદિત છે. કારણકે, તેના ફિલ્ડનું કદ વધારી શકાતું નથી, માપન પરિબળ વપરાય છે. TCP વિન્ડો માપનનો વિકલ્પ RFC 1323 મુજબ, તેનું મહતમ કદ ૬૫,૫૩૫ થી ૧ ગીગબીટ સુધીનું હોઈ શકે. મોટા વિન્ડોનું કદ તેના માટે જરૂરી TCP ટ્યુનીંગ પ્રમાણે ફેરફાર (વધે) પામે છે.

વિન્ડો માપનનો વિકલ્પનો ઉપયોગ TCP ત્રિમાર્ગીય હેન્ડ-શેક વખતે થાય છે. વિન્ડો-માપનની કિમંત ૧૬-બીટની વિન્ડો-માપની ફિલ્ડ ની ડાબી-સ્થાનાંતરના બીટ્સની સંખ્યાને દર્શાવે છે. વિન્ડો-માપન ની કિમંત ૦(શૂન્ય જે સ્થાનાંતર દર્શાવતું નથી.) થી ૧૪ સુધીની હોઈ શકે જે દરેક દિશામાં સ્વતંત્ર હોઈ શકે. બંને પક્ષો તેના SYN સેગ્મેન્ટમાં વિકલ્પો મોકલે છે જે જે-તે દિશામાં વિન્ડો-સ્કેલીંગને સક્રિય કરે છે.

કેટલાક રાઉટર અને પેકેટ ફાયરવોલ વિન્ડો-માપન ને પ્રસારણ દરિમયાન પુન: લખે છે. આનાથી મોકલનાર કે મેળવનાર બાજુઓ જુદા જુદા માપવાળી TCP વિન્ડો-માપ મળવાની શક્યતા વધે છે. આ અસ્થિર ટ્રાફિક પરિણામેં છે જે ઘણું જ ધીમું હોય છે. જયારે ખામીયુક્ત રાઉટરથી બનેલા મોકલનારા અને મેળવનારા માર્ગથી જોડેલ સ્થળોને જોડ્યા હોય ત્યારે આ સમસ્યા જોવા મળે છે [૧૦]

TCP સમયનોંધો[ફેરફાર કરો]

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

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

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

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

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

અર્જન્ટ (તાકીદના) ડેટા[ફેરફાર કરો]

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 અને સાન્ટા ક્રૂઝ નીમદદ લેવાય છે.

સંદર્ભો[ફેરફાર કરો]

  1. Vinton G. Cerf, Robert E. Kahn, "A Protocol for Packet Network Intercommunication", IEEE Transactions on Communications, Vol. 22, No. 5, May 1974 pp. 637–648
  2. ૨.૦ ૨.૧ ૨.૨ ૨.૩ ૨.૪ ૨.૫ ૨.૬ Comer, Douglas E. (2006). Internetworking with TCP/IP:Principles, Protocols, and Architecture. 1 (5th આવૃત્તિ). Prentice Hall. ISBN 0-13-187671-6. CS1 maint: discouraged parameter (link)
  3. "TCP (Linktionary term)". મૂળ માંથી 2013-04-07 પર સંગ્રહિત. મેળવેલ 2013-01-22.
  4. RFC 791 – section 2.1
  5. RFC 793
  6. RFC 793 section 3.1
  7. RFC 793 Section 3.2
  8. Tanenbaum, Andrew S. (2003-03-17). Computer Networks (Fourth આવૃત્તિ). Prentice Hall. ISBN 0-13-066102-3. CS1 maint: discouraged parameter (link)
  9. "TCP Definition". મેળવેલ 2011-03-12.
  10. TCP window scaling and broken routers [LWN.net]
  11. "Security Assessment of the Transmission Control Protocol (TCP)" (PDF). મૂળ (PDF) માંથી 2009-03-06 પર સંગ્રહિત. મેળવેલ 2013-02-15.
  12. Security Assessment of the Transmission Control Protocol (TCP)
  13. "Some insights about the recent TCP DoS (Denial of Service) vulnerabilities" (PDF). મૂળ (PDF) માંથી 2013-06-18 પર સંગ્રહિત. મેળવેલ 2013-02-15.
  14. Exploiting TCP and the Persist Timer Infiniteness
  15. Laurent Joncheray, Simple Active Attack Against TCP, 1995