Python Socket
972 subscribers
79 photos
152 files
373 links
گروه چت مرتبط با کانال:
https://t.me/PythonSocketChat

@pythonsocket
Download Telegram
ما در Socket Programming با لایه های 2 و 3 (شماره گذاری لایه ها از پایین به بالاست) یعنی لایه های Internet و Transport سروکار خواهیم داشت. بنابراین لازم است دانش کافی در خصوص پروتکل های این دو لایه و مفاهیم مرتبط با آن داشته باشیم که انشاا.. در ادامه به آن خواهیم پرداخت.
دوستان سلام. همانطور که می دانید رمز نگاری داده ها یکی از کلیدی ترین نکات قابل توجه در تبادل اطلاعات بر روی بسترهای ناامن است. در آینده و با ارایه مطالب کانال، یکی از نتایج ما راه اندازی یک سرور چت با استفاده از Socket Programming است. لذا رمزنگاری داده های ارسالی نیز از قابلیت های مهم هر سرویس چتی خواهد بود. یکی راه های ساده جهت رمزنگاری، استفاده از XOR است. به زودی مطلبی در این خصوص ارایه خواهیم کرد.
@pythonsocket
دوستان عزیز سلام. مطالب مقدماتی مرتبط با برنامه نویسی سوکت را با مدل TCP/IP شروع کرده و به مدل لایه ای و ماژولار آن پرداختیم. ادامه این بحث را با یکی دیگر از مفاهیم مهم مدل TCP/IP یعنی Port پیش خواهیم گرفت. Port در ترجمه انگلیسی به فارسی معانی متعددی را دارد که نزدیک ترین آن به موضوع ما، گذرگاه یا درگاه است. در ارتباطات بین کامپیوتری، هر یک از دو طرف ارتباط، داده های خود را از درگاهی خارج و به درگاهی وارد می کنند. خروج درخواست از سیستم مبدا و از یک پورت معین و مشخص، سبب می شود تا پاسخ برگشتی برای درخواست مورد نظر، مجددا به همان پورت وارد شده و با سایر درخواست ها تداخل پیدا نکند. بعبارت بهتر چنانچه یک سیستم چندین درخواست (مثلا به سمت اینترنت) داشته باشد (چندین صفحه در مرورگر خود باز کند) هریک از آنها از یک پورت مشخص خارج و در نهایت جواب برگشتی نیز به همان پورت وارد می گردد. این تفکیک درخواست، سبب می شود جواب های بازگشتی با یکدیگر تداخل پیدا نکنند. از طرفی دیگر، درخواست های ارسالی از سوی سیستم ها، معمولا توسط سرویس هایی پذیرفته شده و پاسخدهی می شوند. این سرویس دهنده ها برای ارایه خدمات مشخص بر روی پورت هایی مشغول Listen هستند تا بتوانند به درخواست های ورودی پاسخ دهند. سرویس دهنده بر روی پورت های از پیش تعریف شده ای مشغول خدمات دهی است و چون این پورت ها از پیش تعریف شده و برای کلاینت ها شناخته شده است به آن پورت های Well Known می گویند. پورت مفهومی است که بین لایه Transport و Internet در مدل لایه TCP/IP قرار می گیرد.
@pythonsocket
توجه داشته باشید که ترکیب IP و Port معنا و مفهوم Socket را می سازد. در ادامه با IP و پورتکل های TCP و UDP نیز آشنا خواهیم شد.
@pythonsocket
پروتکل TCP مطمئن یا Reliable است. بدین معنی که با استفاده از ویژگی هایی نظیر Acknowledgement , Sequencing و Windowing از دریافت اطلاعات توسط مقصد اطمینان حاصل می کند. اگر دیتا در مسیر ارتباط خراب شده و یا از بین برود، TCP این اطمینان را میدهد که دیتای تخریب شده مجددا ارسال و توسط گیرنده دریافت گردد. پروتکل TCP ارتباط گرا یا Connection Oriented است. بدین معنی که با ویژگی 3-Way Handshake از آمادگی مقصد جهت دریافت اطلاعات اطمینان حاصل کرده و پس از آن اطلاعات را ارسال می کند. TCP در مقایسه با UDP و به دلیل استفاده از قابلیت های مذکور، Overhead بالاتری دارد. UDP دقیقا برعکس TCP است. ارتباط گرا نیست، مطمئن هم نیست. البته اینها بدین معنی نیست که UDP ضعیف تر یا بی ارزش تر از TCP است. بلکه توجه به این نکات سبب می شود در برنامه نویسی، بر اساس نیاز و با توجه به معماری برنامه از یکی از پروتکل های ذکر شده استفاده کنیم. سرویس های مهمی در ارتباطات کامپیوتری وجود دارند که با اهمیت بالا از پروتکل UDP استفاده می کنند نظیر DNS. شاید در برنامه نویسی اولیه نیازی به دانستن موارد فوق بصورت جزئی نداشته باشید. اما وقتی نیاز به نوشتن برنامه های از نوع RAW Socket پیدا کردید دانش در این زمینه بسیار تاثیر گذار خواهد بود. لذا پیشنهاد می کنم در زمینه TCP و UDP مطالعات بیشتری داشته باشید. در ادامه به آخرین بحث از مباحث مقدماتی یعنی IP می پردازیم.
@pythonsocket
مقایسه Headerهای TCP و UDP. به مواردی چون Port و TCP Flags توجه بیشتری داشته باشید.
@pythonsocket
آخرین بحث از سلسله مباحث آشنایی مقدماتی با شبکه (مورد نیاز در Socket Programming) مفهوم IP یا Internet Protocol است. آدرس IP (ویرایش 4) یک آدرس 32 بیتی است که بصورت X.X.X.X نمایش داده می شود. هر X معادل با 8 بیت است و عددی است بین 0 تا 255. آدرس IP در لایه اینترنت قرار گرفته و وطایف اختصاصی این لایه یعنی Routing و Addressing را عهده دار است. آدرس IP یک آدرس Logical است که می تواند بنا بر شرایط تغییر کند. (در قیاس با آدرس MAC که Physical بوده و در شرایط عادی قابل تغییر نیست) آدرس های IP ویرایش 4 را در گروه های A تا E تعریف کرده اند که گروه A تا C بصورت عمومی قابل استفاده اند. در هریک از این گروه ها تعدادی آدرس بصورت Private وجود دارد که قابل استفاده در شبکه های داخلی (بدون نیاز به اتصال به اینترنت) هستند. سایر آدرس های هر گروه Public بوده و در اینترنت در دسترس هستند.
@pythonsocket
1
All About XOR.doc
204 KB
دوستان عزیز سلام. مطلب پیوست از آقای عباس نادری است و در خصوص XOR صحبت شده است. مقدمه ای است برای ورود به بحث XOR و رمزنگاری در پایتون. مطالعه بفرمائید.
@pythonsocket
#Sec
Socket#1.pdf
224.1 KB
دوستان عزیز سلام. فایل پیوست اولین مطلب از سلسله مباحث Socket Programming در زبان پایتون است. مطالعه بفرمایید.
@pythonsocket
#Sock
دوستان عزیز سلام. پیشاپیش سال نو را به شما تبریک عرض می کنم. امیدوارم در سال جدید خیر و برکت نصیب شما باشد. تاخیر در ارسال مطالب تنها به جهت توجه به کیفیت آن است و سعی بنده بر این است که مطالب ارسالی از کیفیت مناسب برخوردار بوده و با ارایه تمامی نکات، بصورت دقیق مفهوم را ارایه نماید. امیدوارم در سال جدید نیز همراه باشید.
@pythonsocket
Socket#2.pdf
496 KB
دوستان عزیز سلام. دومین مطلب از مجموعه مطالب برنامه نویسی سوکت با پایتون تقدیم می گردد.
@pythonsocket
#Sock
در مطلب فوق تمرکز خود را بر پروتکل UDP قرار داده و ضمن توسعه مثال ارایه شده در مطلب شماره 1، برنامه Echo Server را نیز طراحی و اجرا کرده ایم. کدهای برنامه سرور و کلاینت نیز در ادامه ارایه خواهند شد.
@pythonsocket