精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

真实新婚偷拍xxxxx| 国产jjizz一区二区三区视频| 羞羞视频在线免费国产| 成人小视频免费在线观看| 91高清视频在线免费观看| 欧美特级黄色录像| 秋霞午夜一区二区三区视频| 欧美视频13p| 97超碰免费观看| 天天操天天干天天干| 久久aⅴ国产欧美74aaa| 91国语精品自产拍在线观看性色 | 国模精品一区二区三区色天香| 久久国产精品无码一级毛片| 91嫩草国产线观看亚洲一区二区| 午夜不卡av免费| 中文字幕一区二区三区最新| 同心难改在线观看| 国产精品综合在线视频| 国产精品www网站| 国产第一页在线播放| 久久国产中文字幕| 亚洲欧洲高清在线| 国产精品久久久久久在线观看| 国产成人精选| 色综合久久久久久久久| 成人午夜视频在线观看免费| 免费不卡视频| 国产欧美日韩在线| 乱色588欧美| 欧美视频久久久| 国产精品亚洲午夜一区二区三区 | 97色婷婷成人综合在线观看| 色综合久久久久综合99| 久久国产精品视频在线观看| xvideos国产在线视频| 欧美国产视频在线| 日韩av一区二区三区美女毛片| 色一情一乱一区二区三区| 国产精品一区久久久久| 国产伊人精品在线| 中文字幕一区二区三区波野结| 亚洲男人影院| 97在线观看视频| 天海翼一区二区| 在线观看视频日韩| 久久久久久久久久久久久久久久久久av| 日韩精品久久久久久久的张开腿让| 欧美激情在线精品一区二区三区| 国产视频久久久久| 亚洲欧美色图视频| 天堂俺去俺来也www久久婷婷| 亚洲国产成人一区| 亚洲の无码国产の无码步美| 国内精品国产成人国产三级粉色| 日韩三级视频中文字幕| 日本黄色大片在线观看| 国产精品高潮呻吟久久久久| 精品国产乱码久久久久久1区2区| 一级全黄裸体片| 超碰97久久| 亚洲精品美女在线观看| 中文字幕一区二区人妻在线不卡| 亚洲盗摄视频| 在线观看日韩欧美| 97在线观看视频免费| 午夜精品免费| 亚州欧美日韩中文视频| 在线观看日本视频| 日本三级亚洲精品| 91久久久久久久一区二区| 国产精品无码一区二区桃花视频| 国产精品一色哟哟哟| 国产精品手机在线| 黄色电影免费在线看| 中文字幕一区日韩精品欧美| 97av中文字幕| 亚洲国产福利| 777a∨成人精品桃花网| 中文字幕在线观看91| 色综合www| 日韩中文字幕欧美| 69精品久久久| 日韩黄色一级片| 51成人做爰www免费看网站| 人妻少妇一区二区三区| 中文在线资源观看网站视频免费不卡 | 欧美日韩第一页| av黄色在线看| 九九视频精品免费| 九九九九九九精品| 日本在线视频观看| 精品欧美aⅴ在线网站| 国产一区二区在线免费播放| 精品午夜视频| 亚洲色图色老头| 久热这里只有精品在线| 人人狠狠综合久久亚洲| 国产a一区二区| youjizz在线播放| 亚洲一区二区成人在线观看| 三年中国国语在线播放免费| 日韩激情综合| 在线视频亚洲欧美| 国产精品第56页| 久久成人久久爱| 老牛影视免费一区二区| 日韩伦理av| 欧美人与禽zozo性伦| 好吊一区二区三区视频| 亚洲激情中文在线| 国产精品成人一区二区| 日韩一级中文字幕| 亚洲免费伊人电影| 成人免费在线观看视频网站| 狼人天天伊人久久| 欧美国产高跟鞋裸体秀xxxhd| 福利网址在线观看| 91香蕉视频mp4| 精品免费久久久久久久| 日韩有码欧美| 一区二区三区日韩在线| 国产精品视频免费播放| 成人免费毛片高清视频| 伊人网在线免费| 婷婷成人av| 中文字幕在线日韩| 国产免费一级视频| 久久综合999| 免费看国产曰批40分钟| 奇米777国产一区国产二区| 欧美高跟鞋交xxxxhd| 国产精品无码天天爽视频| 国产精品久久久久久久裸模 | 在线最新版中文在线| 欧美精品一区二区三区蜜臀| 日本天堂中文字幕| 国产一区二区女| 婷婷视频在线播放| 欧美亚洲综合视频| 色婷婷综合久久久久| 免费在线观看av的网站| 国产三级精品视频| 丁香婷婷激情网| 国产va免费精品观看精品视频| 97国产suv精品一区二区62| 亚洲av无码国产精品久久不卡| 亚洲女与黑人做爰| 无码人妻一区二区三区一| 欧美午夜不卡影院在线观看完整版免费| 91免费欧美精品| 91福利国产在线观看菠萝蜜| 91精品国产色综合久久不卡电影| 国产人妻精品一区二区三区不卡| 国产一区亚洲一区| a级片一区二区| 国产毛片久久久| 欧美—级a级欧美特级ar全黄| 亚洲黄色在线免费观看| 午夜av一区二区| 9.1成人看片| 欧美bbbbb| 日本一级淫片演员| 成人福利一区| 日韩免费精品视频| 永久免费av在线| 欧美男同性恋视频网站| 亚洲国产美女视频| 成人国产亚洲欧美成人综合网| 日本中文字幕在线视频观看| 先锋影音国产精品| 国产精品直播网红| 暧暧视频在线免费观看| 亚洲精品视频在线观看视频| 亚洲熟女乱色一区二区三区久久久 | 国产一区91| 色噜噜狠狠色综合网| 成人免费91| 91精品国产高清久久久久久91| 黄上黄在线观看| 91精品国产品国语在线不卡| 国产香蕉在线视频| 国产精品久久久久天堂| 免费不卡的av| 日本aⅴ免费视频一区二区三区| 中国 免费 av| 一区二区三区视频免费观看| 91精品国产自产在线| 超免费在线视频| 一区二区成人精品| 亚洲欧美另类综合| 精品视频1区2区3区| 国产亚洲精品码| 国产精品网曝门| www.日本高清| 国产一区二区福利| 粉嫩虎白女毛片人体| 好看的日韩av电影| 亚洲一区不卡在线| 日韩电影不卡一区| 亚洲一区二区久久久久久久| 精品国产第一福利网站| 久久99久久亚洲国产| 91在线视频| 日韩成人av一区| www.国产视频| 欧美视频在线观看一区二区| 精品91久久久| 一区二区三区中文免费| 粉嫩精品久久99综合一区| 成人av网站在线| 欧美精品 - 色网| 日本麻豆一区二区三区视频| 日韩欧美一区二| 欧美午夜不卡影院在线观看完整版免费 | 国产伦精品一区二区三区免.费| 欧美小视频在线| 日本天堂在线视频| 一区二区三区在线观看国产| 日韩精品久久久久久久的张开腿让| 久久亚洲二区三区| 久久久久9999| 国产999精品久久久久久| 中文字幕免费高清在线| 视频一区在线播放| 欧美亚洲另类色图| 亚洲一区二区三区四区五区午夜| 日本成人在线不卡| 欧美黄免费看| 免费国产成人看片在线| 成人婷婷网色偷偷亚洲男人的天堂| 麻豆成人在线播放| 伊人久久大香线蕉无限次| 精品视频免费观看| 亚洲另类春色校园小说| 精品一区二区三区视频日产| 精品成人自拍视频| 精品国产一区二区三区麻豆小说| 6080成人| 国产偷久久久精品专区| 国产精品玖玖玖在线资源| 国产精品日韩欧美一区二区| 88久久精品| 国产日本一区二区三区| 啪啪激情综合网| 另类小说综合网| 国产精品欧美日韩一区| 日本一区二区在线| 欧美日韩性在线观看| 日韩欧美视频一区二区三区四区| 国产乱码精品一区二区亚洲| 欧美亚洲爱爱另类综合| 成人在线亚洲| 中文字幕欧美日韩一区二区| 欧美在线91| 国产高清www| 国产日韩欧美一区在线 | 国产福利精品一区| 岛国av免费观看| 91首页免费视频| 一级黄色性视频| 国产精品久久午夜| 欧美日韩激情在线观看| 午夜不卡av在线| 无码人妻精品一区二区三区不卡 | 精品久久久久中文字幕小说| 亚洲国产精品久久久久婷婷老年| 色综合天天爱| 欧美一级欧美一级| 老色鬼久久亚洲一区二区| 欧美美女一级片| 波多野结衣一区二区三区| 久久精品成人av| 中文字幕在线一区免费| 国产一级在线免费观看| 在线亚洲+欧美+日本专区| 国产又粗又猛又黄又爽| 亚洲第一视频网站| 成人综合影院| 欧美高清视频在线观看| 日本综合字幕| 2020国产精品久久精品不卡| 免费看久久久| 日本成人性视频| 一本久久综合| 91欧美一区二区三区| 91视频免费观看| 小泽玛利亚一区| 一本久道久久综合中文字幕 | 精品一区二区日韩| 国产又粗又长又爽| 亚洲色图视频免费播放| 成年人免费看毛片| 欧美日韩不卡一区二区| 殴美一级特黄aaaaaa| 最近2019免费中文字幕视频三 | 精品久久久久久中文字幕大豆网 | 老司机av福利| 香蕉亚洲视频| 女人扒开腿免费视频app| 久久久久久一二三区| 国产无码精品在线观看| 欧美精品123区| 欧美捆绑视频| 性欧美长视频免费观看不卡| av在线精品| 视频一区二区在线观看| 日韩午夜电影| 日本少妇xxxx软件| 专区另类欧美日韩| 久久久999久久久| 亚洲男女性事视频| 成全电影大全在线观看| 91在线精品播放| 日韩在线视频精品| 成年人在线观看视频免费| 99免费精品视频| 久久久久久久国产视频| 8x福利精品第一导航| 啊v在线视频| 国产99视频在线观看| 日韩高清三区| 国产精品一区二区免费在线观看| 国产成人在线观看| 丰满少妇被猛烈进入一区二区| 欧美午夜寂寞影院| 第九色区av在线| 国产成人综合精品在线| 婷婷综合福利| 看av免费毛片手机播放| proumb性欧美在线观看| 久久中文字幕在线观看| 日韩午夜在线播放| 深夜国产在线播放| 91日韩久久| 国产精品v日韩精品v欧美精品网站| 中文字幕66页| 综合久久久久久| 国产乱码精品一区二区| 久久久成人精品视频| 成人51免费| 中国一级大黄大黄大色毛片| 国产最新精品免费| 国产午夜手机精彩视频| 欧美一区二区在线免费播放| 最新av在线播放| 91网免费观看| 在线观看的日韩av| 欧洲一级黄色片| 欧美午夜免费电影| 老司机99精品99| 99se婷婷在线视频观看| 欧美人与禽猛交乱配视频| 中文字幕视频观看| 无码av免费一区二区三区试看| 五月天激情开心网| 国产成人av在线播放| 免费视频亚洲| 天天操天天爱天天爽| 亚洲人成影院在线观看| 亚洲国产欧美另类| 亲子乱一区二区三区电影| 欧美手机视频| 成人三级做爰av| 偷拍与自拍一区| а天堂8中文最新版在线官网| 成人黄色av播放免费| 欧美亚洲不卡| 少妇久久久久久久久久| 欧美日本一区二区| 青春草免费在线视频| 欧美在线视频二区| 精品制服美女久久| 国产一级特黄aaa大片| 国产香蕉97碰碰久久人人| 99久久99九九99九九九| 欧美三级在线观看视频| 国产精品麻豆一区二区| 丰满少妇在线观看bd| 国产ts人妖一区二区三区| 色喇叭免费久久综合网| 2018国产精品| 欧美亚洲国产怡红院影院| 91蜜桃在线视频| 日韩av一区二区三区在线| 国产sm精品调教视频网站| 99re这里只有精品在线| 美女视频久久黄| 亚洲成aⅴ人片久久青草影院| 色91精品久久久久久久久| 亚洲成人资源网| av在线资源网| 国产丝袜不卡| 国产精品羞羞答答xxdd| 波多野结衣影片| 91国内免费在线视频| 欧美成熟视频| 女人黄色一级片| 亚洲精品成a人在线观看| 精品网站999|