بارگیری و بارگذاری

بارگیری یا دانلود (به انگلیسی: Download)، فرآیند برداشت داده‌های الکترونیکی از یک رایانه (معمولاً یک رایانه دور یا یک سرور) به رایانهٔ دیگر (معمولاً رایانه شما یا یک رایانهٔ محلی)، با مودم یا شبکه رایانه‌ای را گویند. همچنین فرستادن بلوکی از داده‌ها، مانند یک پرونده، با ساختار پست اسکریپت، به دستگاه مستقلی مانند چاپگر پست اسکریپت نیز بارگیری نامیده می‌شود. عمل وارون فرایند فوق را بارگذاری یا آپلود (به انگلیسی: Upload) گویند.






واژه‌های مصوب فرهنگستان برای دانلود و آپلود به ترتیب پایین‌گذاری و بالاگذاری هستند. در زبان اردو به این دو کنش به ترتیب «زیراثقال» و «زِبَراثقال» می‌گویند.






بارگیری

کاربرد نخست این واژه در زمینهٔ رایانه‌ها، از فعل دریافت کردن ریشه گرفته، به معنی گرفتن یک پرونده (یا بارگیری)، از یک رایانه، یک خدمات‌دهندهٔ وب، و یا سامانه‌ای همانند. این واژه در گویش خیابانی و فرهنگ عامیانه، مانند واژهٔ انگلیسی آن، دانلود (Download) گفته می‌شود.






بارگذاری

بارگذاری، یعنی ارسال کردن یک پرونده، از رایانه‌ای به رایانهٔ دیگر. این واژه در گویش خیابانی، مانند واژه انگلیسی آن، آپلود (Upload) گفته می‌شود.





شبکه رایانه‌ای
یک شبکه رایانه‌ای (به انگلیسی: Computer Network)، که اغلب به طور خلاصه به آن شبکه گفته می‌شود، گروهی از رایانه‌ها و دستگاه‌هایی می‌باشد که توسط کانال‌های ارتباطی به هم متصل شده‌اند. شبکه رایانه‌ای باعث تسهیل ارتباطات میان کاربران شده و اجازه می‌دهد کاربران منابع خود را به اشتراک بگذارند.






معرفی

یک شبکه رایانه‌ای اجازه به اشتراک گذاری منابع و اطلاعات را میان دستگاه‌های متصل شده به هم، می‌دهد. در دهه ۶۰ میلادی، آژانس پروژه‌های تحقیقاتی پیشرفته (ARPA)، بودجه‌ای را به منظور طراحی شبکه آژانس پروژه‌های تحقیقاتی پیشرفته (ARPANET) برای وزارت دفاع ایالات متحده آمریکا اختصاص داد. این اولین شبکه رایانه‌ای در جهان بود. توسعه شبکه از سال ۱۹۶۹ و براساس طرح‌های توسعه یافته دهه ۶۰ آغاز شد.






هدف

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

تسهیل ارتباطات: با استفاده از شبکه، افراد می‌توانند به آسانی از طریق رایانامه (E-mail)، پیام‌رسانی فوری، اتاق گفتگو (Chat room)، تلفن، تلفن تصویری و ویدئو کنفرانس، ارتباط برقرار کنند.
اشتراک گذاری سخت افزارها: در یک محیط شبکه‌ای، هر کامپیوتر در شبکه می‌تواند به منابع سخت افزاری در شبکه دسترسی پیدا کرده و از آن‌ها استفاده کند؛ مانند چاپ یک سند به وسیله چاپگری که در شبکه به اشتراک گذاشته شده‌است.
اشتراک گذاری پرونده‌ها، داده‌ها و اطلاعات: در یک محیط شبکه‌ای، هر کاربر مجاز می‌تواند به داده‌ها و اطلاعاتی که بر روی رایانه‌های دیگر موجود در شبکه، ذخیره شده‌است دسترسی پیدا کند. قابلیت دسترسی به داده‌ها و اطلاعات در دستگاه‌های ذخیره سازی اشتراکی، از ویژگی‌های مهم بسیاری از شبکه‌های است.
اشتراک گذاری نرم‌افزارها: کاربرانی که به یک شبکه متصل اند، می‌توانند برنامه‌های کاربردی موجود روی کامپیوترهای راه دور را اجرا کنند.







تعریف

شبکه‌های کامپیوتری مجموعه‌ای از کامپیوترهای مستقل متصل به یکدیگرند که با یکدیگر ارتباط داشته و تبادل داده می‌کنند. مستقل بودن کامپیوترها بدین معناست که هر کدام دارای واحدهای کنترلی و پردازشی مجزا بوده و بود و نبود یکی بر دیگری تاثیرگذار نیست.
متصل بودن کامپیوترها یعنی از طریق یک رسانه فیزیکی مانند کابل، فیبر نوری، ماهواره‌ها و... به هم وصل می‌باشند. دو شرط فوق شروط لازم برای ایجاد یک شبکه کامپیوتری می‌باشند اما شرط کافی برای تشکیل یک شبکه کامپیوتری داشتن ارتباط و تبادل داده بین کامپیوترهاست.
این موضوع در بین متخصصین قلمرو شبکه مورد بحث است که آیا دو رایانه که با استفاده از نوعی از رسانه ارتباطی به یکدیگر متصل شده‌اند تشکیل یک شبکه می‌دهند. در این باره بعضی مطالعات می‌گویند که یک شبکه نیازمند دست کم ۳ رایانه متصل به هم است. یکی از این منابع با عنوان «ارتباطات راه دور: واژه‌نامه اصطلاحات ارتباطات راه دور»، یک شبکه رایانه‌ای را این طور تعریف می‌کند: «شبکه‌ای از گره‌های پردازشگر دیتا که جهت ارتباطات دیتا به یکدیگر متصل شده‌اند». در همین سند عبارت «شبکه» این طور تعریف شده‌است: «اتصال سه با چند نهاد ارتباطی». رایانه‌ای که به وسیله‌ای غیر رایانه‌ای متصل شده‌است (به عنوان نمونه از طریق ارتباط «اترنت» به یک پرینتر متصل شده‌است) ممکن است که یک شبکه رایانه‌ای به حساب آید، اگرچه این نوشتار به این نوع پیکربندی نمی‌پردازد.

این نوشتار از تعاریفی استفاده می‌کند که به دو یا چند رایانه متصل به هم نیازمند است تا تشکیل یک شبکه را بدهد. در مورد تعداد بیشتری رایانه که به هم متصل هستند عموماً توابع پایه‌ای مشترکی دیده می‌شود. از این بابت برای آنکه شبکه‌ای به وظیفه‌اش عمل کند، سه نیاز اولیه بایستی فراهم گردد، «اتصالات»، «ارتباطات» و «خدمات». اتصالات به بستر سخت‌افزاری اشاره دارد، ارتباطات به روشی اشاره می‌کند که بواسطه آن وسایل با یکدیگر صحبت کنند و خدمات آنهایی هستند که برای بقیه اعضای شبکه به اشتراک گذاشته شده‌اند.






دسته بندی شبکه‌های رایانه‌ای

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






بر اساس نوع اتصال

شبکه‌های رایانه‌ای را می‌توان با توجه به تکنولوژی سخت افزاری و یا نرم‌افزاری که برای اتصال دستگاه‌های افراد در شبکه استفاده می‌شود، دسته بندی کرد؛ مانند فیبر نوری، اترنت، شبکه محلی بی‌سیم، HomePNA، ارتباط خط نیرو یا G.hn.

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

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

فناوری ITU-T G.hn از سیم کشی موجود در منازل (کابل هم‌محور، خطوط تلفن و خطوط برق) برای ایجاد یک شبکه محلی پر سرعت (تا۱ گیگا بیت در ثانیه) استفاده می‌کند.






بر اساس تکنولوژی سیم کشی

زوج به‌هم‌تابیده: زوج به‌هم‌تابیده یکی از بهترین رسانه‌های مورد استفاده برای ارتباطات راه دور می‌باشد. سیم‌های زوج به‌هم‌تابیده، سیم تلفن معمولی هستند که از دو سیم مسی عایق که دو به دو به هم پیچ خورده‌اند درست شده‌اند. از زوج به‌هم‌تابیده برای انتقال صدا و داده‌ها استفاده می‌شود. استفاده از دو سیم به‌هم‌تابیده به کاهش تداخل و القای الکترومغناطیسی کمک می‌کند. سرعت انتقال داده، دامنه‌ای از ۲ میلیون بیت درهر ثانیه تا ۱۰۰ میلیون بیت در هر ثانیه، دارد.
کابل هم‌محور: کابل هم‌محور به طور گسترده‌ای در سیستم‌های تلویزیون کابلی، ساختمان‌های اداری، و دیگر سایت‌های کاری برای شبکه‌های محلی، استفاده می‌شود. کابل‌ها یک رسانای داخلی دارند که توسط یک عایق منعطف محصور شده‌اند، که روی این لایهٔ منعطف نیز توسط یک رسانای نازک برای انعطاف کابل، به هم بافته شده‌است. همهٔ این اجزا، در داخل عایق دیگری جاسازی شده‌اند. لایه عایق به حداقل رساندن تداخل و اعوجاج کمک می‌کند. سرعت انتقال داده، دامنه‌ای از ۲۰۰ میلیون تا بیش از ۵۰۰ میلیون بیت در هر ثانیه دارد.
فیبر نوری: کابل فیبر نوری شامل یک یا چند رشته از الیاف شیشه‌ای پیچیده شده در لایه‌های محافظ می‌باشد. این کابل می‌تواند نور را تا مسافت‌های طولانی انتقال دهد. کابل‌های فیبر نوری تحت تاثیر تابش‌های الکترومغناطیسی قرار نمی‌گیرند. سرعت انتقال ممکن است به چند تریلیون بیت در ثانیه برسد.







بر اساس تکنولوژی بی سیم

ریزموج (مایکروویو) زمینی: ریزموج‌های زمینی از گیرنده‌ها و فرستنده‌های زمینی استفاده می‌کنند. تجهیزات این تکنولوژی شبیه به دیش‌های ماهواره‌است. مایکروویو زمینی از دامنه‌های کوتاه گیگاهرتز استفاده می‌کند، که این سبب می‌شود تمام ارتباطات به صورت دید خطی محدود باشد. فاصله بین ایستگاه‌های رله (تقویت سیگنال) حدود ۳۰ مایل است. آنتن‌های ریزموج معمولاً در بالای ساختمان‌ها، برج‌ها، تپه‌ها و قله کوه نصب می‌شوند.
ماهواره‌های ارتباطی: ماهواره‌ها از ریزموج‌های رادیویی که توسط جو زمین منحرف نمی‌شوند، به عنوان رسانه مخابراتی خود استفاده می‌کنند.

ماهواره‌ها در فضا مستقر هستند؛ به طور معمول ۲۲۰۰۰ مایل (برای ماهواره‌های geosynchronous) بالاتر از خط استوا. این سیستم‌های در حال چرخش به دور زمین، قادر به دریافت و رله صدا، داده‌ها و سیگنال‌های تلویزیونی هستند.

تلفن همراه و سیستم‌های پی سی اس: تلفن همراه و سیستم‌های پی سی اس از چندین فناوری ارتباطات رادیویی استفاده می‌کنند. این سیستم‌ها به مناطق مختلف جغرافیایی تقسیم شده‌اند. هر منطقه دارای فرستنده‌های کم قدرت و یا دستگاه‌های رله رادیویی آنتن برای تقویت تماس‌ها از یک منطقه به منطقه بعدی است.
شبکه‌های محلی بی سیم: شبکه محلی بی سیم از یک تکنولوژی رادیویی فرکانس بالا (مشابه سلول دیجیتالی) و یک تکنولوژی رادیویی فرکانس پایین استفاده می‌کند. شبکه‌های محلی بی سیم از تکنولوژِی طیف گسترده، برای برقراری ارتباط میان دستگاه‌های متعدد در یک منطقه محدود، استفاده می‌کنند. نمونه‌ای از استاندارد تکنولوژی بی سیم موج رادیویی، IEEE است.
ارتباطات فروسرخ: ارتباط فروسرخ، سیگنال‌های بین دستگاه‌ها را در فواصل کوچک (کمتراز ۱۰ متر) به صورت همتا به همتا (رو در رو) انتقال می‌دهد؛ در خط انتقال نباید هیچ گونه شی ای قرار داشته باشد.







بر اساس اندازه

ممکن است شبکه‌های رایانه‌ای بر اساس اندازه یا گستردگی ناحیه‌ای که شبکه پوشش می‌دهد طبقه‌بندی شوند. برای نمونه «شبکه شخصی» (PAN)، «شبکه محلی» (LAN)، «شبکه دانشگاهی» (CAN)، «شبکه کلان‌شهری» (MAN) یا «شبکه گسترده» (WAN).






بر اساس لایه شبکه

ممکن است شبکه‌های رایانه‌ای مطابق مدلهای مرجع پایه‌ای که در صنعت به عنوان استاندارد شناخته می‌شوند مانند «مدل مرجع ۷ لایه OSI» و «مدل ۴ لایه TCP/IP»، بر اساس نوع «لایه شبکه»ای که در آن عمل می‌کنند طبقه‌بندی شوند.






بر اساس معماری کاربری

ممکن است شبکه‌های رایانه‌ای بر اساس معماری کاربری که بین اعضای شبکه وجود دارد طبقه‌بندی شود، برای نمونه معماری‌های Active Networking، «مشتری-خدمتگذار» (Client-Server) و «همتا به همتا» Peer-to-Peer (گروه کاری).






بر اساس همبندی (توپولوژی)

ممکن است شبکه‌های رایانه‌ای بر اساس نوع همبندی شبکه طبقه‌بندی شوند مانند: «شبکه باس» (Bus)، «شبکه ستاره» ((Star، «شبکه حلقه‌ای» (Ring)، «شبکه توری» (Mesh)، «شبکه ستاره-باس» (Star-Bus)، «شبکه درختی» (Tree) یا «شبکه سلسله مراتبی» (Hierarchical) و ترکیبی و غیره.

همبندی شبکه را می‌توان بر اساس نظم هندسی ترتیب داد. همبندی‌های شبکه طرح‌های منطقی شبکه هستند. واژه منطقی در اینجا بسیار پرمعنی است. این واژه به این معنی است که همبندی شبکه به طرح فیزیکی شبکه بستگی ندارد. مهم نیست که رایانه‌ها در یک شبکه به صورت خطی پشت سر هم قرار گرفته باشند، ولی زمانیکه از طریق یک «هاب» به یکدیگر متصل شده باشند تشکیل همبندی ستاره می‌کنند نه باس. و این عامل مهمی است که شبکه‌ها در آن فرق می‌کنند، جنبه ظاهری و جنبه عملکردی.






بر اساس قرارداد

ممکن است شبکه‌های رایانه‌ای بر اساس «قرارداد» ارتباطی طبقه‌بندی شوند.






انواع شبکه‌های رایانه‌ای از نظر اندازه
شبکه شخصی (PAN)

«شبکه شخصی» (Personal Area Network) یک «شبکه رایانه‌ای» است که برای ارتباطات میان وسایل رایانه‌ای که اطراف یک فرد می‌باشند (مانند «تلفن»ها و «رایانه‌های جیبی» (PDA) که به آن «دستیار دیجیتالی شخصی» نیز می‌گویند) بکار می‌رود. این که این وسایل ممکن است متعلق به آن فرد باشند یا خیر جای بحث خود را دارد. برد یک شبکه شخصی عموماً چند متر بیشتر نیست. موارد مصرف شبکه‌های خصوصی می‌تواند جهت ارتباطات وسایل شخصی چند نفر به یکدیگر و یا برقراری اتصال این وسایل به شبکه‌ای در سطح بالاتر و شبکه «اینترنت» باشد.

ارتباطات شبکه‌های شخصی ممکن است به صورت سیمی به «گذرگاه»های رایانه مانند USB و فایروایر برقرار شود. همچنین با بهره‌گیری از فناوری‌هایی مانند IrDA، «بلوتوث» (Bluetooth) و UWB می‌توان شبکه‌های شخصی را به صورت بی‌سیم ساخت.






شبکه محلی (LAN)
«شبکه محلی» (Local Area Network) یک «شبکه رایانه‌ای» است که محدوده جغرافیایی کوچکی مانند یک خانه، یک دفتر کار یا گروهی از ساختمان‌ها را پوشش می‌دهد. در مقایسه با «شبکه‌های گسترده» (WAN) از مشخصات تعریف‌شده شبکه‌های محلی می‌توان به سرعت (نرخ انتقال) بسیار بالاتر آنها، محدوده جغرافیایی کوچکتر و عدم نیاز به «خطوط استیجاری» مخابراتی اشاره کرد.

دو فناوری «اترنت» (Ethernet) روی کابل «جفت به هم تابیده بدون محافظ» (UTP) و «وای‌فای» (Wi-Fi) رایج‌ترین فناوری‌هایی هستند که امروزه استفاده می‌شوند، با این حال فناوری‌های «آرکنت» (ARCNET) و «توکن رینگ» (Token Ring) و بسیاری روشهای دیگر در گذشته مورد استفاده بوده‌اند.






شبکه کلان‌شهری (MAN)

«شبکه کلان‌شهری» (Metropolitan Area Network) یک «شبکه رایانه‌ای» بزرگ است که معمولاً در سطح یک شهر گسترده می‌شود. در این شبکه‌ها معمولاً از «زیرساخت بی‌سیم» و یا اتصالات «فیبر نوری» جهت ارتباط محل‌های مختلف استفاده می‌شود.






شبکه گسترده (WAN)

«شبکه گسترده» (Wide Area Network) یک «شبکه رایانه‌ای» است که نسبتاً ناحیه جغرافیایی وسیعی را پوشش می‌دهد (برای نمونه از یک کشور به کشوری دیگر یا از یک قاره به قاره‌ای دیگر). این شبکه‌ها معمولاً از امکانات انتقال خدمات دهندگان عمومی مانند شرکت‌های مخابرات استفاده می‌کند. به عبارت کمتر رسمی این شبکه‌ها از «مسیریاب»ها و لینک‌های ارتباطی عمومی استفاده می‌کنند.

شبکه‌های گسترده برای اتصال شبکه‌های محلی یا دیگر انواع شبکه به یکدیگر استفاده می‌شوند. بنابراین کاربران و رایانه‌های یک مکان می‌توانند با کاربران و رایانه‌هایی در مکانهای دیگر در ارتباط باشند. بسیاری از شبکه‌های گسترده برای یک سازمان ویژه پیاده‌سازی می‌شوند و خصوصی هستند. بعضی دیگر به‌وسیله «سرویس دهندگان اینترنت» (ISP) پیاده‌سازی می‌شوند تا شبکه‌های محلی سازمانها را به اینترنت متصل کنند.






شبکه متصل (Internetwork)

دو یا چند «شبکه» یا «زیرشبکه» (Subnet) که با استفاده از تجهیزاتی که در لایه ۳ یعنی «لایه شبکه» «مدل مرجع OSI» عمل می‌کنند مانند یک «مسیریاب»، به یکدیگر متصل می‌شوند تشکیل یک شبکه از شبکه‌ها یا «شبکه متصل» را می‌دهند. همچنین می‌توان شبکه‌ای که از اتصال داخلی میان شبکه‌های عمومی، خصوصی، تجاری، صنعتی یا دولتی به وجود می‌آید را «شبکه متصل» نامید.

در کاربردهای جدید شبکه‌های به هم متصل شده از قرارداد IP استفاده می‌کنند. بسته به اینکه چه کسانی یک شبکه از شبکه‌ها را مدیریت می‌کنند و اینکه چه کسانی در این شبکه عضو هستند، می‌توان سه نوع «شبکه متصل» دسته بندی نمود:

شبکه داخلی یا اینترانت (Intranet)
شبکه خارجی یا اکسترانت (Extranet)
شبکه‌اینترنت (Internet)

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






شبکه داخلی (Intranet)

یک «شبکه داخلی» مجموعه‌ای از شبکه‌های متصل به هم می‌باشد که از قرارداد ‎IP و ابزارهای مبتنی بر IP مانند «مرورگران وب» استفاده می‌کند و معمولاً زیر نظر یک نهاد مدیریتی کنترل می‌شود. این نهاد مدیریتی «شبکه داخلی» را نسبت به باقی قسمت‌های دنیا محصور می‌کند و به کاربران خاصی اجازه ورود به این شبکه را می‌دهد. به طور معمول‌تر شبکه درونی یک شرکت یا دیگر شرکت‌ها «شبکه داخلی» می‌باشد.

به طور مثال شبکه ملی در ایران نوعی از شبکه‌های داخلی (اینترانت) می‌باشد.






شبکه خارجی (Extranet)

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






شبکه اینترنت (Internet)

شبکه ویژه‌ای از شبکه‌ها که حاصل اتصالات داخلی شبکه‌های دولتی، دانشگاهی، عمومی و خصوصی در سرتاسر دنیا است. این شبکه بر اساس شبکه اولیه‌ای کار می‌کند که «آرپانت» (ARPANET) نام داشت و به‌وسیله موسسه «آرپا» (ARPA) که وابسته به «وزارت دفاع ایالات متحده آمریکا» است ایجاد شد. همچنین منزلگاهی برای «وب جهان‌گستر» (WWW) است. در لاتین واژه Internet برای نامیدن آن بکار می‌رود که برای اشتباه نشدن با معنی عام واژه «شبکه متصل» حرف اول را بزرگ می‌نویسند.

اعضای شبکه اینترنت یا شرکت‌های سرویس دهنده آنها از «آدرسهای IP» استفاده می‌کنند. این آدرس‌ها از موسسات ثبت نام آدرس تهیه می‌شوند تا تخصیص آدرسها قابل کنترل باشد. همچنین «سرویس دهندگان اینترنت» و شرکت‌های بزرگ، اطلاعات مربوط به در دسترس بودن آدرس‌هایشان را بواسطه «قرارداد دروازه لبه» (BGP) با دیگر اعضای اینترنت مبادله می‌کنند.






اجزای اصلی سخت‌افزاری

همه شبکه‌ها از اجزای سخت‌افزاری پایه‌ای تشکیل شده‌اند تا گره‌های شبکه را به یکدیگر متصل کنند، مانند «کارت‌های شبکه»، «تکرارگر»ها، «هاب»ها، «پل»ها، «راهگزین»ها و «مسیریاب»ها. علاوه بر این، بعضی روشها برای اتصال این اجزای سخت‌افزاری لازم است که معمولاً از کابلهای الکتریکی استفاده می‌شود (از همه رایجتر «کابل رده ۵» (کابل Cat5) است)، و کمتر از آنها، ارتباطات میکروویو (مانند آی‌تریپل‌ئی ۸۰۲٫۱۱) و («کابل فیبر نوری» Optical Fiber Cable) بکار می‌روند.






کارت شبکه (network adapter)

«کارت شبکه»، «آداپتور شبکه» یا «کارت واسط شبکه» (Network Interface Card) قطعه‌ای از سخت‌افزار رایانه‌است و طراحی شده تا این امکان را به رایانه‌ها بدهد که بتوانند بر روی یک شبکه رایانه‌ای با یکدیگر ارتباط برقرار کنند. این قطعه دسترسی فیزیکی به یک رسانه شبکه را تامین می‌کند و با استفاده از «آدرسهای MAC»، سیستمی سطح پایین جهت آدرس دهی فراهم می‌کند. این شرایط به کاربران اجازه می‌دهد تا به وسیله کابل یا به صورت بی‌سیم به یکدیگر متصل شوند.






تکرارگر (repeater)

«تکرارگر» تجهیزی الکترونیکی است که سیگنالی را دریافت کرده و آن را با سطح دامنه بالاتر، انرژی بیشتر و یا به سمت دیگر یک مانع ارسال می‌کند. بدین ترتیب می‌توان سیگنال را بدون کاستی به فواصل دورتری فرستاد. از آنجا که تکرارگرها با سیگنال‌های فیزیکی واقعی سروکار دارند و در جهت تفسیر داده‌ای که انتقال می‌دهند تلاشی نمی‌کنند، این تجهیزات در «لایه فیزیکی» یعنی اولین لایه از «مدل مرجع OSI» عمل می‌کنند.






هاب (جعبه تقسیم)- hub

«هاب» قطعه‌ای سخت‌افزاری است که امکان اتصال قسمت‌های یک شبکه را با هدایت ترافیک در سراسر شبکه فراهم می‌کند. هاب‌ها در «لایه فیزیکی» از «مدل مرجع OSI» عمل می‌کنند. عملکرد هاب بسیار ابتدایی است، به این ترتیب که داده رسیده از یک گره را برای تمامی گره‌های شبکه کپی می‌کند. هاب‌ها عموماً برای متصل کردن بخش‌های یک «شبکه محلی» بکار می‌روند. هر هاب چندین «درگاه» (پورت) دارد. زمانی که بسته‌ای از یک درگاه می‌رسد، به دیگر درگاه‌ها کپی می‌شود، بنابراین همه قسمت‌های شبکه محلی می‌توانند بسته‌ها را ببینند.






پل (bridge)

یک «پل» دو «زیرشبکه» (سگمنت) را در «لایه پیوند داده» از «مدل مرجع OSI» به هم متصل می‌کند. پل‌ها شبیه به «تکرارگر»ها و «هاب»های شبکه‌اند که برای اتصال قسمت‌های شبکه در «لایه فیزیکی» عمل می‌کنند، با این حال پل با استفاده از مفهوم پل‌زدن کار می‌کند، یعنی به جای آنکه ترافیک هر شبکه بدون نظارت به دیگر درگاه‌ها کپی شود، آنرا مدیریت می‌کند. بسته‌هایی که از یک طرف پل وارد می‌شوند تنها در صورتی به طرف دیگر انتشار می‌یابند که آدرس مقصد آن‌ها مربوط به سیستم‌هایی باشد که در طرف دیگر پل قرار دارند. پل مانع انتشار پیغام‌های همگانی در قطعه‌های کابل وصل‌شده به آن نمی‌شود.







پل‌ها به سه دسته تقسیم می‌شوند:

پل‌های محلی: مستقیماً به «شبکه‌های محلی» متصل می‌شود.
پل‌های دوردست: از آن می‌توان برای ساختن «شبکه‌های گسترده» جهت ایجاد ارتباط بین «شبکه‌های محلی» استفاده کرد. پل‌های دور دست در شرایطی که سرعت اتصال از شبکه‌های انتهایی کمتر است با «مسیریاب»ها جایگزین می‌شوند.
پل‌های بی‌سیم: برای «اتصال شبکه‌های محلی» به «شبکه‌های محلی بی‌سیم» یا «شبکه‌های محلی بی‌سیم» به هم یا ایستگاه‌های دوردست به «شبکه‌های محلی» استفاده می‌شوند.







راهگزین (switch)

«راهگزین» که در پارسی بیشتر واژه «سوئیچ» برای آن بکار برده می‌شود، وسیله‌ای است که قسمت‌های شبکه را به یکدیگر متصل می‌کند. راهگزین‌های معمولی شبکه تقریباً ظاهری شبیه به «هاب» دارند، ولی یک راهگزین در مقایسه با هاب از هوشمندی بیشتری (و همچنین قیمت بیشتری) برخوردار است. راهگزین‌های شبکه این توانمندی را دارند که محتویات بسته‌های داده‌ای که دریافت می‌کنند را بررسی کرده، دستگاه فرستنده و گیرنده بسته را شناسایی کنند، و سپس آن بسته را به شکلی مناسب ارسال نمایند. با ارسال هر پیام فقط به دستگاه متصلی که پیام به هدف آن ارسال شده، راهگزین «پهنای باند» شبکه را به شکل بهینه‌تری استفاده می‌کند و عموماً عملکرد بهتری نسبت به یک هاب دارد.

از نظر فنی می‌توان گفت که راهگزین در «لایه پیوند داده» از «مدل مرجع OSI» عمل کنند. ولی بعضی انواع راهگزین قادرند تا در لایه‌های بالاتر نیز به بررسی محتویات بسته بپردازند و از اطلاعات بدست آمده برای تعیین مسیر مناسب ارسال بسته استفاده کنند. به این راه گزین‌ها به اصطلاح «راهگزین‌های چندلایه» (Multilayer Switch) می‌گویند.






مسیریاب (router)

«مسیریاب»ها تجهیزات شبکه‌ای هستند که بسته‌های داده را با استفاده از «سرایند»ها و «جدول ارسال» تعیین مسیر کرده، و ارسال می‌کنند. مسیریاب‌ها در «لایه شبکه» از «مدل مرجع OSI» عمل می‌کنند. همچنین مسیریاب‌ها اتصال بین بسترهای فیزیکی متفاوت را امکان‌پذیر می‌کنند. این کار با چک کردن سرایند یک بسته داده انجام می‌شود.

مسیریاب‌ها از «قراردادهای مسیریابی» مانند ابتدا کوتاه‌ترین مسیر را انتخاب کردن استفاده می‌کنند تا با یکدیگر گفتگو کرده و بهترین مسیر بین هر دو ایستگاه را پیکربندی کنند. هر مسیریاب دسته کم به دو شبکه، معمولاً شبکه‌های محلی، شبکه‌های گسترده و یا یک شبکه محلی و یک سرویس دهنده اینترنت متصل است. بعضی انواع مودم‌های DSL و کابلی جهت مصارف خانگی درون خود از وجود یک مسیریاب نیز بهره می‌برند.






هم‌بندی
در فرهنگ رایانه، همبندی یا توپولوژی (به انگلیسی: Topology) به معنای چگونگی پیکربندی و ایجاد اتصالات بین دستگاه‌های یک شبکه رایانه‌ای است. به هر ابزار متصل به یک شبکه رایانه‌ای گره (Node) گفته می‌شود که به‌وسیله پیوندها (Link) به همدیگر متصل می‌گردند.






انواع همبندی شبکه
آرایش خطی یا گذرگاهی (Bus)

شبکه‌ای که از همبندی گذرگاهی استفاده می‌کند معمولاً دارای یک کابل واحد و بلند بوده که دستگاه‌های مختلف شبکه به آن متصل هستند و در هر واحد زمانی تنها یک رایانه امکان ارسال اطلاعات را دارد. در این روش کلیهٔ رایانه‌های متصل به خط، اطلاعات ارسال شده را دریافت می‌کنند ولی تنها رایانه‌ای که آدرس مقصد بسته دادهٔ متعلق به او است این اطلاعات را ذخیره می‌نماید و بقیهٔ رایانه‌ها از بسته صرف‌نظر می‌کنند. راه اندازی آن آسان است و به این منظور از یک رشته کابل کواکسیال استفاده می شود و هر سیستم به کمک یک کانکتور به شبکه متصل می شود . ابتدا و انتهای شبکه با ترمیناتور بسته می شود. اما نگهداری از آن با مشکلاتی همچون خطایابی مشکل همراه است به همین دلیل تقریبا منسوخ شده است .






آرایش حلقوی (Ring)

این همبندی توسط شرکت آی‌بی‌ام اختراع شد و کلیه رایانه‌ها به گونه‌ای به یکدیگر متصل هستند که مجموعه آنها یک حلقه را تشکیل می‌دهد. همیشه یک بستهٔ کوچک با نام نشانه (Token) در داخل شبکه از یک رایانه به دیگری می‌رود، زمانی که یک رایانه اطلاعاتی جهت ارسال دارد، نشانه را در اختیار گرفته و از چرخش آن داخل شبکه جلوگیری می‌کند، تا زمانیکه نشانه توسط یک رایانه نگه‌داشته شده باشد، تمام رایانه‌های شبکه پذیرای اطلاعاتی خواهند بود که رایانه مالک نشانه ارسال می‌کند.که معایب این نوع توپولوژی این است که اگر قسمتی از کابل اصلی به علتی آسیب ببیند کل شبکه از کار می افتد وعیب یابی آن بسیار وقت گیر می‌باشد واز مزایای آن میتوان به کم هزینه بودن و سادگی شبکه اشاره کرد
آرایش ستاره‌ای (Star)

در این نوع همبندی کلیه رایانه‌ها به یک کنترل کنندهٔ مرکزی به نام میانگاه (یا هاب Hub) متصل می‌شوند و هرگاه رایانه‌ای بخواهد با رایانه دیگری تبادل اطلاعات کند رایانه مبدا اطلاعات را به میانگاه ارسال نموده و اطلاعات از طریق آن به رایانه مقصد انتقال می‌یابد.







نکته ها:

۱) یک پیوند نقطه به نقطه را می‌توان به عنوان حالت خاصی از یک شبکه با آرایش ستاره در نظر گرفت. در نتیجه ساده‌ترین شبکه که براساس آرایش ستاره ساخته می‌شود را می‌توان یک گره که به یک گره دیگر از طریق یک پیوند نقطه یه نقطه متصل است در نظر گرفت انتخاب یک گره به عنوان میانگیر به دلخواه ممکن است.
۲)ساده‌ترین نوع شبکه براساس آرایش ستاره علاوه بر شبکه توضیح داده شده در ۱ یک میانگیر متصل به دو گره تابع می‌باشد.
۳) با وجود این که می‌توان آرایش ستاره را با استفاده از یک میانگیر یا سویچ براحتی پیاده سازی نمود اما به کار بردن یک کامپیوتر یا یک اشتراک مشترک نیز برای میانگیر کافی است. به هر حال چون در بیشتر نمایش‌های آرایش ستاره یکی از این ابزار ویژه نشان داده شده است در نتیجه ممکن است این ابهام بوجود آید که حتماً باید از یکی از این ابزار استفاده نمود در حالی که مانند مثال گفته شده در مثال دو سه کامپیوتر متصل به یکدیگر بدون استفاده از هیچ ابراز ویژه‌ای نیز خود یک شبکه با آرایش ستاره است.
۴) شبکه‌های ستاره را می‌توان بصورت پخشی با دسترسی چندگانه یا غیر پخشی با دسترسی چندگانه (NBMA) توصیف نمود که وابسته به توانایی میانگیر در ارسال سیگنال‌های موجود به تمام گره‌های تابع یا ارسال سیگنال به صورت جداگانه برای هر ارتباط است.







ستاره گسترش یافته

اگر بین میانگیر و گره‌ها تکرارکننده قرار دهیم تا مسافت قابل پوشش توسط میانگیر افزایش یابد به آن آرایش ستاره گسترش یافته گفته می‌شود اگر به جای تکرارکننده‌ها میانگیر قرار داده شود یک آرایش ترکیبی از ستاره-سلسله مراتبی بوجود می‌آید که در بعضی از کتاب‌ها بین این آرایش و آرایش ستاره تفاوتی قائل نمی‌گردند.






آرایش مشبک (Mesh)

در این آرایش شبکه نظم مشخصی نداشته و هر یک از رایانه‌ها به یک یا چند رایانه دیگر متصل شده‌اند. این آرایش در واقع نسخه ناقص آرایش اتصال کامل است، لذا هزینه و پیچیدگی کمتری نسبت به روش مذکور دارد.از معایب این توپولوژی میتوان به پیچیدگی و هزینهای بالای آن اشاره کرد و چون شبکه گسترده است عیب یابی ان هم نسبت سخت می‌باشد از مزایای این توپولوزی این است که اگر قسمتی از کابل قطع شود کل شبکه از کار نمی افتد و انتقال اطلاعات به صورت دوبه دو می‌باشد یعنی تمامی کامپیوترها بدون اینکه شبکه مشغول شود میتوانند به یک دیگر اطلاعات ارسال و دریافت کنند که برای اینکه از توژولو‍‍‍‍‍‍ژی mesh بتوان از حداکثرنیرو استفاده کرد از دستگاهی به نام روتر یا مسیر یاب استفاده می‌شود که کار این دستگاه این است که باعث می‌شود از خطهایا مسیر هایی که خالی هستند ارسال اطلاعات انجام داد و در نتیجه این دستگاه باعث سرعت بخشیدن به ارسل اطلاعات میشود






آرایش اتصال کامل (Fully Connected)

در این آرایش تمام رایانه‌های شبکه مستقیما به همدیگر متصل هستند. عمده‌ترین اشکال این روش پیچیدگی و هزینه بالای این اتصالات است. مزیت این روش ارسال سریع و بیواسطه اطلاعات از هر رایانه به رایانه دیگر می‌باشد.
آرایش درختی (Tree) یا آرایش سلسله مراتبی

در آرایش درختی یک گره مرکزی (بالاترین سطح در سلسله مراتب) به دو یا چند گره در سطحی پایین تر با استفاده از یک پیوند نقطه به نقطه متصل است (به عنوان مثال در سطح دو) و گره‌های سطح دو نیز به چندین گره در سطحی پایینتر متصل هستند (برای مثال در سطح سوم). گره مرکزی تنها گرهی است که هیچ گرهی در سطحی بالاتر از خود ندارد. سلسله مراتب درخت متقارن است یعنی تعداد گره‌های متصل به هر گره در سطح پایین تر عدد ثابت f است. عدد f به عنوان عامل شاخه بندی در درخت سلسله مراتب شناخته می‌شود.







نکته ها:

۱) یک شبکه مبنی بر آرایش درختی فیزیکی حتماً باید حداقل سه سطح داشته باشد در غیر این صورت اگر دو سطح داشته باشد نشان دهنده آرایش ستاره است.
۲)اگر یک آرایش درختی عامل شاخه بندی برابر با یک داشته باشد این آرایش نشان دهنده آرایش خطی است.
۳)عامل شاخه بندی مستقل از تعداد کل گره هاست اگر یک گره نیاز به درگاه‌هایی برای اتصال به گره‌های دیگر داشته باشد می‌توان تعداد درگاه‌ها را بدون توجه به تعداد کل گره‌ها کاهش داد. در نتیجه تعداد درگاه‌های مورد نیاز وابسته به عامل شاخه بندی است و در نتیجه می‌توان تعداد درگاه‌ها را بدون توجه به تعداد کل گره‌ها کاهش داد.
۴)تعداد کل پیوندهای نقطه به نقطه در شبکه بر اساس آرایش درختی یکی کمتر از تعداد گره‌های شبکه می‌باشد
۵)اگر نیاز به پردازش اطلاعات توسط گره‌ها در یک آرایش درختی فیزیکی باشد گره‌های سطح بالاتر باید پردازش بیشتری نسبت به گره‌های سطح پایین تر انجام دهند







آرایش ترکیبی (Hybrid)

آرایش ترکیبی نوعی از آرایش‌های شبکه است که از همبندی یک یا چند شبکه با آرایش‌های فیزیکی متفاوت و یا همیندی چندین شبکه که دارای آرایش فیزیکی یکسان است بوجود می‌آید و آرایش فیزیکی شبکه حاصل مشابه آرایش فیزیکی شبکه‌های اولیه نمی‌باشد (مثلاً آرایش فیزیکی شبکه‌ای که از همبندی چندین شبکه براساس آرایش فیزیکی ستاره بدست می‌آید ممکن است با توجه به نحوه اتصال شبکه‌ها به صورت ترکیبی از آرایش‌های ستاره و خطی یا ستاره و درختی باشد در حالی که اگر چندین شبکه با آرایش خطی توزیع شده به یکدیگر متصل گردند شبکه حاصل آرایش خطی توزیع شده را به خود خواهد گرفت )


این توپولوژی ترکیبی است از چند شبکه با توپولوژی متفاوت که توسط یک کابل اصلی بنام Backbone (ستون فقرات) به یکدیگر مرتبط شده اند.توسط یک پل ارتباطی به نام Bridge به کابل backbone متصل می شود.






شبکه هوشمند
یک شبکه هوشمند (smart grid) با استفاده از تکنولوژی دیجیتال دوطرفه انرژی را از تولیدکنندگان به مشتریان منتقل می‌کند، تا با کنترل وسایل منازل مصرف کنندگان در مصرف انرژی صرفه جویی شود، هزینه کاهش یابد و قابلیت اطمینان و شفافیت بالا برود. چنین شبکه مدرن الکتریکی به عنوان راهی برای اداره کردن استقلال انرژی، گرمایش جهانی و مسایل نوظهور از سوی بسیاری از دولتها تعقیب می‌شود.





شبکه بی‌سیم

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

شبکه‌های ارتباطی بی‌سیم عموماً به‌وسیله یکی از انواع سیستم‌های انتقال اطلاعات به دوردست پیاده‌سازی می‌شوند، که از «امواج الکترومغناطیس» استفاده می‌کنند، مانند استفاده از «امواج رادیویی» به عنوان «حامل». این پیاده‌سازی معمولاً در «لایه فیزیکی» از «مدل مرجع OSI» انجام می‌شود.






انواع
نسل آتی شبکه NGN

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

جدا کردن لایه‌های انتقال، کنترل، سرویس و دسترسی از یکدیگر.
قابلیت همـکاری با لایه هـای مختلف و شبکه‌های دیگر از طریق اینترفیس‌های باز (Open interface)
کنترل یکپارچه تکنولوژی‌های مختلف انتقال نظیر ATM، IP، TDM، Frame Relay و...
استفاده از عناصر استاندارد شبکه نظیر Gateway، Soft Switch و Application Server.

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

کاهش مشکلات شبکه
افزایش تصاعدی ترافیک دیتا نسبت به صوت
عدم یکپارچگی شبکه
مدیریت شبکه
اتمام ظرفیت شبکه موجود
افزایش سوددهی شرکتها
پیاده سازی پروتکلهای استاندارد
افزایش پهنای باند و ارائه سرویسهای سریعتر
رشدکلان انتقال اطلاعات(Data) نسبت به صوت و افزایش چشمگیر مشترکین اینترنت پرسرعت







شبکه محلی بی‌سیم (Wireless LAN)

تکنولوژی شبکه‌های بی‌سیم، با استفاده از انتقال داده‌ها توسط اموج رادیویی، در ساده‌ترین صورت، به تجهیزات سخت‌افزاری امکان می‌دهد تا بدون‌استفاده از بسترهای فیزیکی همچون سیم و کابل، با یکدیگر ارتباط برقرار کنند. شبکه‌های بی‌سیم بازهٔ وسیعی از کاربردها، از ساختارهای پیچیده‌ای چون شبکه‌های بی‌سیم سلولی -که اغلب برای تلفن‌های همراه استفاده می‌شود- و شبکه‌های محلی بی‌سیم (WLAN – Wireless LAN) گرفته تا انوع ساده‌ای چون هدفون‌های بی‌سیم، را شامل می‌شوند. از سوی دیگر با احتساب امواجی همچون مادون قرمز، تمامی تجهیزاتی که از امواج مادون قرمز نیز استفاده می‌کنند، مانند صفحه کلیدها، ماوس‌ها و برخی از گوشی‌های همراه، در این دسته‌بندی جای می‌گیرند. طبیعی‌ترین مزیت استفاده از این شبکه‌ها عدم نیاز به ساختار فیزیکی و امکان نقل و انتقال تجهیزات متصل به این‌گونه شبکه‌ها و هم‌چنین امکان ایجاد تغییر در ساختار مجازی آن‌هاست. از نظر ابعاد ساختاری، شبکه‌های بی‌سیم به سه دسته تقسیم می‌گردند: WWAN، WLAN و WPAN.

مقصود از WWAN، که مخفف Wireless WAN است، شبکه‌هایی با پوشش بی‌سیم بالاست. نمونه‌ای از این شبکه‌ها، ساختار بی‌سیم سلولی مورد استفاده در شبکه‌های تلفن همراه‌است. WLAN پوششی محدودتر، در حد یک ساختمان یا سازمان، و در ابعاد کوچک یک سالن یا تعدادی اتاق، را فراهم می‌کند. کاربرد شبکه‌های WPAN یا Wireless Personal Area Network برای موارد خانگی است. ارتباطاتی چون Bluetooth و مادون قرمز در این دسته قرار می‌گیرند.

شبکه‌های WPAN از سوی دیگر در دستهٔ شبکه‌های Ad Hoc نیز قرار می‌گیرند. تفاوت میان شبکه‌های Ad hoc با شبکه‌های محلی بی‌سیم (WLAN) در ساختار مجازی آن‌هاست. به‌عبارت دیگر، ساختار مجازی شبکه‌های محلی بی‌سیم بر پایهٔ طرحی ایستاست درحالی‌که شبکه‌های Ad hoc از هر نظر پویا هستند.






سیستم جهانی برای ارتباطات سیار (GSM)

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

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

یکی از مهمترین محصولات این استاندارها که در CEPT شکل گرفته‌است استاندارد GSM است. این استاندارد سیستم ارتباطات موبایل سلولی دیجیتالی نسل جدید را در CEPT اروپا توسعه داده‌است. برای اولین با کار استادارد سازی GSM جهت پیاده سازی این سیستم در سال ۱۹۹۱ صورت گرفته‌است.






معماری GSM

سیستم GSM از ترکیب ۳ زیر سیستم اصلی به وجود آمده‌است:

زیر سیستم شبکه
زیر سیستم رادیویی
زیر سیستم پشتیبانی و نگهداری

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

سه رابط مهم در سیستم GSM در زیر آمده‌است:

رابط A که میان MSC و BSC قرار دارد.

رابط A-bis که میان BSC و BTS قرار دارد.

رابط UM که میان BTS و MS قرار دارد.






1. زیر سیستم شبکه

این سیستم شامل تجهیزات و فانکشنهای مربوط به مکالمات end-to-end، مدیریت مشترکین، Mobility می‌باشد و نیز مانند رابطی میان سیستم GSM و مراکز تلفن ثابت (PSTN) عمل می‌کند. زیر سیستم شبکه، یک زیر سیستم سوئیچینگ می‌باشد که شامل MSCها، AUC، HLR، VLR و EIR می‌باشد.






2. زیر سیستم رادیویی

شامل تجهیزات و فانکشنهای مرتبط با مدیریت اتصالات مسیر رادیویی، مانند مدیریت handoverها می‌باشد. این زیر سیستم شامل BTS، BSC و MS است. MS به طور قرار دادی در زیر سیستم رادیویی قرار گرفته او همیشه آخرین مسیر یک مکالمه‌است و از برقراری یک مکالمه، به همراه زیر سیستم شبکه، جهت مدیریت Mobility، محافظت می‌کند.






3. زیر سیستم مرکز نگهداری و پشتیبانی (OMC)

شامل فانکشنهای نگهداری و پشتیبانی تجهیزات GSM می‌باشد و پشتیبانی رابط اپراتور شبکه را نیز بر عهده دارد. OMC به تمام تجهیزات داخل سیستم سوئیچینگ و BSC متصل می‌شود. OMC در حقیقت فانکشنهای نظارتی GSM یک کشور را انجام می‌دهد (مانند صورتحساب دادن) و یکی از مهمترین فانکشنهای آن هم، فانکشن نگهداری HLR یک کشور است. بسته به اندازه شبکه هر کشور می‌تواند بیشتر از یک OMC داشته باشد. مدیریت سراسری و متمرکز شبکه نیز توسط مرکز مدیریت شبکه (NMC) انجام می‌پذیرد و OMC نیز مسئول مدیریت منطقه‌ای شبکه می‌باشد.






اینترنت بیسیم پاکت پی سی‌ها و لب تابها (Wi-Fi)

WiFi روش بیسیم برای ایجاد و اداره شبکه‌است که به آن شبکه سازی ۸۰۲٫۱۱ و شبکه سازی بیسیم نیز گفته می‌شود. بزرگترین نقطه قوت WiFi، سادگی آسان است. شما می‌توانید کامپیوترهای منزل یا محل کار خود را بدون نیاز به سیم به یکدیگر متصل کنید. کامپیوترهایی که شبکه را تشکلیل می‌دهند می‌توانند تا بیش از ۱۰۰ فوت از هم فاصله داشته باشند.






تکنولوژی رادیویی WiFi

رادیوهای WiFi که با استانداردهای ۸۰۲٫۱۱b و ۸۰۲٫۱۱g کار می‌کنند در ۲٫۴GHz امواج را ارسال می‌کنند، در صورتیکه آنهایی که از استاندارد ۸۰۲٫۱۱a تبعیت می‌کنند در ۵GHz امواج را ارسال می‌نمایند. Walkie_Talkieهای عادی عموماً در ۴۹MHz کار می‌کنند. فرکانس بالاتر امکان نرخ‌های داده‌ای بالاتر را فراهم می‌کند. رادیوهای WiFi از تکنیک‌های کد گذاری پیشرفته تری استفاده می‌کنند که بنوبه خود موجب نرخ‌های داده‌ای بالاتری می‌شود. برای ۸۰۲٫۱۱a و ۸۰۲٫۱۱g، تکنیک بکار گرفته شده، orth_ogonal freguency_division multiplexing (OFDM) نام دارد. برای ۸۰۲٫۱۱b این تکنیک با عنوان: Complementary Code Kying(cck) شناخته می‌شود. رادیوهای بکار رفته در WiFi از قابلیت تغییر فرکانس‌ها برخوردار هستند.






اضافه کردن WiFi به یک کامپیوتر

یکی از بهترین چیزها در مورد WiFi سادگی آن است. تعداد زیادی از laptopهای جدید با کارت WiFi توکار به بازار عرضه شده‌اند ـ ـ در بسیاری از موارد شما برای شروع کار با WiFi مجبور به انجام هیچ کاری نیستید. همچنین افزودن یک کارت WiFi به یک laptop قدیمی تر یا به یک کامپیوتر رومیزی بسیار ساده‌است






شبکه بی‌سیم حسگر

معرفی شبکه‌های حسگر بی سیم WSN پیشرفت‌های اخیر در زمینه الکترونیک و مخابرات بی‌سیم توانایی طراحی و ساخت حسگرهایی را با توان مصرفی پایین، اندازه کوچک، قیمت مناسب و کاربری‌های گوناگون داده است. این حسگرهای کوچک که توانایی انجام اعمالی چون دریافت اطلاعات مختلف محیطی بر اساس نوع حسگر، پردازش و ارسال آن اطلاعات را دارند، موجب پیدایش ایده‌ای برای ایجاد و گسترش شبکه‌های موسوم به شبکه بی‌سیم حسگر WSN شده‌اند. یک شبکه حسگر متشکل از تعداد زیادی گره‌های حسگر است که در یک محیط به طور گسترده پخش شده و به جمع‌آوری اطلاعات از محیط می‌پردازند. لزوماً مکان قرار گرفتن گره‌های حسگر، از قبل‌تعیین‌شده و مشخص نیست. چنین خصوصیتی این امکان را فراهم می‌آورد که بتوانیم آنها را در مکان‌های خطرناک و یا غیرقابل دسترس رها کنیم.

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

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

گستره کاربری شبکه‌های بی‌سیم حسگر بسیار وسیع بوده و از کاربردهای کشاورزی، پزشکی و صنعتی تا کاربردهای نظامی را شامل می‌شود. به عنوان مثال یکی از متداول‌ترین کاربردهای این تکنولوژی، نظارت بر یک محیط دور از دسترس است. مثلاً نشتی یک کارخانه شیمیایی در محیط وسیع کارخانه می‌تواند توسط صدها حسگر که به طور خودکار یک شبکه بی‌سیم را تشکیل می‌دهند، نظارت شده و در هنگام بروز نشت شیمیایی به سرعت به مرکز اطلاع داده شود.

در این سیستم‌ها بر خلاف سیستم‌های سیمی قدیمی، از یک سو هزینه‌های پیکربندی و آرایش شبکه کاسته می‌شود از سوی دیگر به جای نصب هزاران متر سیم فقط باید دستگاه‌های کوچکی را که تقریباً به اندازه یک سکه هستند. شبکه حسگر بی‌سیم (Wireless Sensor Network/ WSN) به یک شبکه بی سیم از حسگرهای خودراهبر گفته می‌شود که با فاصله پخش شده اند و برای اندازه گیری گروهی برخی از کمیت‌های فیزیکی یا شرایط محیطی مانند دما، صدا، لرزش، فشار، حرکت یا آلاینده ها، در مکانهای مختلف یک محدوده کاربرد دارد. شبکه‌های حسگر با انگیزه استفاده در کاربردهای نظامی مانند نظارت بر میدان جنگ، توسعه پیدا کرد. اما امروزه شبکه‌های حسگر بی سیم در صنعت و بسیاری از مقاصد غیر نظامی استفاده می‌شوند، از جمله نظارت و کنترل فرایندهای صنعتی، نظارت بر سلامت دستگاهها، نظارت بر محیط و یا خانه، کاربردهای مراقبت از سلامتی، خانه‌های هوشمند و کنترل ترافیک.

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

یک شبکه سنسور معمولاً تشکیل یک شبکه‌های بی‌سیم اقتضایی (ad-hoc) را می دهد، به این معنی که هر گره از الگوریتم مسیریابی multi-hop استفاده می‌کند. (تعداد زیادی گره یک بسته اطلاعاتی را جلو برده و به ایستگاه مرکزی می رساند). در حال حاضر شبکه‌های بی سیم حسگر یکی از موضوعات فعال تحقیقاتی در علوم کامپیوتر و ارتباطات است که هر ساله تعداد بیشماری کارگاه و کنفرانس در این زمینه انجام می‌شود.






کاربردها

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

از موارد دیگر کاربرد این شبکه ها میتوان به نظارت بر محل‌های مسکونی، ردیابی هدف‌های متحرک، کنترل رآکتور هسته ای، آشکار سازی حریق، نظارت ترافیک و ... اشاره نمود.






نظارت بر محیط

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

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






مشخصه ها

مشخصه‌های منحصربه‌فرد گیرندهٔ بی سیم:

گره‌های گیرنده با مقیاس کم
قدرت محدود که می‌توان ذخیره یا تخلیه شود
شرایط محیطی نا مناسب
نقص‌های گره
ترک گره
شبکه دینامیک توپو لوژی
نقص ارتباطات
غیر یکنواختی گره ها
گسترش با مقیاس بالا






عملکرد خودکار

گره‌های گیرنده را می‌توان کامپیوترهای کوچکی تصور کرد. کاملاً اساسی و در وجه مشترکشان در ساختار و اجزاء آنها معمولاً شامل واحد پردازنده و قدرت اشتباه محاسبهٔ محدود و حافظهٔ محدود هستند گیرنده‌ها (شامل شرایط خاص مدارها) دستگاه ارتباطی (معمولاً فرستنده و گیرنده رادیویی و نوری متناوب) و منبع انرژی هم معمولاً از باتری است. پایگاه‌ها بنیادی از یا چند اجزاء برجسته از شبکه ارتباطی گیرنده بی سیم (WSN) با محاسبهٔ بیشتر انرژی، منبع ارتباطاتی، آنها مثل دروازه بین گره گیرنده و کاربر نهایی عمل می‌کنند.
1:36 am
کاربرد برنامه نویسی

زبان برنامه نویسی یک مکانیزم ساخت یافته برای تعریف داده‌ها، و عملیات یا تبدیل‌هایی که ممکن است بطور اتوماتیک روی آن داده انجام شوند، فراهم می‌کند. یک برنامه نویس از انتزاعات آماده در زبان استفاده می‌کند تا مفاهیم به کار رفته در محاسبات را بیان کند. این مفاهیم به عنوان یک مجموعه از ساده‌ترین عناصر موجود بیان می‌شوند(مفاهیم ابتدایی نامیده می‌شوند).





زبان‌های برنامه نویسی با غالب زبان‌های انسانی تفاوتی دارد و آن این است که نیاز به بیان دقیق تر و کامل تری دارد. هنگام استفاده از زبان‌های طبیعی برای ارتباط با دیگر انسان‌ها، نویسندگان و گویندگان می‌توانند مبهم باشند و اشتباهات کوچک داشته باشند، و همچنان انتظار داشته باشند که مخاطب آنها متوجه شده باشد. اگرچه، مجازا، رایانه‌ها "دقیقاً آنچه که به آنها گفته شده را انجام می‌دهند." و نمی‌توانند "بفهمند" که نویسنده دقیقاً چه کدی مد نظر نویسنده بوده‌است] البته امروزه برنامه‌هایی برای انجام این کار تولید شده‌اند و تلاش‌های بسیاری در این زمینه انجام شده ولی هنوز به نتیجهٔ رضایت بخشی نرسیده است[. ترکیب تعریف زبان، یک برنامه، و ورودی برنامه بطور کامل رفتار خروجی را به هنگام اجرای برنامه (در محدوده کنترل آن برنامه) مشخص می‌کند. برنامه‌های یک رایانه ممکن است در یک فرایند ناپیوسته بدون دخالت انسان اجرا شوند، یا یک کاربر ممکن است دستورات را در یک مرحله فعل و انفعال مفسر تایپ کند.در این حالت "دستور"ها همان برنامه‌ها هستند، که اجرای آنها زنجیروار به هم مرتبطند.به زبانی که برای دستور دادن به برنامه‌ای استفاده می‌شود، زبان اسکریپت می‌گویند. بسیاری از زبان‌ها کنار گذاشته شده‌اند، برای رفع نیازهای جدید جایگزین شده‌اند، با برنامه‌های دیگر ترکیب شده‌اند و در نهایت استعمال آنها متوقف شده‌است. با وجود اینکه تلاش‌هایی برای طراحی یک زبان رایانه" کامل" شده‌است که تمام اهداف را تحت پوشش قرار دهد، هیچ یک نتوانستند بطور کلی این جایگاه را پر کنند. نیاز به زبان‌های رایانه‌ای گسترده از گستردگی زمینه‌هایی که زبان‌ها استفاده می‌شوند، ناشی می‌شود:

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

یک سیر رایج در گسترش زبان‌های برنامه نویسی این است که قابلیت حل مسائلی با درجات انتزاعی بالاتری را اضافه کنند. زبان‌های برنامه نویسی اولیه به سخت‌افزار رایانه گره خورده بودند. همانطور که زبان‌های برنامه نویسی جدید گسترش پیدا کرده‌اند، ویژگی‌هایی به برنامه‌ها افزوده شده که به برنامه نویس اجازه دهد که ایده‌هایی که از ترجمه ساده به دستورات سخت‌افزار دورتر هستند نیز استفاده کند. چون برنامه نویس‌ها کمتر به پیچیدگی رایانه محدود شده‌اند، برنامه‌های آنها می‌تواند محاسبات بیشتری با تلاش کمتر از سوی برنامه نویس انجام دهند. این به آنها این امکان را می‌دهد که کارایی بیشتردر واحد زمان داشته باشند. "پردازنده‌های زبان طبیعی" به عنوان راهی برای ازبین بردن نیاز به زبان‌های اختصاصی برنامه نویسی پیشنهاد شده‌اند. هرچند، این هدف دور است و فواید آن قابل بحث است. "ادسگر دیجسترا" موافق بود که استفاده از یک زبان رسمی برای جلوگیری از مقدمه سازی ساختارهای بی معنی واجب است، و زبان برنامه نویسی طبیعی را با عنوان "احمقانه" رد کرد، "آلن پرلیس" نیز مشابها این ایده را رد کرد. مطابق با متدولوژی نامتجانس استفاده شده توسط langpop.com در سال ۲۰۰۸، ۱۲ زبان پرکاربرد عبارتند از: C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, Shell, SQL, and Visual Basic.



المان‌ها
تمام زبان‌های بزنامه نویسی تعدادی بلوک‌های ابتدایی برای توضیح داده و پردازش یا تبدیل آنها(مانند جمع کردن دو عدد با انتخاب یک عضو از یک مجموعه)دارند. این " عناصرابتدایی" بوسیله قوانین معناشناسی و دستوری تعریف می‌شوند که ساختار و معنای مربوطه را توضیح می‌دهند.
دستور(
syntax)

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

دستور زبان برنامه نویسی معمولاً بوسیله ترکیب عبارات معین(برای ساختار لغوی) و فرم توضیح اعمال(برای ساختار گرامری) تعریف می‌شوند. متن زیر یک گرامر ساده، به زبان lisp است: expression ::= atom | list atom ::= number | symbol number ::= [+-]?['۰'-'۹']+ symbol ::= ['A'-'Za'-'z'].* list ::= '(' expression* ')' این گرامر موارد ذیل را مشخص می‌کند:

یک عبارت یا atom است و یا یک لیست
یک atom یا یک عدد است و یا یک سمبل
یک عدد دنباله ناشکسته‌ای از یک یا تعداد بیشتری اعداد دهدهی است، که یک علامت مثبت و یا منفی می‌تواند پیش از آن بیاید.
یک سمبل حرفی است که بعد از هیچ یا تعدادی کاراکتر (جز فاصله) می‌آید.
یک لیست تعدادی پرانتز است که می‌تواند صفر یا چند عبارت در خود داشته باشد.

"۱۲۳۴۵"، "()"، "(a b c۲۳۲ (۱))" مثال‌هایی هستند از دنباله‌های خوش فرم در این گرامر.

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

به عنوان مثال در زبان طبیعی، ممکن نیست به برخی از جملات درست از لحاظ گرامری، معنای خاصی اطلاق کرد و یا ممکن است جمله نادرست باشد:

"ایده‌های بی رنگ سبز با خشم می‌خوابند."از نظر دستوری خوش فرم است ولی معنای مورد قبولی ندارد.
"جان یک مجرد متاهل است." از نظر دستوری درست است، ولی معنایی را بیان می‌کند که نمی‌تواند درست باشد.

این قسمت از زبان C از نظر دستوری درست است، اما دستوری را انجام می‌دهد که از نظرمعنایی تعریف نشده است(چون p یک اشاره گر خالی است، عمل p->real,p->im معنای خاصی ندارد.) complex *p = NULL; complex abs_p = sqrt (p->real * p->real + p->im * p->im);

گرامر مورد نیاز برای مشخص کردن یک زبان برنامه نویسی می‌تواند با جایگاهش در "سلسله مراتب چامسکی" طبقه بندی شود. دستور اغلب زبان‌های برنامه نویسی می‌تواند بوسیله یک گرامر نوع ۲ مشخص گردد، برای مثال، گرامرهای مستقل از متن.




معناشناسی ایستا
معناشناسی ایستا محدودیت‌هایی بر روی ساختار مجاز متن‌ها تعیین می‌کند که بیان آنها در فرمول دستوری استاندارد مشکل و یا غیر ممکن است. مهمترین این محدودیت‌ها به وسیله سیستم نوع گذاری انجام می‌شود.


سیستم نوع گذاری
یک سیستم نوع گذاری مشخص می‌کند که یک زبان برنامه نویسی چگونه مقادیر و عبارات را در نوع(type) دسته بندی می‌کند، چگونه می‌تواند آن نوع‌ها را تغییر دهد و رفتار متقابل آن‌ها چگونه‌است. این کارعموما توضیح داده ساختارهایی که می‌توانند در آن زبان ایجاد شوند را شامل می‌شود. طراحی و مطالعه سیستم‌های نوع گذاری بوسیله ریاضیات قراردادی را تئوری نوع گذاری گویند.
زبان‌های نوع گذاری شده و بدون نوع گذاری

یک زبان نوع گذاری شده‌است اگر مشخصات هر عملیات، نوع داده‌های قابل اجرا توسط آن را با نشان دادن نوع‌هایی که برای آنها قابل اجرا نیست، تعیین کند. برای مثال، "این متن درون گیومه قرار دارد" یک رشته‌است. در غالب زبان‌های برنامه نویسی، تقسیم یک رشته با یک عدد معنایی ندارد. در نتیجه غالب زبان‌های برنامه نویسی مدرن ممکن است اجرای این عملیات را توسط برنامه‌ها رد کنند. در برخی زبان‌ها، عبارات بی معنی ممکن است هنگام ترجمه(compile) پیدا شود(چک کننده نوع ایستا)، و توسط کامپایلر رد شود، در حالی که در سایر برنامه‌ها، هنگام اجرا پیدا شود.(چک کننده نوع دینامیک) که به استثنای در حال اجرا منتج شود(runtime exception). حالت خاص زبان‌های نوع دار زبان‌های تک نوعند. این زبان‌ها غالباً اسکریپتی و یا مارک آپ هستند، مانند rexx وSGML و فقط یک داده گونه دارند—غالباً رشته‌های کاراکتری که هم برای داده‌های عددی و هم برای داده‌های سمبلی کاربرد دارند. در مقابل، یک زبان بدون نوع گذاری، مثل اکثر زبان‌های اسمبلی، این امکان را می‌دهد که هر عملیاتی روی هر داده‌ای انجام شود، که معمولاً دنباله‌ای از بیت‌ها با طول‌های متفاوت در نظر گرفته می‌شوند. زبان‌های سطح بالا که بی نوع هستند شامل زبان‌های ساده رایانه‌ای و برخی از انواع زبان‌های نسل چهارم.

در عمل، در حالیکه تعداد بسیار کمی از دیدگاه نظریه نوع، نوع گذاری شده تلقی می‌شوند(چک کردن یا رد کردن تمام عملیات‌ها)، غالب زبان‌های امروزی درجه‌ای از نوع گذاری را فراهم می‌کنند. بسیاری از زبان‌های تولیدکننده راهی را برای گذشتن یا موقوف کردن سیستم نوع فراهم می‌کنند.



نوع گذاری ایستا و متحرک

در نوع گذاری ایستا تمام عبارات نوع‌های خود را قبل از اجرای برنامه تعیین می‌کنند(معمولاً در زمان کامپایل). برای مثال، ۱ و (۲+۲) عبارات عددی هستند؛ آنها نمی‌توانند به تابعی که نیاز به یک رشته دارد داده شوند، یا در متغیری که تعریف شده تا تاریخ را نگه دارد، ذخیره شوند.


زبان‌های نوع گذاری شده ایستا می‌توانند با مانیفست نوع گذاری شوند یا با استفاده از نوع استنباط شوند. در حالت اول، برنامه نویس بیشتر صریحاً نوع‌ها را در جایگاه‌های منتنی مشخص می‌نویسد(برای مثال، در تعریف متغیرها). در حالت دوم، کامپایلر نوع عبارات و تعریف‌ها را بر اساس متن استنباط می‌کند. غالب زبان‌های مسیر اصلی(mainstream) ایستا نوع گذاری شده، مانند C#,C++ و Java، با مانیفست نوع گذاری می‌شوند



نوع گذاری قوی و ضعیف

نوع گذاری ضعیف این امکان را ایجاد می‌کند که با متغیری به جای متغیری دیگر برخورد شود، برای مثال رفتار با یک رشته به عنوان یک عدد. این ویژگی بعضی اوقات ممکن است مفید باشد، اما ممکن است باعث ایجاد برخی مشکلات برنامه شود که موقع کامپایل و حتی اجرا پنهان بمانند.

نوع گذاری قوی مانع رخ دادن مشکل فوق می‌شود. تلاش برای انجام عملیات روی نوع نادرست متغیر منجر به رخ دادن خطا می‌شود. زبان‌هایی که نوع گذاری قوی دارند غالباً با نام "نوع-امن" و یا امن شناخته می‌شوند. تمام تعاریف جایگزین برای "ضعیف نوع گذاری شده" به زبان‌ها اشاره می‌کند، مثل perl, JavaScript, C++، که اجازه تعداد زیادی تبدیل نوع داخلی را می‌دهند. در جاوااسکریپت، برای مثال، عبارت ۲*x به صورت ضمنی x را به عدد تبدیل می‌کند، و این تبدیل موفقیت آمیز خواهد بود حتی اگر x خالی، تعریف نشده، یک آرایه، و یا رشته‌ای از حروف باشد. چنین تبدیلات ضمنی غالباً مفیدند، اما خطاهای برنامه نویسی را پنهان می‌کنند.

قوی و ایستا در حال حاضر عموماً دو مفهوم متعامد فرض می‌شوند، اما استفاده در ادبیات تفاوت دارد، برخی عبارت "قوی نوع گذاری شده" را به کار می‌برند و منظورشان قوی، ایستایی نوع گذاری شده‌است، و یا، حتی گیچ کننده تر، منظورشان همان ایستایی نوع گذاری شده‌است. بنابراین C هم قوی نوع گذاری شده و هم ضعیف و ایستایی نوع گذاری شده نامیده می‌شود.



معناشناسی اجرا

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

برای مثال، معناشناسی ممکن است استراتژی را که بویسله آن عبارات ارزیابی می‌شوند را تعریف کند و یا حالتی را که ساختارهای کنترلی تحت شرایطی دستورها را اجرا می‌کنند.


کتابخانه هسته
اغلب زبان‌های برنامه نویسی یک کتابخانه هسته مرتبط دارند(گاهی اوقات "کتابخانه استاندارد" نامیده می‌شوند، مخصوصا وقتی که به عنوان قسمتی از یک زبان استاندارد ارائه شده باشد)، که به طور قراردادی توسط تمام پیاده سازی‌های زبان در دسترس قرار گرفته باشند. کتابخانه هسته معمولاً تعریف الگوریتم‌ها، داده ساختارها و مکانیزم‌های ورودی و خروجی پرکاربرد را در خود دارد. کاربران یک زبان، غالباً با کتابخانه هسته به عنوان قسمتی از آن رفتار می‌کنند، اگرچه طراحان ممکن است با آن به صورت یک مفهوم مجزا رفتار کرده باشند. بسیاری از خصوصیات زبان هسته‌ای را مشخص می‌کنند که باید در تمام پیاده سازی‌ها موجود باشند، و در زبان‌های استاندارد شده این کتابخانه هسته ممکن است نیاز باشد. بنابراین خط بین زبان و کتابخانه هسته آن از زبانی به زبان دیگر متفاوت است. درواقع، برخی زبان‌ها به گونه‌ای تعریف شده‌اند که برخی از ساختارهای دستوری بدون اشاره به کتابخانه هسته قابل استفاده نیستند. برای مثالف در جاوا، یک رشته به عنوان نمونه‌ای از کلاس “java.lang.String” تعریف شده است؛ مشابها، در سمال تاک(smalltalk) یک تابع بی نام(یک "بلاک") نمونه‌ای از کلاس BlockContext کتابخانه می‌سازد. بطور معکوس، Scheme دارای چندین زیرمجموعه مرتبط برای ایجاد سایر ماکروهای زبان می‌باشد، و در نتیجه طراحان زبان حتی این زحمت را نیز تحمل نمی‌کنند که بگویند کدام قسمت زبان به عنوان ساختارهای زبان باید پیاده سازی شوند، و کدام یک به عنوان بخشی ازکتابخانه.


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



خصوصیات

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

تعریف صریح دستور، معناشناسی ایستا، ومعناشناسی اجرای زبان. درحالیکه دستور معمولاً با یک معناشناسی قراردادی مشخص می‌شود، تعاریف معناشناسی ممکن است در زبان طبیعی نوشته شده باشند (مثل زبان C)، یا معناشناسی قراردادی(مثل StandardML ,Scheme)
توضیح رفتار یک مترجم برای زبان(مثل C,fortran). دستور و معناشناسی یک زبان باید از این توضیح استنتاج شوند، که ممکن است به زبان طبیعی یا قراردادی نوشته شود.
پیاده سازی منبع یا مدل. گاهی اوقات در زبان‌های مشخص شده(مثل: prolog,ANSI REXX).دستور و معناشناسی صریحاً در رفتار پیاده سازی مدل موجودند.


پیاده سازی

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

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

برنامه‌هایی که مستقیماً روی سخت‌افزار اجرا می‌شوند چندین برابر سریعتر از برنامه‌هایی که با کمک نرم‌افزار اجرا می‌شوند، انجام می‌شوند.

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



تاریخچه
پیشرفت‌های اولیه

اولین زبان برنامه نویسی به قبل از رایانه‌های مدرن باز می‌گردد. قرن ۱۹ دستگاه‌های نساجی و متون نوازنده پیانو قابل برنامه نویسی داشت که امروزه به عنوان مثال‌هایی از زبان‌های برنامه نویسی با حوزه مشخص شناخته می‌شوند. با شروع قرن بیستم، پانچ کارت‌ها داده را کد گذاری کردند و پردازش مکانیکی را هدایت کردند. در دهه ۱۹۳۰ و ۱۹۴۰، صورت گرایی حساب لاندای آلونزو چرچ و ماشین تورینگ آلن تورینگ مفاهیم ریاضی بیان الگوریتم‌ها را فراهم کردند؛ حساب لاندا همچنان در طراحی زبان موثر است.

در دهه ۴۰، اولین رایانه‌های دیجیتال که توسط برق تغذیه می‌شدند ایجاد شدند. اولین زبان برنامه نویسی سطح بالا طراحی شده برای کامپیوتر پلانکالکول بود، که بین سال‌های ۱۹۴۵ و ۱۹۴۳ توسط کنراد زوس برای ز۳ آلمان طراحی شد.

کامپیوترهای اوایل ۱۹۵۰، بطور خاص ÜNIVAC ۱ و IBM ۷۰۱ از برنامه‌های زبان ماشین استفاده می‌کردند. برنامه نویسی زبان ماشین نسل اول توسط نسل دومی که زبان اسمبلی نامیده می‌شوند جایگزین شد. در سال‌های بعد دهه ۵۰، زبان برنامه نویسی اسمبلی، که برای استفاده از دستورات ماکرو تکامل یافته بود، توسط سه زبان برنامه نویسی سطح بالا دیگر: FORTRAN,LISP , COBOL مورد استفاده قرار گرفت. نسخه‌های به روز شده این برنامه‌ها همچنان مورد استفاده قرار می‌گیرند، و هر کدام قویا توسعه زبان‌های بعد را تحت تاثیر قرار دادند. در پایان دهه ۵۰ زبان algol ۶۰ معرفی شد، و بسیاری از زبان‌های برنامه نویسی بعد، با ملاحظه بسیار، از نسل algol هستند. قالب و استفاده از زبان‌های برنامه نویسی به شدت متاثر از محدودیت‌های رابط بودند.



پالایش

دوره دهه ۶۰ تا اواخر دهه ۷۰ گسترش مثال‌های عمده زبان پرکاربرد امروز را به همراه داشت. با این حال بسیاری از جنبه‌های آن بهینه سازی ایده‌های اولیه نسل سوم زبان برنامه نویسی بود:

APL برنامه نویسی آرایه‌ای را معرفی کرد و برنامه نویسی کاربردی را تحت تاثیر قرار داد.
PL/i(NPL) دراوایل دهه ۶۰ طراحی شده بود تا ایده‌های خوب فورترن و کوبول را بهم پیوند دهد.
در دهه ۶۰، Simula اولین زبانی بود که برنامه نویسی شئ گرا را پشتیبانی می‌کرد، در اواسط دهه۷۰. Smalltalk به دنبال آن به

عنوان اولین زبان کاملاً شئ گرا معرفی شد.

C بین سال‌های ۱۹۶۹ تا ۱۹۷۳ به عنوان زبان برنامه نویسی سیستمی طراحی شد و همچنان محبوب است.
Prolog، طراحی شده در ۱۹۷۲، اولین زبان برنامه نویسی منطقی بود.
در ۱۹۷۸ ML سیستم نوع چند ریخت روی لیسپ ایجاد کرد، و در زبان‌های برنامه نویسی کاربردی ایستا نوع گذاری شده پیشگام شد.

هر یک از این زبان‌ها یک خانواده بزرگ از وارثین از خود به جای گذاشت، و مدرنترین زبان‌ها از تبار حداقل یکی از زبان‌های فوق به شمار می‌آیند.

دهه‌های ۶۰ و ۷۰ مناقشات بسیاری روی برنامه نویسی ساخت یافته به خود دیدند، و اینکه آیا زبان‌های برنامه نویسی باید طوری طراحی شوند که آنها را پشتیبانی کنند.

"ادسگر دیکسترا" در نامه‌ای معروف در ۱۹۶۸ که در ارتباطات ACM منتشر شد، استدلال کرد که دستورgoto باید از تمام زبان‌های سطح بالا حذف شود.

در دهه‌های ۶۰ و ۷۰ توسعهٔ تکنیک‌هایی صورت گرفت که اثر یک برنامه را کاهش می‌داد و در عین حال بهره وری برنامه نویس و کاربر را بهبود بخشید. دسته کارت برای ۴GL اولیه بسیار کوچکتر از برنامهٔ هم سطح بود که با ۳GL deck نوشته شده بود.




یکپارچگی و رشد

دهه ۸۰ سال‌های یکپارچگی نسبی بود. C++ برنامه نویسی شئ گرا و برنامه نویسی سیستمی را ترکیب کرده بود. ایالات متحده ایدا(زبان برنامه نویسی سیستمی که بیشتر برای استفاده توسط پیمان کاران دفاعی بود) را استاندارد سازی کرد. در ژاپن و جاهای دیگر، هزینه‌های گزافی صرف تحقیق در مورد زبان نسل پنجم می‌شد که دارای ساختارهای برنامه نویسی منطقی بود. انجمن زبان کاربردی به سمت استانداردسازی ML و Lisp حرکت کرد. به جای ایجاد مثال‌های جدید، تمام این تلاش‌ها ایده‌هایی که در دهه‌های قبل حلق شده بودند را بهتر کرد.

یک گرایش مهم در طراحی زبان در دهه ۸۰ تمرکز بیشتر روی برنامه نویسی برای سیستم‌های بزرگ از طریق مدول‌ها، و یا واحدهای کدهای سازمانی بزرگ مقیاس بود. مدول-۲، ایدا. و ML همگی سیستم‌های مدولی برجسته‌ای را در دهه ۸۰ توسعه دادند. با وجود اینکه زبان‌های دیگر، مثل PL/i، پشتیبانی بسیار خوبی برای برنامه نویسی مدولی داشتند. سیستم‌های مدولی غالباً با ساختارهای برنامه نویسی عام همراه شده‌اند.

رشد سریع اینترنت در میانه دهه ۹۰ فرصت‌های ایجاد زبان‌های جدید را فراهم کرد. Perl، در اصل یک ابزار نوشتن یونیکس بود که اولین بار در سال ۱۹۸۷ منتشر شد، در وب‌گاه‌های دینامیک متداول شد. جاوا برای برنامه نویسی جنب سروری مورد استفاده قرار گرفت. این توسعه‌ها اساساً نو نبودند، بلکه بیشتر بهینه سازی شده زبان و مثال‌های موجود بودند، و بیشتر بر اساس خانواده زبان برنامه نویسی C بودند. پیشرفت زبان برنامه نویسی همچنان ادامه پیدا می‌کند، هم در تحقیقات و هم در صنعت. جهت‌های فعلی شامل امنیت و وارسی قابلیت اعتماد است، گونه‌های جدید مدولی(mixin، نماینده‌ها، جنبه‌ها) و تجمع پایگاه داده.

۴GLها نمونه‌ای از زبان‌هایی هستند که محدوده استفاده آنها مشخص است، مثل SQL. که به جای اینکه داده‌های اسکالر را برگردانند، مجموعه‌هایی را تغییر داده و بر می‌گردانند که برای اکثر زبان‌ها متعارفند. Perl برای مثال، با "مدرک اینجا" خود می‌تواند چندین برنامه ۴GL را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.




سنجش استفاده از زبان

مشکل است که مشخص کنیم کدام زبان برنامه نویسی بیشتر مورد استفاده‌است، و اینکه کاربرد چه معنی می‌دهد با توجه به زمینه تغییر می‌کند. یک زبان ممکن است زمان بیشتری از برنامه نویس بگیرد، زبان دیگر ممکن است خطوط بیشتری داشته باشد، و دیگری ممکن است زمان بیشتری از پردازنده را مصرف کند. برخی زبان‌ها برای کاربردهای خاص بسیار محبوبند. برای مثال: کوبول همچنان در مراکزداده متحد، غالباً روی کامپیوترهای بزرگ توانا است؛ fortran در مهندسی برنامه‌های کاربردی، C در برنامه‌های تعبیه شده و سیستم‌های عامل؛ و بقیه برنامه‌ها معمولاً برای نوشتن انواع دیگر برنامه‌ها کاربرد دارند. روش‌های مختلفی برای سنجش محبوبیت زبان‌ها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شده‌است:

شمارش تعداد تبلیغات شغلی که از آن زبان نام می‌برند.
تعداد کتاب‌های آموزشی و شرح دهندهٔ آن زبان که فروش رفته‌است.
تخمین تعداد خطوطی که در آن زبان نوشته شده اند- که ممکن است زبان‌هایی را که در جستجوها کمتر پیدا می‌شوند دست کم گرفته شوند.
شمارش ارجاع‌های زبان(برای مثال، به اسم زبان) در موتورهای جستجوهای اینترنت.

طبقه بندی‌ها هیچ برنامه غالبی برای دسته بندی زبان‌های برنامه نویسی وجود ندارد. یک زبان مشخص معمولاً یک زبان اجدادی ندارد. زبان‌ها معمولاً با ترکیب المان‌های چند زبان پیشینه بوجود می‌آیند که هربار ایده‌های جدید درگردشند. ایده‌هایی که در یک زبان ایجاد می‌شوند در یک خانواده از زبان‌های مرتبط پخش می‌شوند، و سپس از بین خلاهای بین خانواده‌ها منتقل شده و در خانواده‌های دیگر ظاهر می‌شوند.

این حقیقت که این دسته بندی ممکن است در راستای محورهای مختلف انجام شوند، این وظیفه را پیچیده تر می‌کند؛ برای مثال، جاوا هم یک زبان شیءگرا(چون به برنامه نویسی شیءگرا تشویق می‌کند) و زبان همزمان(چون ساختارهای داخلی برای اجرای چندین جریان موازی دارد) است. پایتون یک زبان اسکریپتی شیءگراست.

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

یک زبان برنامه نویسی ممکن است با فاکتورهای غیر مرتبط به مثال‌های برنامه نویسی دسته بندی شود. برای مثال، غالب زبان‌های برنامه نویسی کلمات کلیدی زبان انگلیسی را استفاده می‌کنند، در حالیکه تعداد کمی این کار را نمی‌کنند. سایر زبان‌ها ممکن است براساس داخلی بودن یا نبودن دسته بندی شوند.
ساعت : 1:36 am | نویسنده : admin | تک گرافیک | مطلب قبلی
تک گرافیک | next page | next page