سادگی زیباست...

بررسی انواع معماری های سیستم عامل و برنامه های سیستمی و روشهای توسعه آنها

سادگی زیباست...

بررسی انواع معماری های سیستم عامل و برنامه های سیستمی و روشهای توسعه آنها

سادگی زیباست...

۲۶ مطلب با موضوع «آموزشهای عمومی» ثبت شده است

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

۳ موافقین ۰ مخالفین ۰ ۳۱ فروردين ۹۳ ، ۱۱:۱۱
حامد شیخلو
برای نصب ویندوز یا هر سیستم عامل دیگه بر روی سیستمی که سی دی رام نداشته باشه، اولین راه که به ذهن آدم میرسه، استفاده از فلش هستش. اما اگر مشکل شما هم مثل مال من باشه که هم سی دی رام یکی از لبتاپ هام از کار افتاده و هم از فلش بوت نمیکنه(البته فلش هم ندارم:)) باید دنبال یه راه حل دیه باشین. حتما تو بوت سیستم دیدین که اگر سیستم عامل نباشه که بوت بشه، سعی میکنه که به DHCP سرور کانکت بشه. این برای استفاده از پروتکل PXE هستش. محیط Preboot Execution Environment  یک محیط برای بوت کردن سیستم از طریق شبکه و جدا از فضای ذخیره سازی هستش. مثلا برای سیستم های TC که نمیخوان براش هارد بزارن.
محیط ما مشابه عکس زیر خواهد بود:
۱۷ موافقین ۰ مخالفین ۰ ۱۱ فروردين ۹۳ ، ۱۶:۴۶
حامد شیخلو

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

لیست مقالات رو میتونین از اینجا ببینید.

۰ موافقین ۰ مخالفین ۰ ۰۶ اسفند ۹۲ ، ۱۰:۰۳
حامد شیخلو
کتابخانه ZMQ، یک کتابخانه برای ارتباطات غیر همگام با سرعت بالا است. این کتابخانه برای بسیاری از زبانهای برنامه نویسی دارای API میباشد و بسیار کارایی راحتی دارد. این کتابخانه یک صف پیغام (message queue) ایجاد میکند، اما بر خلاف میان افزارهای بر مبنای پیغام (message based middleware) نیازمند یک دلال پیغام (message broker) نمیباشد. این کتابخانه بسیار مشابه به یک API سوکت است.
معماری های اصلی موجود در ZMQ موارد زیر است:
  • Request-Reply: اتصال مجموعه ای از سرویس گیرنده ها به مجموعه ای از سرویس دهنده ها.
  • Publish-Subscribe: اتصال مجموعه ای از توزیع کنندگان به مجموعه ای از دریافت کنندگان. این یک مدل توزیع داده است.
  • Push-pull: یک مدل fan out/fan in که در این مدل یک صف پیغام به تمام دریافت کنندگان پوش میشود.
  • exclusive pair: اتصال دو سوکت به همدیگر به صورت جفت خاص
خود کتابخانه zmq در مورد امنیت امکانات خاصی ندارد. به منظور فراهم آوردن ارتباط امن بین دو سیستم (یا پردازش) میتوان از پروتکل SSH استفاده کرد. با استفاده از پروتکل SSH میتوان بین دو سیستم تونل ارتباطی برقرار کرد (همان کاری که برای رد کردن محدودیت اینترنتی انجام میشود).
فرض کنید که معماری زیر را داشته باشیم:
  • سیستم A دارای یک پردازش که به پورت 5556 گوش میدهد و خود سیستم دارای آدرس 192.168.10.245 است.
import zmq
import time
import sys

port = "5556"
if len(sys.argv) > 1:
    port =  sys.argv[1]
    int(port)

context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:%s" % port)

while True:
    #  Wait for next request from client
    message = socket.recv()
    print "Received request: ", message
    time.sleep (1)  
    socket.send("World from %s" % port)
  • سیستم B که به سیستم A متصل خواهد شد.
import zmq
from zmq import ssh
import sys
import paramiko

port = "5557"
if len(sys.argv) > 1:
    port =  sys.argv[1]
    int(port)

if len(sys.argv) > 2:
    port1 =  sys.argv[2]
    int(port1)

context = zmq.Context()
print "Connecting to server..."
socket = context.socket(zmq.REQ)
socket.connect ("tcp://192.168.10.245:%s" % port)

#  Do 10 requests, waiting each time for a response
for request in range (1,10):
    print "Sending request ", request,"..."
    socket.send ("Hello")
    #  Get the reply.
    message = socket.recv()
    print "Received reply ", request, "[", message, "]"
این سیستم میتواند به سادگی توسط zmq پیاده سازی شود.
در قدم بعدی میتوان با استفاده از تونل، ارتباط بین را امن کرد. در این مرحله یک تونل به صورت دستی ایجاد میشود. با دستور زیر یک ارتباط تونلی بین پورت 5557 سیستم B با پورت 5556 سیستم B توسط SSH برقرار میشود.
ssh -L 127.0.0.1:5557:localhost:5556 user@192.168.10.245 -N

بعد از وارد کردن دستور بالا در ترمینال کلمه عبور سیستم A پرسیده میشود. بعد از وارد کردن آن میتون ارتباط امن بین پردازش ها را داشته باشیم. کد برنامه ها به صورت زیر تغییر پیدا میکند:

سیستم A که نقش سرور را دارد:

import zmq
import time
import sys

port = "5556"
if len(sys.argv) > 1:
    port =  sys.argv[1]
    int(port)

context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://127.0.0.1:%s" % port)

while True:
    #  Wait for next request from client
    message = socket.recv()
    print "Received request: ", message
    time.sleep (1)  
    socket.send("World from %s" % port)

کد سیستم B که نقش سرویس گیرنده دارد:

import zmq
from zmq import ssh
import sys
import paramiko

port = "5557"
if len(sys.argv) > 1:
    port =  sys.argv[1]
    int(port)

if len(sys.argv) > 2:
    port1 =  sys.argv[2]
    int(port1)

context = zmq.Context()
print "Connecting to server..."
socket = context.socket(zmq.REQ)
socket.connect ("tcp://127.0.0.1:%s" % port)

#  Do 10 requests, waiting each time for a response
for request in range (1,10):
    print "Sending request ", request,"..."
    socket.send ("Hello")
    #  Get the reply.
    message = socket.recv()
    print "Received reply ", request, "[", message, "]"

در کتابخانه pyzmq که یک پیاده سازی برای zmq است، یک گسترش بر روی اتصال zmq وجود دارد که همین کار اتصال تونل را انجام میدهد. کد نهایی به صورت زیر خواهد بود:

کد سیستم A تغییر نخواهد کرد و همان کد قسمت قبلی است

کد سیستم B به صورت زیر خواهد بود:

import zmq
from zmq import ssh
import sys
import paramiko

port = "5557"
if len(sys.argv) > 1:
    port =  sys.argv[1]
    int(port)

if len(sys.argv) > 2:
    port1 =  sys.argv[2]
    int(port1)

context = zmq.Context()
print "Connecting to server..."
socket = context.socket(zmq.REQ)
ssh.tunnel_connection(socket,"tcp://127.0.0.1:5556","user@192.168.10.245",password="111111")
if len(sys.argv) > 2:
    socket.connect ("tcp://192.168.10.245:%s" % port1)

#  Do 10 requests, waiting each time for a response
for request in range (1,10):
    print "Sending request ", request,"..."
    socket.send ("Hello")
    #  Get the reply.
    message = socket.recv()
    print "Received reply ", request, "[", message, "]"

۴ موافقین ۰ مخالفین ۰ ۱۳ بهمن ۹۲ ، ۲۱:۴۹
حامد شیخلو
هسته شماره 3.13 لینوکس منتشر شد. یکی از اصلیترین ویژگی های این نسخه، قرار دادن نسخه نهایی nftables بر روی آن است. این سیستم جایگزین سیستم های iptables, ip6tables,arptables, ebtables خواهد بود. نسخه قرار داده شده بر روی هسته 3.13 نسخه کامل نیست و ویژگی های اضافی به تدریج به آن اضافه خواهد شد.
سیستم nftables با یک دستورات خط فرمان nft همراه است. این دستور جایگزین فرمان iptables خواهد بود اما ظاهر کاملا متفاوتی خواهد داشت. در صورتی که با hptables کار کده باشید، این تغییر میتوان آزار دهنده باشد، اما یک لایه هماهنگ ساز برای تبدیل دستورات iptables به nftables وجود دارد.
متاسفانه مستندات کمی برای آشنایی با این سیستم وجود دارد، در این مطلب سعی میکنیم آشنایی اولیه با این سیستم پیدا کنیم.

بررسی مثالهایی برای آشنایی

فرض کنید که میخواهید بسته های خاصی را با iptables فیلتر کنید، در iptables دستورات زیر را خواهید نوشت.

iptables -A FORWARD -p tcp --dport 22 -j LOG
iptables -A FORWARD -p tcp --dport 22 -j DROP

با سیستم nftables دستور زیر را خواهید نوشت:

nft add rule filter forward tcp dport 22 log drop

فرض کنید که میخواهید بسته های چندین بسته را برای چندین پورت را فیلتر کنید و همچنین به نوع های خاص پروتکل icmpv6 اجازه عبود دهید. در iptables دستورات زیر را خواهید نوشت:

ip6tables -A INPUT -p tcp -m multiport --dports 23,80,443 -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbor-solicitation -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type router-advertisement -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbor-advertisement -j ACCEPT

اما در nftables دستور زیر ر خواهید نوشت:

nft add rule ip6 filter input tcp dport {telnet, http, https} accept
nft add rule ip6 filter input icmpv6 type { nd-neighbor-solicit, echo-request, nd-router-advert, nd-neighbor-advert } accept

mapping

یک ویژگی پیشرفته در nftables قابلیت مپ کردن است. این امکان وجود دارد که از داده هایی با اعواع مختلف استفاده کنیم و آنها را به هم مپ کنیم. برای مثال میتوان یک iface و مجموعه رول را به هم مرتبط کنیم. در مثال زیر زنجیره دستورات به نام low_sec و high_sec ساخته شده است.

# nft -i
nft> add map filter jump_map { type ifindex => verdict; }
nft> add element filter jump_map { eth0 => jump low_sec; }
nft> add element filter jump_map { eth1 => jump high_sec; }
nft> add rule filter input meta iif vmap @jump_map

در صورت نیاز به افزودن یک رابط شبکه، مثلا ppp1 دستور زیر را خواهیم نوشت:

nft> add element filter jump_map { ppp1 => jump low_sec; }

سرعت بروز رسانی و هسته

سیستم iptables با افزودن دستورات زیاد تر به حد زیادی دچار افت سرعت میشود. اما در سیستم جدیدتر nftables این کاهش سرعت وجود نخواهد داشت.

در سیستم iptables برای هر افزودن target یا match نیازمند ماژول و کامپایل دوباره کرنل هستیم. در سیستم nftables بیشتر وظایف در لایه کاربری انجام میشود که این مساله باعث کاهش نیاز به تغییرات هسته میشود. برای مثال ویژگی پشتیبانی از icmp6 با یک پچ قابل انجام است.

در مطلب بعدی به تغییرات معماری سیستم خواهیم پرداخت.

۱ موافقین ۰ مخالفین ۰ ۰۵ بهمن ۹۲ ، ۰۰:۳۵
حامد شیخلو

با سلام

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


اسلاید آموزشی فایروال iptables مر بوط به آزمایشگاه شبکه

http://bayanbox.ir/id/1940651557686741671


اسلاید آموزشی synchronization مربوط به درس سیستم عامل

http://bayanbox.ir/id/3131438666639153949

۳ موافقین ۰ مخالفین ۰ ۳۰ آذر ۹۲ ، ۱۴:۱۱
حامد شیخلو

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

برای انجام این کار در محیط متنی میتوان از روش زیر استفاده کرد:

در محیط گرافیکی لینوکس، چندین tty که شبیه ساز ترمینال است موجود میباشد. برای اینکه کاربری به محیط خاصی لاگین کند، باید tty مشخصی را عوض کنیم. در محیط متنی معمولا با tty1 به صورت پیشفرض لاگین انجام میشود. در مثال زیر برای کاربر test، در tty1 به صورت پیشفرض لاگین انجام میشود.

در فایل

/etc/init/tty1.conf

خط:

exec /sbin/qetty -8 38400 tty1

را با خط زیر جایگزین کنید:

exec /bin/login -f test < /dev/tty1 > /dev/tty1 2>&1
۰ موافقین ۱ مخالفین ۰ ۱۴ آذر ۹۲ ، ۱۶:۴۷
حامد شیخلو

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

این سیستم در ابتدا توسط سازمان NASA و RackSpace توسعه پیدا کرد و اولین انتشار آن در سال 2010 بوده است. این محصول از ابتدا برای استفاده عمومی بوده و به صورت متن باز عرضه شده است.

کلود چیست؟

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

سرویس های ابری میتواند به صورت خصوصی و به صورت عمومی مانند amazon ec2 باشد. میتوان سرویسهای ابری خصوصی و عمومی را با یکدیگر ترکیب کرد. برای مثال میتوان داده های مهم را در محیط ابری خصوصی نگه داری کرد. تمامی منابع امکان اشتراکی سازی بر روی فضای ابری را دارا میباشند. مدلهای اصلی سرویس ارائه شده به صورت زیر است:

  •  SaaS - Software as a Service
  • PaaS - Platform as a Service
  • IaaS - Infrastructure as a Service
نرم افزار به عنوان سرویس (SaaS) شامل یک کاربرد سرویس دهنده مرکزی است که از طریق کاربردهای سمت مشتری قابل دستیابی است، داده ها در سمت سرویس دهنده نگه داری میشود و از هر مکانی قابل دستیابی است.ایس معماری مشابه معماری سیستم های قدیمی است که به صورت مشتری-خدمت گذار بوده است، اما در این معماری جدی، تمامی کاربرد از طریق کاوشگر وب عرضه میشود. معماری SaaS توسط تولید کنندگان نرم افزار بسیار مورد استفاده قرار میگیرد، دلیل این امر کاهش هزینه پشتیبانی نرم افزار، افزایش قدرت کنترل بر روی سیستم، و همچنین قابلیت پشتیبانی سطح آخر میباشد. این مدل برای مشتری نیز به دلیل عدم وجود مشکلات نصب و راه اندازی بهتر میباشد.

PaaS یک انتخاب مناسب برای سازمانهایی است که خواهان کنترل بیشتری بر روی پایگاه داده (datacenter) خود میباشند امامشکلات ناشی از مدیریت شبکه و سیستم ها را نمیخواهند (یا نمیتوانند) مدیریت کنند. یک مثال برای این سیستم ها، سرویس ابری میزبان سرور وب میباشد که سازمان فراهم کننده سرویس ابری، مدیریت سخت افزار، سیستم عامل، شبکه، میزان بار کاری، تنظیم میزان بار کاری (load balancing)  و مدیریت پشتیبان گیری و دیگر مسائل را بر عهده دارد. فراهم کننده سرویس، برای مشتری راه اندازی و پیکربندی سرویس های مورد نیاز را فراهم میکند.

IaaS یک سیستم مجازی در اختیار مشتری قرار میدهد و مدیریت سخت افزار و نرم افزاری این سیستم به عهده مشتری است. سرویس دهنده در این مدل، مدیریت خود سیستم سخت افزاری و منبع انرژی و مسائل نگه داری سخت افزار را بر عهده دارد.

 واکاوی OpenStack
ساختار هسته openstack شامل اجزای زیر است:
  • OpenStack Compute: ماژول مدیریت و فراهم آوردن ماشین مجازی است. این ماژوا با عنوان Nova شناخته میشود. این ماژول ناظرهای (hypervisor)،از قبیل KVM, QEMU, LXC و XenServer  را پشتیبانی میکند. این ماژول کنترل تمامی بخشهای: شبکه بندی، پردازشگر، ذخیره سازی، حافظه اصلی، ساخت ، کنترل و حذف ماشین های مجازی، امنیت و کنترل دسترسی را بر عهده دارد. این مدیریت میتواند از طریق خط فرمان یا محیط گرافیکی وبی انجام شود.
  • OpenStack Glance: مدیریت سرویس ایمیج (image) سیستم openstack را بر عهده دارد. این زیر سیستم ایمیج های ماشین مجازی از قبیل Raw, Hyper-V, Virtual Box, QEMU/KVM و VMware(VMDK,OVF) را پشتیبانی میکند.
  • OpenStack Object Store: همانگونه که از نام این سرویس مشخص است، مدیریت ذخیره سازی را بر عهده دارد. به منظور قابلیت ذخیره سازی در تمام فرمتهای مورد نیاز، این زیر سیستم به صورت توزیع شده است. چندین لایه افزونگی و تکرار خودکار به منظور جلوگیری از پاک شدن داده ها وجود دارد و بازگردانی داده ها به صورت خودکار انجام میشود.
۲ موافقین ۰ مخالفین ۰ ۲۷ آبان ۹۲ ، ۱۶:۵۱
حامد شیخلو

مجازی سازی توابع شبکه

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



این تکنولوژی در سال 2012 در آزمایشگاه AT&T، BT، china mobile و چندین آزمایشگاه دیگر ارائه شد.
در حالی که سیستم‌های شبکه مبتنی بر PC از سال‌های دهه 80 در دسترس بوده است، اما این سیستم‌ها بیشتر توسط سازمان‌های کوچک مورد استفاده قرار می‌گرفت و به عنوان یک راه حل ارزان قیمت برای شبکه‌هایی که قصد یا توانایی خرید ابزارهای اختصاصی را نداشتند مورد استفاده قرار میگرفت.
در سال‌های اخیر، پیشرفت عمده در تکنولوژی کارت‌های شبکه پرسرعت برای سیستم‌های شخصی صورت گرفته و همچنین شرکت‌هایی مانند اینتل بر روی چیپ های خود قابلیت‌های مناسب پردازشی برای کارهای شبکه ای قرار داده است.
امروزه بسیاری از شرکت‌ها برای مدیریت بسته های شبکه ای امکانات مناسبی بر روی پردازشگرهای خود قرار داده‌اند، مثلاً پردازشگرهای اینتل، می‌توانند با برنامه نویسی دوباره به صورت پردازشگر شبکه فعالیت کنند.

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

  •     استفاده از منابع به صورت بهینه تر: مجازی سازی این امکان را می‌دهد که یک منبع تنها در صورت نیاز به یک سیستم اختصاص داده شود.
  •     فراهم آوردن یک سرویس بدون نیاز به حضور فیزیکی یک متخصص.
  •     کاهش در پیچیدگی سیستم.
  •     کاهش در پیچیدگی هزینه راه اندازی و هزینه نگهداری.
CloudNFV
پروژه CloudNFV یک سکوی باز برای راه اندازی NFV بر پایه پردازش ابری و تکنیک های  SDN  در یک محیط با چندین تولید کننده است.
http://www.cloudnfv.com/WhitePaper.pdf
۴ موافقین ۰ مخالفین ۱ ۲۱ مهر ۹۲ ، ۱۵:۳۰
حامد شیخلو
شبکه بندی توصیف شده نرم‌افزاری، یک روند جدید در شبکه کامپیوتری است که در سال 2008 توسط دانشگاه برکلی و استنفورد ابداء شده است. این روش به مدیر شبکه (administrator) اجازه می‌دهد تا سرویس‌های لایه پایین شبکه خود را با یک لایه تجرید مدیریت کند. این کار با جدا کردن سیستمی که درباره محل ارسال ترافیک تصمیم گیری می‌کند، از سیستمی که این ترافیک را فوروارد می‌کند، انجام می‌شود.
شبکه بندی بر اساس پروتکل اینترنت IP، بر مبنای AS ها تشکیل شده است. این پیاده سازی، گسترش شبکه را با گسترش تعداد این سیستم‌ها به عنوان هاپ امکان پذیر می‌سازد. این هاپ ها بسته‌ها را به مقصد معین بعدی انتقال می‌دهند. این روش هم ساده است و هم قابلیت گسترش مناسب دارد. مفهوم AS مطرح شده در این روش، اجازه تغییر مقصد مشخص بدون تغییر مشخصه خودش همراه با همکاری سرویس تحویل بسته، نمی‌دهد. به این معنی که یک مقصد در صورتی می‌تواند محل خود را تغییر دهد و همان شناسه قبلی را داشته باشد، که مسیر تحویل بسته به آن این امکان را بدهد. محل جغرافیایی مقصدها، که با کارت شبکه آن‌ها مشخص می‌شود، مشخص کننده شناسه آن‌ها است. استفاده تنها از AS ها، قابلیت استفاده از روش‌های دیگر شناسایی که مبتنی بر کیفیت باشند را دشوار می‌کند، مانند گروه بندی منطقی، کنترل دسترسی، کیفیت سرویس و امثال این‌ها.

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

یکی از کاربردهای اساسی این روش، در IaaS است. ترکیب این روش با پردازش مجازی و ذخیره سازی مجازی، امکان شبیه سازی تخصیص منابع ارتجاعی را می‌دهد و اگر هر کدام از سازمان‌های استفاده کننده از این فن‌آوری به مدیریت ترافیک بسیار زیادی احتیاج داشته باشند، می‌تواند این کار را انجام دهد. تخصیص منابع در این روش به صورت ایستا به فراخوانی بین پردازشی تبدیل می‌شود.
۰ موافقین ۰ مخالفین ۱ ۱۹ مهر ۹۲ ، ۲۳:۰۰
حامد شیخلو