Tez No İndirme Tez Künye Durumu
458856
A novel priority based request scheduling mechanism to prevent SIP server overload / SIP sunucuların aşırı yüklenmesini önleyici yeni bir önceliklendirme tabanlı istek zamanlama mekanizması
Yazar:DEMİR YAŞA YAVAŞ
Danışman: PROF. DR. BİLGE GÜNSEL KALYONCU ; DR. İBRAHİM HÖKELEK
Yer Bilgisi: İstanbul Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı / Telekomünikasyon Mühendisliği Bilim Dalı
Konu:Elektrik ve Elektronik Mühendisliği = Electrical and Electronics Engineering
Dizin:Aşırı yük = Overload ; Kuyruk modelleri = Queue models ; SIP = SIP ; Sunucu sistemleri = Server systems ; İşaretleşme sistemi = Signalling system
Onaylandı
Doktora
İngilizce
2017
218 s.
Karşılıklı çalışabilir birleşik haberleşmeyi olanaklı kılan temel teknoloji olarak, SIP (Session Initiation Protocol), hem geniş kapsamlı genel Internet, hem de şirket-içi şebekelerde, Internet teknolojilerinin gelişimindeki bir sonraki adımı temsil eder. Konuşma, anlık mesaj (instant messaging (IM)), telefon uygunluk durumu bilgisi ve video konferans gibi çoklu-ortam haberleşmelerini bir oturum üzerinde gerçekleştirme olanak ve yeteneği ile birlikte, işletme şebekeleri için "birleşik" bir haberleşme ortamı sağlar. SIP, aynı zamanda 3GPP (3rd Generation Partnership Project), ITU-T (International Telecommunications Union Telecommunication Standardization Sector) ve ETSI (European Telecommunications Standards Institute) tarafından, sonraki nesil şebekelerde (Next Generation Networks (NGN)) yer alan IMS (IP Multimedia Subsystem) için, mobil iletşimi IP üzerinden sağlamak üzere, temel işaretleşme protokolü olarak uyarlanmıştır. Artan geniş çaplı kullanımı, tüm önceki vadesi dolmuş protokollerde olduğu gibi, SIP'i de performans kayıplarına neden olan sunucu aşırı yüklenmesi problemi ile karşı karşıya bırakmıştır. SIP standardı tarafından 503 (Service Unavailable) yanıt koduna bağlı olarak önerilen aşırı yüklenme kontrol mekanizması tıkanıklıktan çökmeyi önleyemediği gibi, aşırı yüklenme probleminin, sunucular arasında gidip gelerek tüm şebekeye yayılmasına neden olabilir. Bir uygulama katmanı işaretleşme protokolü olarak, SIP, TCP (Transmission Control Protocol), UDP (User Datagram Protocol) ve SCTP (Stream Control Transmission Protocol) üzerinden iletilebilir. Her ne kadar iletimin güvenirliğini arttırmak adına, güvenilir olmayan UDP için istek mesajlarının yeniden iletilmesi mekanizması tanımlanmış olsa da, zaten aşırı yüklenmiş olan sunucuya gereksiz yeniden iletimlerin tetiklenmesine neden olan yeniden iletim mekanizmasının doğurgan yapısı aşırı yüklenme durumunu daha da kötüleştirir. Öyle ki, bu durum sunucunun çökmesine kadar varabilir. Her ne kadar bilinen SIP tasarımı fazlalık yeniden iletimleri tanımlayabilse de, bunun için SIP istek mesajının tümünün ayrıştılmasına gerek duyulur. Ancak, SIP mesajları metin tabanlıdır ve satırlardan oluşur. Mesajın bir istek ya da yanıt mesajı olduğu ilk satırı ile belirlenir ve bu satırlar özel bir formata sahiptir. Bu satır mesajın tipine göre "istek satırı" (request-line) ya da "durum satırı" (status-line) olarak adlandırılır. Sonraki satırlar, mesajın ana içeriğine kadar, birer başlık ile birlikte, gönderen, gönderilen ve oturum kimliği gibi bir SIP mesajında olması beklenen parametreleri içeren satırlardan oluşur. Bu satırların mesaja yerleştirilmesinde bir sıralama zorunluluğu olmadığı gibi, her bir başlık altındaki parametrelerin de belirli bir sırada olması beklenmez. Metin tabanlı mesajların okunabilirliği ve esnek yapısı tasarım aşamasında kolaylık sağlasa da, ayrıştırmada alıcı tarafta önemli bir yük oluşturur. Her bir başlık ya da parametrenin tanınması karakter dizilerinin bir bir karşılaştırılmasını gerektirir. Bu durum, SIP mesajlarının esnek yapısı ve parametre zenginliği ile birleşince, bir SIP masajının işlenmesini oldukça fazla işlem gücü gerektiren bir iş durumuna getirir ki bu tasarım gerçekleme biçimine ve kullanılan programlama diline bağlı olarak, bir mesajın tümüyle işlenmesi için harcanan zamanın %25-%40'ını alır. Ek olarak, bilinen SIP tasarımı, alınan bir istek mesajının yeniden iletilen bir mesaj olduğunun fark edilmesi durumunda, bu mesaj için en son gönderilmiş olan yanıt mesajının yeniden gönderilmesini önermektedir. Alınan istek mesajının fazlalık olması durumunda, bu davranış, sistem kaynaklarının ve şebeke kapasitesinin verimsiz kullanılması anlamına gelir. Dolayısıyla, bir fazlalık istek mesajına harcanan zaman ve gönderilen yanıt mesajı da fazlalıktır. Sonuç olarak, bilinen SIP tasarımı, önerdiği yaklaşımla, fazlalık istek mesajlarının yarattığı olumsuz etkiyi karşılayabilecek donanıma sahip değildir. SIP sunucuların aşırı yüklenmesi ile ilgili çalışmalar da bunu göstermektedir. Bu durumdan yola çıkarak, bu tezde, aşırı yüklenmiş durumda da olsa, fazlalık yeniden iletimlerin SIP sunucular üzerindeki olumsuz etkisini azaltacak, sunucunun ölçeklenirliğini (scalability) arttıracak yeni bir yaklaşım olarak, PRSM (Priority-based Request Scheduling Mechanism) olarak adlandırdığımız, önceliklendirme tabanlı SIP istek zamanlama (scheduling) mekanizması önerilmektedir. PRSM'de orijinal istek mesajlarının (başlangıçtaki, ilk iletilen istek mesajı) yeniden iletimlere göre öncelikli olarak kuyruklandırıldığı bir kuyruk yapısı vardır. Mesajların işlenmesi sırasında yeniden iletimler ancak ve ancak, kuyrukta orijinal bir istek mesajı yoksa işlenmesi biçiminde katı kuralcı bir önceliklendirme (strict priority) öngörülmektedir. Buradaki temel amaç, orijinal mesajlara olabidiğince hızlı yanıt verip olası fazlalık yeniden iletimleri engellemektir. Alınan fazlalık yeniden iletimleri, mesajın tümünü ayrıştırmadan ayırt edebilmek için, PRSM'de, SIP istek satırına, yeniden iletim bilgisini ve mesajın kimliğini taşıyan yeni bir parametre önerilmektedir. Böylelikle her bir istek mesajı, tümüyle ayrıştırılmaksızın, önceliklendirme ölçütlerine göre kuyruklanır ve katı kurallı önceliklendirmeye göre işlenip sunucu yazılımının üst katmanlarına verilir. Bu aşamada ya da mesaj üst katmanlarda işlendiğinde bu mesajla ilişkili tüm fazlalık iletimler kuyruktan uzaklaştırılabilir. Mesaj istek satırına eklenen mesaj kimliği bu işlemin üst katmanlara verilmeden de yapılabilmesini sağlar. Böylelilke üst katmanlardaki işlemler bilinen SIP tasarımına göre devam edebilir. Özetlenirse, PRSM üç temel işlev tanımlamaktadır: (i) SIP istek mesajının istek satırını ayrıştıran ön-ayrıştırıcı (pre-parser), (ii) katı kuralcı önceliklendirmeli kuyruk yapısı, ve \textit{(iii)} fazlalık yeniden iletimlerin kuyruktan uzaklaştırılması. Bu işlevlerin gerçek bir SIP yığınında (stack) gerçeklenebileceğini sınamak için açık kaynak kodlu JAIN-SIP Stack üzerinde bir ön tasarım ve gerçekleme (proof-of-concept) yapılmıştır. Böylelikle PRSM'in varolan bir SIP yığıtında temel bir değişiklik gerektirmeden gerçeklenebileceği sınanmıştır. Yeniden iletim bilgisi içermeyen istek mesajlarının yüksek öncelikli olduğu varsayılarak, bilinen SIP ve PRSM'i destekleyen SIP istemcilerinin aynı sistemde olabilmesi durumu test edilmiştir. Bu arada geliştirdiğimiz ayrık-olaylı (discrete-event) bir yeniden iletim analiz ve benzetim (simulation) aracı hem yeniden iletimlerin SIP sunucular üzerindeki etkisini hem de PRSM'in öngördüğü öncelikli kuyruk yapısının davranışını incelemek için kullanılmıştır. Aracın trafik modeli, paket temelli haberleşme şebekelerinde patlamalı (bursty) geliş yoğunluklarını modellemek için sıklıkla kullanılan, MMPP (Markov Modulated Poisson Process) üzerine kurulmuştur. MMPP, aynı zamanda, sistemin normal çalışma durumunu ve periyodik bakım durumunu yansıtabilecek farklı servis süresi yoğunluklarını modellemek için kullanılmaktadır. Bu amaçla, analiz ve benzetim aracı hem talep patlamalarını hem de sunucunun işlem kapasitesinde düşüşe neden olabilecek durumları aynı anda ve ayrı ayrı modelleyecek biçimde tasarlanmıştır. Ek olarak, analiz ve benzetim aracı, normal ve yeniden iletilen mesajları sunucu kuyruğunda önceliklendirebilecek biçimde yapılandırılabilmektedir. Bu özellik, çeşitli önceliklendirme varsayımları altında analiz yapma olanağı sağlamaktadır. Arabellek büyüklüğü (buffer size) sınırlandırılabilmekte, böylelikle sonlu ve sonsuz arabellek durumları incelenebilmektedir. Araç şebeke kayıplarının benzetimine de olanak vermektedir. Böylelikle, tümüyle fazlalık yeniden iletim üreten sonsuz bellek durumu ve kuyrukta bloklanan mesajlardan dolayı ve şebekedeki kayıplardan dolayı fazlalık olmayan yeniden iletim üreten, sırasıyla, sonlu arabellek ve şebeke mesaj kaybı olması durumlarının incelenmesine olanak sağlanmıştır. Aracın doğruluğu MMPP trafik ve servis süresi modellerinin teorik beklentileri ile karşılaştırmalar yaparak sınanmıştır. Bu araç, PRSM için geliştirdiğimiz, ayrık-zamanlı sıvı-akış (discrete-time fluid-flow) temelli modelleri sınamak için de kullanılmıştır. Yeniden iletimin doğurgan yapısı, dolayısıyla, özellikle kuyruk gecikmelerinin neden olduğu fazlalık yeniden iletimlerin ve bu iletimlere maruz kalan bir sistemin, durağan sistemleri modellemekte kullanılan analitik yöntemlerle modellenememesi nedeniyle, PRSM'i modellemek için ayrık-zamanlı sıvı-akış temeli modelleme kullanılmıştır. Ayrık-zamanlı sıvı-akış temelli modellemede zaman sabit zaman dilimlerine bölünmekte ve kuyruk uzunluğu gibi kuyruk dinamiklerinin bir sonraki zaman dilimi için değeri farksal denklemlerle hesaplanmaktadır. Her zaman diliminde, SIP yeniden iletim mekanizmasına uygun olarak, zamanında işlenememiş ya da önceki iletiminde bloklanmış ya da şebekede kaybolmuş istek mesajlarının yeniden iletilme durumu hesaplanıp, sisteme gelen yeniden iletimiş mesajlar hesaplanmaktadır. İçinde bulunulan zaman dilimi için belirli bir dağılıma göre gelen orijinal mesajlarla, hesaplanan yeniden iletilen mesajlar sisteme o zaman dilimi için gelen trafiği oluşturmaktadır. Sunucu sistemde bulunan (o zaman diliminde ya da önceden gelip kuyruğa girmiş) istek mesajlarının bir miktarını işleyeceğinden, kuyrukta kalan kısım, bir sonraki zaman dilimindeki kuyruk uzunluğunu vermektedir. Orijinal mesajların geliş hızı dağılımı, sunucunun mesaj işleme kapasitesi ve modelin tanımına göre, arabellek büyüklüğü ve/veya şebeke kayıp oranı modelin girdileri olup, yeniden iletim ve kuyruk dinamiklerinin özyinelemeli bir biçimde hesaplanması gerekmektedir. Bu modelleme yaklaşımında orijinal mesajların geliş hızı ve sunucunun işleme kapasitesi dağılımları gelişigüzel seçilebilmektedir. Bu tezde PRSM'i modelleyen üç ayrık-zamanlı sıvı-akış modeli türetilmiştir: (i) sunucunun sonsuz arabelleğe sahip olduğu durum, (ii) sunucunun sonlu arabelleğe sahip olduğu durum, ve (iii) sunucunun sonsuz arabelleğe sahip olduğu, ancak şebeke kayıplarının olduğu durum. Tüm model durumlarında tek sunuculu kuyruk modeli varsayılmıştır. Literatürde sonsuz ve sonlu arabellek durumları için bilinen SIP sunucuları için ayrık-zamanlı sıvı-akış modelleri bulunmaktadır. Ancak, durum \textit{(iii)} için model bu tez çalışmasında türetilmiştir. Bilinen SIP için türetilmiş modeller de programlanarak PRSM'in performansı ile karsılaştırmalar yapılmıştır. Temel olarak, tüm modellerde, iletim ortamındaki gecikmenin önemsenmeyecek kadar küçük olduğu, fazlalık yeniden iletimlerde kuyruk gecikmesinin etkin olduğu varsayılmıştır. PRSM'in öncelikli kuyruklama kullanmasının yanı sıra, bilinen SIP tasarımından temel farkı, bir mesaj işlendiğinde ilişkili tüm fazlalık yeniden iletimlerin kuyruktan uzaklaştırılmasıdır. Bu davranışın modellenebilmesi için, bulunulan zaman diliminde işlenen bir mesajın aslında hangi zaman diliminde sunucuya geldiğinin bilinmesi gerekir. Bu bilgi kullanılarak, işlenen mesajın ne kadar geciktiği, dolayısıyla bu mesaj için kaç yeniden iletim yapılmış olabileceği bulunabilir. Bu amaçla, "varış zaman dilimi izleme süreci" (arrival time slot tracking process) isimli yeni bir süreç tanımlanmıştır. Dolayısıyla, yeni tanımlanan "uzaklaştırma süreci" (removal process) ilişkili yeniden iletimleri "varış zaman dilimi izleme süreci"'den yararlanarak bulabilmektedir. Bilinen SIP modelleri için de geçerli olmak üzere, başarısız çağrı miktarı/oranı ve yanıt gecikmesi olarak, iki performans ölçütü tanımlanmış ve ilgili formüller türetilmiştir. Başarısız çağrıların hesaplanmasında, SIP standartı ile uyumlu olarak, bir istek mesajına 32 saniye hiç bir yanıt alınamaması tanımı kullanılmıştır. Yanıt gecikmesi ise istek mesajının sisteme gelme zamanı ile bir yanıt gönderilmesi arasındaki süre olarak tanımlanmıştır. Yanıt gecikmesinin hesaplanması "varış zaman dilimi izleme süreci"nin kullanılmasını gerektirmektedir. Ayrık-zamanlı sıvı-akış modellerinin performans değerlendirmesi aşırı yüklenmelerin (i) sunucuya başlangıçta belirli bir mesaj yığının gelmiş olması, (ii) sunucunun belirli zaman aralıkları için bakım moduna girmesi ve \textit{(iii)} sunucunun MMPP trafik modeli ile oluşturulan bir patlamalı (bursty) trafik ile karşı karşıya kalması ile oluştuğu üç test durumu öngörülerek yapılmıştır. Testlerde kuyruk uzunluğunun ve yeniden iletim trafiğinin zamanla değişimi için sonuçlar oluşturulmuştur. Modellerin doğruluğu yeniden iletim analiz ve benzetim aracımızdan alınan sonuçlarla sınanmış ve oldukça yakın sonuçlar içerdikleri gözlenmiştir. Tüm testler bilinen SIP için de koşturulmuş ve PRSM için elde sonuçlarla karşılaştırılmıştır. Performans karşılaştırmaları gösteriyor ki, ilk yeniden iletim zamanından (SIP standardı ilk yeniden iletim zamanını 500 ms olarak önermektedir) daha küçük gecikmeler yaratacak düzeyde küçük arabellek büyüklüğü durumunda, başarısız çağrı oranları ve yanıt gecikmeleri açısından, bilinen SIP daha iyi sonuçlar vermektedir. Ancak daha büyük arabellek değerlerinde PRSM çok daha iyi sonuçlar vermektedir. Örneğin bilinen SIP için yanıt gecikmesi 179 saniyeleri bulabilirken, PRSM'de 175 ms düzeyinde olmaktadır. Trafik yoğunluğnun çok yüksek seçildiği testlerde ve sonsuz arabellek varsayımı altında, analiz aracı bellek yetersizliğinden çökerken, PRSM testi sorunsuz tamamlayabilmektedir. Bunun yanında, not etmeliyiz ki, küçük arabellek seçimi bir aşırı yüklenme önleyiçi olarak kullanılabilir ancak bir anlamda gereksiz yere üretilmesine neden olunan fazlalık olmayan trafik şebekenin kapasitesinin verimsiz bir biçimde kullanılmasına neden olabileceği göz önünde bulundurulmalıdır. Genel olarak, PRSM'in operatörlerin SIP sunucuları yüksek arabellek ayarlarıyla çalıştırabilmesine olanak verdiğini söylemek mümküdür. Ancak temelde söyleyebileceğimiz, PRSM'in SIP sunucu performansını iyileştirdiği ve ölçeklenirliğini (scalability) arttırdığıdır, yani aynı sistem kapasitesi ile daha fazla çağrı işlenebilmektedir.
As being one of core enabling technologies for interoperable unified communications, Session Initiation Protocol (SIP) represents the next step in the evolution of Internet technologies within both public Internet and corporate intranets. With the capability of enabling multimedia communications such as voice over IP (VoIP), instant messaging (IM), telephony presence information as well as video conferencing to be in a single network session, it provides an "unified" communication for enterprise networks. SIP has been adopted by 3rd Generation Partnership Project (3GPP), International Telecommunications Union Telecommunication Standardization Sector (ITU-T), and European Telecommunications Standards Institute (ETSI) to IP Multimedia Subsystem (IMS) in next generation networks (NGN) as a core signaling protocol to provide voice services for mobile communication over IP. With the increasingly wide deployment, SIP encountered scalability issues and server overload problems leading to severe performance degradation similar to the cases with the previous signaling protocols used in telecommunication. The recommended overload control mechanism of SIP, which is based on the 503 (Service Unavailable) response code, does not prevent the congestion collapse, and may even cause traffic to oscillate between servers and spread the overload condition throughout the network. As an application layer signaling protocol, SIP can be transported over Transmission Control Protocol (TCP), User Datagram Protocol (UDP) and Stream Control Transmission Protocol (SCTP). While the retransmission mechanism is introduced to increase the reliability when SIP is transported over UDP, the overload condition is exacerbated by the regenerative behavior of the retransmission mechanism. In this case, the offered load for the already overloaded server is significantly increased by triggering redundant retransmissions. This situation causes more messages to be delayed for longer duration, which may eventually results in a congestion collapse and a server crash. In this thesis, we propose a novel priority-based SIP request scheduling mechanism (PRSM) to prevent server overloading and to improve the scalability of SIP servers by diminishing the negative impact of redundant retransmissions. In the proposed system, the original incoming SIP requests have strict priority over the retransmitted requests that limit the number of the transmissions by preferring to serve the original incoming requests first. Note that parsing of text based SIP messages is a time consuming task, and it is prohibitively expensive if the identification of retransmissions requires parsing of entire message. Therfore, we introduced a new field carrying a retransmission information into the request-line of the SIP request message to identify the retransmissions with a minimum parsing effort. To further minimize the redundant usage of limited server resources, we introduced a retransmission removal procedure to erase redundant retransmissions from the server queue when a corresponding message is successfully processed. Towards characterizing the main factors affecting the PRSM behavior under various overload conditions, we develop discrete-time fluid-flow models representing various server and network conditions, such that the server with infinite and finite buffers, various traffic arrival and departure processes, and lossy network conditions. To verify the accuracy of the proposed models, we design and implement a discrete-event based retransmission analysis and simulation tool which is capable of generating realistic arrival and departure patterns, lossy network behavior and controlling various SIP server parameters with reporting capabilities. The software architecture is designed to support extensions on queuing and traffic models. Finally, we design and develop a proof-of-concept of the PRSM in a real-time SIP stack to verify the mechanism is feasible for implementation and can co-exist with the conventional SIP design in the same stack implementation. We conducted test cases using the derived fluid-flow models and our retransmission analysis and simulation tool to demonstrate the scalability improvements of the PRSM. The test cases are conducted to create overload conditions in the server under bulk arrivals, server slowdown situations and demand bursts, and consequently, to trigger significantly high retransmissions leading the server crash for the conventional SIP server. Performance evaluations with both the analysis and simulation tool and models indicate that for higher buffer sizes, the PRSM performs significantly better than the conventional SIP. In the higher buffer size case, there will be more redundant retransmissions in the network due to higher queuing delays and the results demonsrated that the priority mechanism of the PRSM can cope with this situation. Consequently, the PRSM provides network administrator with the ability to configure the buffer size of a SIP server to a moderately high value as having significantly and consistently better scalability compared to the conventional SIP.