TCP/IP چیست ؟
TCP/IP مجموعه ای از پروتکل ها است که ارتباط بین سرورها و ترمینال ها را که به شبکه های متفاوتی مربوط شده اند , تسهیل می کند.
TCP : Transport Control Protocol
IP : Internet Protocol
TCP/IP , stack یا مجموعه ای از پروتکل های گوناگون است .
پروتکل اساسا فرمان ها یا دستور العمل هائی است که به واسطه ان دو کامپیوتر از طریق یک شبکه محلی یا اینترنت می توانند به تبادل داده ها و منابع بپردازند.
به TCP/IP مجموعه پروتکل ها نیز می گویند که شامل پروتکل های گوناگونی است ولی TCP و IP از تمام مجموعه پروتکل ها معروف ترند ,که این خانواده را مجموعه TCP/IP گویند .
TCP/IP شامل لایه های مختلفی می باشد که هر لایه از جهت انتقال اطلاعات به دنبال دیگریست .
و اطلاعات از یک لایه به لایه دیگر منتقل می شود.
TCP/IP نه تنها به انتقال اطلاعات کمک می کند بلکه مشکلات بسیاری را که بر سر راه انتقال اطلاعات است را بر طرف می کند .
دو اشکال عمده بر سر راه انتقال اطلاعات وجود دارد که عبارتند از
1.
خراب شدن اطلاعات : اطلاعات به مقصد رسیده اما کاملا خراب است .
2.
از دست دادن اطلاعات : بسته هائی که حاوی اطلاعات هستند به مقصد نرسیده و گم می شوند .
TCP/IP این اشکالات را پیش بینی کرده و ابزارهای ممکن برای تصحیح و جلوگیری از وقوع انها را دارا می باشد .
IP و INTERNET (تاریخچه ای مختصر):
TCP/IP در زمان ایجاد شبکه ARPANET توسعه یافت و بعنوان مجموعه ای از پروتکلها شناخته شده و معرفی شد.
درسال 1969 در ایالات متحده امریکا، نمایندگی هیات دولت(DARPA) پروژه ی شبکه یاآزمایشی براساس packet switching ، آغاز کرد.
Packet switching یا پیام رسانی، تکنیکی برای تحویل پیام هاست که در آ ن بسته ها با استفاده از ایستگاههای موجود در شبکه کامپیوتری از طریق بهترین مسیر قابل دسترسی در بین مبدا و مقصد ارسال میشوند.
شبکه های packet switching، اطلاعات را در واحدهای کوچک مدیریت می کنند یعنی پیامها را پیش از ارسا ل به چند ین بسته تجزیه می کنند.
اگرچه بسته ها ممکن است مسیرهای مختلف را طی کنند و بطور متوالی یا همزمان نرسند، اما کامپیوتر دریافت کننده می تواند آنها را مجددا به همان پیام اولیه تبد یل نماید.
این گونه شبکه ها سریع و کارآمد می باشند.
این شبکه ها برای مدیریت ترافیک و تجزیه و بازگرداندن بسته ها به حا لت اول به کامپیوترها و نرم افزارهایی با هوشمندی لازم جهت کنترل تحویل پیام ها نیاز دارند.
ا ینترنت یک نمونه از این شبکه هاست.
شبکه آزمایشی مذکور که ARPANET نامیده شد ، با هدف مطالعه فن آوری های در زمینه ارتباطات , مستقل ا ز نیروی تجارت، ایجاد شد.
تعداد زیادی ا ز تکنیک های ارتباطاتی از طریق مودم ها (modems) به همان زمان بر می گردد.
در سال 1975 شبکه بطور رسمی از مرحله آزمایشی وا رد مرحله اجرایی می شود.
گسترش و پیشرفت ARPANET متوقف نشد در نتیجه مسائل پایه ای پروتکل های TCP/IP در این زمان توسعه یافتند.
بنابراین بعد ا ز ARPANET ، مرحله ی اجرایی آغاز شد.
در ژانویه 1978، جان پاستل (John Postel) IP را تعریف کرد و IP در1981، بصورت یک استاندارد در RFC791درآمد.
در 1983 پروتکلهای TCP/IP مانند یک استاندارد نظامی ، پذیرفته شدند و تمام وسایل مرتبط با شبکه، شروع به استفاده ا ز آ ن کردند.
برای تسهیل شرایط در برابر ا ین تغییر،DARPA که سرنام Defense Advanced Research Projects می باشد،ا ز دانشگاه Berkeley ، خواست تا ا ین پروتکل ها را درنسخه BSD ی UNIX شان اجرا کنند.
بدین گونه پیوند بین UNIX و پروتکلهای TCP/IP شروع شد.
همکاری دانشگاه Berkeley ، بخصوص در مرحله نظریه (مفهوم سوکتها یا حفره ها)با امکانات مشابه نظیر آنچه که در حال حاضر تحت پوششUNIX است ، کمک بزرگی بود.
در این زمان کلمه «Internet» با حرف بزرگ «I» برای نشان دادن اتصال داخلی شبکه ها به وجود آمد.
موفقیت این فن آوری بسیار مهم است و پیشرفت قابل ملاحظه ای را با بت حامیان مختلف برمی انگیزد ، بخصوص در بنیاد علمی بین المللی که سود زیادی برای تحقیقات علمی در نظر گرفتند و این راهی برای مرتبط ساختن محققان شد.
بعد از سال 1990 ، ARPANET دیگر مطرح نبود ، بلکه Internet مطرح بود که نشان دهنده فضایی از ارتباطات است که بسیار گسترده می باشدوصدها هزار سایت از طریق آ ن با هم مرتبطند.
بعد از سال 1994 ، اینترنت وارد تجارت شد و حضور آ ن بخصوص در سال 1991 توسط ابزار جدیدی بنام شبکه جهان گستر “World Wide Web” یا “Popular Web”و رابط ها و نرم افزارهایش ، مطرح شد.
بعد از 1995 برای نشان دادن محبوبیت رو به گسترش آ ن، در خواستهایی که در نتیجه معا مله های سود آور می شد ،پروتکل، راه را برای گسترش گشود و نسخه جدیدversion6(IPNg) در مرحله گسترش تجربی تعریف شد.
پروتکل هایی که با TCP/IP نشان داده شدند ، بر LAN(Local Area Network) غلبه کردند زیرا استفاده از پروتکل های In-House در محیط خارجی ، آ سا نتر است.
برای کاربرها ، دسترسی به ا ینترنت ، با به کارگیری برنامه های ویژه و تخصصی ، ممکن شده و
آن قدر آسان که هربخشی از این برنامه ها می توا نند بدون آگاهی از قسمت های دیگر ، کار کنند.
تنها ، شبکه های برنامه نویسان برنامه های کاربردی و مدیران سیستم ها نیاز به دانستن رمز های این برنامه های کاربردی دارند.
معروفترین سرویس های شبکه ها عبارتند ا ز:
- پست الکترونیکی که ا ین امکان را فراهم می کند کاربرا ن از طریق رد و بدل کردن پیغام ها با هم مرتبط شوند.
- دهها هزا ر مجموعه مباحثاتی(news)
- تبادل فا یل بین ماشین ها( ftp و مشتقا ت آ ن مانند fetch یا wget )
- برقرا ری ا رتباط ا ز راه دور که به کاربر ا ین امکان را می دهد تا به یک سا یت دور ( از نظر فاصله مکانی و زمانی) متصل شود.
- پیشخدمت های محاوره ای که نامهای قدیمی آ نها : archie,gopher,Veronica,wais… بوده و ا ز ا ین به بعد ، آ نها با آ مدن WEB(protocol HTTP) ، منسوخ می شوند.
- در آ خر ، حفظ رادیو ، هما یش ویدیویی ، حقیقت مجازی با vrml و CAT که سرنام(Computer-Aided Testing) ا ست.
- در آ خر ، حفظ رادیو ، هما یش ویدیویی ، حقیقت مجازی با vrml و CAT که سرنام(Computer-Aided Testing) ا ست.
در خاتمه ا ین پاراگراف در مورد تاریخچه ، می توا ن گفت که ا ینترنت ، مجموعه ای به ظاهر درهم (هیچ سلسله مرا تب و ساختار متمرکزی ندارد) ا ز شبکه هایی است که به هم مرتبطند و به دارنده های گوناگونی تعلق دارند.
مشخصه TCP/IP : 1 .
TCP/IP ، یک پروتکل آ زاد ا ست ، منا بعی که به زبا ن C نوشته شده اند ، به طور رایگا ن در دسترسند و بعضی دیگر ، مستقل ا ز معماری خاصی ا ز یک سیستم عامل بخصوص مربوط به یک دارنده ساختار تجاری ، گسترش یافته اند.
آ نها همچنین ، قابل حمل و نقل در هر زمینه ای هستند که امروزه ا ثبات شده است.
2 .
ا ین پروتکل ، مستقل ا ز پشتیبانی شبکه ا ست که TCP/IP را قادر می سازد که با پشتیبا ن ها و فن آ وری ها ، متفا وت ا ز یک سری خطوط ، اترنت کا بل هم محور ، اتصا ل کرایه ای ، شبکه Token Ring ، اتصا ل رادیویی، ا تصا ل 600Mbit FDDI ، ا تصا ل بوسیله پرتو لیزر، infra-red ، xDSL ، ATM ، فیبر نوری و لیستی ا ز پشتیبان ها و فن آ وری هایی که جا مع نیستند ، همراهی می شود.
ا ترنت (Ethernet) ، استاندارد IEEE شماره 802/3 که برای شبکه های مجادله ای ا ست.
Token ring network ، یک شبکه محلی (LAN) با همبندی حلقوی ا ست که از تکنیک ارسال نشانه برای کنترل ترافیک خط ا ستفاده می کند.
3 .
حالت آدرس دهی بین کاربران TCP/IP با هر طرحی که بکار برند ، بسیار معمول ا ست .
اگر منحصر به فرد بودن آدرس ، تایید شد، ارتباط ، برقرار می شود حتی اگر کامپیوتر های میزبا ن ، بدون تریبون باشند.
4 .
پروتکل های سطح بالا ، ا ستاندارد شده اند که راه را برای توسعه گسترده گونه های مختلف ماشین آ لات ، هموار کرده اند.
عدم تقارن ناشی ازتفاوت هایی درگنجایش حمل و دریافت: راه های شبکه ممکن است نامتقارن باشند زیرا upstream و downstream مربوط به link ها با سرعتهای متفاوتی عمل می کنند ویا با استفاده ازفن آوری های متفاوت اجرا می شوند.
Upstream محل یک سرویس دهنده نسبت به یک سرویس دهنده دیگر است.
Downstream جهتی است که اطلاعات همچون منابع خبری برای یک گروه خبری یا داده ها از یک سرویس دهنده http از یک سرویس دهنده به یک سرویس دهنده دیگر ارسال می شوند.
عدم تقارن در گنجایش یا مقدار اطلاعاتی که یک کامپیوتر یا وسیله متصل به آن می تواند پردازش یا ذخیره کند.
مدل OSI : OSI مدل هفت لایه ای است که در ان لایه ها کاملا" مستقل از یکدیگر می باشند و ارتباط بین لایه ها از طریق یک Interface برقرار می شود .
در این مدل هر لایه وظیفه دارد که به لایه های بالاتر سرویس دهد و جزئیات لایه های زیرین را برای لایه های بالاتر پنهان کند.
ارتباط بین پروتکل TCP/IP و مدل OSI : همان طور که گفته شد TCP/IP نیز همانند مدل OSI شامل لایه های مختلفی می باشد.
این لایه ها و ارتباط آنها با مدل OSI به صورت زیر می باشد : لایه اول از پروتکل TCP/IP که معادل با دو لایه زیرین مدل OSI , یعنی لایه Physical و لایه Data Link است , لایه Host To Network نامیده میشود.
پروتکل هائی نیز در این لایه تعریف می شود که بستگی به نوع شبکه داخلی دارد که از چه نوع باشد ( Ethernet , Token Ring و...
) که TCP/IP فقط اطلاعات را تحویل این لایه می دهد تا آن را منتقل کند.
لایه دوم از TCP/IP که معادل با لایه Network از مدل OSI است , Internet نام دارد.
این لایه شامل پروتکل های IP, IGMP, ICMP, ARP, RARP می باشد.
لایه سوم پروتکل TCP/IP که معادل لایه Transport مدل OSI است ، Transport نام دارد که این لایه نیز شامل دو پروتکل معروف TCP, UDP است.
لایه چهارم پروتکل TCP/IP که معادل لایه های Session, Presentation, Application مدل OSI است، Application نامیده می شود.
که Applicationهای مختلفی چون SMTP, FTP, TELNET, DNS و...
در این لایه قرار دارند.
Internet Layer : لایه Internet دارای وظیفه مسیریابی، کنترل ازدحام و پیدا کردن آدرس های لاجیکی و...
می باشد که همه این کارها به پروتکی به نام IP که مهم ترین پروتکل در لایه Internet است ، محول شده است .
IP ( Internet Protocol ) : IP یک سرویس تحویل مستقل که حاوی اطلاعات در مورد نشانی مقصد می باشد را تهیه می کند.
IP تلاش زیادی برای رساندن بسته ها انجام می دهد که از این جهت به عنوان یک سرویس Best Effort شناخته شده است.
IP سه کار مهم انجام می دهد: مشخص کردن Format بسته هائی که قرار است منتقل شوند ( IP Datagram ) مسیریابی ( Routing ) تحویل بسته ها IP Datagram : هر Datagram یا Packet در IP دارای دو بخش اصلی Data و Header می باشد.
IP Header بین 20 تا 60 بایت می باشد و Data اطلاعاتی است که از لایه بالاتر می اید و قرار است که Packet آن را حمل کند.
مجموع کل Packet می تواند بین 20 تا 65536 بایت ، که تقریبا" معادل 64K است، باشد.
IP Header شامل یک سری اطلاعات کنترلی ، بخش Checksum مربوط به کشف خطا و نیز IP Address فرستنده و گیرنده می باشد .
IP Address : گفتیم که IP Header باید شامل IP Address های فرستنده و گیرنده باشد تا مشخص شود که Packet باید به کدام آدرس ارسال شود.
در پروتکل TCP/IP آدرس های لاجیکی را با نام IP Address می شناسند که 32 بیتی هستند و عموما" به صورت Decimal نوشته می شوند و با Point از یکدیگر جدا می شوند، مانند : 128.160.3.17 که هر عدد 8 بیتی است و هر یک می تواند عددی از 0 تا 255 را آدرس دهی نماید.
EX : IP Addresses In Decimal Notation 10000000 10100000 00000011 00010001 128.160.3.17 پس این الگوی 4 بایتی یک IP Address می باشد که بخشی از آن شماره شبکه را مشخص می کند، که در شماره شبکه نیز بخشی از ان Class Type را مشخص می کند.
Internet Address : Net ID Host ID Internet Classes : Class A : در Class A بیت اول رزرو ( 0 ) است، بایت اول مشخص کننده شماره شبکه و سه بایت بعدی مشخص کننده شماره Host در آن شبکه است .
پس در Class A می توان حداکثر 2^7 شبکه داشت و در داخل هر شبکه می توان تا 2^24 یعنی 16 میلیون Host داشت.
محدوده آدرس در Class A به صورت زیر است : From To 0.0.0.0 127.255.255.255 Class B : در Class B دو بیت اول رزرو ( 10 ) می باشد ، دو بایت اول مربوط به شماره شبکه و دو بایت بعدی مربوط به شماره Host است.
پس در Class B می توان 2^14 شبکه متفاوت داشت که در داخل هر شبکه 2^16 ،Host قرار دارد.
یعنی 16000 شبکه متفاوت که در داخل هر یک می توان 64000 Node داشت .
محدوده آدرس در Class B به این صورت است : To From 128.0.0.0 191.255.255.255 Class C : در Class C سه بیت اول رزرو ( 110 ) هستند .
سه بایت اول مربوط به شماره شبکه و بایت اخر مربوط به شماره Host است.
پس در Class C می توان 2^21 شبکه داشت که در داخل هر شبکه 2^8 ، Host وجود دارد.
محدوده آدرس دهی در Class C به صورت زیر است : From To 192.0.0.0 223.255.255.255 Class D : Class D یک کلاس Multicast است.
کلاس های Multicast ، کلاس هائی با آدرس گروهی می باشند.
در Class D چهار بیت اول رزرو ( 1110 ) می باشد.
محدوده آدرس دهی در این کلاس به صورت زیر است : From To 224.0.0.0 239.255.255.255 Class E : در Class E چهار بیت اول رزرو ( 1111 ) هستند.
و از این کلاس هنوز استفاده نشده است و برای کاربردهای آتی در نظر گرفته شده است.
محدوده آدرس دهی در Class E به صورت زیر می باشد : From To 240.0.0.0 255.255.255.255 آدرس های IP ، آدرس های Unic هستند و نباید دو شبکه از یک آدرس یکسان استفاده کنند.
پس برای این که آدرس های تکراری نداشته باشیم ، باید مدیری برای کل شبکه در نظر گرفته شود که وظیفه این مدیر آن است که یک کلاس انتخاب کند و بر مبنای آن به هر Node خود یک IP Address نسبت دهد.
در شبکه اینترنت بحث آدرس های Valid, Invalid مطرح می شود.
آدرس های Valid ، آدرس های معتبرند که در شبکه اینترنت رایج می باشند .
ولی آدرس های Invalid ، آدرس های غیر معتبرند که در شبکه اینترنت وجود ندارند و کسانی که از این آدرس ها استفاده می کنند در شبکه مخصوص خود آدرس دهی می کنند و از طریق مکانیزم هائی آنها را به آدرس های اینترنتی معتبر تبدیل می کنند.
از بین آدرس هائی که می توان اختصاص داد ، چند آدرس وجود دارد که نباید آنها را به Node ها اختصاص داد : اگر آدرس Host صفر باشد ، این آدرس مشخص کننده شماره شبکه است و نباید این آدرس را به Node نسبت دهیم.
مانند : 220.3.6.0 اگر آدرس Host برابر 255 باشد ، حق دادن این آدرس به Node را نداریم .
این آدرس یعنی Broadcast داخل شبکه .
آدرس 127.0.0.1 آدرس Loop Back یا Local Host می باشد، که مربوط به خود ماشین است وPacket ای که از این آدرس استفاده می کند به داخل ماشین باز می گردد و برای تست خود ماشین استفاده می شود.
آدرس 0.0.0.0 آدرس Host ای است که آدرس خود را نمی داند .
بنابراین هر Host ای که آدرس خود را نمی داند ، می تواند به عنوان آدرس فرستنده از این آدرس استفاده کند.
ولی فقط می تواند اطلاعات را به آدرس مورد نظر بفرستد و اطلاعات برگشت پیدا نخواهد کرد.
ARP ) Address Resolution Protocol ) : اطلاعات قبل از آنکه در اینترنت منتقل شوند به بخش های کوچکتری شکسته می شوند که برای انتقال در شبکه مناسب هستند.
این بسته ها آدرس IP مبدا" و مقصد را دارند ، اما برای اینکه انتقال اتفاق بیفتد آدرس سخت افزاری یا MAC Address باید مشخص باشد.
بنا براین ARP مطرح شد.
برای گرفتن آدرس سخت افزاری MAC ، Router یک پیغام درخواست، ARP Request ، را به صورت Broadcast می فرستد و همه Node ها روی آن Process انجام می دهند و Node ای که IP Address مربوط به آن است یک ARP Response تولید می کند که شامل MAC Address مربوط به خودش است و آدرس کارت شبکه اش را ارسال می کند.
بعد از اینکه Router ، MAC Address را به دست اورد ، آن را به لایه Data Link می دهد تا Packet را منتقل کند.
بنا براین پیدا کردن آدرس کارت شبکه ، MAC Address ، بر عهده لایه Internet است .
ویژگی های ARP : وقتی آدرس کارت شبکه ای تغییر کرد ، دیگر نیازی به مدیر شبکه نیست که آدرس را Update کند ، بلکه خود آدرس در این روش Update نگه داشته می شود.
این روش یک Cache دارد که وقتی یکبار درخواست یک IP کرد و Response آن را دریافت نمود ، آدرس آن را داخل Cache نگه داری می کند و برای این که مشکل وجود رکورد بعد از سوختن کارت شبکه وجود نداشته باشد ، یک Timer می گذارد که اگر بعد از مدتی هیچ مراجعه ای به این آدرس نشد ، قطعا" این آدرس از شبکه حذف شده است و آن را حذف می کند.
RARP (Reverse Address Resolution Protocol) : پروتکل RARP عکس پروتکل ARP عمل می کند .
در پروتکل ARP ، IP Address را داشتیم و می خواستیم MAC Address را به دست اوریم ، ولی در اینجا MAC Address را داریم و می خواهیم IP Address را به دست اوریم.
برای داشتن IP Address ، این آدرس باید در جائی از حافظه Save شود.
بنا براین ماشین هائی که Hard Disk ندارند ، نمی توانند IP Address را در جائی ذخیره کنند و این ماشین ها IP خود را نمی دانند .
الگوریتم خاصی برای به دست آوردن MAC Address از IP Address وجود ندارد .
برای به دست آوردن چنین ترجمه ای هر کامپیوتری فایلی حاوی جدولی با ردیف هائی به همراه دو ستون برای تطبیق IP Address و MAC Address دارد.
ICMP ( Internet Control Message Protocol ) : ICMP پروتکلی است که مدیریت کنترل Message ها را بر عهده دارد .
در ICMP واحد اطلاعاتی داخل یک Packet قرار می گیرد و IP آن را حمل می کند.
اطلاعات ICMP در بخش Information پروتکل IP حمل می شود.
ICMP برای اعلام خطا بین Host با Host ، و Host با Router تعریف شده است.
پس ICMP پروتکل IP را قدری مطمئن تر می کند،چون حداقل اعلام خرابی می کند.
باید توجه داشت که Error Correction بر عهده ICMP نمی باشد و ICMP فقط خطا را اعلام می کند.
خطا هائی که ICMP اعلام می کند عبارتند از : ICMP.1 بررسی می کند که طرف مقابل در حال حاضر در شبکه وجود دارد یا خیر.
زمانی که ما در شبکه هستیم و می خواهیم بدانیم شخص مورد نظر ما Online است یا نه ، از دستوری به نام Ping استفاده می کنیم که اعلام می کند طرف مقابل هم در شبکه وجود دارد یا خیر.
این سرویس را ICMP به ما می دهد.
2.
Sorce Quench این پیغام که یک Message خاص است ، حالتی از Flow Control می باشد.
توسط این Message که از طرف گیرنده ارسال می شود ، اعلام می شود که سرعت ارسال Packet ها باید کاهش یابد .
وقتی یک Host یک Packet را ارسال می کند ، از طریق این پیغام سرعت Packet کاهش می یابد.
اگر باز هم یک Sorce Quench دریافت کند ، باز هم سرعت کاهش می یابد ، تا زمانی که دیگر Source Quench ارسال نشود .
در این لحظه دوباره سرعت آرام آرام افزایش می یابد تا به مقدار اولیه برسد.
Redirection در این حالت زمانی که یک Router خراب است ،یا مشکلی دارد و نمی تواند اطلاعات را ارسال کند ، ICMP از طریق این پیغام اعلام می کند که از Router دیگری استفاده شود.
IGMP ( Internet Group Message Protocol ) : IGMP این امکان را به یک Host می دهد که بتواند اطلاعات خود را به صورت Broadcast برای مجموعه ای از Host ها بفرستد .
در حالت عادی ارسال اطلاعات از Host به Host و از یک مبدا" به یک مقصد است ، اما در ارسال اطلاعات با استفاده از پروتکل IGMP از آدرس های Multicast استفاده می شود .
که از طریق این آدرس ها یک Host اطلاعات خود را به چندین Host دیگر می فرستد.
اطلاعاتی که از آدرس Multicast استفاده می کنند ، از طریق Router ای که این اطلاعات را دریافت می کند به تک تک اعضا گروه فرستاده می شود.
کاربردهای IGMP : ویدئو کنفرانس ها ارسال Routing Table ها در پروتکل WINS ( پروتکل WINS هم از پروتکل IGMP برای ارسال اطلاعات خود استفاده می کند.
) Transport Layer (لایه انتقال): پروتکل کنترل ا نتقال ، مسئول شکستن اطلاعات به Datagram های کوچکتر و همچنین ترکیب ِ Datagram بصورت اطلاعات قابل استفاده در مقصد است.
TCP همچنین دیتاگرام های از دست داده شده را به مقصد دوباره ارسال می کند.
در حالیکه دیتاگرام های دریافت شده دوباره در ترتیب درستشان مرتب می شوند، پروتکل TCP اکثر کارها را انجام می دهد ، اما بدون پروتکل IP نمی تواند اطلاعات را منتقل کند.
پروتکل TCP : اجازه دهید فرض کنیم که آدرس پروتکل اینترنت(IP Address) شما ، xxx.xxx.xxx.xxx یا بطور خلاصه x است و IP مقصد شما yyy.yyy.yyy.yyy یا به اختصار y است به محض اینکه ارتباطی بین مبدا و مقصد برقرار شد، x ، آدرس IP مقصد و همچنین پورتی را که به آن متصل می شود می شناسد.
هم x و هم y در دو شبکه مجزا هستند که با بسته های مختلفی از نظر سایز، سروکار دارند.
بنابراین برای ارسال دیتاگرام ها در سایز مقصد، x باید ماکزیمم دیتاگرامی را که مقصد با آن سروکار پیدا می کند بداند بنابراین هروقت x بیشترین اندازه دیتاگرامی را که y می تواند با آن سروکار داشته باشد شناخت، اطلاعات را به بخش ها و دیتاگرام های کوچکتری می شکند.
هر دیتاگرامی برچسب(Header) خود را دارد که توسط TCP تعیین می شوند.
برچسب TCP شامل اطلاعات بسیار زیادی است اما مهمترین آن IP مبدا و مقصد و شماره پورت بعنوان شماره توالی است.
مبدا که همان کامپیوتر شماست (x) آدرس IP و شماره پورت و کامپیوتر مقصد را می شناسد.
ارزش checksum را حساب کرده و نتیجه را در برچسب IP اضافه می کند .
برچسب TCP شبیه زیر خواهد بود: حوزه های مختلفی در TCP در بالا مشاهده می شوند که ممکن است معنی آنها را ندانید، بیایید روی آنها دقت بیشتری کنیم .
windows اطلاعات پستی را که آماده پردازش هستند مشخص می کند.
در اصل از حوزه windows برای همزمان کردن و سنکرون کردن کامپیوترهای پرسرعت با کامپیوترهای کم سرعت استفاده می شود.
هنگامیکه کامپیوتری اطلاعات دریافت می کند، فضای خالی در حوزه windows کاهش پیدا می کند که نشانگر این است که دریافت کننده، اطلاعات را گرفته است..هنگامیکه این فضا به صفر می رسد، فرستنده از فرستادن اطلاعات بیشتر خودداری می کند.
هرگاه که دریافت کننده پردازش اطلاعات دریافت شده را تمام کرد، حوزه windows را افزایش داده که نشانگر این است که گیرنده، اطلاعات دریافتی را پردازش کرده و آماده پذیرش اطلاعات جدید است.حوزه اضطراری (urgent field) به کامپیوتر مقصد می گوید که از پردازش آخرین 8 بیت دست برداشته و بجای آن 8 بیت جدید را بگیرد.
پروتکل TCP یک پروتکل مطمئن است بدین معنی که تعیین می کند که اطلاعات بدون هیچ اشکالی به مقصد رسیده است .
TCP همچنین تضمین می کند که اطلاعاتی که دریافت شده در ترتیبی معین به همان صورت که فرستاده شده ، دریافت شده است.
پروتکل TCP به یک مدار مجازی بین client و host ، وابسته است.
TCP همچنین انتقال دو طرفه اطلاعات را پشتیبانی می کند بدان معنی که یک مسیر برای انتقال دو طرفه فراهم می کند از این رو با استفاده از پروتکل TCP یک کامپیوتر میتواند در یک زمان هم اطلاعات بگیرد و هم اطلاعات بفرستد.
بعضی از فلگهای TCP عبارتند از: RST(RESET)_ که ارتباط را از سرمی گیرد.
PSH(PUSH)_ که به گیرنده می گوید که تمام اطلاعات به صف شده را به برنامه کاربردی در حال اجرا ارسال کند.
FIN(FINISH)_ که ارتباط را طی پروسه چهار مرحله ای به پایان می رساند.
SYN Flag_ که به معنی این است که کامپیوتر فرستنده این فلگ، می خواهد یک تائید سه جانبه را برقرار کند مانند ارتباط TCP .
گیرنده SYN Flag معمولا با یک پیغام ACK ، پاسخ می دهد بنابراین ما در موقعیتی هستیم که می توانیم یک TCP Handshake سه جانبه را معرفی نمائیم: A SYN B A SYN/ACK B A ACK B A یک فلگ SYN به B می فرستد و می گوید که مایل به برقراری یک ارتباط TCP است.
B با ACK به فلگ SYN پاسخ می دهد.
A دوباره با یک ACK دیگر به ACK فرستاده شده از طرف B پاسخ می دهد.
در TCP سرعت را در مقابل اطمینان از دست می دهیم ولی در کاربردهائی که اطمینان مهم تر از سرعت است ، از TCP استفاده می کنیم.
هر TCP Segment نیز از دو بخش Header و Data تشکیل شده است.
در بخش Header یک سری اطلاعات کنترلی و آدرس Application فرستنده و گیرنده وجود دارد ( چون لایه Application در بالای لایه Transport قرار دارد و لایه Transport برای فرستادن اطلاعات خود به آدرس Application فرستنده و گیرنده نیاز دارد تا مشخص کند که چه Application ای در مبدا" با چه Application ای در مقصد می خواهد ارتباط برقرار کند.
) کاربردهای پروتکل TCP : 1.
E-Mail 2.
Remote Terminal Access 3.
Web 4.
File Transfer خواص پروتکل TCP : اصلاح خطای کامل احتیاج به Process های Open, Close دارد .
( 3-Way Handshaking ) برای واحدهای اطلاعاتی آن باید ACK صادر شود .
به دلیل Flow Control ، Load زیادی در سرورهای فرستنده و گیرنده به وجود می اورد .
ترافیک شبکه را بالا می برد ، چون برای هر واحد اطلاعاتی آن باید ACK صادر شود.
به دلیل پیاده سازی ACK تاخیر هم وجود دارد.
UDP ( User Data Protocol ) : پروتکل دیگری که در لایه Transport مطرح می شود ، پروتکل UDP است .
UDP پروتکلی است غیر قابل اطمینان و مشابه IP می باشد.
پس UDP پروتکلی است Connection Less در مقابل Connection Oriented .
در پروتکل های Connection Oriented درخواست برقراری ارتباط و اعلام آمادگی از طرف گیرنده وجود دارد ، ولی در پروتکل های Connection Less این مسئله وجود ندارد.
پس UDP مستقیما" ازاطلاعات را روی خط می فرستد ، نه Flow Control دارد ، نه Error Control .
در مقابل چون حجم واحد اطلاعاتی آن کم است ، Process چندانی روی آن انجام نمی شود و ترافیک شبکه را پائین می اورد.
تاخیر زمانی آن هم کم می باشد چون بحث Flow Control در اینجا وجود ندارد .
UDP Datagram هم دارای یک بخش Header و یک بخش Data می باشد.
حجم Header آن بسیار کم ( 8 Bytes ) می باشد ، که فقط دارای آدرس Application فرستنده و گیرنده ، طول واحد اطلاعاتی و Checksum می باشد.
شکستن اطلاعات در این پروتکل دیده نمی شود.
کاربردهای پروتکل UDP : 1.
Streaming Multimedia 2.
Remote File Server 3.
Internet Telephony Checksum : Checksum یک داده معمولا 16 بیتی است که به بلاک شخصی از اطلاعات برنامه ارسالی افزوده می شود.برنامه جاری روی سیستم ، موظف به سنجش ارزش 16 بیت مربوط به Checksum است .
اطلاعاتی که به وسیله برنامه فرستاده می شود ، Checksum را نیز در داخل بسته هایی به مقصد می فرستد.
وقتی که برنامه در مقصد، بسته های موجود را دریافت کرد، ارزش Checksum را مجددا محاسبه می کند.
اگر ارزش محاسبه شده توسط برنامه مقصد با ارزش Checksum ارسال شده برابر باشد آنگاه گفته می شود که اطلاعات دریافت شده معتبر است.
Pack sequencing (مرتبط شدن بسته های اطلاعا تی) : تمام اطلاعاتی که از داخل شبکه منتقل می شوند در مبدا به بسته های کوچک شکسته شده و در مقصد دوباره به همدیگر متصل می شوند.
اطلاعات با ترتیب و توالی مشخصی در مبدا شکسته می شوند ، برای مثال بایت ا ول ، شماره ترتیبی یک را دارد و بایت دوم شماره ترتیبی دو را دارد.
این بسته ها آزاد هستند که مستقلا داخل شبکه انتقال پیدا کنند، بنابراین به همان ترتیبی که از مبدا شروع به حرکت می کنند ممکن است در مقصد همان ترتیب و توالی را نداشته باشند.
برنامه یا لایه که در مقصد در حال اجرا می باشد بسته ها را بر اساس توالیشان، پشت سر هم می چسباند و این کار را با خواندن شماره ترتیب بسته ها انجام می دهد.
برای مثال اگر بخواهیم 1800 بسته 8 بیتی را داخل شبکه انتقال دهیم، قاعدتا شبکه قادر به انتقال تمامی آنها در یک زمان نیست بنابراین این 1800 بسته به 6 بسته 300 تایی 8 بیتی شکسته می شود.
به هریک از بسته ها شماره ای ترتیبی نسبت داده می شود و در مقصد این بسته ها پشت سر هم مرتب شده و فایل اولیه ساخته می شود.
اطلاعات به آسانی می توانند در طول انتقال از مبدا به مقصد خراب شوند بنابراین اگر برنامه کنترل کننده خطا در سیستم موجود باشد تقاضای ارسال مجدد بسته ها را می کند.
بنابراین تنها اطلاعات سالم و خراب نشده به مقصد می رسد، یک کنترل کننده خطا، وظیفه چک کردن از دست رفتن اطلاعات و خراب شدن آنها را دارد.
ارزش Checksum کنترل می کند که آیا اطلاعات در انتقال از مبدا به مقصد خراب شده یا از دست رفته اند.
روش دیگر (CRC) یاCycle Redundancy Checks است که به علت محاسبات بیش از حد هم اکنون بندرت مورد استفاده قرار می گیرد.
Handshaking (دست دادن) : Handshaking یا دست دادن روش دیگر آشکارسازی خرابی اطلاعات است ، این روش نیازمند این است که هم مبدا و هم مقصد پیغام تایید بفرستد که انتقال اطلاعات خراب شده را تایید می کند.
چنین پیغام های تایید شدهای تحت عنوان پیغامهای ACK(Acknowledge) نام برده می شود.
با ذکر مثالی به توضیح بیشتر می پردازیم.