Жил хагасын дараа хөгжлийнхөө дараа төслийн хувилбар , фреймворк дээр суурилсан өндөр хүчин чадалтай хэрэглэгчийн орон зайн сүлжээний стекийг хөгжүүлэх и TCP/IP FreeBSD стек (F-Stack нь FreeBSD-тэй холбоогүй бөгөөд FreeBSD-г үндсэн хэрэглээний платформ гэж үздэг. Linux). Төслийг янз бүрийн бүтээгдэхүүн, үйлчилгээнд ашигладаг. , Хятадын харилцаа холбооны хамгийн том компани. Код BSD лицензийн дагуу. Ажил нь дэмжигдсэн Linux болон FreeBSD.
F-Stack нь үйлдлийн системийн сүлжээний стекийн оронд хэрэглэгчийн орон зайд ажилладаг, сүлжээний төхөөрөмжтэй шууд ажилладаг өөрийн сүлжээний стекийг ашиглан програмууд дахь сүлжээний харилцан үйлчлэлийг зохион байгуулах боломжийг олгодог. Nginx болон Redis-ийн тусгай хэвлэлүүд нь F-Stack ашиглахаар орчуулагдсан.
Хэрэглээний хөгжүүлэлтэд зориулагдсан Одоо байгаа програмуудыг F-Stack руу шилжүүлэхийг хялбаршуулдаг стандарт Posix API (Socket, Epoll, Kqueue), сүлжээний програмуудыг үүсгэх ажлыг хялбаршуулж, хийх боломжийг олгодог coroutines (microthreads) дээр суурилсан өөрийн програмчлалын интерфейс хоёулаа. асинхрон хүсэлтийг боловсруулах нарийн төвөгтэй логикгүйгээр. F-Stack нь мөн олон процесст архитектур бүхий программуудад ашиглахад хялбар болгох хэрэгслүүдээр хангадаг.
Үйлдлийн системийн цөмийн интерфэйсүүдийг алгасаж сүлжээний карттай харилцахын тулд хүрээ ашигладаг. (Data Plane Development Kit) нь сүлжээний адаптеруудтай бага түвшний ажил хийх, олон цөмт систем дэх харилцан үйлчлэл, цагираг буфер болон асар том санах ойн хуудсуудыг ашиглахад зориулсан номын сангийн багцыг өгдөг. DPDK ашиглах нь хамгийн бага тооны CPU циклтэй (багц тутамд ойролцоогоор 80 цикл) сүлжээний пакетуудыг хүлээн авах, илгээх, өндөр гүйцэтгэлтэй сүлжээний стек бүрэлдэхүүн хэсгүүдийг хөгжүүлэх боломжийг олгодог. Функциональ байдал TCP/IP Стек нь FreeBSD 11.1-ээс зээлэгдэж, үйлдлийн системээс хамааралгүй номын санд хуваагддаг.
F-Stack нь хэвийн ажиллагаатай нөхцөлд сүлжээний хүсэлт боловсруулагчдын гүйцэтгэлийг сайжруулахад ашиглаж болох шийдэл болгон байрлуулсан. TCP/IP цөмийн стек Linux саад тотгор болж, масштабыг хязгаарладаг. Гэсэн хэдий ч F-Stack ашиглах нь мэдэгдэхүйц оновчлолыг бий болгодог бөгөөд зарим тохиолдолд боловсруулсан жижиг хүсэлтийн тоог мэдэгдэхүйц нэмэгдүүлэх боломжийг олгодог.
Сүлжээний пакетуудыг хуулах, урсгалын хуваарь гаргах, тасалдлыг зохицуулах, системийн дуудлагыг ашиглах зэрэг үйлдлүүдийг арилгах замаар гүйцэтгэлийг нэмэгдүүлнэ. F-Stack нь ашигласан сүлжээний картын сүлжээний гүйцэтгэлийн дээд хязгаарт хүрэх боломжийг олгодог. Жишээлбэл, F-Stack дээр суурилсан шийдлүүд нь 10 сая зэрэгцсэн холболт, секундэд 5 сая хүсэлт, секундэд 1 сая холболт хийх чадварыг харуулсан.
Шинэ хувилбарт:
- VLAN дэмжлэг нэмсэн;
- Docker дээр суурилсан тусгаарлагдсан саванд ажиллах чадварыг олгодог;
- ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd болон ff_setsockopt_freebsd интерфейсүүдийг хэрэгжүүлсэн;
- Ирж буй пакет байхгүй тохиолдолд CPU-ийн ачааллыг багасгахын тулд "idle_sleep" параметрийг нэмсэн.
- ARM64 архитектурт бүтээх дэмжлэг нэмэгдсэн;
- F-Stack руу орчуулагдсан Nginx хэвлэлд getpeername, getsockname болон унтраах зохицуулагчийг сольсон;
- DPDK 17.11.4 LTS-ийн шинэ хувилбарт шилжих ажил хийгдсэн;
- Найрлагад хэрэгсэл нэмэгдсэн F-Stack (trafshow-г санагдуулам) дээр суурилсан програмуудын боловсруулсан одоогийн урсгалыг харуулах.
Ирээдүйн төлөвлөгөөнөөс IPv6 дэмжлэг, Python, PHP болон Go хэлний API хангамж, Cyptodev API дэмжлэг (), багц илгээхдээ тэг хуулбарыг ашиглах, дэмжлэг үзүүлэх болон суурь процесс болгон ажиллуулах чадвар.
Эх сурвалж: opennet.ru
