בתקשורת נתונים, עקרון קצה לקצה הוא עיקרון עיצובי שנוסח באופן מפורש לראשונה בשנת 1981 על ידי ג'רי סלצר (אנ'), דייוויד ריד (אנ') ודייוויד קלארק (אנ').
עקרון קצה לקצה קובע כי בכל רשת כללית, פונקציות המיועדות למטרות אפליקטיביות ספציפיות צריכות להתממש בצד משתמש הקצה ולא בצומת אמצעי, כל עוד היא יכולה להתממש שם "במלואה ובצורה נכונה". העיקרון חוזר אחורה עד לעבודתו משנת 1960 של פול ברן להשגת אמינות מרכיבי תקשורת לא אמינים. האינטואיציה הבסיסית היא שפחות משתלם להוסיף פונקציות לרשת, בעיקר במקרים בהם משתמשי הקצה צריכים לממש אותן בכל מקרה מסיבות של שלמות ונכונות. נוסף על כן, כאשר מימוש פונקציה מסוימת יגרור קנסות גם אם לא נעשה שימוש בפונקציה, מימושה ברשת יגרור את הקנסות הללו לכלל המשתמשים, גם אם הם לא משתמשים בה.
דוגמה לשימוש בעקרון קצה לקצה היא העברת קבצים אמינה באופן שרירותי בין שני משתמשי קצה ברשת מבוזרת מגודל לא טריוויאלי: הדרך היחידה בה משתמשי הקצה יוכלו להעביר את הנתונים באופן אמין לגמרי היא על ידי שליחת Checksum על כלל זרם המידע, והודעות ACK. ניתן להצדיק פחות בדיקות שגיאות רק כדי למקסם ביצועים ברשת, ולמרות שהעברת נתונים אמינה חשובה לרוב הצרכים של משתמש ברשת, זה לא מספיק בשביל לממש את בדיקות האמינות ברשת. נוסף על כן, אם בדיקות שגיאות ממומשות בכל קפיצה בין רכיבי רשת בדרך שעובר המידע בין משתמשי הקצה, עדיין יהיה צורך לממש אותן במשתמשים עצמם, שכן יכולה להיות שגיאה בקפיצה האחרונה (כלומר, אל משתמש היעד). על כן, Checksum מתבצע במשתמשי הקצה כאשר הם רוצים העברת נתונים אמינה, והרשת שומרת על רמת סיבוכיות נמוכה וזמן ביצוע סביר לכלל המשתמשים.