پردازش بسته کیست؟ توضیح بده.
در شبکه‌های ارتباطی دیجیتال ، پردازش بسته به طیف گسترده‌ای از الگوریتم‌ها گفته می‌شود که بر روی یک بسته داده ها یا اطلاعات در حال حرکت در عناصر مختلف شبکه یک شبکه ارتباطی اعمال می‌شود. متناظر با افزایش و بهبود عملکرد رابط های شبکه، نیاز مربوط به پردازش سریعتر بسته ها به وجود می آید.دو دسته گسترده و وسیع از الگوریتم های پردازش بسته وجود دارند که با دو زیرقسمت شبکه استاندارد شده، صفحه کنترل و صفحه داده، همسو می شوند. این الگوریتم ها برای یکی از موارد زیر اعمال می شوند:یادر هر دستگاه فعال شبکه (به عنوان مثال روتر ، سوئیچ ، عناصر شبکه یا ترمینال مانند رایانه یا تلفن هوشمند)، این زیرسیستم پردازش بسته است که پیمایش شبکه چند لایه یا پشته پروتکل ( به انگلیسی: ) را از لایه های پایین تر فیزیکی و شبکه، تا راه رسیدن به لایه برنامه مدیریت میکند.تاریخچه.تاریخچه پردازش بسته، همان تاریخچه اینترنت و راه‌گزینی بسته (به انگلیسی: packet switching) است. نقاط عطف تاریخی پردازش بسته شامل:منابع تاریخی و نمودار زمانی مربوطه را می توان در قسمت منابع خارجی زیر یافت.مدل های ارتباطی.برای موفقیت و کارآمدی شبکه ها، داشتن یک استاندارد یکپارچه و کلی که معماری سیستم های شبکه ای را برای آن تعریف می کند، ضروری است. نیاز اساسی برای چنین استانداردی، ارائه چارچوبی است که تولیدکنندگان سخت افزار و نرم افزار در سراسر جهان را قادر می سازد تا فناوری های شبکه ای را توسعه دهند که با هم کار میکنند و از ظرفیت های سرمایه گذاری فزاینده خود برای پیشبرد وضعیت شبکه سازی رو به جلو استفاده کنند.در دهه 1970، دو سازمان، سازمان بین المللی استانداردسازی (ISO) و (CCITT که اکنون اتحادیه بین المللی مخابرات (ITU-T) ) نامیده می شود، هر کدام پروژه هایی را با هدف توسعه استانداردهای بین المللی شبکه آغاز کردند. در سال 1983، این تلاش ها ادغام شدند و در سال 1984 استانداردی به عنوان مدل اتصال متقابل سامانه های باز توسط ISO و به عنوان استاندارد X.200 توسط ITU-T منتشر شد.مدل OSI یک مدل 7 لایه است که نحوه کار و عملکرد یک سیستم عامل شبکه را توصیف می کند. یک مدل لایه‌ای مزایای زیادی دارد از جمله توانایی تغییر یک لایه بدون تأثیر گذاشتن بر لایه‌های دیگر و به‌عنوان مدلی برای درک نحوه عملکرد یک سیستم‌عامل شبکه. تا زمانی که ارتباط بین لایه ها حفظ شود، فروشندگان می توانند پیاده سازی یک لایه مستقل را بدون تأثیرگذاری بر سایر لایه ها بهبود ببخشند.هم راستا با توسعه مدل OSI، یک شبکه تحقیقاتی توسط آژانس پروژه های تحقیقاتی پیشرفته دفاعی ایالات متحده ( دارپا ) در حال پیاده سازی بود. پروتکل شبکه تقابلی که برای پشتیبانی از شبکه ایجاد شد، به نام ARPAnet ، برنامه کنترل انتقال یا TCP نامیده شد.همزمان با پیشرفت تحقیقات و توسعه پروژه، اندازه شبکه بزرگ تر شد، مشخص گردید که طراحی شبکه تقابلی مورد استفاده ناکارآمد بوده و دقیقاً از رویکرد لایه‌ای مدل OSI پیروی نمی‌کند. این امر باعث تقسیم TCP اولیه و به وجود آمدن معماری TCP/IP شد - اکنون TCP مخفف پروتکل کنترل انتقال و IP مخفف پروتکل اینترنت میباشد.ظهور پردازش بسته.بسته های شبکه در نتیجه نیاز در اوایل دهه 1960 برای مطمئن تر کردن شبکه های ارتباطی به وجود آمدند. می توان آن را به عنوان پیاده سازی مدل لایه ای با استفاده از ساختار بسته مشاهده نمود.شبکه های تجاری اولیه متشکل از مدارهای آنالوگ اختصاصی بودند، که از آن ها برای ارتباطات صوتی استفاده می شد. مفهوم راه گزینی بسته (به انگلیسی: packet switching ) برای ایجاد یک شبکه ارتباطی معرفی شد که با وجود خرابی تجهیزات در سراسر شبکه، به کار خود ادامه دهد. در این تغییر پارادایم، شبکه‌ها به عنوان مجموعه‌ای از سیستم‌ها در نظر گرفته می‌شوند که داده‌ها را در بسته‌های کوچکی انتقال میدهند که مسیر خود را از مبدا به مقصد و با هر تعداد مسیر می یابند. توابع اولیه پردازش بسته از مسیریابی( شبکه ) بسته ها از طریق شبکه، تشخیص و تصحیح خطای انتقال و سایر عملکردهای مدیریت شبکه پشتیبانی می کردند.راه گزینی بسته با توابع پشتیبانی کننده پردازش بسته ، مزایای عملی متعددی نسبت به شبکه های سوئیچ مدار سنتی دارد:ساختار بسته.یک بسته شبکه جزء اساسی سازنده شبکه های راه‌گزینی بسته (به انگلیسی: packet-switched networks ) است. هنگامی که یک آیتم مانند یک فایل، پیغام ایمیل، صدا یا جریان ویدیویی از طریق شبکه انتقال می یابد، به قطعاتی به نام بسته تقسیم می شود که می تواند به طور موثرتر از یک بلوک بزرگ داده در شبکه جابجا شود. استانداردهای متعددی ساختار بسته ها را پوشش می دهد، اما معمولا بسته ها از سه عنصر تشکیل شده اند:در یک شبکه راه گزینی بسته (به انگلیسی: packet-switched network) ، کامپیوتر میزبان فرستنده آیتم اولیه را بسته بندی می کند و هر بسته از طریق شبکه به مقصد خود هدایت می شود. برخی از شبکه‌ها از بسته‌های با طول ثابت، معمولاً 1024 بیتی، استفاده می‌کنند، در حالی که برخی دیگر از بسته‌های با طول متغیر استفاده می‌کنند و طول بسته را در هدر لحاظ میکنند.بسته های منفرد ممکن است مسیرهای متفاوتی را به مقصد انتخاب کنند و خارج از نظم اولیه به مقصد برسند. رایانه مقصد صحت و درستی داده ها را در هر بسته تأیید میکند (با استفاده از اطلاعات موجود در تریلر بسته)، آیتم اولیه را با استفاده از اطلاعات شماره بسته در سربرگ، دوباره جمع می کند و آیتم را به برنامه یا کاربر دریافت کننده ارائه می دهد.این مثال بنیادی شامل سه عملکرد اساسی پردازش بسته، بسته بندی، مسیریابی و دوباره سرهم کردن ( assembly ) است. توابع پردازش بسته طیفی از ساده تا بسیار پیچیده را شامل میشوند. به عنوان مثال، تابع مسیریابی در واقع یک فرآیند چند مرحله‌ای است که شامل الگوریتم‌های بهینه‌سازی مختلف و جستجو های جدول است. یک تابع بنیادی مسیریابی در اینترنت چیزی شبیه به این است:1. بررسی کنید که آیا مقصد، آدرسی است که متعلق به این رایانه است. اگر چنین است، بسته را پردازش کنید. اگر نه:توابع مسیریابی پیشرفته‌تر شامل متعادل‌سازی بار ترافیکی (به انگلیسی: load balancing ) شبکه و الگوریتم‌های سریع‌ترین مسیر هستند. این مثال‌ها طیف الگوریتم‌های ممکن برای پردازش بسته و اینکه چگونه می‌توانند تاخیرهای قابل توجهی را در انتقال یک آیتم ایجاد کنند، را نشان میدهند. طراحان تجهیزات شبکه، اغلب از ترکیبی از شتاب دهنده های سخت افزاری و نرم افزاری برای به حداقل رساندن تاخیر در شبکه استفاده می کنند.معماری تجهیزات شبکه.تجهیزات مبتنی بر پروتکل اینترنت ( IP ) را می توان به سه عنصر بنیادی تقسیم کرد: صفحه داده، صفحه کنترل و صفحه مدیریت.صفحه داده. زیرسیستمی از یک گره شبکه است که بسته‌ها را به وسیله یک رابط دریافت و ارسال می‌کند، آن‌ها را طبق یک پروتکل مناسب و اجرا شدنی پردازش می‌کند و در صورت لزوم آنها را تحویل داده، رها کرده، یا ارسال می‌کند.صفحه کنترل.صفحه کنترل اطلاعاتی را نگهداری و ذخیره می کند که می توان از آنها برای تغییر داده های استفاده شده توسط صفحه داده استفاده نمود. حفظ این اطلاعات نیازمند مدیریت پروتکل های پیام رسانی ( به انگلیسی: signaling protocols ) پیچیده است. پیاده سازی این پروتکل ها در صفحه داده منجر به عملکرد ضعیف ارسال بسته ها می گردد. یک راه متداول برای مدیریت این پروتکل ها این است که به صفحه داده اجازه شناسایی بسته های سیگنال ورودی داده شود و بتواند آنها را به صورت محلی به صفحه کنترل ارسال کند. پروتکل های پیام رسانی ( به انگلیسی: signaling protocols ) صفحه کنترل می توانند اطلاعات صفحه داده را به روزرسانی کنند و بسته های سیگنال خروجی را به صفحه داده تزریق کنند. این معماری کار می کند زیرا ترافیک سیگنالینگ بخش بسیار کوچکی از ترافیک جهانی را شامل میشود.صفحه مدیریت.صفحه مدیریت یک رابط مدیریتی برای سیستم کلی ارائه می کند. این متشکل از فرآیندهایی است که از اقدامات مدیریت عملیاتی، مدیریت، پیکربندی یا تدارک پشتیبانی می کنند مانند:راه‌حل‌های پیچیده‌تر مبتنی بر XML ( زبان نشانه‌گذاری توسعه‌یافته ) نیز می‌توانن شامل شوند.مثال ها.لیست برنامه های کاربردی پردازش بسته معمولاً به دو دسته تقسیم می شود. در ادامه چند مثال برای نشان دادن تنوع کاربرد های امروزه ، انتخاب شده است.معماری های پردازش بسته.راه‌گزینی بسته همچنین برخی مصالحه های مربوط به معماری را معرفی می کند. اجرای توابع پردازش بسته در انتقال اطلاعات، باعث به وجود آمدن تاخیرهایی می شود که ممکن است برای برنامه در حال اجرا مضر باشند. به عنوان مثال، در برنامه های صوتی و تصویری، تبدیل لازم از آنالوگ به دیجیتال و برعکس در مقصد، همراه با تاخیرهای ایجاد شده توسط شبکه می توانند باعث ایجاد شکاف های محسوسی شوند که برای کاربران اختلال ایجاد می کنند. تأخیر (به انگلیسی: latency ) ، یک اندازه گیری تاخیر زمانی است که توسط یک سیستم پیچیده تجربه می شود.رویکرد های مختلف معماری برای پردازش بسته با هدف رسیدگی به عملکرد و الزامات کارکردی یک شبکه خاص و همچنین رسیدگی به مشکل تاخیر توسعه داده شده اند.معماری تک رشته ای (سیستم عامل استاندارد).یک پشته شبکه استاندارد (به انگلیسی: standard networking stack ) از خدمات ارائه شده توسط سیستم عامل (OS) در حال اجرا بر روی یک پردازنده واحد ( تک رشته ای ) استفاده می کند. با وجود اینکه معماری های تک رشته ای از نظر پیاده سازی ساده ترین نوع هستند، اما آنها مشمول هزینه های سربار مرتبط با عملکرد توابع سیستم عامل مانند preemption ها، مدیریت رشته، تایمرها و قفل کردن میشوند. این هزینه های سربار پردازش سیستم عامل بر روی هر بسته ای که از سیستم عبور می کند تحمیل می شوند که منجر به جریمه در توان کلی می شود.معماری چند رشته ای (سیستم عامل چند پردازشی).عملکرد پشته شبکه سیستم عامل می تواند با تطبیق نرم افزار پردازش پشته پروتکل برای پشتیبانی از چندین پردازنده ( چند رشته ای )، یا از طریق استفاده از پلتفرم های متقارن چند پردازشی (SMP) یا معماری پردازنده چند هسته ای ، بهبود یابد. افزایش و بهبود عملکرد برای اعداد کوچکی از پردازنده ها مشهود میباشند، اما نمی تواند در تعداد بیشتری از پردازنده ها (یا هسته ها) به صورت خطی مقیاس شود و برای مثال پردازنده ای با هشت هسته ممکن است پردازش بسته ها را به طور قابل توجهی سریعتر از یک پردازنده با دو هسته انجام ندهد.معماری مسیر سریع (بای پس سیستم عامل).در پیاده سازی ، صفحه داده به دو لایه تقسیم می شود. لایه پایینی که اغلب مسیر سریع نامیده می شود، اکثر بسته های ورودی را در خارج از محیط سیستم عامل پردازش می کند و بدون اینکه هیچ یک از هزینه های سربار سیستم عامل را متحمل شود که عملکرد کلی را کاهش می دادند، پردازش می کند. فقط بسته هایی که نیاز به پردازش پیچیده ای دارند به پشته شبکه سیستم عامل (لایه بالایی صفحه داده) ارسال می شوند که عملکردهای لازن برای مدیریت، پیامرسانی (به انگلیسی: signaling ) و کنترل را انجام می دهد. هنگامی که الگوریتم های پیچیده ای مانند مسیریابی ( شبکه ) یا امنیت مورد نیاز هستند، پشته شبکه سیستم عامل بسته را به اجزای نرم افزار اختصاصی در صفحه کنترل ارسال می کند.یک پردازنده چند هسته ای می تواند عملکرد بهبود یافته مضاعفی را برای پیاده سازی مسیر سریع ارائه دهد. به منظور به حداکثر رساندن توان کلی سیستم،می توان چندین هسته را به اجرای مسیر سریع اختصاص داد، در حالی که تنها یک هسته برای اجرای سیستم عامل، پشته شبکه سیستم عامل و صفحه کنترل برنامه ها مورد نیاز خواهد بود.تنها محدودیت در پیکربندی پلتفرم این میباشد که از آنجایی که هسته‌های اجرا کننده مسیر سریع، خارج از سیستم‌عامل اجرا می‌شوند، پس باید منحصراً به مسیر سریع اختصاص داده شوند و با نرم‌افزارهای دیگر به اشتراک گذاشته نشوند. با تغییر الگوهای ترافیک، سیستم را نیز می توان به صورت پویا دوباره پیکربندی نمود. همچنین، تقسیم صفحه داده به دو لایه نیز باعث افزایش پیچیدگی میشود زیرا هر دو لایه باید اطلاعات یکسانی داشته باشند تا از سازگاری و تداوم سیستم اطمینان حاصل شود.فناوری های پردازش بسته.به منظور ایجاد بسترهای تخصصی پردازش بسته، فناوری های مختلفی توسعه یافته و به کار گرفته شده اند . این فناوری‌ها، که طیفی از سخت‌افزار ها و نرم‌افزار ها را در بر می‌گیرند، همگی با هدف به حداکثر رساندن سرعت و توان کلی و در عین حال به حداقل رساندن تأخیر، طراحی شده‌اند.پردازنده های شبکه.یک واحد پردازشگر شبکه (NPU) از بسیاری جهات شبیه به پردازنده‌های هدف عمومی (به انگلیسی: general purpose processors ) میباشد که اکثر رایانه‌ها را تغذیه می‌کنند، اما با معماری داخلی و عملکردهای متناسب با عملیات های شبکه محور. واحد های پردازشگر شبکه معمولاً دارای توابع خاص شبکه مانند جستجوی آدرس، تطبیق الگو و مدیریت صف هستند که در ریزبرنامه سازی (به انگلیسی: microcode ) خود تعبیه شده است. عملیات های پردازش بسته سطح بالاتر مانند امنیت یا تشخیص نفوذ اغلب در معماری های NPU تعبیه شده اند . نمونه های پردازنده شبکه عبارتند از:پردازنده های چند هسته ای.یک پردازنده چند هسته ای یک بسته نیم رسانا منفرد است که دارای 2 یا چند هسته میباشد که هر یک نشان دهنده یک واحد پردازش جداگانه است که قادر به اجرای کد به صورت موازی هستند. CPUهای عمومی همانند Intel Xeon ، اکنون تا 8 هسته را پشتیبانی می کنند . برخی از پردازنده‌های چند هسته‌ای قابلیت‌ها و ظرفیت های پردازش بسته اختصاصی را برای ارائه یک سیستم روی تراشه کامل ( SoC )، تلفیق می‌کنند. آنها معمولاً رابط‌های اترنت، موتورهای رمزنگاری ، موتورهای تطبیق الگو ، صف‌های سخت‌افزاری برای کیفیت خدمات( QoS ) و گاهی اوقات عملکردهای پیچیده‌تر را با استفاده از ریز هسته‌ها ادغام می‌کنند. همه این ویژگی‌های سخت‌افزاری می توانند پردازش بسته‌های نرم‌افزاری را بارگیری کنند. نمونه‌های اخیر این بسته‌های تخصصی چند هسته‌ای، همانند Cavium OCTEON II، می‌توانند از ۲ تا ۳۲ هسته پشتیبانی کنند.شتاب دهنده های سخت افزاری.برای اقدامات واضح، قابل تعریف و تکراری ، راه حل ایجاد یک شتاب دهنده اختصاصی که مستقیما در یک سخت افزار نیم رسانا ساخته شده است، در مقایسه با نرم افزاری که روی یک پردازنده با هدف عمومی اجرا می شود، سرعت عملیات را افزایش می دهد. در پیاده سازی های اولیه از FPGA (آرایه دروازه میدانی برنامه پذیر) یا ASICs (مدار مجتمع ویژه برنامه) استفاده می شد، اما هم اکنون عملکردهای خاصی مانند رمزگذاری و فشرده سازی هم در GPP و هم در NPU به عنوان شتاب دهنده های سخت افزاری داخلی تعبیه شده اند . نمونه‌های پردازنده‌های چند هسته‌ای کنونی با شتاب‌دهنده‌ های سخت‌افزاری مخصوص شبکه شامل Cavium CN63xx با شتاب دهنده برای امنیت، TCP/IP ، تطبیق الگو های QOS و HFA و خانواده پردازنده‌های Netlogic Microsystems XFS با موتورهای شتاب‌دهنده شبکه ای و امنیتی هستند.بازرسی عمیق بسته.توانایی تصمیم گیری بر اساس محتوای هر بسته، طیف وسیعی ای از برنامه های کاربردی جدید مانند (PCRF) و کیفیت خدمات را امکان پذیر می کند. سیستم‌های پردازش بسته، انواع ترافیک خاص را از طریق استفاده از فناوری‌های بازرسی بسته عمیق (DPI) تفکیک می‌کنند. فناوری‌های DPI از الگوریتم‌های تطبیق الگو برای بررسی بار داخلی داده‌ها برای شناسایی محتویات هر بسته‌ای که در یک دستگاه شبکه جریان دارد، استفاده می‌کنند . تطبیق الگوهای موفق برای هر اقدام مناسب بعدی به برنامه کنترل گزارش می شوند.نرم افزار پردازش بسته.نرم افزار سیستم عامل شامل پشته های شبکه استاندارد خاصی است که هم در محیط های تک هسته ای و چند هسته ای کار می کنند. برای اینکه بتوان معماری‌های bypass سیستم‌عامل (مسیر سریع) را پیاده‌سازی کرد، نیاز به استفاده ااز نرم‌افزارهای تخصصی پردازش بسته‌ها مانند است. این نوع نرم‌افزار مجموعه‌ای از پروتکل‌های شبکه را ارائه می‌کند که قادرند در چندین تیغه، پردازنده یا هسته توزیع شوند و به طور مناسب مقیاس شوند.