توصيفگر ها :
زيرساخت شبكه , سوئيچ , سوئيچهاي نرمافزاري , برنامهپذيري لايه داده , شبكههاي مبتني بر نرمافزار
چكيده فارسي :
شبكههاي كامپيوتري نقش تأثيرگذاري در جامعه امروزي ايفا ميكنند. يكي از مهمترين اين نقشها، ارتباطات بين مؤلفههاي مختلف در زيرساختهاي پردازشي و مجازي ميباشد. قسمتي از اين ارتباطات توسط سوئيچها ممكن ميشود. سوئيچها از اين جهت حائز اهميت هستند كه امكان انتقال و مسيريابي اطلاعات بين مؤلفههاي مختلف را ممكن ميسازند. با توجه به مكان و نحوهي استقرار اين سوئيچها آنها را ميتوان به دو دستهي سختافزاري يا نرمافزاري تقسيمبندي كرد. در زيرساختهاي پردازشي مبتني بر مجازيسازي كه از جمله در پردازش ابري از آن استفاده ميشود، به علت عدم امكان استفاده از سوئيچهاي سختافزاري از سوئيچهاي نرمافزاري استفاده ميشود. از آنجايي كه نرخ رشد استفاده از اين نوع سوئيچها روز افزون در حال زياد شدن است، كوچكترين بهبود در نرخ تبادل اطلاعات يا ايجاد قابليتي جديد ميتواند دنياي اين حوزه را متحول كند. اين موضوع از اين جهت اهميت پيدا ميكند كه تغييرات روز افزون در دنياي شبكه، نيازمند زيرساختي انعطافپذير نسبت به اين تغييرات ميباشد. در اين پژوهش هدف طراحي نوعي جديدي از سوئيچهاي نرمافزاري با سرعت بالا و همچنين ايجاد قابليت برنامه پذيري از منظر عدم وابستگي به پروتكل با نام NSwitch ميباشد. از آنجايي كه اين سوئيچ بر پايهي زيرساخت شبكههاي مبتني بر نرمافزار طراحي شده است، توانايي ايجاد، ويرايش و حذف پروتكلها با دستوراتي كه كنترلر به آن ميدهد را دارد. به نوعي كنترلر تنها با يك دستور ميتواند يك پروتكل كاملا جديد را به اين سوئيچ اضافه يا پروتكلهاي قبلي را ويرايش يا حذف كند.
NSwitch با دور زدن سيستمعامل دستهي زيادي از سربارهاي ناشي از كرنل را با بهره گيري از چهارچوب موجود در اين حوزه از بين برده است. از سوي ديگر با ابداع نوع جديدي از مكان نگهداري پروتكلها تحت عنوان پايگاهدادهي NDB درون RAM توانسته علاوه بر ثابت نگهداشتن سرعت بالاي پردازش، پويايي و انعطاف زيادي در جهت قابليت برنامهپذيري از مدنظر عدم وابستگي به پروتكل را ارائه كند. اين موضوع از اين جهت حائز اهميت است كه نياز به برنامهنويسي براي سوئيچهاي نرمافزاري حتي با زبانهاي سطح بالا يكي از نگرانيهاي توسعهدهندگان اين دسته از سوئيچها بوده است. همچنين ايجاد تغييرات نيازمند به تفسير كدهايي است كه براي سوئيچها طراحي شده است. از اين رو براي تغيير مثلا 10 هزار سوئيچ نرمافزاري نيازمند دست كم 10 هزار بار تفسير و استقرار و اجراي نسخهي تفسير شده هستيم. NSwitch با ابداع جدول پروتكلها و همچنين APIهايي بر روي آن، امكان ايجاد تغييرات در اين سوئيچ را با صدا زدن يك API ممكن ساخته و در نتيجه نياز به هر گونه تفسير، مفسر، برنامه نويسي و هرگونه اطلاعات يا دانش تخصصي را از بين برده است.
اين سوئيچ نرمافزاري با انجام بهينهسازيهاي خاصي و همچنين با بكاربردن تكنيكهاي نوين برنامهنويسي و استفاده از جديدترين و پرسرعت ترين چهارچوبها توانسته تمام قابليتهاي اعلام شده را تنها با 3 درصد سربار ممكن سازد. از سوي ديگر طي ارزيابيهايي اين سوئيچ نرمافزاري توانسته تا سرعت 60 گيگابيت بر ثانيه را تجربه كند و از لحاظ تئوري تا 100 گيگابيت بستهها را هدايت كند. از ديدگاه تعداد بسته، اين سوئيچ توانايي هدايت تقريبا 20 ميليون بسته را در ثانيه را داشته و از ديدگاه تأخير تنها نيازمند 26 ميكروثانيه براي ارسال و دريافت يك بسته ميباشد.
چكيده انگليسي :
Computer networks play a paramount role in todayʹs society. One of the most critical roles is the connections between the various compute and virtual infrastructures components. Some of these connections are made possible by switches. Switches are essential because they make it possible to transfer and route information between different elements. Depending on the location of these switches, they can be divided into two categories: hardware or software. In processing, virtualization, and cloud infrastructures, software switches are used due to the impossibility of using hardware switches. As the growth rate of using these types of switches increases, the slightest improvement in the case of speed or the creation of a new capability can transform the world in this area. This is important because increasing changes in the networking world require a flexible infrastructure for these changes. In this research, the aim is to design a new type of high-speed software switches and create programmability in terms of independence to the protocols called NSwitch. Because this switch is based on software-based network infrastructure, it can create, edit, and delete protocols with commands given by the controller. In a way, the controller can add a whole new protocol to this switch or edit or delete previous protocols with just one command.
By bypassing the operating system, NSwitch has eliminated many kernel overheads by using the existing framework in this area. On the other hand, by inventing a new type of protocol’s storage in RAM called NDB and maintaining a high processing speed, it has provided a lot of dynamism and flexibility for programmability without regard to protocol dependency. This is important because the need for programming for software switches, even with high-level languages, has been a concern for developers of these switches. Making changes also requires interpreting the code designed for the switches. Therefore, to change, for example, 10,000 software switches, we need at least 10,000 compiles and installation and execution of a compiled version. By inventing the protocol table and its APIs, NSwitch made it possible to make changes to this switch by calling an API, thus eliminating the need for any compilation or compiler, programming, or any specialized science.
This software switch has been able to make all the announced capabilities possible with only 3% overhead by performing a large number of optimizations as well as using new programming techniques and using the latest and fastest frameworks. On the other hand, during many tests, this software switch was able to experience speeds of up to 60 Gbps and, in theory, drive packages up to 100 Gbps. In terms of the number of packets, this switch can handle approximately 20 million packets per second, and in terms of latency, it only takes 26 microseconds to send and receive a packet.