কিছুটা আশ্বাস রয়েছে যে আপনি যদি টিসিপি স্ট্রিমের একেবারে শুরুতে 20 বাইট প্রেরণ করেন তবে এটি দুটি 10 বাইট টুকরো হিসাবে আসবে না। এটি কারণ টিসিপি স্ট্যাক এই জাতীয় ছোট অংশগুলি প্রেরণ করবে না: একটি সর্বনিম্ন এমটিইউ আকার রয়েছে। তবে প্রেরণ যদি কোনও প্রবাহের মাঝখানে কোথাও থাকে তবে সমস্ত বেট বন্ধ রয়েছে। এটি হতে পারে যে আপনার প্রোটোকল স্ট্যাকটি কোনও সেগমেন্ট পূরণ করতে এবং এটি প্রেরণ করতে 10 বাইট ডেটা নেয় এবং তারপরে পরবর্তী দশ বাইট অন্য বিভাগে যায়।
আপনার প্রোটোকল স্ট্যাক তথ্য খণ্ডগুলিতে বিভক্ত করে এবং এগুলিকে একটি কাতারে রাখে। খণ্ড মাপগুলি এমটিইউ পথের উপর ভিত্তি করে। আপনি যদি কোনও প্রেরণ ক্রিয়াকলাপ সম্পাদন করেন এবং এখনও সারিবদ্ধ ডেটা মুলতুবি রয়েছে, প্রোটোকল স্ট্যাকটি সাধারণত সারিটির লেজের অংশে থাকা সেগমেন্টে উঁকি দেবে এবং আরও ডেটা যুক্ত করার জন্য সেগমেন্টে কোনও জায়গা আছে কিনা তা দেখতে পাবেন। ঘরটি একটি বাইটের মতো ছোট হতে পারে, তাই এমনকি একটি দু-বাইট প্রেরণকেও দুটি ভাঙতে পারে।
অন্য প্রান্তে, ডেটা বিভাজন বলতে বোঝায় যে আংশিক পাঠ হতে পারে। একটি রিসিভ অপারেশন সম্ভাব্যভাবে জেগে উঠতে পারে এবং যখন একভাগে কম আসে তখন ডেটা পেতে পারে। বিস্তৃতভাবে প্রয়োগ করা সকেট এপিআই-তে, একটি রিসিভ কল 20 বাইটের জন্য চাইতে পারে, তবে এটি 10 দিয়ে ফিরে আসতে পারে অবশ্যই, এটিতে একটি বাফারিং স্তর তৈরি করা যেতে পারে যা 20 বাইট না পাওয়া পর্যন্ত বা সংযোগ বিরতি না হওয়া অবরুদ্ধ হবে। পসিক্স ওয়ার্ল্ডে, সেই এপিআই হ'ল স্ট্যান্ডার্ড আই / ও স্ট্রিম হতে পারে: আপনি fdopen
একটি FILE *
স্ট্রিম পাওয়ার জন্য সকেট বর্ণনাকারী করতে পারেন এবং আপনি fread
এটিতে কোনও বাফার পূরণ করতে ব্যবহার করতে পারেন যাতে পূর্ণ অনুরোধ যতটা read
কল নেয় তত সন্তুষ্ট থাকে ।
ইউডিপি ডেটাগ্রামে ডেটা ফ্রেম করে। প্রতিটি প্রেরণ কল একটি ডেটাগ্রাম উত্পন্ন করে (তবে কর্কিং সম্পর্কে নীচে দেখুন)। অন্য পক্ষটি একটি সম্পূর্ণ ডেটাগ্রাম গ্রহণ করে (এবং, সকেট এপিআই-তে, এটি ধরে রাখার জন্য এটি যথেষ্ট পরিমাণে একটি বড় বাফার নির্দিষ্ট করতে হবে, না হলে ডেটাগ্রামটি কেটে যাবে)। বড় ডেটাগ্রাম আইপি বিভাজন দ্বারা খণ্ডিত হয়ে যায় এবং অ্যাপ্লিকেশনগুলিতে স্বচ্ছভাবে পুনরায় একত্রিত হয়। যদি কোনও খণ্ড অনুপস্থিত থাকে তবে পুরো ডেটাগ্রামটি হারিয়ে যায়; সেই পরিস্থিতিতে আংশিক তথ্য পড়ার কোনও উপায় নেই।
ইন্টারফেসের একাধিক ক্রিয়াকলাপকে একটি একক ডেটাগ্রাম নির্দিষ্ট করার অনুমতি দেয় এমন এক্সটেনশন রয়েছে। লিনাক্সে, একটি সকেটকে "কর্কড" করা যায় (প্রেরণ থেকে বাধা দেওয়া হয়)। এটি কর্ক করা অবস্থায়, লিখিত ডেটা একক ইউনিটে একত্রিত হয়। তারপরে যখন সকেটটি "আনকর্কড" করা হয়, তখন একটি একক ডেটাগ্রাম পাঠানো যায়।