精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Android系統如何通過NTP協議自動同步時間,以及NTP服務的關鍵代碼邏輯

移動開發 Android
NTP 的主要目標是提供高準確性的時間。NTP 版本 4 (NTPv4) 可以提供毫秒級的精度,而更先進的實現(如 RFC 5905 中定義的 NTP Secure 或 Precision Time Protocol, PTP)可以提供微秒或納秒級的精度。

NTP網絡時間協議

NTP (Network Time Protocol) 網絡時間協議用于同步計算機系統之間的時鐘。NTP允許計算機時鐘與參考時鐘源(如原子鐘、GPS 接收器或其他 NTP 服務器)進行同步,時間的準確性對于金融交易、網絡通信、科學研究和安全系統等應用來說至關重要。

NTP協議特點和功能:

  1. 「準確性」:NTP 的主要目標是提供高準確性的時間。NTP 版本 4 (NTPv4) 可以提供毫秒級的精度,而更先進的實現(如 RFC 5905 中定義的 NTP Secure 或 Precision Time Protocol, PTP)可以提供微秒或納秒級的精度。
  2. 「層次結構」:NTP 使用層次結構來組織服務器。時間信息從參考時鐘源(稱為“一級”服務器)流向“二級”服務器,再流向“三級”服務器,以此類推。每個服務器都會增加一定的延遲和誤差,NTP 算法會盡力補償這些誤差。
  3. 「時間同步」:NTP 通過交換時間戳和延遲測量來同步時間。NTP 客戶端向服務器發送一個時間請求,服務器響應時附帶當前時間戳。客戶端然后計算往返延遲,使用這些信息來調整其本地時鐘。
  4. 「可伸縮性」:NTP 可以在各種規模的網絡中運行,從小型局域網到全球互聯網。NTP 服務器可以支持大量客戶端,并且通過負載均衡和冗余來提高可靠性和可用性。
  5. 「安全性」:NTP 的安全性是一個重要問題,因為惡意服務器可能嘗試提供錯誤的時間信息。NTP Secure (RFC 5905) 提供了一種加密和認證機制,可以確保時間信息的完整性和真實性。
  6. 「廣播和多播」:NTP 支持廣播和多播模式,大量客戶端可以同時從單個服務器獲取時間信息。
  7. 「兼容性」:NTP 與之前的互聯網時間同步協議(如 ICMP 時間戳和 Daytime 協議)兼容,并提供了更高級別的準確性和功能。

Android NTP時間同步機制

Android系統的NTP時間同步通過訪問Internet上的NTP服務器來自動更新時間。基本原理是通過NTP協議與NTP服務器進行通信,獲取當前準確的時間,然后同步到本地設備中。NTP服務器會返回一個時間戳,時間戳表示NTP服務器所認為的當前標準時間,Android設備可以通過與本地系統時間進行比較,得出本地設備對準確時間的偏差,并進行時間校正。

自動同步時間時區配置:

  • 進入“設置”->“日期和時間”->“使用網絡提供的時間”菜單。
  • 打開“自動確定時區”和“自動確定日期和時間”選項,讓設備自動選擇最佳的NTP服務器進行同步。

源碼分析

NTP是Android原生通過網絡獲取時間的機制,關鍵代碼邏輯在NetworkTimeUpdateService,NetworkTimeUpdateService是Android系統服務,由SystemServer啟動。

「初始化」

// frameworks/base/services/core/java/com/android/server/NetworkTimeUpdateService.java
public NetworkTimeUpdateService(Context context) {
    mContext = context;
    //NtpTrustedTime用于獲取網絡時間
    mTime = NtpTrustedTime.getInstance(context);
    mAlarmManager = mContext.getSystemService(AlarmManager.class);
    mTimeDetector = mContext.getSystemService(TimeDetector.class);
    mCM = mContext.getSystemService(ConnectivityManager.class);

    Intent pollIntent = new Intent(ACTION_POLL, null);
    //創建mPendingPollIntent,用于發送定時廣播
    mPendingPollIntent = PendingIntent.getBroadcast(mContext, POLL_REQUEST, pollIntent, 0);
    // 請求服務器頻率 86400000ms = 24h
    //從配置文件LINUX/android/frameworks/base/core/res/res/values/config.xml中解析獲得
    mPollingIntervalMs = mContext.getResources().getInteger(com.android.internal.R.integer.config_ntpPollingInterval);
    //請求時間間隔60000ms = 10min
    mPollingIntervalShorterMs = mContext.getResources().getInteger(com.android.internal.R.integer.config_ntpPollingIntervalShorter);
    //最大嘗試次數 3        
    mTryAgainTimesMax = mContext.getResources().getInteger(com.android.internal.R.integer.config_ntpRetry);

    mWakeLock = context.getSystemService(PowerManager.class).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
}

構造方法中主要是對各種變量進行初始化操作,NetworkTimeUpdateService在SystemServer.java創建時,被SystemServer調用。

// frameworks/base/services/core/java/com/android/server/NetworkTimeUpdateService.java
/** Initialize the receivers and initiate the first NTP request */
public void systemRunning() {
    //注冊廣播
    registerForAlarms();
    //初始化Handler
    HandlerThread thread = new HandlerThread(TAG);
    thread.start();
    mHandler = new MyHandler(thread.getLooper());
    //向ConnectivityManager注冊網絡狀況監聽
    mNetworkTimeUpdateCallback = new NetworkTimeUpdateCallback();
    mCM.registerDefaultNetworkCallback(mNetworkTimeUpdateCallback, mHandler);
    //使用ContentObsrver監聽Settings.Global.AUTO_TIME值的變化
    mAutoTimeSettingObserver = new AutoTimeSettingObserver(mContext, mHandler,
            EVENT_AUTO_TIME_ENABLED);
    mAutoTimeSettingObserver.observe();
}

private void registerForAlarms() {
    mContext.registerReceiver(new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            mHandler.obtainMessage(EVENT_POLL_NETWORK_TIME).sendToTarget();
        }
    }, new IntentFilter(ACTION_POLL));
}
  • 調用registerForAlarms,注冊一個廣播接收者,接收ACTION_POLL廣播,收到后向消息隊列發送一個EVENT_POLL_NETWORK_TIME的事件。
  • 向ConnectivityManager注冊網絡狀況監聽。
  • 監聽Settings.Global.AUTO_TIME值的變化。

「NetworkTimeUpdateCallback」

// frameworks/base/services/core/java/com/android/server/NetworkTimeUpdateService.java
// 定義和注冊監聽
mNetworkTimeUpdateCallback = new NetworkTimeUpdateCallback();

mCM.registerDefaultNetworkCallback(mNetworkTimeUpdateCallback, mHandler);

private class NetworkTimeUpdateCallback extends NetworkCallback {
    @Override
    public void onAvailable(Network network) {
        Log.d(TAG, String.format("New default network %s; checking time.", network));
        mDefaultNetwork = network;
        // Running on mHandler so invoke directly.
        onPollNetworkTime(EVENT_NETWORK_CHANGED);
    }

    @Override
    public void onLost(Network network) {
        if (network.equals(mDefaultNetwork)) mDefaultNetwork = null;
    }
}

NetworkTimeUpdateCallback實現了NetworkCallback接口,當回調onAvailable(網絡切換/可用)時,賦值mDefaultNetwork并調用onPollNetworkTime(EVENT_NETWORK_CHANGED)方法。

「AutoTimeSettingObserver」

// frameworks/base/services/core/java/com/android/server/NetworkTimeUpdateService.java
mAutoTimeSettingObserver = new AutoTimeSettingObserver(mContext, mHandler,EVENT_AUTO_TIME_ENABLED);
mAutoTimeSettingObserver.observe();

/**
 * Observer to watch for changes to the AUTO_TIME setting. It only triggers when the setting
 * is enabled.
 */
private static class AutoTimeSettingObserver extends ContentObserver {

    private final Context mContext;
    private final int mMsg;
    private final Handler mHandler;

    AutoTimeSettingObserver(Context context, Handler handler, int msg) {}

    void observe() {
        ContentResolver resolver = mContext.getContentResolver();
        resolver.registerContentObserver(Settings.Global.getUriFor(Settings.Global.AUTO_TIME),false, this);
    }

    @Override
    public void onChange(boolean selfChange) {
        if (isAutomaticTimeEnabled()) {
            mHandler.obtainMessage(mMsg).sendToTarget();
        }
    }

    /**
     * Checks if the user prefers to automatically set the time.
     */
    private boolean isAutomaticTimeEnabled() {
        ContentResolver resolver = mContext.getContentResolver();
        return Settings.Global.getInt(resolver, Settings.Global.AUTO_TIME, 0) != 0;
    }
}

監聽Settings.Global.AUTO_TIME的變化,當值改變且AUTO_TIME != 0 時,向消息隊列發送一個類型為EVENT_AUTO_TIME_ENABLED的消息。

「MyHandler」

/** Handler to do the network accesses on */
private class MyHandler extends Handler {

    MyHandler(Looper l) {
        super(l);
    }

    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
            case EVENT_AUTO_TIME_ENABLED:
            case EVENT_POLL_NETWORK_TIME:
            case EVENT_NETWORK_CHANGED:
                onPollNetworkTime(msg.what);
                break;
        }
    }
}

Handler發送的所有消息最終都會調用onPollNetworkTime。

「onPollNetworkTime」

private void onPollNetworkTime(int event) {
    // If we don't have any default network, don't bother.
    if (mDefaultNetwork == null) return;
    mWakeLock.acquire();
    try {
        onPollNetworkTimeUnderWakeLock(event);
    } finally {
        mWakeLock.release();
    }
}

當前無網絡情況直接返回,并使用PowerManager.WakeLock調用onPollNetworkTimeUnderWakeLock(event)。

private void onPollNetworkTimeUnderWakeLock(int event) {
    // 使用NtpTrustedTime獲取網絡時間
    NtpTrustedTime.TimeResult cachedNtpResult = mTime.getCachedTimeResult();

    //cachedNtpResult.getAgeMillis()是上次請求ntp服務器的時間
    //如果大于等于1天,則強制刷新時間
    if (cachedNtpResult == null || cachedNtpResult.getAgeMillis() >= mPollingIntervalMs) {
        if (DBG) Log.d(TAG, "Stale NTP fix; forcing refresh");
        //該方法是個阻塞方法
        mTime.forceRefresh();
        cachedNtpResult = mTime.getCachedTimeResult();
    }

    //cachedNtpResult.getAgeMillis() < 1天
    if (cachedNtpResult != null && cachedNtpResult.getAgeMillis() < mPollingIntervalMs) {
        //設置定時廣播,1天后觸發
        resetAlarm(mPollingIntervalMs);

        // Suggest the time to the time detector. It may choose use it to set the system clock.
      // 設置系統時間
        TimestampedValue<Long> timeSignal = new TimestampedValue<>(
                cachedNtpResult.getElapsedRealtimeMillis(), cachedNtpResult.getTimeMillis());
        NetworkTimeSuggestion timeSuggestion = new NetworkTimeSuggestion(timeSignal);
        timeSuggestion.addDebugInfo("Origin: NetworkTimeUpdateService. event=" + event);
        mTimeDetector.suggestNetworkTime(timeSuggestion);
    } else {
        mTryAgainCounter++;
        if (mTryAgainTimesMax < 0 || mTryAgainCounter <= mTryAgainTimesMax) {
            //設置定時廣播,10分鐘后觸發
            resetAlarm(mPollingIntervalShorterMs);
        } else {
            //設置定時廣播,1天后觸發
            mTryAgainCounter = 0;
            resetAlarm(mPollingIntervalMs);
        }
    }
}

調用了resetAlarm(),該方法定時發送ACTION_POLL廣播。

private void resetAlarm(long interval) {
    mAlarmManager.cancel(mPendingPollIntent);
    long now = SystemClock.elapsedRealtime();
    long next = now + interval;
    mAlarmManager.set(AlarmManager.ELAPSED_REALTIME, next, mPendingPollIntent);
}

NetworkTimeUpdateService啟動后有兩種方式觸發時間更新。

  • 網絡發生變化。
  • Settings中的AUTO_TIME開關變化(自動同步日期時區開關)。

最終都會調用onPollNetworkTimeUnderWakeLock去設置時間,根據獲取的cachedNtpResult情況設置不同時間的定時廣播再去嘗試更新時間。

責任編輯:武曉燕 來源: 沐雨花飛蝶
相關推薦

2022-01-27 08:53:31

LinuxNTP同步

2010-08-06 14:46:51

思科路由器NTP服務器配置

2017-01-09 09:20:07

Ubuntu NTP同步

2019-06-10 15:50:54

LinuxNTP命令

2010-09-02 10:50:17

時間同步服務器

2015-05-25 09:13:31

NTP網絡時間協議NTP服務器

2010-08-20 10:29:40

NTP

2009-11-26 14:42:03

開啟Suse ntp服

2024-10-12 17:23:30

2020-11-26 12:40:26

NTSNTP系統運維

2011-07-20 09:01:33

域控制器ntp服務器

2025-03-12 10:31:01

2015-01-27 11:31:06

2016-12-07 10:30:19

NTP網絡時間協議

2021-11-26 00:13:19

OracleRAC集群

2018-03-19 19:00:54

2018-02-23 09:32:13

LinuxUnixntpd

2019-11-11 08:43:46

信息安全NTP服務放大攻擊

2019-05-07 10:00:03

ChronyNTPLinux

2022-04-30 09:41:14

LinuxNTP服務器
點贊
收藏

51CTO技術棧公眾號

亚洲精品高清在线观看| 欧美精品观看| 欧美日韩视频在线一区二区| 一本色道久久综合亚洲二区三区| 精品久久久久中文慕人妻 | 亚洲精品久久久久久下一站 | 精品自拍偷拍视频| 久久免费视频66| 欧美色图一区二区三区| 97在线国产视频| 黄色av网站在线| 国产成人精品免费网站| 国产成人综合亚洲| 国产中文字字幕乱码无限| 国产一区二区在线| 精品久久久久久无| 污污动漫在线观看| 亚洲人成在线网站| 亚洲综合自拍偷拍| 一区二区av| 青青草在线免费视频| 国产suv精品一区二区883| 国产成人亚洲综合青青| 国产真实乱人偷精品视频| 99精品视频精品精品视频| 天天射综合网视频| 在线视频综合导航| 免费一级特黄毛片| 国产网友自拍视频导航网站在线观看| 91论坛在线播放| 国产成人免费电影| 国产精品自偷自拍| 美女免费视频一区二区| 日韩av免费在线| 91看片在线播放| 欧美日本二区| 久久夜色精品国产亚洲aⅴ| 一级特黄曰皮片视频| 日韩成人午夜| 亚洲成人激情在线| wwwxxx色| 波多野结衣在线一区二区 | 成人同人动漫免费观看| 亚洲欧美国产日韩中文字幕| 日韩成人av一区二区| av综合网页| 欧美mv日韩mv国产网站| 久久久精品视频国产| 91麻豆精品国产综合久久久| 欧美日韩一级片在线观看| 国产精品igao| а√天堂资源国产精品| 在线看不卡av| 国产三级三级看三级| 极品美女一区| 在线亚洲高清视频| xx欧美撒尿嘘撒尿xx| h1515四虎成人| 欧美综合久久久| 99sesese| 日韩一区二区三区精品| 精品三级av在线| 51调教丨国产调教视频| 欧美色资源站| 亚洲石原莉奈一区二区在线观看| 亚洲天堂视频一区| 高潮毛片7777777毛片| 福利一区三区| 欧美性做爰猛烈叫床潮| 日本肉体xxxx裸体xxx免费| 国产精品99| 欧美一区二区大片| 日本精品一二三区| 青青久久av| 最新日韩中文字幕| 欧美三级 欧美一级| 伊人精品成人久久综合软件| 91精品国产99| 这里只有精品免费视频| 久久精品99久久久| 粉嫩高清一区二区三区精品视频 | 狠狠噜天天噜日日噜| 丰乳肥臀在线| 色狠狠色狠狠综合| 午夜久久久精品| 视频精品国内| 亚洲摸下面视频| 国产精品精品软件男同| 精品不卡视频| 国产精品自产拍在线观看中文| 国产原创中文av| av不卡一区二区三区| 日本最新一区二区三区视频观看| 麻豆影视国产在线观看| 亚洲国产视频a| 老头吃奶性行交视频| 中文字幕综合| 日韩电影中文字幕在线| 国产又粗又猛又爽又黄的视频四季| 亚洲91精品| 欧美野外猛男的大粗鳮| 国产又粗又长又黄| av激情亚洲男人天堂| 亚洲一区二区三区精品动漫| 丰满大乳少妇在线观看网站| 欧美亚洲高清一区二区三区不卡| 国产乱国产乱老熟300部视频| 日本少妇高清视频| 国产精品一区二区三区av麻| 欧美二区在线播放| 国产一级片一区二区| 成人免费毛片高清视频| 亚洲一区二区三区精品动漫| 成av人片在线观看www| 欧美日韩一区二区三区高清| 在线天堂www在线国语对白| 欧美丰满日韩| 国产精品91久久久久久| 高h放荡受浪受bl| 亚洲三级在线免费观看| 91激情视频在线| 欧美wwwsss9999| 久久国产精品99国产精| 瑟瑟视频在线免费观看| 91亚洲精品一区二区乱码| 强开小嫩苞一区二区三区网站| 国产亚洲一区二区手机在线观看| 精品国产一二三| 男人的天堂久久久| 久久激情综合网| 亚洲第一导航| 秋霞国产精品| 亚洲视频第一页| 国产精品va无码一区二区三区| 国产成人av在线影院| 免费观看黄色的网站| 国产经典一区| 伊人久久综合97精品| 久久午夜免费视频| 成人午夜电影网站| 妺妺窝人体色www看人体| 国产精品一区免费在线| 久久精彩免费视频| 一级黄色片免费看| 国产精品麻豆视频| 手机在线看福利| 欧洲激情综合| 国产精品免费久久久久影院| 成人jjav| 欧美三级在线看| 18精品爽国产三级网站| 天堂在线视频网站| 国产黄人亚洲片| 4444在线观看| 亚洲国产视频二区| 欧美国产日韩精品| 狠狠躁夜夜躁av无码中文幕| 亚洲一区二区精品视频| xfplay5566色资源网站| 日韩视频在线一区二区三区| 激情久久av| 色偷偷色偷偷色偷偷在线视频| 精品视频在线播放免| 日韩美一区二区| 国产女人18水真多18精品一级做 | 国产一区二区成人久久免费影院| 自拍偷拍99| 国产一区2区在线观看| 久久福利视频导航| 欧美亚洲精品在线观看| 欧美日韩国产精品专区| 丰满少妇高潮一区二区| 麻豆国产精品777777在线| 99精品一区二区三区的区别| 136导航精品福利| 91精品国产成人www| 黄色小视频在线观看| 欧美日韩激情在线| 麻豆国产尤物av尤物在线观看| av电影在线观看完整版一区二区| 激情综合网婷婷| 久久人体视频| 粉嫩av免费一区二区三区| 欧美magnet| 久久伊人精品一区二区三区| 天天综合在线视频| 在线观看免费成人| 欧美日韩一级在线观看| 久久久精品天堂| 色偷偷中文字幕| 国产亚洲高清视频| 中文字幕在线中文字幕日亚韩一区| 99re6热只有精品免费观看| 欧洲中文字幕国产精品| 超碰在线网址| 亚洲欧美综合区自拍另类| 国产ts变态重口人妖hd| 自拍偷拍欧美日韩| 欧美一级欧美三级在线观看| 欧美三级韩国三级日本三斤在线观看| 欧美国产一区二区| 无码人妻精品一区二区三| 三级在线观看一区二区 | 三区四区电影在线观看| 精品国产乱码久久久久久久| 国产精品xxxxxx| 洋洋成人永久网站入口| 欧美成人另类视频| 波多野结衣在线aⅴ中文字幕不卡| 欧美伦理片在线观看| 日韩视频二区| 日韩视频一二三| 成人3d动漫在线观看| 国产欧美一区二区三区另类精品 | 亚洲欧美日韩国产一区| 妞干网这里只有精品| 精品免费在线| 精品视频一区二区| 日本高清久久| 国产一区二区丝袜高跟鞋图片| 在线免费三级电影网站| 美女久久久久久久久久久| 国产视频精选在线| 亚洲欧美国产高清va在线播| 欧美一区二区三区激情| 欧美一区二区久久久| 中文字字幕在线中文乱码| 色综合久久久久综合体| 日韩免费观看一区二区| 亚洲一二三区在线观看| 2025国产精品自拍| 国产精品久久福利| 亚洲午夜精品久久久久久高潮| 99re在线视频这里只有精品| 一区二区三区四区影院| 国产精品综合在线视频| 一级淫片在线观看| 免费成人av在线| 日本激情综合网| 视频一区国产视频| 热久久精品免费视频| 久久精品观看| 国产a级一级片| 久久精品官网| 精品国产乱码久久久久久免费| 四虎永久在线精品| 亚洲综合在线第一页| 欧美三级免费看| 一区二区激情视频| 国产亚洲精品久久久久久无几年桃 | 欧美 日韩 国产 成人 在线观看| 久久在线观看免费| 成年人网站免费看| 久久久久免费观看| 天天干天天舔天天操| 国产精品蜜臀在线观看| 国产成人精品视频免费| 亚洲欧洲99久久| 欧美又粗又大又长| 五月激情丁香一区二区三区| 日本三级午夜理伦三级三| 婷婷综合另类小说色区| 天天干天天干天天干天天| 欧美视频在线观看免费| 国产99免费视频| 欧美高清视频www夜色资源网| 国产又粗又黄又爽| 日韩网站在线看片你懂的| 黄色av一区二区三区| 日韩精品亚洲元码| 风间由美一区| 久热爱精品视频线路一| av在线加勒比| 日韩av电影手机在线| 久久不卡日韩美女| 91久久精品国产91久久性色tv| 国产精品网站在线看| 欧美一区二区三区四区夜夜大片 | 欧美日韩dvd| 999亚洲国产精| 黄色国产小视频| 国产一区二区女| 亚洲男人在线天堂| 国产精品亲子伦对白| 妺妺窝人体色www聚色窝仙踪| 精品美女国产在线| 中文字幕一区二区在线视频 | 国产精品老女人视频| 30一40一50老女人毛片| 亚洲精品国产日韩| 国产视频在线视频| 国产成人亚洲综合a∨猫咪| 中国黄色a级片| 中文字幕视频一区| 日韩欧美三级视频| 欧美一区二区三区四区视频| 欧美视频免费一区二区三区| 久久久国产成人精品| 筱崎爱全乳无删减在线观看 | 欧美日本在线视频中文字字幕| 免费在线小视频| 91在线观看免费网站| 网红女主播少妇精品视频| 亚洲一区精品视频| 国产精品五区| 日本人妻一区二区三区| 欧美激情在线一区二区| 日韩欧美三级在线观看| 91精品国产色综合久久不卡电影 | 国产精品成人久久久| 精品成人一区二区三区| 日本三级在线播放完整版| 6080yy精品一区二区三区| 欧美激情精品| 亚洲精品一区二区三区蜜桃久| 亚洲少妇在线| 国产又粗又猛又爽又黄| 国产精品视频在线看| wwwwww国产| 欧美精品一区二区久久婷婷| huan性巨大欧美| 国产精品视频久久久| 在线日韩一区| 国产精品国产亚洲精品看不卡 | 日本黄色免费观看| 亚洲欧美一区二区三区久本道91 | 色之综合天天综合色天天棕色| 国产综合婷婷| 亚洲热在线视频| 亚洲日本在线天堂| 最近中文字幕在线观看| 亚洲天堂男人的天堂| 日韩精品久久久久久久| 婷婷亚洲成人| 综合一区中文字幕| 蜜桃一区二区三区四区| 精品无码国产污污污免费网站| 欧美国产91| 精品国产乱码久久久久久108| 五月开心六月丁香综合色啪| 亚洲a中文字幕| 青青影院在线观看| 国产91色在线播放| 最新亚洲精品| 日韩激情免费视频| 久久久青草青青国产亚洲免观| 免费的av在线| 国产九色精品成人porny| 天海翼在线视频| 欧美综合在线视频| 午夜看片在线免费| 国产精品久久久久久久av电影| xxxx日韩| 中国丰满人妻videoshd| 久久久久国产精品免费免费搜索| 中文字幕精品视频在线观看| 国产亚洲在线播放| 国产精品久久亚洲不卡| 一区二区成人国产精品| 国产一区二区0| 精品视频一区二区在线观看| 欧美刺激脚交jootjob| 欧美性受ⅹ╳╳╳黑人a性爽| 国产精品久久久久久久小唯西川 | 国产精品视频一二| 亚洲一区二区影视| 欧美日韩福利视频| 欧美巨大xxxx| 手机看片福利盒子久久| 国产精品高清亚洲| www.国产欧美| 午夜精品在线视频| 精品国精品国产自在久国产应用| 超碰网在线观看| 91麻豆免费观看| 一级黄色片网站| 久久久久久91香蕉国产| 亚欧日韩另类中文欧美| 超碰在线人人爱| 亚洲激情第一区| 欧美美乳在线| 成人欧美一区二区三区黑人| 欧美激情视频一区二区三区免费| 人妻互换一二三区激情视频| 精品成人久久av| 成人在线播放视频| 99久久久久国产精品免费| 国产精品婷婷| 天天色影综合网| 亚洲成人黄色在线观看| 精品乱码一区二区三区四区| 一本二本三本亚洲码| 成人成人成人在线视频| 亚洲av无码乱码国产精品fc2| 美日韩精品免费视频| 日韩av黄色在线| 国产毛片久久久久久| 性欧美疯狂xxxxbbbb| 黄网站在线免费看| 久久久久一区二区|