تسلط بر مفاهیم پایه شبکه منطبق با استانداردهای بین‌المللی
آموزش رایگان دوره نتورک‌پلاس (+Network) ابزارهای اشکال‌زدایی مسیرها، (بخش 30 )
در شماره گذشته آموزش نتورک‌پلاس با معیارهای مسیریابی، نقش روترها در انتخاب بهترین مسیرها و محبوب‌ترین پروتکل‌های مسیریابی آشنا شدیم. در این شماره قصد داریم به سراغ مبحث اشکال‌زدایی مسیرها برویم.

برای مطالعه بخش بیست و نهم آموزش رایگان و جامع نتورک پلاس (+Network) اینجا کلیک کنید

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

ابزارهای عیب‌یابی

در شماره‌های گذشته با هفت ابزار مهم TCP / IP utilities-ping، ipconfig، ifconfig، nslookup، dig، arp و route آشنا شدید. در ادامه با ابزارهای بیشتر TCP / IP که می‌توانند به شما در یافتن اطلاعات مربوط به گره‌ها و شبکه‌ها کمک کرده و در زمینه عیب‌یابی راهگشا باشند آشنا خواهید شد.

Netstat

ابزار netstat برای مشاهده اطلاعات آماری TCP / IP و جزئیات مربوط به مولفه‌های TCP / IP و ارتباطاتی که یک میزبان با شبکه برقرار کرده است، استفاده می‌شود. اطلاعاتی که فرمان netstat ارائه می‌کند، به شرح زیر است:

  • پورتی که یک سرویس TCP / IP روی آن در حال اجرا است
  • در حال حاضر کلاینت با چه شبکه‌ای در ارتباط است
  • از زمان برقراری ارتباط چند پیام توسط یک رابط شبکه پردازش شده است
  • چه تعداد خطای داده‌ای روی یک رابط شبکه رخ داده است. به‌طور مثال، فرض کنید شما یک مدیر شبکه هستید که مسئول فایل‌ها، چاپ و سرورهای وب یک سازمان هستید. شما متوجه می‌شوید که وب سرور شما که دارای پردازنده‌های چندگانه، فضای ذخیره‌سازی کافی روی هارد دیسک، و کارت‌های شبکه متعدد است، به‌طور ناگهانی مدت زمان پاسخ‌گویی به درخواست‌های HTTP دو برابر بیشتر از حالت عادی شده است. شما ضمن بررسی حافظه اصلی سرور و نرم‌افزار آن برای شناسایی مشکل، این قابلیت را در اختیار دارید که از فرمان netstat برای بررسی ترافیک وارد و خارج شونده از هر کارت شبکه استفاده کنید. شاید متوجه شوید که یک کارت شبکه به جای آن‌که نیمی از ترافیک شبکه را مصرف کند، بیش از 80 درصد از ترافیک شبکه را به خود اختصاص می‌دهد یا ممکن است فرآیند ارزیابی سخت‌افزاری کارت شبکه را انجام دهید و کشف کنید که مشکل از پردازنده کارت شبکه است که باعث شده است کندتر از سایر کارت‌های شبکه کار کند. جدول زیر برخی از پارامترهای فرمان netstat در ویندوز را نشان می‌دهد که برای بررسی وضعیت شبکه یا اشکال‌زدایی از آن‌ها استفاده می‌شود. شما می‌توانید از netstat در سیستم‌عامل‌ لینوکس همراه با مجموعه‌ای از پارامترهای مختلف استفاده کنید.

توضیح

فرمان  netstat

فهرست همه ارتباطات TCP / IP فعال روی ماشین محلی، از جمله پروتکل لایه انتقال (معمولا فقط TCP)، پیام‌های فرستاده شده و دریافت شده، آدرس IP و وضعیت ارتباط جاری را نشان می‌دهد.

netstat

فهرست ارتباطات فعلی، از جمله آدرس‌های IP و درگاه‌ها را نشان می‌دهد.

netstat -n

فهرست ارتباطات فعلی، از جمله آدرس‌های IP، پورت‌ها و FQDN‌ها را نشان می‌دهد.

netstat -f

همه ارتباطات TCP فعلی و پورت‌های TCP و UDP که در حال گوش دادن است را نشان می‌دهد.

netstat –a

یک گزارش آماری در ارتباط با پیام‌های ارسال شده از سوی یک رابط شبکه همچون خطاها و داده‌های از دست رفته را نشان می‌دهد.

netstat -e

آمار مربوط به هر پیغام ارسال شده توسط یک میزبان را در ارتباط با پروتکل‌های (TCP، UDP، IP یا ICMP) به شکل تفکیک شده نشان می‌دهد.

netstat -s

اطلاعات جدول مسیریابی را نمایش می‌دهد.

netstat -r

PID (شناسه پردازه) را برای هر پردازه با استفاده از یک ارتباط و اطلاعاتی در ارتباط با اتصال نشان می‌دهد.

netstat -o

نام هر پردازه را با استفاده از اتصال و اطلاعات مربوط به اتصال به شکل فهرست شده نشان می‌دهد. برای استفاده از این سوییچ باید خط فرمان را با مجوز مدیریتی اجرا کنید.

netstat -b

 

نکته: دقت کنید که پارامترهای فرمان netstat را می‌توان در قالب یک فرمان واحد استفاده کرد، به‌طور مثال، شما می‌توانید از فرمان netstat -an برای نمایش آدرس آی‌پی و پورت‌هایی که روی ارتباط TCP فعال هستند و همچنین پورت‌های UDP  و TCP که در حال گوش کردن هستند استفاده کنید.

فرمان tracert یا traceroute

ابزار ویندوزی Tracert از رویکرد ارسال درخواست‌های اکو پروتکل ICMP برای ردیابی مسیر دو گره شبکه و شناسایی همه هاپهایی که میان دو گره قرار دارند استفاده می‌کند.  سیستم‌های لینوکسی، یونیکس و macOS از دیتاگرام‌های UDP یا در برخی موارد پیام‌های TCP SYN در ارتباط با ابزارهای ردیابی مسیر استفاده می‌کنند، اما رویکرد به کارگفته شده در همه موارد یکسان است. Traceroute را می‌توان به شکلی پیکربندی کرد که از پیام‌های TCP یا ICMP استفاده کند. هر دو ابزار traceroute و tracert از یک روش آزمایش و خطا برای شناسایی گره‌ها در هر هاپ از مبدا تا مقصد استفاده می‌کنند. شکل زیر نحوه کارکرد ابزار traceroute در ارتباط با فرآیند ردیابی را نشان می‌دهد.

دو ابزار traceroute و tracert همراه با پارامترهای مختلفی که در جدول زیر مشاهده می‌کنید قابل استفاده هستند.

توضیح

فرمان

این سوییچ در زمان بررسی هاپ‌ها، تنها آی‌پی آن‌ها را نشان داده و نام تبدیل شده آن‌‌ها را باز نمی‌گرداند. این‌کار باعث می‌شود فرآیند ردیابی با سرعت بیشتری به اتمام برسد.

traceroute –n google.com

 

یا

tracert –d google.com

اگر در نظر دارید تنها تعداد مشخصی از هاپ‌ها ردیابی شوند، کافی است از این سوییچ استفاده کنید. به‌طور مثال می‌توانید از دستور tracert -h 5 که تنها پنج هاپ را ردیابی می‌کند استفاده کنید.

traceroute –m 12 google.com

یا

tracert –h 12 google.com

این سوییچ حداکثر زمان انتظار برای دریافت پاسخ از هاپ را مشخص می‌کند. مقداری که بر مبنای میلی‌ثانیه تعیین می‌شود.

traceroute –w 2 google.com

یا

tracert –w 2000 google.com

مقدار تعیین شده تعداد هاپ‌ها در اولین روپ را مشخص می‌کند.  مقدار پیش‌فرض 1 است که فرآیند ردیابی را از اولین روتری که در مسیر قرار دارد آغاز می‌کند. پس از شروع کار، در هاپ‌های بعدی مکان‌یابی شبکه ممکن است با کاهش سرعت شدید همراه شود.

traceroute –f 3 google.com

این سوییچ مشخص می‌کند که دستور فوق باید از درخواست‌های ECHO ICMP به جای دیتاگرام‌های UDP استفاده کند.

traceroute –I google.com

این سوییچ مشخص می‌کند که باید هاپ‌های TCP SYN به جای دیتاگرام‌های UDP استفاده کند.

traceroute –T google.com

تاکید می‌کند که تنها از بسته‌های IPv4 استفاده کند.

traceroute –4 google.com

یا

tracert –4 google.com

این سوییچ زمانی کاربرد دارد که در نظر داشته باشید یک مقصد را بر مبنای پروتکل IPv4 یا Ipv6 ردیابی کنید.

traceroute –6 google.com

یا

tracert –6 google.com

 

توجه داشته باشید که آزمایش مسیریابی ممکن است ممکن است ناتمام خاتمه پیدا کند. از دلایلی که باعث بروز این اتفاق می‌شوند به موارد زیر می‌توان اشاره کرد:

1.شبکه بیش از حد برای پردازش پیام‌ها شلوغ بوده و در نتیجه پیام‌هایی همچون UDP یا ICMP که اولویت پایین‌تری دارند پردازش نمی‌شوند.

2. یک دیوارآتش فرآیند انتقال پیام‌های ICMP و UDP را مسدود کرده است، به ویژه اگر دریافت کننده بازه زمانی کوتاهی را تنظیم کرده باشد. 

3.دستگاهی که فرآیند ردیابی را انجام می‌دهد از کار افتاده باشد.

اگر می‌خواهید مسیر میزبانی را ردیابی کنید که پشت یک دیوارآتش قرار دارد، بهتر از است ازTCP  در traceroute استفاده کنید. در غیر این صورت، تلاش‌های شما برای ردیابی بی نتیجه خواهند بود. دقت کنید پینگ از انتقال ICMP استفاده می‌کند که محدودیت‌های مشابه با این ابزار را دارد. یک کار ممکن برای گذر از محدودیت‌های اعمال شده از سوی دیوارآتش به‌کارگیری پروب‌های چندگانه UDP یا ICMP در یک بازه زمانی کوتاه است، این رویکرد مبتنی بر تکرار ممکن است تا حدودی مفید واقع شود. برای استفاده از این تکنیک باید از پارامتر -z همراه با تعیین مقداری در واحد ثانیه (بیشتر از 10) برای تعیین حداقل زمان انتظار میان پروب‌ها استفاده کنید. این گزینه مانند بسیاری دیگر از گزینه‌ها تنها در traceroute وجود داشته و در tracert در دسترس نیست. دقت کنید که ردیابی نمی‌تواند مشکلات پیکربندی روتر را شناسایی کرده یا تغییرات مسیرها در یک دوره زمانی را پیش‌بینی کند. بنابراین، ردیابی بهتر است در شبکه‌ای که آشنا با آن هستید  استفاده شود. ابزار traceroute یا tracert می‌تواند به شما در تشخیص مشکلات احتمالی شبکه یا تراکم شبکه کمک کند. در ادامه می‌توانید بر مبنای تجربه خود و ارزیابی نتایج واقعی آزمون به پیش‌بینی آن‌چه بپردازید که ممکن است در آینده رخ دهد.

Pathping

ابزار مسیریابی ویندوزی Pathping ترکیبی از دو ابزار پینگ و tracert است که برای ارائه اطلاعات عمیق‌تر در مورد مسائل شبکه در امتداد یک مسیر استفاده می‌شود. این ابزار پینگ‌های چندگانه را برای هر هاپ در یک مسیر ارسال کرده و سپس اطلاعات تحلیل شده را درون یک گزارش تکمیلی ارسال می‌کند. برای مشاهده نمونه‌ای از نوع اطلاعاتی که این ابزار ارائه می‌کند، دستور زیر را امتحان کنید:

Pathping google.com

برای متوقف کردن این فرمان از کلیدهای Ctrl+C استفاده کنید. سوییچ‌های مهم این فرمان در جدول زیر آورده شده است.

توضیح

فرمان pathping

این سویچ فرآیند تبدیل آدرس‌های آی‌پی به نام‌ها را انجام نمی‌دهد.

pathping –n google.com

حداکثر تعداد هاپ‌هایی که پیام‌ها تا رسیدن به میزبان باید دریافت کنند را تعیین می‌کند.  پیش‌فرض، مقدار 30 است. این سوییچ باید همراه با تعیین تعداد مشخصی از هاپ‌ها استفاده شود.

pathping –h 12 google.com

زمان انتظار میان پینگ‌ها را تعیین می‌کند. مقدار وارد شده برای انتظار بر حسب میلی‌ثانیه محاسبه می‌شود. (4000 میلی‌ثانیه برابر با 4 ثانیه است.)

pathping –p 2000 google.com

تعداد محاوره‌ها برای هر هاپ را محدود می‌کند. این سوییچ باید همراه با تعداد محاوره‌هایی که اجرا خواهند شد استفاده می‌شود. مقدار پیش‌فرض 100 پینگ برای هر هاپ است که مدت زمان طولانی را طلب می‌کند.

pathping –q 4 google.com

 

لینوکس ابزار مخصوص به خودش را دارد که mtr نامیده شده و عملکردی یکسان با pathping دارد.

Tcpdump

tcpdump یک ابزار خط فرمان رایگان برای سیستم‌عامل‌های لینوکس و یونیکس است. در شماره‌های گذشته با ابزار Wireshark آشنا شدید و دیدید که چگونه از این ابزار تحلیل‌گر در دنیای ویندوز می‌توانید استفاده کنید. دقت کنید tcpdump یک ابزار شنود بسته‌ها است، در حالی که Wireshark یک ابزار تحلیل‌گر پروتکل است. تفاوت یک ابزار تحلیل‌گر و ابزار شنود بسته‌ها در سطحی از تحلیل و تفسیری که ارائه می‌کنند نهفته است. شبیه به ابزار Wireshark، tcpdump ترافیکی که از یک رابط شبکه عبور می‌کند، را ضبط می‌کند. خروجی این ابزار را می‌توان در یک فایل ذخیره کرد. با توجه به گزینه‌های پیکربندی قوی و رابط کاربری خط فرمان قدرتمند، این یک ابزار نزد کارشناسان حوزه امنیت و شبکه محبوب است. برای آن‌که بتوانید از ابزار فوق استفاده کنید، باید از دستور sudo استفاده کرده یا به سیستم‌عامل خود با مجوز مدیریتی بالا وارد شوید تا به tcpdump دسترسی داشته باشید. برای انجام این کار، قبل از اجرای هر دستور tcpdump باید sudo را وارد کرده یا sudo su root را وارد کنید تا حساب کاربری شما مجوز دسترسی به ریشه را به دست آورد. جدول زیر مثال‌هایی از به‌کارگیری فرمان tcpdump را نشان می‌دهد.

توضیح

فرمان tcpdump

بسته‌های SSH یا تل‌نت را فیلتر می‌کند. این سوییچ زمانی مفید است که tcpdump را روی یک دستگاه شبکه از راه دور اجرا می‌کنید.

tcpdump not port 22

یا

tcpdump not port 23

این سوییچ آدرس‌های آی‌پی را به نام‌های میزبان تبدیل نمی‌کند.

tcpdump -n

تعداد بسته‌های دریافت شده را به 50 عدد محدود می‌کند.

tcpdump -c 50

به همه واسط‌های شبکه روی یک دستگاه گوش می‌دهد.

tcpdump -i any

تمام اینترفیس‌های موجود برای ضبط کردن را فهرست می‌کند.

tcpdump -D

همه ترافیک به جزء ترافیک HTTP را فیلتر می‌کند.

tcpdump port http

فایل خروجی را با نام capture.cap ذخیره می‌کند.

tcpdump -w capture.cap

فایل capture.cap را خوانده و داده‌های درون آن‌‌را در پنجره ترمینال قرار می‌دهد. این فایل را برنامه‌هایی شبیه به Wireshark نیز می‌توانند دریافت کنند.

tcpdump -r capture.cap

 

آدرس‌های مک تکراری

دستگاه‌ها در شبکه‌های جداگانه می‌توانند آدرس مک یکسانی را بدون هیچ‌گونه مشکلی داشته باشند. دو دستگاه در شبکه یکسان با یک آدرس MAC مشکل‌ساز می‌شوند. از آنجایی که آدرس MAC به صورت ایستا توسط سازنده تعیین می‌شود، ممکن است تعجب کنید که چگونه دو دستگاه احتمالا یک آدرس مک MAC دارند. گاهی اوقات تولید کنندگان (به طور تصادفی یا غفلت) یک آدرس MAC را برای دو یا چند دستگاه مجددا استفاده می‌کنند. علاوه بر این، آدرس MAC را می‌توان جعل هویت کرد که یک مشکل امنیتی به نام spoofing را به وجود می‌آورد. شبکه‌ای که دسترسی به آن محدود به دستگاه‌های خاص و بر مبنای آدرس مک دستگاه‌ها است، به هکرها اجازه می‌دهد آدرس MAC یک دستگاه مورد تایید را شنود کرده و به شبکه دسترسی پیدا کنند. پیاده‌سازی چنین حمله‌ای کار نسبتا ساده‌ای است، به همین دلیل فیلتر کردن آدرس MAC یک راه قابل اعتماد برای کنترل دسترسی به شبکه نیست. در بیشتر موارد آدرس MAC  تکراری تنها باعث ایجاد مشکلات متناوب در برقراری ارتباط شده و به کامپیوترها اجازه نمی‌دهد به راحتی به شبکه متصل شوند. برای حل این مشکل تهمیدات زیر را در نظر بگیرید:

گام اول: هر کامپیوتر به‌طور مرتب باید آدرس آی‌پی و آدرس مک تکراری خود را به شکل پخشی روی شبکه منتشر کند تا دستگاه‌های دیگر درون شبکه بتوانند جداول ARP خود را به‌روزرسانی کنند.

گام 2: سایر دستگاه‌ها در پاسخ، باید رکوردهای خود را به‌روزرسانی کرده و این اطلاعات به‌روزشده را بسته به آخرین پیغامی که دریافت کرده‌اند برای سایر کامپیوترهای روی شبکه ارسال کنند.

گام 3: گاهی اوقات دستگاه‌ها به درستی با یک کامپیوتر ارتباط برقرار می‌کنند و گاهی اوقات رکوردهای آن‌ها اشتباه است. خوشبختانه، آدرس‌های MAC تکراری یک مشکل نسبتا نادر هستند. . این مشکل بیشتر در زمان مدیریت چندین دستگاه مجازی در یک شبکه بزرگ و در برخی موارد به دلیل خطای انسانی رخ می‌دهد. اکثر سوئیچ‌ها می‌توانند مشکل را شناسایی کرده و برخی از آن‌ها قادر به تولید پیام‌های خطای مفید در این ارتباط هستند. به همین دلیل است که مبحث بررسی آدرس مک و به‌روزرسانی پیکربندی هر دستگاه به ویژه دستگاه‌های مجازی از اهمیت بالایی برخوردار است.

شکست سخت‌افزاری

هنگامی که یک روتر، سوئیچ، کارت شبکه یا سخت‌افزاری از کار می‌افتد، کار شما به عنوان یک تکنسین شبکه شناسایی محل خرابی سخت‌افزاری است. حتا در شبکه‌های کوچک‌تر نیز همواره این چالش وجود دارد که دقیقا کدام دستگاه باعث بروز مشکل شده است. اگر چه شما می‌توانید به صورت دستی هر یک از دستگاه‌های تحت شبکه بررسی کنید، اما با ترفند ساده زیر می‌توانید در وقت خود صرفه‌جویی کنید.

1. از ابزار tracert یا traceroute (بسته به سیستم‌عامل) برای ردیابی روترهای مشکل‌دار و سایر دستگاه‌ها در شبکه‌های بزرگ‌تر استفاده کنید. از آنجایی که پیام‌های ICMP اولویت پایینی دارند، مطمئن شوید که فرمان را چندین بار اجرا کرده و قبل از نتیجه‌گیری نتایج را با یکدیگر مقایسه کنید.

2. در نظر داشته باشید که روترها برای هدایت ترافیک به سمت مقصد طراحی شده‌اند. اگر در نظر دارید گره‌ای که آن سوی یک شبکه قرار دارد را بررسی کرده و این گره یک روتر نیست، بهتر است چند مرتبه بازخوردهای tracert یا traceroute را بررسی کنید.

3. همان‌طور که دستگاه مشکل‌دار را زیر نظر گرفته‌اید، از پینگ برای آزمایش اتصال به شبکه استفاده کنید.

شناسایی دستگاه‌های مجاور

روترها از طریق یک فرآیند به نام کشف همسایگی در مورد تمام دستگاه‌ها در شبکه‌ها اطلاعاتی به دست آورده و این اطلاعات را حفظ می‌کنند. این روند می‌تواند زمانیکه تغییرات در شبکه اعمال شده یا زمانی که یک مشکل رخ داده، دردسرآفرین شود. زیرا باعث به وجود آمدن علایم مبهم و پراکنده می‌شود. در شبکه‌های IPv4، کشف همسایگی توسط ARP با کمک پروتکل ICMP انجام می‌شود. شما می‌توانید از دستور arp در ارتباط با دستگاه‌های مبتنی بر IPv4 برای تشخیص و برطرف کردن مشکلات جداول ARP استفاده کنید. اگر متوجه شدید که قطعی متناوب در ارتباط با آدرس‌های خاصی رخ داده، شاید مجبور شوید تا جدول ARP را روی هر دستگاهی که دارای مشکل است اصلاح کنید. این کار دستگاه را مجبور می‌کند که جدول ARP خود را دوباره بارگذاری کند که باعث تصحیح خطاها می‌شود. دستگاه‌های IPv6 از پیام‌های (NDP) سرنام (Neighbour Discovery Protocol) بر مبنای پیام‌های پروتکل ICMPv6  استفاده می‌کنند تا به‌طور خودکار دستگاه‌های مجاور را تشخیص دهند و هنگامی که گره‌های همسایه از کار افتاده یا از شبکه حذف شدند، به‌طور خودکار همه چیز را تنظیم کنند. NDP نیاز به ARP و برخی از توابع ICMP در شبکه‌های IPv6 را حذف می‌کند و در برابر حملات هکری نیز نسبت به ARP مقاوم‌تر هستند.

در شماره آینده آموزش نتورک‌پلاس مبحث کابل‌های شبکه را بررسی خواهیم کرد.

لطفا نظرات خود در مورد این آموزش و ادامه آن را در بخش دیدگاه در انتهای صفحه اعلام نمایید و نظارت سایر کاربران را نیز ببینید.

 تمام قسمت‌های دوره نتورک پلاس (+Network) 

معرفی آموزشگاه‌های معتبر دوره نتورک پلاس در سراسر کشور

استان تهران (تهران): آموزشگاه عصر شبکه
برگزار كننده دوره‌ها بصورت حضوری و مجازی هم‌زمان 
تلفن: 02188735845           کانال: Asrehshabakeh@
---------------------------------------
استان گیلان (رشت): آموزشگاه  هیوا شبکه 
تلفن: 01333241269           کانال: HivaShabake@

---------------------------------------
استان اصفهان (اصفهان ): موسسه آموزش عالی آزاد فن پردازان
 تلفن: 535-03195022636             کانال: fanpardazancom@

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

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

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟