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

نحوه محاسبه و عملکرد Checksum Header در Header بسته IP

در مقاله قبل  به صورت مختصر راجع به هدر IP صحبت شد. اینبار نوبت هدر Check sum می باشد که توضیحاتی را در ذیل عکس قرار می دهم.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
وب سایت توسینسو

نحوه محاسبه (عملکرد) کنترلی TCP و هدر TCP

تشخیص خطاهای انتقال با استفاده از کنترلرها : برای فراهم نمودن امنیت پایه ای در مقابل خطاها حین انتقال، TCP/IP در هدر خود دارای یک فیلد کنترلی 16بیتی می باشد.تفکری که در پس این کنترلر می باشد مستقیم و رو به جلو است.به عبارتی: دریافت یک عبارت(رشته) از داده ها بر حسب بایت و افزودن آنها به همدیگر. سپس مجموعه را به همراه رشته داده ای ارسال نموده و دریافت کننده مجموعه را کنترل می کند.در TCP برای محاسبه این کنترلر(چک سام) بوسیله دستگاه ارسال کننده قطعه الگوریتم بخصوصی بکار میرود و سپس الگوریتم مشابهی در گیرنده برای کنترل داده رسیده و اطمینان از صحت انتقال و عدم وجود خطا استفاده میشود.محاسبه کنترلی بکار رفته در TCP نسبت به الگوریتم کنترلی منظم یک بیت تفاوت دارد.

وب سایت توسینسو

یک کنترلر معمولی بر روی همه بایتهایی که چک سام برای محافظت در نظر گرفته است اجرا می شود و می تواند در هریک از آن فیلدها بیشترین خطاها را تشخیص دهد.براساس محاسبه checksum قسمت شبه هدر TCP قبل از سگمنت TCP به طور منطقي قرار داده مي شود و Checksum محاسبه مي گردد هم بر اساس سگمنت TCP هم بر اساس شبه هدر .شبه هدر هنگامي كه قسمت TCP به مقصد مي رسد نرم افزار TCP دريافتي همان محاسبات را انجام مي دهد . آن شبه هدر را شكل مي دهد و قسمت واقعي TCP و سپس checksum را اجرا مي كند.(تنظيم مي كند checksum را به 0 وبراي محاسبه همانند قبل اگر مقدارش با فرستنده يكي نبود در checksum قرار مي دهد اين نشان مي دهد كه يك خطاي ترتيبي اتفاق افتاده و سگمنت به صورت طبيعي از بين رفته است) چک سام از لايه 3 به لايه 2 تمام data را ميگيرد و يك check sum یا یک شبه هدر به تريلر آن اضافه ميكند.

شبه هدري كه به check sum اضافه مي شود حاوي اطلاعات مبداً و مقصد استSource IP Address و Destination IP Address همچنين بعد از اين داده كنترلي را اضافه ميكند كه همان الگوریتمي است كه مقصد بايد از آن پيروي كرده براي چك كردن بسته پس از رسيدن بسته توسط گیرنده آن الگوريتم استخدام شده و برای بررسی داده های دریافتی آن و اطمینان حاصل شود که در بسته هیچ خطايي وجود ندارد.

توضیح مختصر در مورد نحوه کار کردن چک سام : يك فیلد كه شانزده بیتی است به منظور كشف خطاهای احتمالی در سرآیند هر بستة IP استفاده می شود. برای محاسبة كد كشف خطا، كل سرآیند بصورت دو بایت، دوبایت با یكدیگر جمع می شود. نهایتاً حاصل جمع به روش ”مكمل یك” (Ones Compelement) منفی می شود و این عدد منفی در این فیلد سرآیند قرار می گیرد. در هر مسیریاب قبل از پردازش و مسیریابی ابتدا صحت اطلاعات درون سرآیند بررسی می شود. روش بررسی بدینصورت است كه اگر تمامی سرآیند بصورت دو بایت، دوبایت در مبنای مكمل یك با یكدیگر جمع شود باید حاصل جمع، صفر بدست آید؛ درغیر این صورت بستة IP فاقد اعتبار بوده حذف خواهد شد.

دقت كنید كه فیلد Checksum در هر مسیریاب باید از نو محاسبه و مقداردهی شود زیرا وقتی یك بستة IP وارد یك مسیریاب می شود حداقل فیلد TTL از آن بسته عوض خواهد شد.فیلد Checksum برای كشف خطاهای احتمالی درون داده های فیلد Payload استفاده نمی شود چرا كه اینگونه خطاها در لایه پایین تر یعنی لایه فیزیكی معمولاً اوسط كدهای CRC نظارت می شود؛ در ضمن لایه های بالاتر نیز مسئلة خطا را بررسی می كنند. در حقیقت این فیلد برای كشف خطاهایی است كه یك مسیریاب در تنظیم سرآیند یك بستة IP مرتكب شده است.

نویسنده : فرهاد خانلری

منبع : انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد


فرهاد خانلری
فرهاد خانلری

کارشناس ارشد شبکه مایکروسافت

فرهاد خانلری ، مدرس شبکه و برنامه نویسی مبتنی بر زیرساخت های مایکروسافت ، سابقه فعالیت در موسسات و مراکز دولتی در قالب پروژه ، مشاوره و تدریس ، برنامه نویسی ++C ، سی شارپ و دات نت ، متخصص و مدرس شبکه های مبتنی بر سیستم عاملهای مایکروسافت و سرویس های مربوطه ، سخت افزار و ...

نظرات