লিনাক্সের টিসিপি এমএসএস কমপক্ষে 88 হওয়া উচিত (অন্তর্ভুক্ত / নেট / tcp.h):
/* Minimal accepted MSS. It is (60+60+8) - (20+20). */
#define TCP_MIN_MSS 88U
আমার প্রশ্ন: তারা "60 + 60 + 8" নিয়ে আসে এবং কেন? আমি পেয়েছি যে 20 + 20 আইপি শিরোনাম + টিসিপি শিরোনাম থেকে আসে।
সম্পাদনা: শিরোনামগুলি ঘনিষ্ঠভাবে দেখার পরে, সূত্রটি আমাকে এইভাবে দেখায়:
(MAX_IP_HDR + MAX_TCP_HDR + MIN_IP_FRAG) - (MIN_IP_HDR + MIN_TCP_HDR)
প্রশ্ন এখনও দাঁড়িয়ে: কেন ? লিনাক্স কার্নেল কেন এই সূত্রটি ব্যবহার করে, এর মাধ্যমে 20 বাইট এর টিসিপি বিভাগগুলিকে নিষিদ্ধ (একটি বাধ্যতামূলক প্রবাহ) ব্যবহার করে? এখানে আইপিএফ ভাবুন।
সম্পাদনা 2: এখানে আমার ব্যবহারের কেস। সকেট / সংযোগে কম এমএসএস জোর করে, স্ট্যাকের মাধ্যমে প্রেরিত সমস্ত প্যাকেটগুলির একটি ছোট আকার থাকবে। প্যাকেট / দ্বিতীয় পরীক্ষার জন্য আইপিএফের সাথে কাজ করার সময় আমি একটি কম এমএসএস সেট করতে চাই। এমএসএসের এই নিম্ন সীমাটির কারণে আমি তারে 128 বাইট (142 বাইটের ইথারনেট ফ্রেম) এর চেয়ে ছোট আইপি প্যাকেটগুলি পেতে পারি না! আরএফসি 2544 অনুযায়ী আমি 64 বাইটের ইথারনেট ফ্রেমের আকারের কাছাকাছি যেতে চাই The তাত্ত্বিকভাবে এটি সম্ভব হওয়া উচিত: 18 + 20 + 20 <64।
TCP_MIN_MSS
।
TCP_MIN_MSS
। কেন এটি 1 হতে পারে না? এটি কি আরএফসি ভাঙ্গবে? এটি কোন তাত্ত্বিক / ব্যবহারিক সমস্যার কারণ হতে পারে? আপনি কি নিশ্চিত যে এটি "অনুমানের বাইরে"? "বিভিন্ন মিনিমা"? এখানে একমাত্র ন্যূনতম আগ্রহ রয়েছে: কার্নেল দ্বারা অনুমোদিত সবচেয়ে ক্ষুদ্রতম এমএসএস।