جيسون: في هذا
الدرس، سنناقش أنواع بروتوكولات
IP، بما في ذلك TCP وUDP ومفاهيم
الطرق غير المتصلة مقابل الأساليب
الموجهة للاتصال.
الآن، ما هو برنامج التعاون الفني؟
TCP هو بروتوكول التحكم في الإرسال.
إنه بروتوكول موجه نحو الاتصال،
مما يعني أنه وسيلة موثوقة
لنقل القطاعات عبر شبكتنا.
الآن، إذا تم إسقاط مقطع ما،
فسيطلب البروتوكول بالفعل الإقرار
في كل مرة.
وإذا لم تحصل على هذا الإقرار، فسوف
تقوم بإعادة إرسال تلك المعلومات.
لهذا السبب نطلق على هذا بروتوكول الاتصال الكامل لأنه
يحتوي على هذا النوع من المعلومات ثنائي الاتجاه
حيث أرسل لك المعلومات وأتحقق
من أنك حصلت عليها بالفعل من خلال الاستماع
إلى أنك حصلت عليها وتعطيني ردًا.
الآن دعونا نلقي نظرة على هذا الرسم البياني
الصغير هنا على الشاشة لثانية واحدة.
سترى أن لدي عميلًا على اليسار
وخادمًا على اليمين.
الآن، سيقوم العميل بإرسال ما يسمى بحزمة المزامنة،
أو حزمة المزامنة، إلى
الخادم.
الآن، عندما يحصل الخادم
على ذلك، فإنه سيرسل
إقرارًا بالمزامنة إلى العميل، يُعرف باسم
إشعار المزامنة.
الآن، عندما يحصل العميل على هذا الإقرار،
فإنه سيرسل إقراره الخاص إلى الخادم.
يُعرف هذا باسم ack.
الآن، عندما نقوم بهذا المزامنة، المزامنة،
ack، هذا ما نشير إليه بالمصافحة الثلاثية.
في الأساس، يقول العميل، "مرحبًا أيها
الخادم، هل أنت مستعد للحصول على بعض المعلومات؟ ثم يقول الخادم: "بالتأكيد.
ولم لا؟
"أرسل لي بعض المعلومات. ويقول العميل:
"حسنًا، ها هو يأتي. ومن ثم سيبدأ الإرسال لأننا
أنشأنا تلك المصافحة الثلاثية
ونعلم أن كلا الجانبين جاهزان
للتواصل.
"الآن، هل أنت مستعد؟ "نعم أنا.
"هاهي
آتية. الآن في كل مرة يتم فيها
إرسال هذه البيانات، التي نسميها
مقطعًا، عبر الشبكة،
سيكون هناك إقرار تم استلامه ويخبرنا
بوجود اتصال ناجح في الاتجاهين.
الآن، إذا كان هذا الخادم
يتوقع الحصول على 100 معلومة،
لكنه حصل على 98 منها فقط، فسوف يقول
للعميل، "مرحبًا،
لقد أخبرتني أنك سترسل لي 100 شيء،" لكنك أرسلت
لي فقط 98.
"أرسلوني إلى هذين الشيئين اللذين أفتقدهما. وبعد ذلك، تحدث إعادة
الإرسال.
بهذه الطريقة، يمكن
أن يستمر الاتصال بالنسبة لنا ويمكننا
دائمًا التأكد من أننا
نحصل على ما يفترض بنا أن
نحصل عليه لأنه لدينا إعادة إرسال الحزم
عبر الشبكة.
الآن، يتم استخدام هذا لجميع بيانات الشبكة
التي تحتاج إلى التأكد للوصول إلى وجهتها النهائية.
أحب أن أفكر في هذا مثل البريد المعتمد.
إذا كنت أرغب في إرسال رسالة إلى مصلحة الضرائب الأمريكية، على سبيل
المثال، أريد التأكد من حصولهم عليها
وأنها لن تضيع في البريد.
لذلك قد أدفع القليل من المال الإضافي
للحصول على إيصال معتمد، وعندما
يصل هناك، يجب عليهم التوقيع عليه، ويتم
إرساله إليّ بالبريد.
بهذه الطريقة، عندما
أستعيد هذا الإيصال، أعلم
أن مصلحة الضرائب حصلت على طرد البريد الخاص بي.
هذه هي الطريقة التي يعمل بها بروتوكول TCP.
الآن، من ناحية أخرى،
لدينا بروتوكول آخر يعرف باسم UDP.
UDP هو ما نسميه بروتوكول بدون اتصال، مما يعني
أنه لا يحتاج إلى انتظار الاتصالات.
UDP يرمز إلى بروتوكول مخطط بيانات المستخدم.
والسبب في أننا نطلق عليه مخطط
البيانات هو أنه إذا كنت تستخدم UDP، فأنت
تستخدم هذا النوع من البيانات.
يطلق عليه مخطط البيانات.
الآن، عندما نتحدث عن UDP، فإن
UDP غير موثوق به ويقوم بنقل
مقاطع تسمى مخططات البيانات.
وإذا تم إسقاطها،
فلن يعلم المرسل أبدًا بحدوث ذلك.
الآن، لماذا أرغب في إرسال أشياء حيث
لا يكون المرسل على علم بها ولا
أحصل على أي نوع من الإيصال؟
حسنًا، يعد UDP جيدًا حقًا للبث الصوتي والمرئي لأنك
ترسل الكثير من البيانات ويكون
هناك حمل أقل بكثير عند استخدام UDP، لأننا
لا نملك تلك المصافحة الثلاثية المستمرة
لتأسيسها وليس لدينا
جميع الضوابط والتوازنات المرتبطة
باستخدام TCP.
لذا، باستخدام UDP، يمكنك
حقًا زيادة أداء شبكتك لأنه لن يكون
لديك أي عمليات إعادة إرسال.
سينتهي بك الأمر بإسقاط المعلومات.
الآن، أليس هذا أمرا سيئا؟
لماذا نريد إسقاط المعلومات؟
حسنًا، بالنسبة لبعض التطبيقات،
لا يهم حقًا.
على سبيل المثال، أنت تقوم ببث هذا الفيديو الآن.
وإذا تركت الدراسة لمدة 1/100 من الثانية،
هل ستلاحظ ذلك؟
حسنًا، ربما لن تفعل ذلك،
ولهذا السبب يعد UDP جيدًا جدًا
لأنه يمكننا إسقاط 1/100 من الوقت هنا ولن
تلاحظ ذلك أبدًا، ولن تكون هناك
إعادة إرسال.
لكن مع TCP، سيؤدي ذلك إلى المزيد
من التخزين المؤقت لأنه يتعين
عليك الانتظار، ثم إعادة
إرساله إليك، ثم وضعه في
المكان المناسب، ثم تشغيله
مرة أخرى.
وهكذا، بسبب هذا الاعتراف وهذه النفقات،
لكل ثانية من هذا الفيديو، سينتهي
الأمر بجعله أكبر بكثير واستخدام
نطاق ترددي أكبر بكثير.
وهذا أحد الأسباب الكبيرة
وراء استخدامنا لـ UDP لبث الفيديو والصوت.
الآن، لنقم بعمل ملخص سريع هنا حول TCP مقابل UDP.
لأن هذا مفهوم مهم حقًا.
في الواقع، إذا كانت لديك ملاحظاتك الآن،
أود أن أكتب هذا المخطط الذي
سأخبرك به الآن بينما
نتحدث عن TCP مقابل UDP.
لأنه حقا مهم.
الآن، أولاً، TCP موثوق به، وله مصافحة
ثلاثية، حيث لا يمكن الاعتماد
على UDP بشكل كبير.
إنه بروتوكول غير موثوق
لأنه لا يوجد مصافحة ثلاثية.
TCP هو ما نسميه بروتوكول موجه للاتصال
أو بروتوكول اتصال كامل لأن لدينا
مصافحة ثلاثية الاتجاهات في الإقرارات،
ولكن UDP غير متصل.
إنها طريقة النار والنسيان.
لقد بدأت للتو في إرسال
المعلومات وآمل أن تحصل عليها.
يستخدم TCP إعادة إرسال المقطع والتحكم في التدفق الذي يتم
التعامل معه من خلال النوافذ.
UDP، من ناحية أخرى،
لا يوجد إعادة إرسال ولا نافذة.
باستخدام TCP،
لدينا تجزئة لتسلسلنا لجميع
قطاعاتنا المختلفة.
مع UDP، لا يوجد تسلسل.
الآن، ما يعنيه هذا هو أنني عندما أرسل
كل شيء، سأرسله بالترتيب الصحيح،
من واحد إلى 100.
سأفعل هذا لكل من TCP وUDP.
الآن، إذا فاتتك بعض هذه القطع،
أو وصلت بترتيب مختلف لأنها
تأخذ مسارًا مختلفًا عبر الشبكة، باستخدام
TCP، فإنها تقوم بالتسلسل،
لذلك يعرف أن لديك واحد
إلى 1000 ويعيدها مرة أخرى إلى
التسلسل الصحيح.
مع UDP، مهما كان
شكله، فهذه هي الطريقة
التي سيتم بثه بها.
ومن ثم، يمكن أن تأتي
في واحد، 50، اثنان،
500، ثلاثة، أربعة،
خمسة، ستة، 20، بأي ترتيب عشوائي كهذا.
وهذه هي الطريقة التي ستسمع بها.
لذلك مع الفيديو، قد تسمع القليل من القفز، أو
القليل من الصرير عالي النبرة، أو
شيء من هذا القبيل،
لأن أحد هذه الإطارات ربما خرج عن الترتيب.
الآن، عندما نعود إلى
TCP، سنتعرف على كل جزء من هذه الأجزاء.
وهكذا لدينا الاعتراف.
إذا لم أحصل عليه،
فأنا أعلم أنني
لم أفهمه ويمكنني إعادة إرساله إلي، ثم
الحصول عليه مرة أخرى.
مع UDP، لا يوجد اعتراف.
مرة أخرى، UDP لديه حمل أقل بكثير لأنه
لا يوجد اتصال،
ولا نوافذ، ولا إعادة إرسال،
ولا تسلسل، ولا إقرار.
الآن، إذا كان عليك الحصول على
شيء ما وتريد التأكد من حصول الشخص
عليه، فعليك حقًا استخدام TCP كبروتوكول من اختيارك.
ولهذا السبب سنستخدم بروتوكول TCP لأشياء مثل الخدمات
المصرفية ومواقع الويب والتجارة الإلكترونية وأشياء
من هذا القبيل.
ولكن إذا كان لدينا شيء يحتوي على الكثير
من البيانات مثل تدفق الصوت أو الفيديو،
فإن UDP يعمل بشكل جيد مع ذلك لأننا لا نحتاج
إلى الحصول على كل
جزء من هذا الملف.
يمكننا أن نتخطى قليلاً هنا
وهناك، ولا بأس بذلك.
-: [مدرس آخر] الآن، عندما يتعلق الأمر
بـ TCP وUDP، تحدثنا عن حقيقة أن هذه بروتوكولات
كاملة الاتصال أو موجهة للاتصال،
وبروتوكولات غير متصلة.
لذا اسمحوا لي أن أقدم لكم بعض الأمثلة
على البروتوكولات التي تستخدم إما TCP أو UDP حتى تتمكن
من فهم سبب استخدامنا لكل منهما.
أولاً، دعونا نلقي
نظرة على TCP وبروتوكولاتنا
الموجهة للاتصال أو الاتصال الكامل.
يتضمن ذلك أشياء مثل SSH وHTTP أو HTTPS.
الآن، لماذا نحتاج إلى الاتصال الموجه في هذه الحالات؟
حسنًا، في حالة استخدام شيء مثل SSH، فأنا أقوم
بإجراء اتصال ثنائي الاتجاه والتحكم في الخادم
البعيد أو محطة العمل البعيدة، وسأكون قادرًا على
القيام بذلك عبر المنفذ 22.
أريد التأكد من أنني أفعل
ذلك بطريقة موجهة نحو الاتصال أو اتصال كامل.
بهذه الطريقة، عندما أرسل أمرًا وأقول،
أعد تشغيل الخادم،
أعلم أن الأمر وصل بالفعل وستتم
إعادة تشغيل الخادم.
وبالمثل، عندما نتعامل مع HTTPS، نريد التأكد
من أن لدينا بروتوكول اتصال كامل
أو بروتوكول موجه للاتصال باستخدام TCP.
والسبب في ذلك هو، مرة
أخرى، أننا نريد التأكد من
أن ما نرسله يتم استلامه بالفعل هناك.
وقد يتضمن ذلك أشياء مثل المصادقة عندما نحاول
تسجيل الدخول إلى موقع ويب باستخدام
اسم المستخدم وكلمة المرور الخاصين
بنا، أو ربما المعلومات التي
نستعيدها من موقع الويب هذا، مثل
أرصدة حساباتنا ومعلوماتنا المصرفية.
الآن، من ناحية
أخرى، إذا كنا نستخدم UDP كبروتوكول
خاص بنا، فإننا نتعامل بطريقة غير متصلة.
لقد ذكرت بالفعل حقيقة
أننا نستخدم هذا طوال
الوقت لأشياء مثل بث الصوت والفيديو.
ولكن بالإضافة إلى
ذلك، فإننا نستخدمه أيضًا لأشياء مثل DHCP،
وبروتوكول نقل الملفات البسيط، المعروف باسم TFTP.
الآن، إذا كنت
تتذكر، يتم استخدام DHCP كبروتوكول التحكم الديناميكي
للمضيف ويعمل عبر المنفذ 67 و68.
الآن، عندما تنضم إلى شبكة،
سيقوم جهازك، إذا تم
إعداده لتعيين ديناميكي لعنوان
IP الخاص به، بإرسال رسالة بث على تلك الشبكة
بحثًا عن خادم DHCP.
ولهذا السبب نستخدمه كبروتوكول بدون اتصال.
لأنه إذا تم إرسال تلك المعلومات ولم يستجب أحد، فسيقوم عميلك
ببساطة بإرسال تلك المعلومات مرة أخرى على
أمل أن يكون هناك شخص آخر هناك.
هذه هي الطريقة التي يعمل بها DHCP.
سيسمح بخروج رسالة البث،
ثم ينتظر عودة الرد.
إذا لم يحصل على هذا
الرد خلال فترة زمنية
معينة، فسوف يقوم ببساطة بإعادة بث رسالته،
ومرة أخرى، يبحث عن خادم DHCP جديد.
الآن، بالمثل، عندما يكون لدينا
TFTP أو بروتوكول نقل الملفات
البسيط، الذي يعمل عبر المنفذ
69، فإنه سيعمل بطريقة غير متصلة
باستخدام UDP كوسيلة نقل.
والسبب في ذلك
هو أن TFTP هو بروتوكول نقل الملفات البسيط، وبالتالي،
لا نحتاج إلى ضمانات بأن كل حزمة تم إرسالها
واستلامها مع تلك الإقرارات، وهذا يخلق الكثير من
الحمل إذا استخدمنا TCP.
لذا، باستخدام UDP، يمكننا
الحصول على نقل أسرع للملفات
عندما نستخدم شيئًا مثل TFTP، بدلاً
من استخدام بروتوكول أكثر اتصالاً، مثل FTP.