Skip to content

About

פרויקט גמר: רשתות תקשורת מחשבים (Computer Networks Final Project)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📡 פרויקט גמר: רשתות תקשורת מחשבים (Computer Networks Final Project)

תוכן העניינים


מבוא

פרויקט זה עוסק בניתוח מעמיק של פרוטוקולי תקשורת, סימולציית אריזת נתונים (Encapsulation) ופיתוח מערכת צ'אט מלאה ב‑TCP/IP.

הפרויקט מחולק לשני חלקים עיקריים:

  1. חלק 1: אריזה ולכידת מנות (Packet Analysis & Wireshark)
  2. חלק 2: פיתוח מערכת צ'אט (Client‑Server Chat System)

📦 חלק 1: אריזה ולכידת מנות (Packet Analysis)

בחלק זה ביצענו סימולציה של תעבורת רשת משכבת היישום ועד לשכבה הפיזית, כולל לכידה וניתוח ב‑Wireshark.

📂 קבצים מצורפים לחלק 1

  • group212252217_http_input.csv – קובץ קלט עם הודעות מדומות בשכבת היישום.
  • raw_tcp_ip_notebook_fallback_annotated-v1.ipynb – מחברת Jupyter המדמה תהליך Encapsulation.
  • capture.pcap – קובץ לכידה מ‑Wireshark.

⚙️ תהליך העבודה (Workflow)

  1. יצירת נתונים – יצירת קובץ CSV עם תרחישי HTTP/SMTP.
  2. עיבוד במחברת Jupyter
    • טעינת הנתונים.
    • הוספת כותרות TCP/IP/Ethernet.
    • שידור מנות בלולאה מקומית (Loopback).
  3. לכידה וניתוח
    • לכידה באמצעות Wireshark.
    • אימות הופעת תוכן ההודעות ב‑Payload.

💬 חלק 2: מערכת צ'אט (TCP/IP Chat System)

מערכת צ'אט מרובת משתמשים המבוססת על Sockets ו‑Threading.
המערכת תומכת בלפחות 5 לקוחות במקביל, ניתוב הודעות פרטיות וממשק משתמש גרפי מתקדם (בעיצוב Y2K Pink).

✨ תכונות מרכזיות

  • ארכיטקטורת שרת‑לקוח.
  • Multi‑threading לטיפול במספר לקוחות במקביל.
  • פרוטוקול הודעות: TargetName:Message.
  • ממשק GUI מעוצב (Pink Theme) וממשק CLI.
  • טיפול בניתוקים, רשימת משתמשים מחוברים בזמן אמת וחסימת הודעות לא תקינות.

🛠 הוראות התקנה והרצה

דרישות קדם

  • Python 3.6+
  • ספריית tkinter (מגיעה מובנית עם התקנת Python סטנדרטית).

אין צורך בהתקנת ספריות חיצוניות נוספות.

🎨 הרצה עם GUI (ממשק גרפי)

שרת

python server_gui.py

הזן IP ופורט (או השתמש בברירת המחדל) ולחץ על START SERVER.

לקוח

python client_gui.py

הזן כינוי (Nickname), כתובת שרת ופורט והתחבר.

💻 הרצה ב‑CLI (שורת פקודה)

  • שרת: python server.py
  • לקוח: python client.py

📂 ריכוז קבצי הפרויקט (Inventory)

קובץ חלק תיאור
group_61305-2_http_input.csv חלק 1 קובץ נתונים אפליקטיביים
raw_tcp_ip_notebook_fallback_annotated-v1.ipynb חלק 1 סימולציית Encapsulation
csv_communications_capture.pcap חלק 1 לכידת Wireshark
server.py חלק 2 שרת CLI (לוגיקה מרכזית)
server_gui.py חלק 2 שרת GUI (מעטפת גרפית)
client.py חלק 2 לקוח CLI (לוגיקה מרכזית)
client_gui.py חלק 2 לקוח GUI (מעטפת גרפית)
Project_Report.docx כללי דוח מסכם

מגישים: שי כהן, שחר סידון, איסבל דייצ׳ב

About

פרויקט גמר: רשתות תקשורת מחשבים (Computer Networks Final Project)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages