•  অস্পষ্ট আলো

টিসি স্প্লিটার

একাধিক টিসিপি সংযোগ জুড়ে টিসিপি বা ইউডিপি সংযোগ বিভক্ত করার জন্য একটি টানেল

লক্ষ্য

আপনি কখন একটি টিসিপি সংযোগ একাধিকতে বিভক্ত করতে চান? সাধারণত আপনি a ব্যবহার করেন টানেল অর্জন করতে ঠিক বিপরীত । আমার ব্যবহারের ক্ষেত্রে একটি মোবাইল নেটওয়ার্কে ব্যান্ডউইথ সীমাবদ্ধতা ছিল, তাই একটি সিম কার্ড দিয়ে পরীক্ষা করা হয়েছিল যার প্ল্যানটিতে আর কোন ডেটা নেই[1].

এটা কিভাবে কাজ করে

দ্য টানেল মধ্যে লেখা হয়েছিল গোলং যেহেতু এটি যথেষ্ট দ্রুত, এবং সাধারণত নেটওয়ার্ক টুলিং এর জন্য ব্যবহৃত হয়। ক্লি খুব কমই ব্যবহারযোগ্য কারণ আমি বিভিন্ন পদ্ধতি পরীক্ষা করার সময় বেশিরভাগ বিকল্প পুনর্নির্মাণ করা হয়েছিল।

প্রাথমিকভাবে "ফ্লিংস" এবং "লাসোস" ছিল, আউটগোয়িং (ফ্লিংড) এবং ইনকামিং (ল্যাসোয়েড) এর সংযোগের সংখ্যা ভাগ করার জন্য, কিন্তু এটি একটি অপ্রয়োজনীয় বিমূর্ততা ছিল কারণ তাদের গন্তব্যের সাথে প্যাকেট ট্যাগ করা ভাল, যদিও মূল উদ্দেশ্য ছিল আউটগোয়িং এবং ইনকামিং কানেকশনের জন্য বিভিন্ন রেট লিমিট অফার করা, তাই আপ/ডাউন এর মধ্যে একটি উচ্চ স্তরের বিচ্ছেদ ব্যবহারিক বলে মনে হয়েছিল।

ক্লায়েন্টকে সমস্ত সংযোগ তাত্ক্ষণিক করতে হবে কারণ আমরা অনুমান করি যে সার্ভার বহির্গামী সংযোগগুলি খুলতে পারে না। যখন ক্লায়েন্টরা একটি ব্যবহারকারীর অ্যাপ্লিকেশন থেকে একটি সংযোগ গ্রহণ করে, এটি সার্ভারের সাথে সংযোগের প্রয়োজনীয় পুল সেট করে, এবং যে কোন ডেটা এটি গ্রহণ করে, এটি ব্যবহারকারীর নির্ধারিত সীমা অনুসারে এটিকে ডেডিকেটেড সংযোগগুলির মধ্যে বিভক্ত করে।

প্যাকেটগুলি তখন সার্ভারে পাঠানো হয়, যা তাদের সঠিক ক্রমে পুনর্গঠন করতে হয়, কারণ বিভিন্ন টিসিপি সংযোগ যেকোন সময় ডাটা স্ট্রিম শেষ করতে পারে (পাঠানো অর্ডার সম্মানিত নয়, কারণ রাউটিং ), এবং তারপর রিসিভিং অ্যাপে ফরওয়ার্ড করা হয়েছে।

সংযোগগুলি বন্ধ করা হয়েছে এবং নতুন সংযোগগুলি খোলা হয়েছে কারণ প্রতি সংযোগে কনফিগার করা ডেটা সীমা পৌঁছেছে, কিভাবে ছায়াছবিবিভিন্ন প্রবাহে প্রক্সি টানেল ডেটা ডেটা স্ট্রীমের আচরণকে মাস্ক করার লক্ষ্য নিয়ে, আমাদের টানেল যতবার সম্ভব তা করছে।

এটা কেন কাজ করে

এখানে উদ্দেশ্য হল প্রতিটি সংযোগ কতটা ডেটা পরিচালনা করা উচিত তা নিয়ন্ত্রণ করা। আমাদের উদ্দেশ্যে, এটি কখনই অতিক্রম করা হয় নি এমটিইউ জানালার আকার আপনি MTU- কে এক টুকরো ডেটার উপরের সীমানা হিসেবে ভাবতে পারেন যা পুরো নেটওয়ার্ক জুড়ে চলে যায়, এবং এটি আমাদের লক্ষ্য ছিল কারণ আমরা একটি গেটেড নেটওয়ার্কের ব্যান্ডউইথ হার সীমা বাইপাস করতে চেয়েছিলাম। ক্লায়েন্ট কতটা ডেটা পাস করতে পারে তা সীমাবদ্ধ করার জন্য, আপনার প্রয়োজন গণনা এটি ঠিক? যদি আপনার যুক্তি a এর মত কিছু দিয়ে কাজ করেdo-while

তারপর আপনি প্রয়োজন অন্তত একটি গ্রহণpacket । আমি নিশ্চিত নই যে এটি আসলে কি হয়, অথবা আমার টানেল কাজ করার কারণ অন্য একটি। এমনকি প্রথম প্যাকেটটিও চেক করা সম্পূর্ণভাবে সম্ভব, কিন্তু ডিজাইনের দৃষ্টিকোণ থেকে, এর মানে হল আপনাকে চেক করতে হবে প্রতি একক সংযোগ, যা সিস্টেমকে ডস আক্রমণের জন্য দুর্বল করে তুলবে, এবং হ্যাঁ আমার টানেলটি সহজেই একটি দক্ষ ডস/স্ট্রেস টুল হিসাবে ব্যবহার করা যেতে পারে, যেহেতু আপনি ডেটাগুলিকে খুব ছোট প্যাকেটে বিভক্ত করতে পারেন (যার মানে টিসিপি সংযোগগুলির একটি উচ্চ পুনর্ব্যবহারযোগ্য চাপ থাকবে ) এবং আপনার পছন্দ মতো বড় সংযোগের একটি পুল আছে।

বিভিন্ন বন্দরে পরীক্ষা করে দেখা গেছে যে এটি কেবলমাত্র সম্ভব কিছু পোর্ট, এবং যে সীমা পোর্টের মধ্যে ক্রমাগত ভিন্ন ছিল, সঙ্গে443 চারপাশে একটি উঁচু জানালা দেওয়া20kb , অনুমান কারণTLS হ্যান্ডশেকের জন্য আরও ডেটা প্রয়োজন, এবং এই রেট-সীমা দিনের সময়ের উপর ভিত্তি করে পরিবর্তিত হবে[2].

ফলাফল

আমি ডেটা থ্রুপুট বাড়ানোর আশায় কোডিং মুছে ফেলার চেষ্টা করেছি। একটি ইরেজার কোডিং লাইব্রেরি ব্যবহার করে এবং ডেটা নিজেই এনক/ডিকোড করে এবং ওভারলে করে কেসিপি আমার বিভাজন প্রোটোকলের উপর প্রোটোকল। কেসিপি চেষ্টা করা পিছনের দিকের পদ্ধতি বলে মনে হতে পারে, যেহেতু এটি নিম্ন প্রবাহের জন্য ভাল বিলম্বের ব্যবসা করে, কিন্তু আমার প্রাথমিক অনুমান ছিল যে আমার বাধা সংযোগগুলি মধ্য-সংক্রমণে পড়েছিল, যা অনেক দূষিত প্যাকেট তৈরি করবে, তাই আমি একটি উচ্চতর অর্জন করতে পারতাম ত্রুটি সংশোধন সহ থ্রুপুট।

দেখা গেল যে এটি একটি হার-সীমা যা একটি ক্লায়েন্ট নেটওয়ার্কের উপর কত টিসিপি সংযোগ পাঠাতে পারে, তাই কেবল একটি ডস সুরক্ষা যা আমি কিছু করতে পারি না। X পরিমাণের পরে সংযোগগুলিSYN প্রচেষ্টা তাদের প্রাপ্য পাওয়া বন্ধ করে দেয়ACK , ব্যাকলগ পূরণ করে এবং শেষ পর্যন্ত টানেল স্টল তৈরি করে। ট্রায়াল এবং ত্রুটি দেখিয়েছে যে এর মধ্যে এটি সম্ভব ছিল4-8[3] যে কোন সময়ে সংযোগ খোলা, এবং একটি MTU সঙ্গে500-1000 বাইট আপনি অন্তত একটি স্থির প্রবাহ রাখতে পারে128kbps , যদি একটি ধ্রুব প্রবাহ প্রয়োজন না হয়, আপনি একটি স্বল্প সময়ের মধ্যে উচ্চ গতি অর্জন করতে পারে ফেটে যাচ্ছে চাহিদা অনুযায়ী অনেক সংযোগ।

বিপরীতে, একটি (সত্য)DNS টানেল সবে ধাক্কা দিতে পারে56kbps এবং দ্রুত থ্রোটল হয়ে যেতে পারে কারণ আমি মনে করি TCP রিকোয়েস্টের চেয়ে বেশি সংখ্যক DNS অনুরোধ বেশি সন্দেহজনক মনে হচ্ছে। আমাদের নির্দিষ্ট করতে হবে যে atrue ডিএনএস টানেল এনকোড (আউটগোয়িং) ডেটা ভুয়া সাবডোমেইন এবং ডিকোড (ইনকামিং) ডেটা ডিএনএস রেকর্ড জিজ্ঞাসা করে প্রাপ্ত হয়, যেখানে কখনও কখনও একটি ডিএনএস টানেলকে ডিএনএস পোর্টের উপর একটি কাঁচা ইউডিপি সংযোগ বলে মনে করা যেতে পারে, যা সম্ভবত অতীতে, ডিএনএস সার্ভার অনুমোদিত এবং সঠিকভাবে পাঠানো হয়েছে।

উপসংহার

আমি নিশ্চিত নই যে আমি আমার লক্ষ্যে পৌঁছেছি উপযোগিতা বুদ্ধিমান, যেহেতু এই ধরনের টানেল চালানো আপনাকে ফোনটি বেশ গরম করে তুলতে পারে, এবং অনেক ব্যাটারি নষ্ট করতে পারে, কিন্তু এটি একটি ব্যাকআপ সংযোগ হিসাবে থাকা আশ্বস্তকর হতে পারে ... যদি আমি আসলে এটিকে যথেষ্ট স্থিতিশীল করতে বিরক্ত করি :)

[1]সাধারণত যখন সিম কার্ডে ওয়েব ব্রাউজ করার জন্য আর কোন ডেটা থাকে না, তখন ওয়েব অনুরোধগুলি ক্যাপচার গেটওয়েতে পুনirectনির্দেশিত হয় (আপনাকে আরও ডেটা কিনতে বলবে)
[2]মোবাইল ডেটা প্ল্যানগুলি রাতের সময় আরও ভাল সংযোগ প্রদান করতে পারে
[3]এই সংখ্যা, কিছুটা সাধারণ মূল গণনার সাথে যুক্ত, আপনাকে সন্দেহ করতে প্ররোচিত করতে পারে যে কার্নেল কোনওভাবে সংযোগ সীমাবদ্ধ করছে, আমাদের টানেলের খোলা সংযোগের দৃশ্যকল্পটি অবশ্যই অস্বাভাবিক, কিন্তু লিনাক্স knobs টিউনিং আমার শেষ পর্যন্ত কখনও ভাল ফলাফল দেয়নি।

পোস্ট ট্যাগ: