برنامه سازی شبکه با سی شارپ- 2# آشنایی با پروتکل های TCP و UDP

برنامه سازی شبکه در سی شارپ

در جلسه قبل انواع ارتباط بین سیستم ها را بررسی کردیم ، در پشته پروتکلی IP/TCP دو نوع ارتباط می توان با کامپیوتر راه دور ایجاد کرد:

اتصال به کامپیوتر راه دور به وسیله سوکت Data Strem

اتصال به کامپیوتر راه دور به وسیله سوکت DataGram

به بیان غیر رسمی به نوع ارتباط اول ( اتصال گرا ) ارتباط از نوع TCP گویند و اگر نوع برقرای ارتباط به حالت غیر اتصال گرا یا Datagram  باشد به آن UDP گویند. کاربرد حالت اتصال گرا در مواقعی است که نیاز به برقراری یک ارتباط امن بین دو ماشین فرستنده و گیرنده داشته باشیم یعنی از صحت دریافت اطلاعات در ماشین گیرنده مطمئن شویم. اما حالت غیر اتصال گرا (UDP) مواقعی استفاده می شود که خیلی دریافت اطلاعات توسط ماشین گیرنده اهمیتی نداشته باشد.

در زیر انواع ارتباط بین لایه های دو ماشین را می بینید.

انواع ارتباطات شبکه ای upd, tcp

پروتکلTCP(Transmission Control Protocol)

یکی از رایجترین پروتکلهایی است که در اینترنت کاربرد زیادی دارد.

وقتی یک صفحه اینترنتی را باز میکنید، کامپیوتر شما بسته های TCP را به وب سرور مقصد میفرستد و از سرور درخواست میکند که صفحه مورد نظر را ارسال کند. وب سرور هم با ارسال بسته های TCP جواب میدهد. این بسته ها را مرورگر وب به هم متصل کرده و به شکل یک صفحه اینترنتی درمیاورد. وقتی روی یک لینک کلیک میکنید، sign in میکنید، کامنت میگذارید و یا هر کار دیگری در فضای اینترنتی انجام میدهید، مرورگر وب شما بسته های TCP را به سرور میفرستد و سرور هم بسته های TCP را برمیگرداند.

TCPارتباطی یک طرفه نیست. وقتی یک بستهTCPفرستاده میشود، کامپیوتر مقصد در صورت دریافت، بسته هایی جهت تایید دریافت Acknowledge یا به اختصار ( Ack)را به سمت مبدأ میفرستد.

این پروتکل ضمانت میکند که با شماره گذاری بسته ها، آنها را به صورت منظم و به ترتیب، تحویل گیرنده دهد. گیرنده با فرستادن پیغامی به فرستندهاعلاممیکندکهپیامرادریافتکرده است. فرستنده تا وقتی که این پیام را دریافت نکند، مکررا بسته های تکراری را ارسال میکند.

در TCP، روشی هم برای جلوگیری از خطا وجود دارد. به این صورت که بسته هایی همراه با TCP ارسال میشوند که کارشان بررسی از دست نرفتن داده ها یا معیوب نشدن آنها در فاصله بین گیرنده و فرستنده است. دلیل مخدوش نشدن فایلهای دانلودی حتی با وجود قطع و وصل شبکه نیز، همین روش است. البته اگر گیرنده آفلاین باشد، فرستنده منصرف میشود و پیام خطایی با موضوع برقرار نشدن ارتباط با مقصد میدهد.

  • یک پروتکل اتصال گراست (Connected Oriented) یعنی قبل از انتقال واقعی داده بین دو هاست باید ارتباط بین آنها برقرار شود. پس از انتقال داده این اتصال را باید بست تا منابع سیستم آزاد شود.
  • ارتباط بصورت Full Duplex است یعنی ارسال و دریافت اطلاعات در یک زمان امکانپذیر است.
  • قابل اعتماد (Reliable) است یعنی صحت ارسال و دریافت داده ها را بدلیل گرفتن پاسخ (ack) تضمین می کند. اگر هم خطایی رخ دهد با تقاضای ارسال مجدد داده ها در واقع خطا برطرف می شود.
  • Stream Oriented یا مبتنی بر جریان است. یعنی داده ها بصورت رشته ای از بایتها انتقال می یابد..

مراحل ارتباط بین سیستم ها در پروتکل های tcp و udp

مزایای پروتکل TCP

سه چیز را تضمین می کند.

  • داده ها به مقصد برسند.
  • داده ها با ترتیب صحیح برسند.
  • داده ها بدون تکرار در مقصد دریافت شوند.

پروتکل UDP (User Datagram Protocol)

  • یک پروتکل غیر اتصال گراست. یعنی یک ارتباط غیراتصال گرا بین دو هاست برقرار می کند. یعنی یک داده در هر لحظه می تواند ارسال شود. بدون نیاز به هرگونه اعلام قبلی، مذاکره یا آماده سازی از قبل.
  • یک ارتباط غیرقابل اعتماد ایجاد می کند. یعنی هیچ تضمینی برای اطمینان از تحویل داده ها در مقصد وجود ندارد. فقط داده را ارسال می کند و امیدوار است که گیرنده داده ها را دریافت کند.
  • ممکن است باعث از دست دادن داده، دریافت داده تکراری یا دریافت داده با ترتیب غلط شود.

مزایای پروتکل UDP

  • سرعت بالا چون منتظر رسیدن ack نمی ماند.
  • در ارسال های چند پخشی و همه پخشی می توان از آن استفاده کرد.
  • محدود و ملزم به رعایت از مدل ارتباطی Connection Oriented نیستیم.

برچسب ها

, ,

محصولات پیشنهادی


نظرات کاربران


نظرات برای آموزش برنامه سازی شبکه با C# | بدون نظر »

کاربر عزیز، لطفاً دیدگاه ارزشمند خود را از طریق فرم زیر برای ما ارسال کنید:

درباره کدنویسان
آکادمی کدنویسان جهت کمک به دانشجویان رشته های کامپیوتر و فناوری اطلاعات و همه علاقمندان به طراحی و برنامه نویسی برای ویندوز، وب و موبایل ایجاد شده است.
بیشتر آموزش های سایت کدنویسان، بصورت رایگان ارائه شده است و بعضی بسته های آموزشی تصویری و نیز نرم افزارهای پیاده سازی شده در ازای پرداخت، قابل دانلود هستند.
هر گونه نظر، انتقاد یا پیشنهادی در مورد مطالب یا عملکرد کدنویسان دارید، حتما با ما در میان بگذارید.
نمادهای اعتماد ما


تماس با ما
  • شماره همراه : ۰۹۱۵۱۶۰۴۰۶۸
  • آی دی تلگرام : @mmoha94
  • پست الکترونیکی : mohammadi.sm@gmail.com
  • آدرس پستی : بیرجند، خیابان پیروزی، پیروزی ۹، پلاک ۲۸
کلیه حقوق متعلق به سایت کدنویسان است، انتشار و کپی برداری از مطالب این سایت غیرمجاز بوده و پیگرد قانونی دارد.