آشنایی با پروتکل TCP/IP و پروتکل UDP و ICMP
آشنایی با پروتکل TCP/IP و پروتکل UDP و ICMP
پروتکل TCP/IPعنوانی است برای گروهی از پروتکلها و برای ارتباطات کامپیوتر به کامپیوتر که در شبکه استفاده می شود، در TCP/IP لایه کاربردی، لایه های جلسه و نمایش مدل مرجع OSI در لایه کاربردی قرار داده شده اند.
TCP/IP روی داده ارسالی برای برنامه کاربردی تمرکز دارد. لایه های شبکه و انتقال با هم سیستم پشته ای TCP/IP را می سازند که متشکل از نرم افزارهای اجرایی روی کامپیوتر است. همانند مدل OSI یک لایه با لایه ای مشابه در قسمتی دیگر رابطه برقرار می کند و علاوه بر آن لایه پایینی سرویسی را برای لایه هایی بالایی تهیه می کند. هر بسته به هنگام ارسال اطلاعاتی مثل آدرس آیپی مبدا و آیپی مقصد به جلوی آن اضافه می شود که این اطلاعات را Header می گویند و شامل اطلاعات مفیدی برای داده می باشد تا وظیفه اش را انجام دهد. لایه شبکه اطلاعاتی در مورد آدرس مبدأ و مقصد را در هدر آیپی که به پیام افزوده می شود قرار می دهد، پیام حاصل آیپی Datagram نامیده می شود. به هنگام دریافت داده سیستم نهایی همه بسته ها را لایه به لایه باز می کند، پیام حاصل به برنامه کاربردی فرستاده می شود که می تواند درخواست وب را پردازش کند، Email را قبول کند و یا هرکاری که لایه کاربردی برای انجام آن تهیه شده است را انجام دهد. بدون درنظر گرفتن برنامه کاربردی که شما روی اینترنت از آن استفاده می کنید کامپیوتر شما مرتب و پشت سرهم داده ها را بالا و پایین لایه های پشته پروتکل عبور می دهد و سروری که شما با آن در ارتباط هستید داده ها را از درون پشته TCP/IP به خوبی ارسال می کند.
خانواده پروتکلهای TCP/IPاز اجزای گوناگونی تشکیل شده است:
- پروتکل کنترل انتقال (TCP)
- پروتکل دیتاگرام کاربر (UDP)
- پروتکل اینترنت (IP)
- و همینطور پروتکل پیام کنترل اینترنت (ICMP)
که هر کدام از این پروتکلها تعریف خاص خود را دارند که در ادامه این مقاله درباره آنها و برنامه های مورد استفاده این پروتکلها توضیح خواهیم داد. TCP/IP در گذشته برای دانشگاه ها و تحقیقات آماده شد و هیچگونه قابلیت حفاظتی را دارا نبود و امنیت بسیار ضعیفی داشت، پروتکل سنتی TCP/IP برای فرستادن و انتقال بسته ها بر روی شبکه مناسب نبود چون زمانی که شما فایل و داده ای را به اینترنت می فرستادید TCP/IP به هر استفاده کننده دیگری اجازه دیدن و تغییر داده شما را می داد، همچنین بدون اعتبارسنجی یا Authentication هکرها می توانند بسته ای را که به نظر می آید از منابع و سرورهای قابل اعتماد دیگر روی شبکه اینترنت به دست می آید را برای شما بفرستند که برای اینکار درک پایه ای از TCP/IP و آشنا بودن با فرمت بسته ها و TCP/IP لازم بود و هست ولی خوشبختانه بتازگی حفاظت و امنیت به پروتکل TCP/IP در فرم توسعه پروتکل که IPSec نامیده می شود اضافه شده است که البته هنوز در ایران فراگیر نشده است ولی امیدواریم در آینده ای نزدیک از IPSecure و SSL در تمام سرورها و سایتهای ایرانی استفاده شود تا شاهد پیشرفت امنیت شبکه در کشورمان نیز باشیم.
خانواده ای بزرگ از پروتکلها و برنامه هایی Transmission Control Protocol/Internet Protocol یاTCP/IP است که برای سازماندهی کامپیوترها و ابزارهای ارتباطی در شبکه استفاده می شوند و مهمترین پروتکلهای آن TCPو IPهستند، آیپی ها داده ها را از مکانی به مکان و سیستم دیگر منتقل می کنند در حالی که TCP از صورت گرفتن صحیح تمام کارها مطمئن می شود. هزاران برنامه کاربردی امروزه توسط TCP استفاده می شوند که برخی از آنها معروف تر و پرکاربردترند که من آنها را برایتان معرفی می کنم:
- انتقال فایل با استفاده از پروتکل انتقالی فایل FTP
- برنامه Telnet که یک رابط خط فرمان از راه دور می باشد.
- Email که با استفاده از پروتکلهای گوناگون مثل پروتکل انتقالی پستی ساده SMTP و پروتکل POP (Post) Office می باشد.
- مرورگر وب یا Web Browser با استفاده از پروتکل انتقالی ابرمتنها Http
هر کدام از این برنامه ها و پروتکلها بسته ها را تهیه کرده و آنها را به پشته TCP/IP سرور محلی می فرستند. نرم افزار لایه TCP روی سیستم این داده و بسته را می گیرد و با قرار دادن هدر TCP در جلوی هر پیام بسته های TCP را تولید می کنند.
برای نفوذ به سرورها و کلاینت ها ما احتیاج به شناسایی و درک کامل شماره پورتهای مهم و باز سرورها و بیتهای کنترل بسته ها داریم که ابزار Nmap این کار را برای ما راحت تر میکند. هر کامپیوتر آنلاین در داخل شبکه به وسیله آیپی یکتایی که به هنگام ورود به دنیای اینترنت به آنها اختصاص پیدا می کند با کامپیوترهای دیگر در شبکه ارتباط برقرار می کند و این ارتباط توسط پورتهای باز در هر دو سیستم میسر می شود، هدر هر بسته TCP شامل دو عدد درگاه یا پورت می باشد. پورت مبدأ و پورت مقصد. این اعداد 16بیتی همانند درهای کوچکی بر روی سیستم یعنی جایی که داده می تواند فرستاده و یا دریافت شود می باشند، ما 65535 پورت TCP مختلف روی هر کامپیوترمان داریم که سیستمها با این پورتها با هم ارتباط برقرار می کنند، پورت صفر TCP رزرو شده و استفاده نمی شود. هر بسته TCP از میان یکی از این درها از سیستم مبدأ بیرون می آید. عدد پورت TCP مبدأ و پورت دیگر روی کامپیوتر مقصد مشخص شده است. وقتی که یک برنامه کاربردی سرور مبتنی بر TCP روی سیستم کار می کند به پورت خاصی برای بسته های TCP که از یک کلاینت می آید گوش می دهد، به یک پورت با سرویس شنوایی پورت باز و به جایی که چیزی برای شنیدن وجود ندارد پورت بسته گفته می شود.
سرورهای گوناگون برنامه های کاربردی به پورتهای مشهور و معروف گوش می دهند، پورتهای TCP معروف و مورد استفاده از این قبیل هستند:
- TCP Port 21 – FTP
- TCP Port 23 – Telnet
- TCP Port 25 – SMTP
- (TCP Port 80 – HTTP (WWW
برای مثال اگر بر روی سروری پورت 80 و سرویس وب سرور وجود نداشته باشد و بسته باشد ما نمی توانیم به پورت 80 آن سرور که همان Http است وصل شویم و شما تمام این سایتهایی که در اینترنت مشاهده می کنید با پورت 80 یا 8080 آن سایتها و سرورهایشان از طریقه پورت مرورگر وب خود (Internet Exploler) وصل هستید،
هکرها اکثرا لیستی از پورتهای باز روی سیستم هدفشان به وسیله پورت اسکنرها که در درسهای بعدی با آنها آشنا می شوید تهیه می کنند و از طریقه حفره های امنیتی و آسیب پذیر برنامه های کاربردی که بر روی آن پورتها به درخواستهای شما گوش می دهند به داخل سرورها نفوذ می کنند. بنابراین ما می توانیم با پویش و اسکن گرفتن از سیستم خودمان و فهمیدن پورتهای باز سیستم آن برنامه هایی که نیازی به آنها نداریم را غیرفعال کنیم تا بدین وسیله قدم کوچکی در ایمن کردن کامپیوترمان در برابر نفوذ هکرها برداریم،
برای فهمیدن پورتهای باز در سیستم خودمان برنامه کمکی Netstat که در خود ویندوز وجود دارد به کمک ما آمده است و ما میتوانیم از ان استفاده کنیم. پورت هایی که فعال هستند هر کدام توسط یک نرافزار خاص مدیریت می شوند، برای مثال پورت 25 برای ارسال ایمیل است بنابراین اینکار باید توسط یک نرم افزار انجام شود و این بر روی پورت 25 منتظر فال گوش می ماند و اینجا ممکن است شخصی از فلان نرم افزار و دیگری از بهمان نرم مثل Outlook Express برای دریافت آن ایمیل استفاده کند ولی به هر حال پورت 25 همیشه برای ارسال ایمیل است.
وقتی که ما چگونگی آغاز نشستها را در TCPتجزیه و تحلیل کنیم اهمیت بیتهای کنترل TCPواضح می شود و تمامی ارتباطات TCP قانونی با استفاده از دست دادن سه طرفه ( Three-Way Handshake) برپا شده است. دست دادن سه طرفه به سیستم اجازه می دهد تا یک نشست ارتباطی و برقراری مجموعه ای از شماره های سریال برای بسته هایی که در نشست استفاده می شوند را باز کند.
اگر بخواهم راجب پروتکل UDP توضیح دهم از اینجا شروع می کنم که UDP لایه انتقالی دیگری است که در بالای IP می تواند قرار گیرد. TCP و UDP درست مثل دو عموزاده هستند البته TCP در شبکه بیشتر استفاده می شود ولی UDP هم پایه بسیاری از برنامه های کاربردی مهم است و این نکته را هم ذکر کنم که تهیه کننده برنامه کاربردی می تواند انتخاب کند که داده و بسته را با استفاده از TCP بفرستد یا UDP و البته این بستگی به نوع آن برنامه کاربردی و کار سرویس مورد نظر دارد و بسته های دریافت شده و رشته ارتباطی یا TCP هستند و یا UDP و نمی توانند هر دو پروتکل را به طور همزمان مورد استفاده قرار دهند. اکثر سرویس ها و برنامه های ویدیویی و صوتی و سرویسهای جستجوها و پاسخهای DNS (Domain) Name Service از پروتکل UDP برای ارسال داده هایشان استفاده می کنند.
UDP پروتکلی غیرقابل اعتماد است و ممکن است پیامها را گم کند و یا آنها را خراب بفرستد چون Three-Way Handshake در UDP رعایت نمی شود اما وقتی که این نقطه ضعف می تواند برای ما سرعت را به ارمغان آورد می توان برای ما مفید باشد چون برخی از برنامه های کاربردی و سرویس ها به سرعت زیاد برای گرفتن داده ها نیاز دارند و در عوض به امنیت در سطح بالا نیازی ندارند و برنامه های صوتی و تصویری نیز همینطور هستند و از پروتکل UDP استفاده می کنند. UDP شماره های پورت 16 بیتی را دارند بنابراین 65335 پورتهای UDP قابل دسترس وجود دارند فقط مانند TCP داده از پورت سیستم اصلی یا همان پورت مبدأ UDP می آید و برای یک پورت روی سیستم مقصد درنظر گرفته شده است، یکی از گسترده ترین سرویسهای UDP مورد استفاده برای گوش کردن به پرس و جوهای DNS روی پورت 53 UDP است. سرویس های دیگر پایه گذاری شده بر اساس UDP شامل:
- پروتکل انتقالی فایل کم اهمیت TFTP پورت UDP 69
- پروتکل مدیریت شبکه ساده SNMP پورت UDP 161
- داده برنامه معروف Real Player صوتی و تصویری بر روی پورت UDP 7070
یکی دیگر از اعضای فامیل TCP/IP پروتکل کنترل پیام اینترنت یا ICMP است که مانند لوله کشی شبکه عمل می کند و و وظیفه اش انتقال فرمان و کنترل اطلاعات بین سیستم ها و شبکه برای انتشار نقل و انتقالات داده واقعی و گزارش خطاها می باشد. یک سیستم می تواند از ICMP برای امتحان اینکه آیا سیستم دیگر فعال است یا نه با فرستادن Ping که پیام پژواک ICMP Echo است استفاده کند که راجع به Ping در درس های بعدی کامل توضیح می دهیم. اگر سیستم Pinged فعال باشد به ping ارسال شده جواب خواهد داد.
همچنین یک مسیریاب می تواند از ICMP استفاده کند تا به سیستم مبدأ اطلاع دهد که راهی به مقصد مورد نیاز ندارد و یک میزبان می تواند به سیستم دیگر بگوید که سرعت تعداد پیام هایی که مبدأ ICMP می فرستد را کاهش دهد. پس اگر بخواهم پروتکل ICMP را در یک جمله برایتان نوضیح دهم اینطور شروع می کنم که ICMP برای سیستم ها استفاده می شود تا اطلاعاتی در مورد اینکه چگونه داده در طول شبکه جاری می شود و یا جریان نمی یابد را مبادله کند.
وقتی که لایه TCP یا UDP بسته را تولید می کنند آن باید در طول شبکه فرستاده شود، لایه انتقال (TCP/UDP) بسته را به لایه شبکه برای بردن آن عبور خواهد داد. پروتکل اینترنت یا (IP (Internet Protocol معروفترین و پرکاربردترین لایه شبکه ای است که امروزه استفاده می شود و برای تمامی حرکتهای ترافیکی در طول اینترنت مورد استفاده قرار می گیرد، آدرسهای آیپی سیستم بخصوصی را روی شبکه توضیح می دهند و طولشان 32بیت می باشد، هر سیستم که بطور مستقیم به اینترنت متصل می شود آدرس آیپی منحصر به فردی دارد. هرکدام از بسته های IP آدرس آیپی مبدأ را با تعریف سیستمی که بسته را می فرستد و آدرس آیپی مقصد که سیستم مقصد را برای بسته مشخص می سازد شامل می شود، برای اینکه با مفهوم و طرز کار آیپی و پورتها آشنا بشید مثالی در این زمینه می زنم.
حتما شما تابحال با یک سازمان بزرگ مثل بیمارستان تماس تلفنی گرفتید، برای برقراری ارتباط با این سازمان، شما اول یک شماره تلفن را شماره گیری می کنید و وقتی ارتباط برقرار شد، اپراتور از شما سوال می کند که با کدام بخش یا شخص کار دارید یا اینکه شما می گویید داخلی ایکس را وصل کنید و اپراتور ارتباط شما را با بخش داخلی مورد نظرتان برقرار می کند. با یک نگاه ساده می فهمیم که شماره تلفن آن سازمان مثل شماره پورت و شماره داخلی مانند پورت عمل می کند. درحقیقت شماره تلفن سازمان در یک محدوده خاص (مثل یک شهر) یا با اضافه کردن کد کشور و شهر در جهان یک شماره یکتاست و فقط یک مشتری مخابراتی این شماره را دارد، اما شماره های داخلی که بعد از شماره تلفن اصلی می آیند یکتا نیستند و از آنها برای برقراری ارتباط سریعتر و راحتتر بین یک شخص خاص از سازمان با یک ارباب رجوع استفاده می شود. در یک شبکه کامپیوتری هم از آیپی به عنوان یک شماره یکتا برای شناسایی و برقراری ارتباط با یک کامپیوتر استفاده می شود و از پورت هم برای ارتباط سریع و راحتتر با یک سرویس خاص. هکرها می توانند با روشهای Spoofing یا تقلید، وانمود کنند که سیستم دیگری با IPدیگری هستند تا بعد از نفوذ به سرورها IPواقعی آنها مشخص نشود و مدیران آن سرورها هکر را ردیابی و پیدا نکنند.
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
دیدگاهتان را بنویسید لغو پاسخ
برای نوشتن دیدگاه باید وارد بشوید.
بسیار عالی
سپاس رسول جان