Network Packet یا بسته‌ی شبکه چیست؟

Network Packet

03 اسفند 1399
Network Packet چیست؟

Network Packet که معمولا با نام خلاصه Packet یا «بستک» یا «بسته» شناخته می شود، بخش خاصی از یک درخواست بزرگ تر است. در یک شبکه (مانند اینترنت)، داده ها در قالب قسمت های کوچک و جدا شده ای به نام Packet ارسال می شوند و در نهایت این کامپیوترِ مقصد است که این پکت ها را سر هم کرده و به هم می چسباند تا داده کامل را بسازد. توجه کنید که بحث ما به طور کلی روی شبکه بوده و اینترنت فقط یک شبکه است. اینترنت یک نوع شبکه است نه اینکه شبکه و اینترنت هم معنی باشند. در واقع به دو یا چند کامپیوتر که به طریقی به هم متصل شده باشند یک شبکه می گوییم بنابراین شما می توانید بین دو لپتاپ یا یک لپتاب و سیستم دسکتاپ در خانه خودتان یک شبکه ایجاد کرده و از یک سیستم به فایل های سیستم دیگر دسترسی پیدا کنید. اینترنت شبکه ای از شبکه ها در سراسر این دنیا است که تمام کامپیوتر های زمین را به یکدیگر متصل می کند.

سرعت اینترنت در ایران آنقدر نیست که بتوانید ترکیب Packet ها در رایانه خودتان را حس کنید اما اگر زمانی به اینترنت بسیار سریع دسترسی پیدا کردید و در حال دانلود فایل بسیار حجیمی باشید (ده ها گیگابایت و بیشتر) متوجه درگیری CPU خواهید شد چرا که کار عمده سر هم کردن Packet ها بر عهده CPU است (مثل هر فرآیند پردازشی و محاسباتی از این دست - فشرده سازی). یک مثال ساده از روش کار پکت ها این است که شما می خواهید برای دوست خود پیامی طولانی بنویسید اما به جای استفاده از یک طومار و به زحمت انداختن خود، از چند صفحه جداگانه استفاده می کنید. دوست شما در نهایت می تواند این صفحه ها را با ترتیب صحیح کنار هم گذاشته و از صفحه اول تا آخر را مطالعه کند تا متوجه پیام کامل شما بشود.

چرا از Packet ها استفاده می کنیم؟

سوالی که مطرح می شود این است که چرا اطلاعات را به صورت Packet ارسال می کنیم؟ آیا نمی توانیم اطلاعات بین اعضای یک شبکه را به صورت یکجا ارسال کنیم؟ این کار در تئوری ممکن است. فرض کنید دو سیستم در یک شبکه موجود باشند و یکی از آن ها بخواهد یک فایل را به صورت یکجا به سیستم دیگر ارسال کند. در این حالت سیستم اول (فرستنده) فایل را به صورت یک سری بسیار طولانی از بیت ها به سمت سیستم دوم (گیرنده) ارسال خواهد کرد اما اگر سیستم سومی را به این شبکه اضافه کنیم دچار مشکل می شویم. مشکل اینجاست که ارسال داده ها به صورت سری و غیر منقطع، باعث اشغال کامل آن خط می شود (خطی که دو سیستم را به هم متصل می کند، چه خط تلفن باشد چه با امواج رادیویی و غیره) بنابراین سیستم سوم باید منتظر بماند تا تعامل سیستم اول و دوم تمام شود چرا که خط انتقال به صورت کامل اشغال شده است.

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

Packet Header چیست؟

اگر در حوزه وب فعالیت داشته باشید (چه در حوزه شبکه، چه در حوزه توسعه وب، چه در حوزه زیرساخت و تاسیسات و الی آخر) حتما با کلمه Header آشنا هستید. در زبان فارسی Header را به صورت «سرآیند» ترجمه می کنند اما از آنجایی که این کلمه یک کلمه بین المللی و مهم است من از همان نسخه اصلی (انگلیسی) آن استفاده می کنم. Packet Header ها مانند یک لیبل یا برچسب هستند که اطلاعاتی راجع به محتویات پکت، مبدا و مقصد آن را در خود دارند. باز هم به همان مثال نوشتن نامه ای طولانی برگردید. اگر نامه خود را به جای طومار در چندین صفحه نوشته باشیم، گیرنده از کجا بداند که کدام صفحه، صفحه اول و کدام صفحه، صفحه دوم و کدام صفحه، صفحه سوم است؟ همچنین گیرنده از کجا بداند که نامه ارسال شده از سمت ما ارسال شده است (هویت فرستنده)؟ ما باید در بالای هر صفحه شماره آن صفحه و نام فرستنده را نیز بنویسیم تا گیرنده بداند ترتیب خواندن صفحات چطور است و هر صفحه متعلق به کیست (گیرنده در این مثال از همه نامه دریافت می کند).

برای حل این مشکل هر Packet دو قسمت اصلی دارد: یک Header و یک payload. همانطور که در مثال نامه مشخص شد، Header اطلاعاتی کلی را راجع به آن پکت دارد مثل آدرس IP فرستنده و گیرنده اما payload محتوای اصلی ارسال شده است. به طور مثال اگر عکسی را در شبکه ارسال کنیم، این تصویر به صورت هزاران Packet ارسال می شود و هر Packet در بخش payload، قسمتی از تصویر را حمل می کند.

Packet Header ها از کجا می آیند؟

من برای ساده تر شدن بحث به شما گفتم که هر Packet یک Header دارد اما این حرف دقیق نیست چرا که Packet ها معمولا چندین Header دارند و هر Header مخصوص بخش خاصی از شبکه است. منبع Header ها کجاست؟ هر Header توسط پروتکل شبکه ای خاصی به Packet اضافه می شود. پروتکل چیست؟ در یک شبکه سیستم های مختلفی وجود دارند که از فرمت های خاصی پشتیبانی می کنند بنابراین اگر بخواهیم تمام سیستم های شبکه با هم داده رد و بدل کنند و حرف یکدیگر را بفهمند باید یک فرمت داده ثابت داشته باشیم. این پروتکل های شبکه هستند که چنین قرارداد ها و فرمت هایی را مشخص می کنند (پروتکل یعنی سری قرارداد و دستورالعمل خاص). معمولا تمام پکت هایی که در اینترنت هستند حداقل دو Header زیر را دارند:

  • Transmission Control Protocol یا TCP
  • Internet Protocol یا IP

امیدوارم از این موضوع لذت برده باشید. در مقاله های بعدی به سراغ مباحث بیشتری از شبکه خواهیم رفت.


منبع: وب‌سایت cloudflare

نویسنده شوید

دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.