پروتکل های UDP-TCP-DDNS
وقت بخیر دوستان،دو تا سوال دارم:
1- پروتکل های TCP و UDP چه تفاوتی با هم دارند ؟
2-DDNS چیست؟
11 پاسخ
tcp چیست؟
Tcp (پروتکل کنترل انتقال) یک پروتکل ارتباطی اصلی مورد استفاده در شبکه های IP است. پروتکل TCP شامل لایه انتقال از مدل OSI است. TCP ارتباط کرا بود که فابلیل اطمینان با اعتباری را داراست.با روش اتصال گرا، دو گره از شبکه می توانند مخابره داشته باشند. با استفاده از TCP آنها باید ابتدا پروتکلی یا فرایندی با نام Handshaking (تکان دادن دست) را کامل کرده تا یک اتصال را ایجاد کنند.زمانی می گوییم که TCP قابلیت اطمینان با اعتباری را فراهم می کند یعنی اینکه TCP شامل مکانیزمی برای خطایابی و تصحیح خطا بین مبدا و مقصد است.این خصوصیت ازTCP مغایر UDP است که غیراتصال گرا و غیرقابل اعتماد است. پروتکلهای لایه بالاتری که از TCP شامل SMTP, HTTP, NNTP, FTP, TelNet, SSH, LDAP است.
UDP چیست ؟
پروتکل دیتاگرام کاربر یا UDP یک بخش از مجموعه پروتکل اینترنت است. با استفاده از آن برنامه ها بر کامپیوترهای مختلف یک شبکه می توانند پیام کوتاه را به شکل یه دیتاگرام به یکدیگر ارسال کنند. UDP میتواند در شبکه هایی کهTCP به صورت سنتی استفاده میشود استفاده گردد اما هیچ تعهدی بر اعتبار یا درستی ترتیب دادهها ندارد. دیتاگرامها ممکن است بدون اطلاع خراب شوند یا به محلی برسد که برایش ارسال نشده بود.اگرچه با دیدن این فاکتورها UDP به نظر پروتکل مفیدی به نظر نمیرسد. اما آن راه حل مناسبی برای استقاده در مکانهایی هستند که سرعت مهمتر از قابلیت اطمینان یا اعتماد بوده و اهمیت بیشتر دارد. از آنجایی که UDP سربار چک کردن اینکه داده به مقصد در هر بار ارسال داده را ندارد این مورد از UDP پروتکلی سریعتر و موثرتر میسازد. این پروتکل اغلب برای برنامههایی با اهمیتدهی بالا به زمان که از بین رفتن دادهها مقدمتر از نرسیدن آنها است مورد استفاده قرار میگیرد.UDP یک پروتکل بیمرز است که برای سرورهای سفارش شده در پاسخگویی به درخواستهای کوتاه به تعداد زیادی کلاینت هستند مفید است. در حالیکه TCP بیشتر برای اتصال میان یک سرور و یک کلاینت تنها استفاده میشود.
UDP برای بستههای انتشاری برای همه Board-casting - که به موجب آن یک بسته برای همه کلاینت های یک شبکه ارسال خواهد گردید- مورد استفاده قرار می گیرد.UDP نیازی به هیچ مکانیزم کنترل یا دوری از ازدحام شبکه ندارد سایر شکل های مکانیزمهای کنترل مبتنی بر شبکه احتیاج به پیاده سازی دارند تا از جریان بدون اشکال یا ترافیک (رفت و آمد) در یک شبکه مطمئن شوند.یک راه حل طراحی شده برای به عهده گرفتن این مشکل UDP یا DCCP (پروتکل کنترل تراکم دیتاگرام) که ارزیابی و کنترل ترافیک در شبکه UDP است.UDP وابسته به لایه انتقال میباشد. اگرچه تمام میزان ترافیک UDP یک بخش کوچکی از همه ترافیک شبکه است اما تعدادی از کاربردهای کلیدی در لایه بالاتر (لایه کاربردی) شبیه DNS و SNMP (پروتکل مدیریت شبکه ساده) از پروتکل UDP استفاده می نمایند.
دوست عزیز لطفا هیچوقت دو تا سئوال متفاوت رو در یک تاپیک قرار ندین امیدوارم در پست های آینده این مورد رو رعایت کنید که نظم وب سایت به هم نخوره اما در خصوص سئوالاتی که پرسیدین ، پروتکل های بصورت کلی دو دسته هستند یا TCP یا UDP ، بسته های اطلاعاتی که توسط TCP ارسال میشن به ازای ارسال هر بسته اطلاعاتی یک بسته تاییدیه هم دریافت میشه از مقصد که این بسته به درستی دریافت شده که در اصطلاح فنی Acknowledge Packet بهش میگن، این نوع ارتباط از نوع TCP باعث میشه شما مطمئن باشید اطلاعات شما بصورت تمام و کمال و بدون نقص به مقصد رسیده و به همین دلیل به TCP پروتکل اتصال گرا یا Connection Orientedگفته میشه ، اما خوب همه چیز هم ایده آل نیست ، زمانیکه شما به این شکل بسته ها رو ارسال می کنید و به ازای هر بسته یک تاییدیه دریافت می کنید سرعت انتقال اطلاعات شما پایین میاد اما طبیعتا دقت ارسال و دریافت بالا میره ، معمولا برای انتقال اطلاعات حساسی مثل نرم افزارها ، نام کاربری و رمز عبور و امثال اینجور داده ها از TCP استفاده میشه که مطمئن باشیم کوچکترین نقصی وجود نداره.
اما در خصوص UDP باید بگیم که بسته های UDP به ازای هر بسته اطلاعاتی تاییدیه دریافت نمی کنن و همین موضوع باعث میشه سرعت انتقال داده های شما بالا بره اما دقت طبیعتا پایین میاد ، البته شما در جایی از UDP استفاده می کنید که سرعت براتون مهمه نه دقت برای مثال برای ویدیو و موسیقی می تونید از UDP استفاده کنید چون اگر بسته ای هم به درستی دریافت نشد حداکثر چند پیکسل از تصویر دچار اختلال میشه نه همه فایل ، به UDP در اصطلاح فنی Connection Less گفته میشه ، توجه کنید که بعضی اوقات دیدم حتی متاسفانه برخی از اساتید دوره های شبکه میگن UDP تاییدیه دریافت نمی کنه این درست نیست ، UDP هم برای ارتباطات بسته Acknowledge دریافت می کنه اما به ازای هر Session نه مثل TCP به ازای هر Packet .... در خصوص سئوال دوم در خصوص DDNS یا همون Dynamic DNS می تونید به لینک زیر مراجعه کنید :
اینها از پیش تعریف شده هستند بر حسب شرایطی که برای صحت داده ها در نظر می گیریم ، استانداردها رو ما تعریف نمی کنیم ما فقط ازشون استفاده می کنیم .
شما چه در آپلود و چه در دانلود فیلم اولویت با سرعت هست نه صحت همونطوری که در پست قبلی مهندس خلیفی اشاره کردند ، در خصوص ایمیل هم حرف شما درست هست به ازای هر بسته اطلاعاتی یک بسته تاییدیه دریافت میشه اما شما نه متوجه میشید و نه باید متوجه بشید چون این در سطح پروتکل انجام میشه نه در سطح دید کاربر ، از طرفی باز هم یک نکته رو تاکید می کنم UDP خیلی هم به صحت اطلاعات بی اهمیت نیست بلکه اهمیت میده و دارای بسته تاییدیه هست اما همانطوری که گفتم در قالب هر Session ارتباطی نه به ازای هر بسته اطلاعاتی .
چه چیزی باعث میشه که به طور مثال در هنگام استفاده از webcam از پروتکل tcp و در هنگام دانلود از پروتکل udp استفاده کرد؟آیا اینها مسایلی از پیش تعیین شده هستند و یا پروتکلی باعث این انتخاب میشه؟
ممنون از همه ی دوستان بابت پاسخ های کاملی که دادن.این سایت در پیشرفت کاری و اطلاعاتم خیلی داره کمکم میکنه.امیدوارم همیشه پایدار باشه.آقای نصیری این موضوعی که گفتید رو واقعا نمیدونستم،چشم،از این به بعد همین کاری که شما فرمودید رو میکنم.ی سوال برام پیش اومد،مثال هایی که برای پروتکل UDP زدید،منظورتون "دانلود یا آپلود" موسیقی یا فیلمه؟ و مثالی که در TCP زدید منظورتون از انتقال نرم افزار رمز عبور و نام کاربری چیه؟مثلا وقتی میخوایم ایمیلمون رو چک کنیم و یوزر و رمز رو میزنیم،چه Acknowledge برامون ارسال میشه؟!ایا منظورتون همین بود؟!
Dynamic DNS چیست ؟
همانگونه که میدانید اسامی DNS ( مخفف Domain name system) برای راحتی به خاطر سپردن شناسه های سیستم ها به کار برده میشوند و شما به جای اینکه IP یک سیستم را برای اتصال به آن حفظ کنید میتوانید یک اسم را حفظ و این عمل تبدیل اسم به IP را بر عهده DNS-Server ها بگزارید . حال در صورتی که IP شما در هر بار اتصال به اینترنت تغییر کند چه باید کرد ؟ در این صورت از این سرویس یعنی Dynamic dns استفاده میکنند و به این صورت است که در صورتی که شما از این مورد استفاده کنید در صورت تغییر IP برنامه و یا اسکریپتی که انجام آپدیت را بر عهده دارد تغییر IP را بر روی اینترفیس Public شما تشخیص داده و رکورد و IP مربوط به سیستم شما را در سیستم اصلی و سروری که این سرویس را به شما ارائه میدهد به روز میکند و به این شکل شما همیشه با زدن یک آدرس اینترنتی میتوانید به سیستم خود دسترسی داشته باشید.بر خلاف حالت عادی که رکورد DNS دارای یک TTL ( عمر ذخیره سازی اطلاعات ) بر روی DNS سرور ها است موارد DDNS این عمر بسیار کوتاه است و همین باعث میگردد این مورد تقریبا به صورت ریل تایم انجام پذیرد ( عمر پیش فرض رکورد های DNS یک روز است و به همین دلیل با تغییر سرور یک سایت ممکن است تا 24 ساعت دسترسی به آن سایت با اختلال مواجه باشد) شرکت های زیادی هستند که این سرویس را ارائه میدهند و با توجه به پشتیبانی سخت افزار و یا نرم افزار که استفاده میکنید یک و یا چند حق انتخاب برای این کار داشته باشید ( معمولا سرویس دهنده ها دامین های مجانی هم به شما میدهند)
Session به معنی جلسه یا نشست هست ، وقتی شما یک ارتباط رو از مبدا به مقصد در شبکه برقرار می کنید در واقع یک Session ایجاد کردید ، مثال عملیش همین مکالمه تلفنی هست ، مکالمه تلفنی شما در واقع یک Session هست که شروع میشه ، مدیریت میشه و خاتمه پیدا می کنه ، زمانیکه میخاین فایلی رو منتقل کنید تو شبکه اول ارتباط برقرار میشه Session ساخته میشه شما داخل Session خودتون فایل رو منتقل می کنید.
داشتم این مطالب رو دوباره مرور میکردم و یک سوال برام پیش اومد ،منظورتون از session ارتباطی چیست؟
مثال ساده از UDP میشه Webcam و یا تلفن.شما وقتی با دوستتون تماس تصویری برقرار کردین، ممکنه ارتباط شما Stable نباشه و تصویر هی قطع و وصل بشه. یعنی شما ممکنه تعداد زیادی Frame رو از دست بدین. ولی در عوض سرعت انتقال بالاتری دارین.در UDP صحت اطلاعات مهم نیست، بلکه عملا سرعت انتقال مهم هستش. مثال دیگه هم تماس تلفنی که ممکنه هی قطع و وصل بشه و شما بخشی از حرفای دوستتون رو متوجه نشین.مثال TCP میشه Download کردن فایل از اکثر سایت های Download نرم افزار.شما وقتی فرضا یک فایل 80 مگابایتی رو Download میکنید، اگه حتی 1 بیت از این فایل درست Download نشده باشه، شما عملا با یک فایل ناقص مواجه میشین و میبایست دوباره Download کنین.در TCP صحت اطلاعات مهم هستش و خب در عوض سرعت انتقال اطلاعات کمتر از UDP هستش. چون به ازاء هر Packet که Download میشه، یک Packet به عنوان تاییدیه فرستاده میشه.
در تکمیل صحبت های دوست عزیز Alimoradism، در شکل میبینید که DNS از UDP استفاده میکنه.در حقیقت DNS Query از طرف کلاینت از UDP استفاده میکنه، در حالی Zone Transfer مابین DNS Server ها از TCP استفاده میکنه. برای اطلاعات بیشتر، به لینک زیر مراجعه کنید: