
LOKI के माध्यम से स्थानांतरण हेतु छोटा पेलोड - उच्च गति वर्चुअल चैनल दो-तरफा फ़ाइल स्थानांतरण क्षमताएँ प्रदान करता है
NCC Group Plc द्वारा ओपन सोर्स के रूप में जारी - http://www.nccgroup.com/
Dave Spencer द्वारा विकसित, david [dot] spencer [at] nccgroup [dot] com
http://www.github.com/nccgroup/Sleipnir
AGPL के तहत जारी, अधिक जानकारी के लिए LICENSE देखें
Sleipnir एक छोटा executable है जिसे Loki के भीतर send keys विधि के माध्यम से त्वरित अपलोड के लिए डिज़ाइन किया गया है, इसलिए इसमें आइकन का अभाव है। Sleipnir को वर्चुअल चैनलों का उपयोग करके send keys विधि की तुलना में बहुत तेज़ गति से दो-तरफ़ा फ़ाइल स्थानांतरण प्रदान करने के लिए विकसित किया गया था। सर्वर पक्ष पर एक वर्चुअल चैनल बनाने की आवश्यकता होती है और फिर क्लाइंट पक्ष से उससे कनेक्ट किया जाता है, इन चैनलों के माध्यम से भेजा गया कोई भी डेटा RDP कनेक्शन के माध्यम से जाता है। .NET फ़ंक्शन AxMsRdpClient7NotSafeForScripting.SendOnVirtualChannel केवल सीमित लंबाई का स्ट्रिंग डेटा भेज सकता है, इस कारण फ़ाइलों को 1k खंडों में विभाजित किया जाता है और एक ओर base64 एन्कोड किया जाता है और फिर दूसरी ओर base64 डिकोड करके स्ट्रीम में बदल दिया जाता है।
Sleipnir को Loki (https://github.com/nccgroup/loki) और Fenrir (https://github.com/nccgroup/Fenrir) के साथ उपयोग के लिए डिज़ाइन किया गया है।
Sleipnir में एक प्रगति पट्टी (progress bar) और दो बटनों वाला एक फ़ॉर्म होता है:
Receive File – Sleipnir को वर्चुअल चैनल Loki1 पर ईवेंट सुनने के लिए सेट करता है
Send File – उपयोगकर्ता को RDP डेस्कटॉप पर एक फ़ाइल चुनने की अनुमति देता है, ताकि उसे क्लाइंट को वापस भेजा जा सके।
स्थानीय होस्ट से RDP सर्वर पर फ़ाइल भेजने के लिए उपयोगकर्ता को Sleipnir पर Receive File बटन पर क्लिक करना होगा, और फिर Loki इंटरफ़ेस में “Sleipnir” -> “Send File On Virtual Channel” पर क्लिक करना होगा, उसके बाद उपयोगकर्ता को एक फ़ाइल चुनने के लिए संकेत दिया जाएगा। Sleipnir फिर फ़ाइल को एक बार में 1k पढ़ता है, उसे base64 एन्कोड करता है और वर्चुअल चैनल पर भेजता है। Sleipnir के भीतर एक ईवेंट हैंडलर लेखन (write) का पता लगाता है, उसे डिकोड करता है और एक फ़ाइल में लिखता है। फ़ाइल उसी निर्देशिका में बनाई जाती है जहाँ Sleipnir स्थित है और अपना मूल फ़ाइल नाम बनाए रखती है। RDP सर्वर से क्लाइंट को फ़ाइल वापस भेजने के लिए बस Send File बटन पर क्लिक करें, एक फ़ाइल चुनें और फिर स्थानांतरण समाप्त होने की प्रतीक्षा करें। कुछ बड़ी फ़ाइलों के साथ प्रगति पट्टी के अद्यतन में थोड़ी देरी होती है, और ऐसा लग सकता है कि यह क्रैश हो गया है, जबकि वास्तव में यह काम कर रहा है। हालाँकि इसे किसी भी आकार की फ़ाइलों को स्थानांतरित करने में सक्षम होना चाहिए, मैंने केवल 250mb तक की फ़ाइलों के साथ परीक्षण किया है, जिन्हें इसने पूरी तरह से संभाला (हालाँकि प्रगति पट्टी अद्यतन नहीं हुई, आपको बस उस संदेश बॉक्स की प्रतीक्षा करनी होगी जो कहता है कि स्थानांतरण ठीक रहा)। थ्रूपुट औसत लगभग 800kb/s है।