TCP در مقابل UDP: از بین بردن بحث در مورد قابلیت اطمینان در مقابل کارآیی

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

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

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

TCP چیست؟ (myLinking'sشیر شبکهوتکارگزار بسته شبکهمی تواند هر دو بسته TCP یا UDP را پردازش کند)
TCP (پروتکل کنترل انتقال) یک پروتکل ارتباطی لایه حمل و نقل مبتنی بر بایت محور ، قابل اعتماد و بایت است.

وابسته به اتصال: اتصال محور به این معنی است که ارتباطات TCP یک به یک است ، یعنی بر خلاف UDP ، که می تواند به طور همزمان پیام ها را به چندین میزبان ارسال کند ، ارتباطات یک به یک به چندین میزبان ارسال شود ، بنابراین ارتباط یک به بیش از حد حاصل نمی شود.
قابل اعتماد: قابلیت اطمینان TCP تضمین می کند که بسته ها بدون در نظر گرفتن تغییرات در پیوند شبکه ، به صورت قابل اطمینان به گیرنده تحویل داده می شوند ، که باعث می شود قالب بسته پروتکل TCP پیچیده تر از UDP باشد.
مبتنی بر جریان بایت: ماهیت مبتنی بر بایت از TCP امکان انتقال پیام ها به هر اندازه را فراهم می کند و سفارش پیام را تضمین می کند: حتی اگر پیام قبلی به طور کامل دریافت نشده باشد ، و حتی اگر بایت های بعدی دریافت شده باشد ، TCP آنها را برای پردازش به لایه برنامه تحویل نمی دهد و به طور خودکار بسته های تکراری را رها می کند.
هنگامی که میزبان A و Host B یک اتصال برقرار کرده اند ، برنامه فقط برای ارسال و دریافت داده ها باید از خط ارتباطی مجازی استفاده کند ، بنابراین انتقال داده ها را تضمین می کند. پروتکل TCP وظیفه کنترل کارهایی مانند ایجاد اتصال ، قطع ارتباط و برگزاری را بر عهده دارد. لازم به ذکر است که در اینجا ما می گوییم خط مجازی فقط به معنای ایجاد اتصال است ، اتصال پروتکل TCP فقط نشان می دهد که دو طرف می توانند انتقال داده ها را شروع کنند و از قابلیت اطمینان داده ها اطمینان حاصل کنند. گره های مسیریابی و حمل و نقل توسط دستگاه های شبکه اداره می شوند. پروتکل TCP به خودی خود نگران این جزئیات نیست.

اتصال TCP یک سرویس کامل دوپلکس است ، به این معنی که میزبان A و میزبان B می توانند داده ها را از هر دو جهت در یک اتصال TCP منتقل کنند. یعنی داده ها را می توان بین میزبان A و میزبان B در یک جریان دو طرفه منتقل کرد.

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

TCP-UDP

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

بافر دریافت ، منطقه ای از حافظه است که توسط اجرای TCP در سمت دریافتی که برای ذخیره موقت داده های دریافت شده استفاده می شود ، نگهداری می شود. TCP داده های دریافت شده را در حافظه نهان دریافت می کند و منتظر است تا برنامه فوقانی آن را بخواند.

توجه داشته باشید که اندازه Send Cache و دریافت حافظه نهان محدود است ، هنگامی که حافظه نهان کامل است ، TCP ممکن است برخی از استراتژی ها ، مانند کنترل احتقان ، کنترل جریان و غیره را برای اطمینان از انتقال داده های قابل اعتماد و ثبات شبکه اتخاذ کند.

در شبکه های رایانه ای ، انتقال داده بین میزبان ها با استفاده از بخش ها انجام می شود. بنابراین یک بخش بسته چیست؟

TCP با تقسیم جریان ورودی به تکه ها و اضافه کردن هدرهای TCP به هر تکه ، یک بخش TCP یا بخش بسته ایجاد می کند. هر بخش فقط برای مدت زمان محدود قابل انتقال است و نمی تواند از حداکثر اندازه قطعه (MSS) فراتر رود. در مسیر پایین ، یک قطعه بسته از لایه پیوند عبور می کند. لایه پیوند دارای یک واحد انتقال حداکثر (MTU) است که حداکثر اندازه بسته است که می تواند از لایه پیوند داده عبور کند. حداکثر واحد انتقال معمولاً مربوط به رابط ارتباطی است.

بنابراین تفاوت بین MSS و MTU چیست؟

در شبکه های رایانه ای ، معماری سلسله مراتبی بسیار مهم است زیرا تفاوت بین سطوح مختلف را در نظر می گیرد. هر لایه نام متفاوتی دارد. در لایه حمل و نقل ، داده ها به یک بخش گفته می شود و در لایه شبکه ، داده ها را یک بسته IP نامیده می شود. بنابراین ، حداکثر واحد انتقال (MTU) را می توان به عنوان حداکثر اندازه بسته IP که می تواند توسط لایه شبکه منتقل شود ، تصور کرد ، در حالی که حداکثر اندازه قطعه (MSS) یک مفهوم لایه حمل و نقل است که به حداکثر مقدار داده هایی که می تواند توسط یک بسته TCP در یک زمان منتقل شود ، اشاره دارد.

توجه داشته باشید که وقتی حداکثر اندازه قطعه (MSS) از حداکثر واحد انتقال (MTU) بزرگتر باشد ، قطعه قطعه IP در لایه شبکه انجام می شود و TCP داده های بزرگتر را به بخش های مناسب برای اندازه MTU تقسیم نمی کند. بخشی در لایه شبکه اختصاص داده شده به لایه IP وجود خواهد داشت.

ساختار بخش بسته TCP
بیایید قالب و محتوای هدرهای TCP را کشف کنیم.

بخش TCP

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

شماره تأیید: این یک شماره دنباله ای است که در TCP برای تأیید دریافت داده ها استفاده می شود. این تعداد توالی داده های بعدی را که فرستنده انتظار دارد دریافت کند ، نشان می دهد. در یک اتصال TCP ، گیرنده تعیین می کند که داده ها بر اساس تعداد توالی بخش بسته داده های دریافت شده با موفقیت دریافت شده است. هنگامی که گیرنده با موفقیت داده ها را دریافت می کند ، یک بسته ACK را به فرستنده ارسال می کند ، که حاوی شماره تأیید تأیید است. پس از دریافت بسته ACK ، فرستنده می تواند تأیید کند که داده ها قبل از تأیید شماره پاسخ با موفقیت دریافت شده است.

بیت های کنترل یک بخش TCP شامل موارد زیر است:

بیت: هنگامی که این بیت 1 است ، به این معنی است که قسمت پاسخ تأیید معتبر است. TCP مشخص می کند که این بیت باید به جز بسته های SYN در ابتدا برقرار شود.
بیت اول: هنگامی که این بیت 1 است ، نشان می دهد که در اتصال TCP یک استثنا وجود دارد و اتصال باید مجبور به قطع شدن شود.
بیت سنتی: هنگامی که این بیت روی 1 تنظیم شده است ، به این معنی است که اتصال باید برقرار شود و مقدار اولیه شماره دنباله در قسمت شماره دنباله تنظیم شود.
بیت باله: وقتی این بیت 1 باشد ، به این معنی است که در آینده داده های بیشتری ارسال نمی شود و اتصال مورد نظر است.
توابع و ویژگی های مختلف TCP توسط ساختار بخش های بسته TCP تجسم یافته است.

UDP چیست؟ (MyLinking'sشیر شبکهوتکارگزار بسته شبکهمی تواند هر دو بسته TCP یا UDP را پردازش کند)
پروتکل Datagram کاربر (UDP) یک پروتکل ارتباطی بدون اتصال است. در مقایسه با TCP ، UDP مکانیسم های کنترل پیچیده ای را ارائه نمی دهد. پروتکل UDP به برنامه ها اجازه می دهد تا بدون ایجاد اتصال ، بسته های IP محصور شده را مستقیماً ارسال کنند. هنگامی که توسعه دهنده تصمیم به استفاده از UDP به جای TCP گرفت ، برنامه مستقیماً با IP ارتباط برقرار می کند.

نام کامل پروتکل UDP پروتکل Datagram کاربر است و هدر آن فقط هشت بایت (64 بیت) است که بسیار مختصر است. قالب هدر UDP به شرح زیر است:

بخش UDP

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

تفاوت بین TCP و UDP در MyLinkingشیر شبکهوتکارگزار بسته شبکهمی تواند هر دو بسته TCP یا UDP را پردازش کند
TCP و UDP از جنبه های زیر متفاوت هستند:

TCP در مقابل UDP

پیوستگی: TCP یک پروتکل حمل و نقل محور است که قبل از انتقال داده ها نیاز به برقراری اتصال دارد. از طرف دیگر UDP نیازی به اتصال ندارد و می تواند بلافاصله داده ها را منتقل کند.

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

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

کنترل احتقان ، کنترل جریان: TCP دارای مکانیسم های کنترل و کنترل جریان است که می تواند نرخ انتقال داده را با توجه به شرایط شبکه تنظیم کند تا از امنیت و ثبات انتقال داده ها اطمینان حاصل کند. UDP مکانیسم های کنترل و کنترل احتقان را ندارد ، حتی اگر شبکه بسیار احتقان باشد ، تنظیماتی را در نرخ ارسال UDP ایجاد نمی کند.

سربرگ: TCP دارای طول هدر طولانی است ، به طور معمول 20 بایت ، که هنگام استفاده از قسمت های گزینه افزایش می یابد. از طرف دیگر UDP دارای یک هدر ثابت تنها 8 بایت است ، بنابراین UDP دارای یک سربرگ پایین تر است.

TCP در مقابل UDP

سناریوهای برنامه TCP و UDP:
TCP و UDP دو پروتکل لایه حمل و نقل مختلف هستند و در سناریوهای کاربردی تفاوت هایی دارند.

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

انتقال پرونده FTP: TCP می تواند اطمینان حاصل کند که پرونده ها در هنگام انتقال از بین نمی روند و خراب نمی شوند.
http/https: TCP یکپارچگی و صحت محتوای وب را تضمین می کند.
از آنجا که UDP یک پروتکل بدون اتصال است ، ضمانت قابلیت اطمینان را ارائه نمی دهد ، اما ویژگی های کارآیی و زمان واقعی را دارد. UDP برای سناریوهای زیر مناسب است:

ترافیک کم بسته مانند DNS (سیستم نام دامنه): نمایش داده شدگان DNS معمولاً بسته های کوتاه هستند و UDP می تواند آنها را سریعتر تکمیل کند.
ارتباطات چندرسانه ای مانند فیلم و صوتی: برای انتقال چندرسانه ای با نیازهای زیاد در زمان واقعی ، UDP می تواند تأخیر کمتری را برای اطمینان از انتقال داده ها به موقع فراهم کند.
برقراری ارتباط: UDP از ارتباطات یک به بسیاری و بسیاری از ارتباطات پشتیبانی می کند و می تواند برای انتقال پیام های پخش استفاده شود.

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


زمان پست: دسامبر 03-2024