آموزش مقدمات شبکه – بخش هفتم

دوره آموزشی مقدمات شبکه

پروتکل های مدل TCP/IP
در این بخش به آشنایی با پروتکل های مدل TCP/IP خواهیم پرداخت. در تصویر زیر برخی از این پروتکل ها را مشاهده می نمایید.

به علت اهمیت پروتکل IP و به دلیل اینکه در تمام پروتکل و سرویس های ارائه شده در شبکه IP نقش مهمی را ایفا می کند، ابتدا به این پروتکل می پردازیم.

IP یا Internet Protocol
این پروتکل یکی از مهمترین پروتکل های شبکه بوده و وظایف مهمی را بر عهده داردکه عبارتند از:

کپسوله کردن: روند بسته بندی داده ها
آدرس دهی: تشخیص سیستم های موجود در شبکه بوسیله آدرس IP
مسیریابی: تشخیص بهترین مسیر تا سیستم مقصد
قطعه بندی: بخش کردن داده ها به قطعه هایی با اندازه مناسب برای انتقال در شبکه

همانطور که در قسمت کپسوله سازی در مدل OSI توضیح داده شد، در هر لایه یک هدر به بسته اصلی اضافه خواهد شد. این هدر در لایه شبکه و برای پروتکل IP به شکل زیر خواهد بود.

فیلد Version : اولین فیلد در هدر IP می باشد که 4 بیت است که نسخه پروتکل IP که این بسته بر اساس آن سازماندهی و ارسال شده است را تعیین می کند. امروزه با توجه به ارائه نسخه 6 از این پروتکل ولی هنوز مشاهده می شود که اکثرا در شبکه های اینترنت و داخلی از نسخه 4 این پروتکل استفاده می نمایند. در قسمت های بعد به تفصیل در مورد نسخه های این پروتکل توضیح داده خواهدشد.
فیلد IHL یا IP Header Length : در این فیلد که 4 بیتی است، طول کل سرآیند بسته را مشخص می نماید.
فیلد Type of Service: این فیلد 8 بیتی است که توسط آن، ماشین میزبان (ماشین تولید کننده بسته IP) از مجموعه مسیر یاب ها تقاضای سرویس ویژه ای برای ارسال یک دیتاگرام را می نماید.فیلد Total Length: در این فیلد 16 بیتی عددی قرار می گیرد که طول کل بسته که شامل IP و هدر است. حداکثر وطور کل بسته IP می تواند 65535 بایت باشد.
فیلد Identification: با توجه با انیکه در برخی مواقع ماشین های میزبان یا مسیریاب ها مجبورند بسته را به قطعات کوچکتری تقسیم کنند، هر قسمت شکسته شده باید دارای مشخصه ای برای شناسایی باشد. عددی که در این فیلد 16 بیتی عددی قرار می گیرد که شماره یک دیتاگرام واحد را مشخص می کند. کلیه بسته های IP که با این شماره وارد می شوند قطعه های مربوط به یک دیتاگرام بوده و و باید پس از گردآوری، بازسازی شوند.

فیلد Fragment Offset : این فیلد خود دارای سه بخش است:
الف) بیت DF یا Don’t Fragment : با یک شدن این بیت در یک بسته IP هیچ مسیریابی حق قطعه قطعه کردن آن را ندارد، چرا که مقصد قادر به بازسازی دیتاگرام های تکه تکه شده نیست. اگر این بیت به یک تنظیم شده باشد و مسیر یاب نتواند آن را به دلیل بزرگی اندازه، انتقال دهد لاجرم حذف خواهد شد.
ب) بیت MF یا More Fragment : این بیت مشخص می کند که آیا بسته IP آخرین قطعه از یک دیتاگرام محسوب می شود یا بازهم قطعه بعدی وجود دارد. در آخرین قطعه از یک دیتاگرام بیت MF صفر خواهد بود و در بقیه الزاما یک است.
ج) Fragment Offset : این قسمت که 13 بیتی است در حقیقت شماره ترتیب هر قطعه در یک دیتاگرام شکسته شده را مشخص می نماید. با توجه به حداکثر 13 بیتی بودن این فیلد، یک دیتاگرام حداکثر می تواند به 8192 تکه تقسیم شود. نکته مهم در این فیلد آن است که اندازه هر قطعه باید ضریبی از 8 باشد. یعنی به استثنای قطعه آخر، اندازه بقیه قطعه ها بایستی به گونه ای انتخاب شود که ضریبی از 8 باشد.
به عنوان مثال فرض کنید مسیریابی مجبور است یک دیتاگرام را به طول 5000 بایت قطعه قطعه کند به گونه ای که اندازه هر قطعه کمتر از 1500 بایت باشد. در این حالت نمی تواند اندازه هر قطعه را 1250 در نظر بگیرد چرا که ضریبی از 8 نیست ولی اندازه 1280 مناسب می باشد. بر این اساس مسیریاب، دیتاگرام را به سه بسته 1280 بایتی و یک بسته 1160 بایتی می شکند. در این مثال فرض کنید مسیریاب عدد 2322 را به عنوان مشخصه دیتاگرام انتخاب کرده است. بنابراین برای هر یک از 4 قطعه دیتاگرام، فیلد آفست و مشخصه به صورت زیر است.

فیلد Time To Live: این فیلد 8 بیتی در نقش یک شمارنده، طول عمر بسته را مشخص می کند. طول عمر یک بسته به زمانی اشاره می کند که بسته IP می تواند بر روی شبکه سرگردان باشد. حداکثر طول عمر یک بسته 255 خواهد بود که به ازای عبور از هر مسیریاب از مقدار این فیلد یک واحد کم می شود. هر گاه یک بسته IP به دلیل بافر شدن در حافظه یک مسیر یاب زمانی رامعطل بماند، به ازای هر ثانیه یک واحد از این فیلد کم خواهد شد. حال اگر مقدار این فیلد به صفر برسد بسته IP در هر نقطه از مسیریاب باشد، حذف می گردد. البته پس از حذف یک هشدار به ماشین تولید کننده ارسال خواهد شد.
فیلد Protocol : دیتاگرامی که در فیلد داده از یک بسته IP حمل می شود با ساختمان داده خاص از لایه بالاتر تحویل پروتکل IP شده تا روی شبکه ارسال شود. به عنوان مثال ممکن است این داده ها را پروتکل TCP در لایه بالاتر ارسال کرده باشد و یا ممکن است این کار توسط پروتکل UDP انجام شده باشد. بنابراین مقداد این فیلد شماره پروتکلی است که در لایه بالاتر تقاضای ارسال یک دیتاگرام کرده است. بسته ها پس از دریافت در مقصد باید به پروتکل تعیین شده تحویل داده شوند.
فیلد Header Checksum : این فیلد که 16 بیتی است به منظور کشف خطاهای احتمالی در سرآیند هر بسته از IP استفاده می شود.برای محاسبه کد کشف خطا، کل سرآیند به صورت دو بایت، دو بایت با یکدیگر جمع می شود. نهایتا حاصل جمع به روش مکمل منفی می شود و این عدد منفی در این فیلد قرار می گیرد. در هر مسیریاب قبل از پردازش و مسیریابی ابتدا صحت اطلاعات درون سرآیند بررسی می شود. دقت کنید که فیلد Checksum در هر مسیریاب باید از نو محاسبه و مقدار دهی شود زیرا وقتی یک بسته IP وارد یک مسیریاب می شود حداقل فیلد TTL از آن بسته عوض خواهد شد.
فیلد Source Address: هر ماشین میزبان در شبکه اینترنت یک آدرس جهانی و یکتای 32 بیتی دارد( البته 32 بیت برای نسخه 4 از IP بوده و نسخه 6 آن 128 بیتی می باشد). بنابر این هر ماشین بابد در هنگام تولید یک بسته IP آدرس خودش را در این فیلد قرار دهد.
فیلد Destination Address : در این فیلد آدرس مربوط به مقصد که باید بسته IP به آن تحویل داده شود، قرار می گیرد.
فیلد اختیاری Options : در این فیلد اختیاری می تواند تا حداکثر 40 بایت قرار داد که برای آزمایش، دیباگ، امنیت و سایر پارامترهای مشابه روی شبکه مورد استفاده قرار می*گیرد.
فیلد Payload : در این فیلد داده های دریافتی از لایه بالاتر قرار می گیرد.
در پایان این پست از تمامی دوستانی که قصد ورود به دنیای امنیت و نفوذ را دارند تقاضا می کنم که مطالب این پست را به دقت مطالعه نماید چرا که تسلط بر این موضوع و موضوعات مربوط به TCP/IP که در ادامه به آن اشاره خواهیم نمود، از ضروریات ورود به عرصه امنیت و نفوذ است.
به طور مثال با دستکاری فیلد های می توان حملات مربوط به انکار سرویس یا DoS را انجام داد و یا اینکه برخی از ابزارهای پویش یا اسکن از فیلد های TTL استفاده می کنند.
لازم به ذکر است که اکثر مطالب پست حاضر از کتاب نفوذگری در شبکه و روش های مقابله جناب احسان ملکیان برگرفته شده وقسمتی از آن هم مربوطه به سایت itpro.ir می باشد.

سیستم آدرس دهی IP
آدرس IP برای هر کامپیوتر (هر کارت شبکه ) واحد می باشد که این آدرس در فیلد های آدرس IP مبدا و مقصد هدر قرار می گیرد و هر کامپیوتر در شبکه یا اینترنت با این IP شناخته می شود.
طول آدرسIP 32 بیت یا 4 بایت می باشد که به چهار قسمت 8 بیتی تقسیم می شود (به هر قسمت 8بیتی یک Octet گفته می شود)
نکته : موارد ذکر شده مربوط به IPv4 بوده و IPv6 128بیتی بوده که در آخر توضیح داده می شود.
یک IP به صورت 4 عدد در مبنای دهدهی می نویسند که هر یک از این 4 عدد بین صفر تا 255 می باشند.

0.0.0.0 تا 255.255.255.255
192.168.1.10

هر آدرس IP از دو قسمت شناسه شبکه (Network ID) و شناسه میزبان (Host ID) می باشد که این دو در کلاس های مختلف IP تفاوت دارد.

آدرس IP طبق مثال قبل به صورت دسیمال یا دهدهی می باشد ولی زبانی که برای کامپیوتر قابل فهم است زبان باینری یا همان صفر و یک است .حالا صورت باینری IP 10.0.0.1 به صورت زیر است.

IP:00001010.00000000.00000000.00000001
Subnet:11111111.00000000.00000000.00000000

نکته: اعداد زیر را برای بدست آوردن راحت اعداد باینری به خاطر بسپارید.

128.64.32.16.8.4.2.1

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

192= 11000000

نکته : به خاطر سپاری اعداد زیر برای فهم بهتر کلاس بندی های IP مفید می باشد

10000000 = 128
11000000 =192
11100000 =224
11110000 =240
11111000 =248
11111100 =252
11111110 =254

کلاس های IP
شرکتInternet Assigned Numbers Authority (IANA) شرکتی است که وظیفه تخصیص IP در اینترنت را دارد تا هیچ دو IP در اینترنت یکسان نباشد.
IANA کلاس بندی هایی را به منظور استفاده از IP ها ارائه داده است که تمام شبکه ها موظف به تبعیت از آن هستند.
IPv4 به 5 کلاس A,B,C,D,E تقسیم بندی می شود.

کلاس بندی IP به شکل زیر می باشد.

Public & private IP
Public IP به آدرس IP گفته می شود که جنبه عمومی داشته و در اینترنت معتبر می باشد.
Private IP به آدرس IP گفته می شود که در شبکه های محلی مورد استفاده قرار می گیرد.

درباره نویسنده: احسان نیک آور

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