شروع ماجرا
داری توی مرورگرت www.virgool.io رو میزنی و Enter رو میزنی. صفحه جلوت باز میشه. نیم ثانیه بیشتر طول نمیکشه.
ولی توی همین نیم ثانیه، یه بسته کوچک داده سفری حماسی میره از کیبورد تو تا سرور ویرگول و برمیگرده. از لولههای مسی، فیبر نوری، پالسهای الکتریکی، روترهای شلوغ، تا کدهای پایتون و جاوااسکریپت.
بیا همراه این بسته سفر کنیم، از لایه فیزیکی تا لایه اپلیکیشن. ببینیم توی این نیم ثانیه چه خبره.
ایستگاه اول: لایه فیزیکی / از کلید تا کابل
اولین قدم: انگشت تو دکمه H رو فشار میده. زیر این دکمه یه کلید مکانیکی هست که به یه صفحه مدار چاپی متصله. با فشار، یه مدار بسته میشه و یه ولتاژ کوچیک (مثلاً ۵ ولت) به CPU میرسه.
CPU این رو تشخیص میده که "کاربر حرف H رو زده". بعد از تبدیل به کد ASCII (که میشه ۷۲)، این عدد به کارت شبکه لپتاپت فرستاده میشه.
حالا کارت شبکه باید این عدد رو تبدیل به پالس الکتریکی کنه. برای هر بیت ۱، یه ولتاژ مثبت میفرسته (مثلاً ۲.۵+ ولت). برای هر بیت ۰، یه ولتاژ منفی (۲.۵- ولت).
این پالسها میرن توی کابل شبکه یا امواج وایفای. بله، درست خوندی. همون کابلی که گاهی ازش متنفری.
نکته فنی: همه چیز از اینجا شروع میشه. بدون لایه فیزیکی، درخواست HTTP تو از اتاقت خارج هم نمیشه.
ایستگاه دوم: لایه پیوند داده / فریمها و مکآدرسها
کارت شبکه لپتاپت چنتا بیت رو جمع میکنه و میذاره توی یه فریم (Frame) . توی هدر این فریم، دو تا آدرس مهم هست:
· مکآدرس مبدأ: آدرس فیزیکی کارت شبکه خودت (مثلاً AA:BB:CC:DD:EE:FF)
· مکآدرس مقصد: آدرس روتر خونهات (مثلاً 11:22:33:44:55:66)
اینجا یه باگ جالب وجود داره. اگه توی شبکه دو تا دستگاه مکآدرس تکراری داشته باشن (خیلی نادر ولی ممکنه)، فریمها قاطی میشن و هیچکی به هیچکی نمیرسه. همونقدر نادر که دو نفر توی یه خیابون کد پستی یکسان داشته باشن، ولی اتفاق میافته!
لایه پیوند داده مسئول اینه که فریم بدون خطا از این کامپیوتر به اون یکی برسه. اگه خطایی توی انتقال پیش بیاد (مثلاً نویز کابل)، همین لایه میفهمه و درخواست ارسال مجدد میده.
ادامه در پست دوم به زودی...
و