تفاوت پروتكلهاي TCP و UDP چيست
TCP و UDP دو پروتكلي هستند كه براي انواع مختلف داده استفاده ميشوند. دستگاهها و كامپيوترهاي متصل به اينترنت از پروتكلي به نام TCP/IP براي برقراري ارتباط با يكديگر استفاده ميكنند. TCP/IP مجموعهاي از پروتكلها است كه توسط دستگاهها براي برقراري ارتباط از طريق اينترنت و بيشتر شبكههاي محلي استفاده ميشود. نام TCP/IP از دو پروتكل اصلي يعني پروتكل كنترل انتقال (TCP) و پروتكل اينترنت (IP) گرفته شده است. TCP راهي براي تحويل و دريافت بستههاي اطلاعاتي مرتبشده و مطالعهشده از طريق شبكه را به برنامهها ارائه ميدهد. پروتكل ديتاگرام متخصص (UDP) توسط برنامهها استفاده ميشود تا با حذف مطالعه خطا، جريان سريعتري از اطلاعات ارائه بدهند.
هنگام پيكربندي سختافزار يا نرمافزار شبكهي خانگي، ممكن است به دانستن تفاوت بين پروتكل TCP و UDP نياز پيدا كنيد. براي درك تفاوت پروتكلهاي TCP و UDP و اينكه هر يك چه كاري ميكند، با اخبار تخصصي، علمي، تكنولوژيكي، فناوري مرجع متخصصين ايران همراه باشيد.
ويژگيهاي پروتكلهاي TCP و UDP
هنگامي كه كامپيوتري در نيويورك ميخواهد دادهاي را به كامپيوتري در تهران ارسال كند، بايد آدرس IP كامپيوتر مقصد (كامپيوتري كه در تهران است) را بداند. اين اطلاعات اغلب از طريق دو روش UDP و TCP ارسال ميشوند. TCP و UDP پروتكلهايي هستند كه براي ارسال بيتهاي دادهها يا همان بستهها از طريق اينترنت از آنها استفاده ميشود. هر دو پروتكل به پروتكل IP وابسته هستند؛ به عبارت ديگر، فرقي نميكند شما يك بسته را از طريق TCP يا UDP ارسال كنيد، درهرصورت اين بسته به يك آدرس IP ارسال ميشود.
پروتكل TCP
با استفاده از پروتكل كنترل انتقال (TCP)، كامپيوتر ارسالكنندهي داده، مستقيماً به كامپيوتري كه در حال ارسال داده به آن است متصل ميشود و تا مدتي كه انتقال صورت ميگيرد به آن متصل ميماند. با كمك اين روش اين دو كامپيوتر ميتوانند پس از تضمين ورود دادهها بهصورت ايمن و صحيح، اتصال را قطع كنند. اين روش انتقال دادهها، سريعتر و مطمئنتر است؛ اما بار بيشتري را به كامپيوتر وارد ميكند زيرا مجبور است اتصال و دادههاي موجود در آن را كنترل كند. براي مثال فرض كنيد كه تلفن را برداشتهايد و با دوستتان تماس گرفتهايد؛ پس از اتمام مكالمه هر دوي شما تلفن را قطع و اتصال را آزاد ميكنيد.
بستههاي ارسالشده با TCP رديابي ميشوند بنابراين هيچ دادهاي هنگام انتقال از بين نميرود يا خراب نميشود؛ به همين دليل است كه دانلود فايلها حتي در صورت قطع شبكه، مختل نخواهد شد. البته اگر گيرنده كاملاً آفلاين باشد، رايانهي شما از ارسال بسته منصرف ميشود و پيغام خطايي را مشاهده ميكنيد كه ميگويد نميتواند با ميزبان ارتباط برقرار كند. TCP از دو طريق به اين مهم دست مييابد:
- سفارش بستهها با شمارهگذاري آنها
- مطالعه خطا با فرستادن پاسخ توسط گيرنده به فرستنده مبني بر اينكه پيام را دريافت كرده است.
اگر فرستنده پاسخ صحيحي دريافت نكند، ميتواند بستهها را دوباره ارسال كند تا مطمئن شود گيرنده، آنها را بهدرستي دريافت كرده است. Process Explorer و ساير ابزارهاي نشاندهندهي پردازش سيستم ميتوانند نوع ارتباطات ايجادشده توسط يك فرايند را نشان بدهند. در تصوير زير ميتوانيد مرورگر كروم را با ارتباطات باز TCP به انواع سرور وب، مشاهده كنيد.
پروتكلهاي UDP
با استفاده از پروتكل ديتاگرام متخصص (UDP)، كامپيوتري كه اطلاعات را ارسال ميكند، دادهها را در بستههاي كوچك قرار ميدهد و به اميد اينكه به مقصد مورد انديشه متخصصين برسند، آنها را در شبكه آزاد ميكند. اين يعني UDP مانند TCP مستقيماً به كامپيوتر گيرنده متصل نميشود؛ بلكه دادهها را به خارج ميفرستد و به دستگاههاي بين رايانهي فرستنده و رايانهي گيرنده، اتكا ميكند تا آنها دادهها را در مقصد مورد انديشه متخصصين دريافت كنند.
اين روش انتقال، هيچ تضميني براي رسيدن دادههاي ارسالي به مقصد نميدهد. از طرف ديگر، اين روش انتقال، سربار بسيار كمي دارد؛ بنابراين استفاده از آن براي خدماتي كه دريافت و ارسال موفقيتآميز دادهها در اولين تلاش برايشان مهم نيست، متخصصد دارد. يك مثال ساده براي اين روش، استفاده از سرويسهاي پست قديمي است؛ شما نامهي خود را داخل صندوق پستي قرار ميدهيد و اميدواريد خدمات پستي آن را به مكان مناسب برساند. بيشتر اوقات اين كار صورت ميگيرد؛ اما گاهي اوقات در طول مسير نامه گم ميشود.
انتقال داده با استفاده از UDP سريعتر است؛ زيرا فرستنده صبر نميكند تا مطمئن شود كه گيرنده بسته را دريافت كرده است؛ بلكه به ارسال بستههاي بعدي ادامه ميدهد. اگر گيرنده، چند بستهي UDP را از دست بدهد، آنها گم ميشوند و فرستنده، دوباره آنها را ارسال نميكند. وقتي سرعت، ملاك اصلي باشد و تصحيح خطا چندان مورد نياز نباشد، از UDP استفاده ميشود. UDP اغلب در پخشهاي مستقيم ويديويي و بازيهاي الكترونيك استفاده ميشود.
بهعنوان مثال فرض كنيد در حال تماشاي يك پخش ويدئويي مستقيم هستيد كه با استفاده از UDP پخش ميشود. سرور فقط يك جريان ثابت از بستههاي UDP را به رايانهي تماشاكنندگان ميفرستد؛ پس زمانيكه اتصال شما براي چند ثانيه قطع ميشود، ممكن است ويدئو، لحظهاي متوقف بشود يا پرش داشته باشد؛ اما بعد از آن به بيت فعلي پخش ميرسد. اگر يك بخش جزئي از بسته را از دست بدهيد، ويدئو يا صدا براي لحظهاي تحريف ميشود و پخش فيلم بدون قسمتهاي ازدسترفته، ادامه پيدا خواهد كرد.
اين اتفاق در بازيهاي الكترونيك به همين شكل صورت ميگيرد. اگر هنگام بازي برخي از بستههاي UDP را از دست بدهيد، هنگام دريافت بستههاي جديدتر UDP، به انديشه متخصصين ميرسد كاراكتر بازي در نقشه تلهپورت كرده است. در صورت از دست دادن بستههاي قديمي، درخواست دريافت دوبارهي آنها فايدهاي ندارد؛ زيرا بازي بدون شما ادامه دارد؛ تمام آنچه مهم است، اين است كه در حال حاضر در سرور بازي چه اتفاقي ميافتد (نه آنچه چند ثانيه پيش رخ داده است). تصحيح نشدن خطا در TCP به سرعت اتصال بازي و كاهش تأخير كمك ميكند.
پورت TCP يا UDP
هر رايانه يا دستگاهي در اينترنت با يك شماره منحصربهفرد به نام آدرس IP شناخته ميشود. اين آدرس براي شناسايي رايانهي شما در بين ميليونها رايانهي ديگر متصل به اينترنت استفاده ميشود. وقتي اطلاعات از طريق اينترنت ارسال ميشود، رايانهي شما اين اطلاعات را با استفاده از پورتهاي TCP يا UDP قبول ميكند.
شما يك آدرس IP و تعداد زيادي پورت در اين آدرس IP داريد و ميتوانيد در مجموع ۶۵۵۳۵ پورت TCP و ۶۵۵۳۵ پورت UDP داشته باشيد. هنگاميكه يك برنامه روي كامپيوتر شما، اطلاعات را در اينترنت دريافت يا ارسال ميكند، در اصل آن برنامه دادهها را به يك آدرس IP و يك پورت خاص در رايانهي مقصد ارسال و دادهها را در يك پورت تصادفي در رايانهي شما دريافت ميكند. پروتكل TCP براي ارسال و دريافت دادهها از پورت TCP و پروتكل UDP براي ارسال و دريافت دادهها از پورت UDP استفاده ميكند. تصوير زير، نمايشي از يك آدرس IP است كه به پورتهاي TCP و UDP زيادي تقسيم شده. توجه داشته باشيد كه هرگاه برنامهاي خود را به پورت خاصي متصل كند، هيچ برنامهي ديگري نميتواند از آن پورت استفاده كند.
از آنجا كه درك اين موضوع كمي سخت است، براي شما يك مثال ساده خواهيم زد؛ در اين مثال از سرورهاي وب استفاده ميكنيم. ميدانيد كه وبسرور، كامپيوتري است كه برنامهاي را اجرا ميكند و به ساير رايانهها، امكان اتصال به آن و دسترسي به صفحات وب ذخيرهشده در آنجا را ميدهد.
براي اينكه يك سرور وب بتواند درخواست ارتباط رايانههاي از راه دور را بپذيرد، بايد برنامهي سرور وب را به يك پورت محلي متصل بكند. پس از اين، سرور وب از اين پورت براي گوش دادن و پذيرش ارتباط رايانههاي از راه دور استفاده ميكند. سرورهاي وب معمولاً به پورت 80 TCP متصل ميشوند؛ همان پورتي كه پروتكل http بهطور پيشفرض از آن استفاده ميكند و سپس منتظر اتصال كامپيوترهاي راه دور ميماند. پس از اينكه يك دستگاه متصل شد، صفحات وب درخواستي را به دستگاه از راه دور ارسال و بعد از اتمام، اتصال را قطع ميكند.
از طرف ديگر اگر يك متخصص از راه دور باشيد كه ميخواهد به يك سرور وب متصل بشود، اين موضوع برعكس ميشود؛ مرورگر وب شما يك پورت TCP تصادفي را از طيف خاصي از شمارهي پورتها انتخاب و سعي ميكند به پورت ۸۰ در آدرس IP سرور وب متصل شود. وقتي اتصال برقرار شد، مرورگر وب درخواست را براي يك صفحهي وب خاص ارسال ميكند و آن را از سرور وب دريافت ميكند؛ پس از اين هر دو كامپيوتر اتصال را قطع خواهند كرد.
اما چگونه ميتوانيد يك سرور FTP را (كه به شما اجازه ميدهد فايلها را از رايانههاي راه دور و در همان سرور وب منتقل و دريافت كنيد) اجرا كنيد؟ سرورهاي FTP از پورتهاي TCP 20 و TCP 21 براي ارسال و دريافت اطلاعات استفاده ميكنند، بنابراين شما هيچ كشمكشي با وب سرور در حال اجرا روي پورت TCP 80 نخواهيد داشت. درنتيجه هنگامي كه برنامهي سرور FTP اجرا ميشود، خود را به پورتهاي TCP 20 و TCP 21 متصل ميكند و براي ارسال و دريافت دادهها، منتظر اتصال ميماند.
استفاده از پروتكلها
برنامهها با توجه به نيازهاي خود و تصميم توسعهدهندگان آنها از TCP يا UDP استفاده ميكنند. اكثر برنامهها به تصحيح خطا و پايداري TCP نياز دارند؛ اما برخي از برنامهها به سرعت و كاهش سربارِ UDP نيازمند هستند. اگر مدير شبكه يا توسعهدهندهي نرمافزار نيستيد، اين موضوع نبايد تأثير زيادي روي كار شما داشته باشد. به كمك يك ابزار تجزيهوتحليل شبكه مانند Wireshark، ميتوانيد انواع مختلف بستهها را كه در حال انتقال هستند، مشاهده كنيد.
اگر روتر يا نرمافزار فايروال خود را پيكربندي كردهايد و مطمئن نيستيد برنامهاي از TCP يا UDP استفاده ميكند، بهسادگي ميتوانيد گزينهي Both را انتخاب كنيد تا روتر يا فايروال شما همان قانون را براي ترافيك TCP و UDP اعمال كند.
هم انديشي ها