هاب و سوئیچ اساسا هر دو یه کار رو انجام میدن، اگرچه روش هاشون با هم متفاوته. از هر دوی اونا میشه برای تقویت سیگنال های تضعیف شده (بعنوان یه repeater) و همچنین برای تقسیم یک سیگنال به چند سیگنال (که برای تقسیم یک اتصال اینترنتی برای شبکه خونگی یا office و غیره مفید میتونه باشه) استفاده کرد. خب! این شباهت هاشونه، اما چه تفاوتایی با هم دیگه دارن؟
هاب چیه؟
هاب رو میشه یه دستگاه نسبتا خنثی! در شبکه در نظر گرفت که در لایه physical از مدل OSI در شبکه کار می کنه. اما سوئیچ ها از طرف دیگه هوشمند تر هستن و در لایه Data Link در مدل OSI بکار گرفته میشن.
زمانی که یک هاب اطلاعاتی رو از یک پورت خودش دریافت می کنه، اطلاعات از تمامی پورت های اون broadcast میشه. این قضیه زمانی که باعث اتلاف پهنای باند و بروز collision ها نشه میتونه سودمند باشه. میخوام زمانی رو تصور کنم که ۲ تا کامپیوتر داده ای رو همزمان برای هم ارسال می کنن: چه اتفاقی می افته؟! Packet ها به هم برخورد می کنن و اطلاعات از بین میره! اطلاعات باید با استفاده از پروتکل Carrier Sense Multiple Access By Collision Detection که به اختصار CSMA/CD نامیده میشه دوباره broadcast بشن. به عبارت ساده تر، از این پروتکل برای ارسال دوباره داده ها بعد از بروز collision ها استفاده میشه.
Collision ها مشکلاتی هستن که با هاب ها همیشه وجود داشتن. مشکل مهمتر اینه که هاب ها bandwidth رو هدر میدن. هاب ها بصورت half-duplex کار میکنن، به این معنیه که هاب اطلاعات رو در یک زمان فقط در یک مسیر عبور میده ( که با سیستم full-duplex قابل مقایسه هستش که اطلاعات میتونن بین دو دستگاه همزمان مبادله بشن یعنی send و receive همزمان). چون در هاب ما با سیستم half-duplex کار می کنیم، بنابراین پهنای باند باید بین پورت های هاب share بشه. تصور کنید که یه هاب ۲۰ پورتی با یک خط ۲۰ Kbps داریم که باید share بشه. اما هر کامپیوتر فقط از ۱ Kbps از bandwidth این Line در شبکه میتونه استفاده کنه!
سوئیچ چیه؟
سوئیچ در لایه Data Link از مدل OSI کار میکنه. بنابراین سوئیچ ها نسبت به هاب ها هوشمندتر عمل میکنن. چون داده های رو میتونن بصورت پویا مسیریابی کنن. اگر اطلاعاتی عازم کامپیوتر A در شبکه باشه، سوییچ این اطلاعات رو فقط برای کامپیوتر A ارسال میکنه.
این قابلیت مشکل Collision ها رو برطرف میکنه چون سوییچ از سیستم microsegmentation بهره میبره. Microsegmentation شبکه رو به collision Domanin های متعدد تقسیم میکنه. پس بجای یه Cillision Domain (در هاب) چند Collision Domain خواهیم داشت.
دیاگرام پایینی رو نیگا کنین. اینجا یه شبکه با سوئیچ Collision Domain های متعدد داره ( یا segment ها). اگر کامپیوتر A و B همزمان داده ای رو برای هم ارسال کنن، یک Collision خواهیم داشت. کامپیوتر A یا کامپیوتر C یا D با این وجود Collisionای رو در شبکه متحمل نخواهند شد. در شبکه هایی که با هاب کار میکنن فقط یه Collision Domain وجود داره. این به این معنیه که اگه کامپیوتر اول داده ای رو ارسال کنه این داده توسط کامپیوتر های دیگه در شبکه نادیده گرفته میشه.
سوئیچ ها میتونن تعقیب کنن که کدوم کامپیوتر متعلق به کدوم پورت هستش. اگه اطلاعاتی عازم کامپیوتر A باشه این اطلاعات فقط از پورت A عبور میکنه.
یادتون هست که گفتیم هاب پهنای باند رو بین پورت هاش تقسیم میکنه؟ Microsegmentation باعث میشه که کامپیوتر ها در شبکه حداکثر مقدار Bandwidth خودشونو داشته باشن. اگه شما یه خط ۲۰ Kbps داشته باشین هر کامپیوتر پهنای باند ۲۰ Kbps رو خواهد داشت. ( اما به یاد داشته باشین که سوئیچ ها جادو نمیکنن! اگه ۲ یا چند کامپیوتر از یک خط بطور همزمان استفاده کنن، باید پهنای باند رو بین خودشون share کنن. البته این موضوع در مقایسه با هاب ها خیلی بهتره، که بطور اتوماتیک پهنای باند رو بین پورتهاش تقسیم میکنه و این باعث میشه که حتی کامپیوتر ها قادر به استفاده از اون Line به اشتراک گذاشته شده که در سوئیچ گفتیم هم نباشن!