از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
بررسی اجمالی آمار رابط شبکه
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
در Android 4.0، آمارهای گزارش شده توسط رابط های شبکه لینوکس در طول زمان ثبت می شود و برای اعمال محدودیت های سهمیه شبکه، ارائه نمودارهای قابل مشاهده برای کاربر و موارد دیگر استفاده می شود.
هر درایور دستگاه شبکه (شامل Wi-Fi) باید از چرخه عمر دستگاه هسته استاندارد پیروی کند و آمار صحیح را از طریق dev_get_stats()
. به طور خاص، آمارهای برگشتی باید تا زمانی که رابط فعال است، کاملاً یکنواخت باقی بماند. درایورها تنها پس از تکمیل موفقیت آمیز یک unregister_netdev()
یا معادلی که یک رویداد NETDEV_UNREGISTER
برای تماس های ثبت شده با register_netdevice_notifier()
/ register_inetaddr_notifier()
/ register_inet6addr_notifier()
ایجاد می کند، می توانند آمار را بازنشانی کنند.
اپراتورهای تلفن همراه معمولا مصرف داده را در لایه اینترنت (IP) اندازه گیری می کنند. برای مطابقت با این رویکرد در Android 4.0، ما بر این واقعیت تکیه میکنیم که برای دستگاههای هسته به مقادیر rx_bytes
و tx_bytes
برگردانده شده توسط dev_get_stats()
که دقیقاً بایتهای لایه اینترنت ( IP
) منتقل شده را برمیگرداند. اما ما میدانیم که برای دستگاههای دیگر ممکن است اینطور نباشد. در حال حاضر، این ویژگی به این ویژگی متکی است. درایورهای جدید نیز باید آن ویژگی را داشته باشند، و مقادیر dev_get_stats()
نباید شامل هیچگونه سربار کپسولهسازی لایههای پایینتر شبکه (مانند هدرهای اترنت) باشد، و ترجیحاً نباید شامل سایر ترافیکها (مانند ARP) باشد، مگر اینکه ناچیز باشد.
چارچوب Android فقط آمار را از رابط های شبکه مرتبط با NetworkStateTracker
در ConnectivityService
جمع آوری می کند. این چارچوب را قادر میسازد تا به طور مشخص هر رابط شبکه را شناسایی کند، از جمله نوع آن (مانند TYPE_MOBILE
یا TYPE_WIFI
) و هویت مشترک (مانند IMSI). تمام رابط های شبکه ای که برای مسیریابی داده ها استفاده می شوند باید توسط NetworkStateTracker
نشان داده شوند تا آمار به درستی محاسبه شود.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-03-26 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-03-26 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Network interface statistics overview\n\nIn Android 4.0, statistics reported by Linux network interfaces are\nrecorded over time, and are used to enforce network quota limits,\nrender user-visible charts, and more.\n\nEach network device driver (Wi-Fi included) must follow the standard\nkernel device lifecycle, and return correct statistics through\n`dev_get_stats()`. In particular, statistics returned must remain\nstrictly monotonic while the interface is active. Drivers may reset\nstatistics only after successfully completing an `unregister_netdev()`\nor the equivalent that generates a `NETDEV_UNREGISTER` event for\ncallbacks registered with `register_netdevice_notifier()` /\n`register_inetaddr_notifier()` / `register_inet6addr_notifier()`.\n\nMobile operators typically measure data usage at the Internet layer\n(IP). To match this approach in Android 4.0, we rely on the fact that\nfor the kernel devices we care about the `rx_bytes` and `tx_bytes`\nvalues returned by `dev_get_stats()` return exactly the Internet layer\n(`IP`) bytes transferred. But we understand that for other devices it\nmight not be the case. For now, the feature relies on this\npeculiarity. New drivers should have that property also, and the\n`dev_get_stats()` values must not include any encapsulation overhead\nof lower network layers (such as Ethernet headers), and should\npreferably not include other traffic (such as ARP) unless it is\nnegligible.\n\nThe Android framework only collects statistics from network interfaces\nassociated with a `NetworkStateTracker` in `ConnectivityService`. This\nenables the framework to concretely identify each network interface,\nincluding its type (such as `TYPE_MOBILE` or `TYPE_WIFI`) and\nsubscriber identity (such as IMSI). All network interfaces used to\nroute data should be represented by a `NetworkStateTracker` so that\nstatistics can be accounted correctly."]]