تحدثنا سابقاً عن أهمية الفحص وما سنقوم من خلاله بجمع المعلومات، اليوم سنشرح TCP/IP suite أو حزمة بروتوكولات TCP وهناك من يطلق عليها Internet protocol suite.
هذه الحزمة سنتعرف عليها بشكل سريع ليتعلم الناس الذين لم يسبق لهم معرفتها وكيف تعمل، ويستكملوا باقي دروس الوحدة لأهميتها في عملية الفحص scanning.
ما هي TCP/IP suite
هي نموذج اتصال يحوي مجموعة من البروتوكولات الخاصة بالاتصال بين الأجهزة والشبكات ووظيفتها توفير en
وهي عملية اتصال بين طرفي المحادثة
بحيث أن البيانات التي يتم إرسالها من كمبيوتر إلى آخر يتم تنظيمها وتنسيقها بهذه البروتوكولات وتتم عملية تحزيم البيانات وتقسيمها.
ما هو التحزيم packetize
فلو فرضنا أنك أرسلت ملفاً حجمه 10 ميجا، فال تسيبي لا ترسله دفعة واحدة بل تعمل على تقسيمه وكل قسم منه يضعه في حزمة.
ترقيم الحزم
ومن ثم كل حزمة من البيانات يعطيها رقم تسلسلي ليحددها ويرتبها، حتى عندما تصل البيانات إلى الطرف الآخر، فيعمل الطرف الآخر بتجميعها بشكل صحيح وليس بشكل عشوائي.
TCP suite تقوم بنقل البيانات من طرف إلى آخر وتتأكد من نقلها
routing
توفر توجيهها أيضاً، فعند ارسالها من طرف إلى آخر، لا يتم إرسالها بشكل مباشر وإنما عبر شبكة كبيرة، ويمكن لا تكون أجهزة متصلة بشكل مباشر.
فربما جهاز موجود في الأردن وجهاز في أمريكا، فستمر بمجموعة كبيرة جداً من الراوترات، فتحدد عملية توجيه الحزم الصغيرة إلى وجهتها.
استقبال وتجميع transmit & receive
وهذه TCP suite مسؤولة عن استقبال الحزم الصغيرة وتجميعها.
طبقات TCP
لتقوم TCP suite بهذه الأمور السابقة، فإنه تم قسم عملية TCP suite إلى أربع مراحل أو طبقات، وكل طبقة تقوم بعملية معينة ولها بروتوكولات خاصة به.
Application layer
وظيفته يتعامل مع التطبيقات، فمثلاً تريد تصفح الإنترنت، فأنت تتصفحه من خلال متصفح، والمتصفح هو تطبيق يتعامل مع http بروتوكول، وهو تطبيق للبروتوكول.
في الطرف الآخر هو web server ، وهو عبارة عن تطبيق وظيفته التعامل مع application protocol.
application protocol
وظيفته أن التطبيقين الموجودين في كلا الطرفين، يستطيعان التواصل مع بعضهما. باختصار هو واجهة وظيفتها توصيل البيانات بين الطرفين.
Transport layer
وظيفته أن يقوم ب Host to Host ، وهي أن يسمح للطرفين بإنشاء تواصل وتراسل بيانات بينهما.
وفيه مجموعة بروتوكولات أهمها TCP Protocol و UDP Protocol وهي التي تهمنا في هذا الدرس.
Internet layer
وهي أن البيانات التي أرسلت بعد أن يتم تقسيمها وعنونتها من أرسل ومن أستقبل، ويجمعها ثم يرسلها إلى الطرف الآخر ويقوم بال routing أي توجيهها.
Network access layer
في بعض الأحيان يمكن تسمية Internet layerب Network layer في بعض الأحيان، ويمكن تسمية Network access layer ب link layer .
ووظيفتها : أنك ترسل البيانات عن طريق وصلة الكابل أو وايرلس أو غيرها ترسلها ب 01 ووظيفته أن يرسلها من طرف إلى آخر بأن يرسلها ب transmission media
التي يمكن أن تكون كابل أو اثرنت أو وايرلس أو غيرها.
ويوجد فيها أيضاً colleging domain بحيث أن يتأكد من أن البيانات التي تم إرسالها وهي في طريق الإرسال أن هناك بيانات يريد استقبالها.
وبالتالي يمكن أن يحدث تضارب فيتأكد من ألا يحدث تضارب بحيث تصل بشكل صحيح.
أنواع الطبقات لل تسبي ايبي
TCP/IP PROTOCOLS | TCP/IP LAYERS | ||||
DNS | SMTP | TELNET | FTP | HTTP | APPLICATION LAYER |
UDP | TCP | TRANSPORT LAYER | |||
IGMP | ICMP | ARP | IP | NETWORK LAYER | |
OTHER LINK LAYER PROTOCOLS | TOKEN RING | ETHERNET | NETWORK INTERFACE LAYER | ||
كيف يتم تدفق البيانات Data Flow
لنفرض أن لدي جهاز A وجهاز B بغض النظر عن نوعها كمبيوتر، طابعة، سيرفر وغيرها، A سيتواصل مع B ويرسل بيانات بأي بروتوكول .
منطقياً عندما يرسل البيانات يكون لديه تطبيق، وهذا التطبيق لديه Process.
فلو فرضنا أنه سيتواصل عن طريق HTTP protocol فال Processهو المتصفح ويمكن أن يكون فاير فوكس أو كروم أو غيرها.
فهنا عملية تتواصل مع عملية أخرى موجودة في B وعلى B يوجد web server أياً كان نوعه.
بعد أن تكتب مثلاً: www.google.com فالبيانات التي تطلبها ترسل إلى الطبقة التي أسفلها وهي Transport layer ووظيفتها أن يجهز عملية الاتصال من a إلى B طريق تحديد الوجهة.
أي يحدد المنفذ المفتوح الذي يتصل معه، يحدد الوجهة و source port number ويهيئ عملية الاتصال.
يأتي دور طبقة إنترنت التي تقسم البيانات إلى حزم صغيرة ويحدد IP Address للمصدر والوجهة ويقوم ب routing ثم يرسلها ب link layer عن طريق الاثرنت أو غيرها.
يرسل البيانات فتصل لأول راوتر لأن يمكن ألا يكون الجهازين مرتبطين بنفس الشبكة، ومن ثم الراوتر الثاني والثالث وكذا حتى تصل إلى الوجهة.
بمجرد وصول البيانات للوجهة، تتم العملية بالعكس ، Link layer تجمع البيانات وترسلها بطريقة معكوسة.
بروتوكولات Transmit Layer
هناك بروتوكولان هامان هما TCPو UDP ، وكلاهما يقومان بعملية ال Transmition، لكن هناك فرق بينهما:
TCP Protocol
هي reliable و connection oriented ويقصد بها أنه قبل بدء عملية نقل البيانات من A إلى B يجب أن يتأكد الطرفين من وجود اتصال صحيح بينهما، ليتم نقل البيانات بينهما.
ولهذا يدعى connection oriented.
وتعني reliable أنه البيانات عندما يتم إرسالها يتم إعطائها رقم تسلسلي لتصل بالترتيب الصحيح. فتصل ويتم التأكد منها، فإن سقط أحد الأجزاء سهواً لسبب ما، يتم إعادة إرسالها.
TCP Segment
كل واحد من البروتوكولات لديه حزمة يضع فيها عدة أمور، يضع فيها:
منفذ المصدر
منفذ الوجهة
رقم التسلسل
Acknowledgement يعني أنه عرف أنها وصل لكن أنتظر الحزمة الفلانية.
الأعلام وهي مهمة للبيانات التي يتم إرسالها.
TCP Communication Flags
الأعلام التي سنتعامل معهم هم التاليات:
URG
Urgent وهي عبارة عن: إذا كانت قيمته 1 يعني أن على الوجهة أن تعالج البيانات بسرعة.
FIN
Finish يعني أنه لا يوجد بث أو نقل
RST
Reset إعادة الاتصال
PSH
Push إرسال البيانات المحولة حالاً
ACK
Acknowledgement التعرف على الحزمة الواصلة.
SYN
Synchronize بدء عملية التزامن بين الطرفين.
TCP 3-way handshake
وهي تتم بطريقة أن A يريد التواصل مع B فيرسل حزمة بيانات والحزمة تحوي العلم الذي قيمته 1 ورقم التسلسل له قيمة مثلاً 101.
عند استقبال B للبيانات يقوم بإرسال إلى A أن Syn number رقمه 508 مثلاً ويكون رقمك الذي سأنظره 102 وأرسل معه ACK أن البيانات وصلتني.
وينتظر رقم تسلسلي 509 و رقمي التسلسلي هو 102.
TCP Session Termination
لإنهاء التواصل، يقوم A بإرسال Fin لإيقاف إرسال البيانات، فيرسل B له ACK و FIN فيرد A بإرسال ACK ويتم هكذا إيقاف التطبيقات والإرسال البيانات.
TCP Packet Loss
لنفرض أن A أرسل بيانات إلى B ، ولم تصل لسبب ما، بأن تسقط أو فصل بالاتصال، كيف يحقق ؟
هناك time out المرسل ينتظر فترة معينة، وأي حزمة يرسل لها وقت معين، إن انتهت الفترة ولم يصل acknowledgement من المتلقي.
يعيد المرسل إرسالها ثانية، وهنا يحقق reliability عن طريق التحقق أن الحزمة فقدت أم لا .
UDP Protocol
وهو يقوم ب connectionless datagram ويعني أن البيانات قبل إرسالها لا يكون هناك اتصال، ويرسلها بدون اتصال وبدون معرفة المرسل إليه.
وهي ليست Reliable أي أنه لو هناك حزمة بيانات تم إرسالها ولم تصل إلى الجهة الأخرى، يعني أنه لن يرسل البيانات التي سقطت.
وتعمل حسب التطبيق، إن كان التطبيق لا يهمه إن وصلت أم لم تصل البيانات فإنه يتعامل مع UDP.
ولكن إن أراد التأكد من البيانات ويمكن لسقوط جزء من البيانات أن يؤدي لتخريب فيها فيجب أن يستخدم TCP.
UDP Datagram
هي فقط عبارة عن رقم المنفذ المرسل ورقم منفذ المرسل إليه، وحجم البيانات وملخص ليتأكد أن البيانات لم يتم التعديل عليها.
وليست مثل TCP حيث تحرص TCP على إيصال البيانات ولديها أعلام للوصول وحجم البيانات والتأكيد.