那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux網(wǎng)卡收包流程

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2024-12-05 16:21 ? 次閱讀

Linux 網(wǎng)卡收包流程如下

網(wǎng)卡收到數(shù)據(jù)包

將數(shù)據(jù)包從網(wǎng)卡硬件緩存移動到服務器內(nèi)存中(DMA方式,不經(jīng)過CPU)

通過硬中斷通知CPU處理

CPU通過軟中斷通知內(nèi)核處理

經(jīng)過TCP/IP協(xié)議棧處理

應用程序通過read()從socket buffer讀取數(shù)據(jù)

9860dcb4-af11-11ef-93f3-92fbcf53809c.png

網(wǎng)卡丟包
我們先看下ifconfig的輸出:

# ifconfig eth0
eth0: flags=4163  mtu 1500
        inet 10.5.224.27  netmask 255.255.255.0  broadcast 10.5.224.255
        inet6 fe80::5054fea4:44ae  prefixlen 64  scopeid 0x20
        ether 52:54:00:a4:44:ae  txqueuelen 1000  (Ethernet)
        RX packets 9525661556  bytes 10963926751740 (9.9 TiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8801210220  bytes 12331600148587 (11.2 TiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0Copy

登錄系統(tǒng)底層,檢查管理網(wǎng)網(wǎng)卡收發(fā)是否存在持續(xù)增長的errors包,使用命令:

# watch -n 1 "ifconfig eth0"
# watch -n 1 ip -s link show eth0
說明:watch可以將命令的輸出結(jié)果輸出到標準輸出設(shè)備,多用于周期性執(zhí)行命令/定時執(zhí)行命令,-n或-interval來指定間隔的時間,缺省每2秒運行一下程序;eth1為網(wǎng)卡名稱。

正常的

987770b4-af11-11ef-93f3-92fbcf53809c.png

異常的

9883d2dc-af11-11ef-93f3-92fbcf53809c.png

RX(receive) 代表接收報文, TX(transmit) 表示發(fā)送報文。

RX errors: 表示總的收包的錯誤數(shù)量,這包括 too-long-frames 錯誤,Ring Buffer 溢出錯誤,crc 校驗錯誤,幀同步錯誤,fifo overruns 以及 missed pkg 等等。

RX dropped: 表示數(shù)據(jù)包已經(jīng)進入了 Ring Buffer,但是由于內(nèi)存不夠等系統(tǒng)原因,導致在拷貝到內(nèi)存的過程中被丟棄。

RX overruns: 表示 fifo 的 overruns,由于 Ring Buffer(aka Driver Queue) 傳輸?shù)?IO 大于 kernel 能夠處理的 IO 導致的,而 Ring Buffer 則是指在發(fā)起 IRQ 請求之前的那塊 buffer。很明顯,overruns 的增大意味著數(shù)據(jù)包沒到 Ring Buffer 就被網(wǎng)卡物理層給丟棄了,CPU 無法及時的處理中斷是造成 Ring Buffer 滿的原因之一,可能原因是因為 interruprs 分布的不均勻,沒有做 affinity 而造成的丟包。

RX frame: 表示 misaligned 的 frames。

dropped 與 overruns 的區(qū)別:

dropped,表示這個數(shù)據(jù)包已經(jīng)進入到網(wǎng)卡的接收緩存 fifo 隊列,并且開始被系統(tǒng)中斷處理準備進行數(shù)據(jù)包拷貝(從網(wǎng)卡緩存 fifo 隊列拷貝到系統(tǒng)內(nèi)存),但由于此時的系統(tǒng)原因(比如內(nèi)存不夠等)導致這個數(shù)據(jù)包被丟掉,即這個數(shù)據(jù)包被 Linux 系統(tǒng)丟掉。

overruns,表示這個數(shù)據(jù)包還沒有被進入到網(wǎng)卡的接收緩存 fifo 隊列就被丟掉,因此此時網(wǎng)卡的 fifo 是滿的。為什么 fifo 會是滿的?因為系統(tǒng)繁忙,來不及響應網(wǎng)卡中斷,導致網(wǎng)卡里的數(shù)據(jù)包沒有及時的拷貝到系統(tǒng)內(nèi)存, fifo 是滿的就導致后面的數(shù)據(jù)包進不來,即這個數(shù)據(jù)包被網(wǎng)卡硬件丟掉。所以,如果遇到 overruns 非0,需要檢測cpu負載與cpu中斷情況。

環(huán)形隊列Ring Buffer溢出
當網(wǎng)卡的緩存區(qū)(ring buffer)設(shè)置的太小。網(wǎng)絡(luò)數(shù)據(jù)包到達(生產(chǎn))的速率快于內(nèi)核處理(消費)的速率時, Ring Buffer 很快會被填滿,新來的數(shù)據(jù)包將被丟棄。
通過 ethtool 或 /proc/net/dev 可以查看因Ring Buffer滿而丟棄的包統(tǒng)計

[root@xxx ~]# ethtool -S ens2 | grep fifo
     rx_fifo_errors: 0
     tx_fifo_errors: 0
[root@xxx ~]# cat /proc/net/dev | grep ens2
  ens2:  659229    8107    0    0    0     0          0         0   249827    2833    0    0    0     0       0          0

可以通過ethtool 設(shè)置ring buffer 的緩沖區(qū)大小

# 修改網(wǎng)卡eth0接收與發(fā)送硬件緩存區(qū)大小
$ ethtool -G eth0 rx 4096 tx 4096
Pre-set maximums:
RX:     4096   
RX Mini:    0
RX Jumbo:   0
TX:     4096   
Current hardware settings:
RX:     4096   
RX Mini:    0
RX Jumbo:   0
TX:     4096

中斷過程中的問題

什么是中斷
中斷有兩種:一種硬中斷;一種軟中斷。硬中斷是由硬件產(chǎn)生的,比如,像磁盤,網(wǎng)卡,鍵盤;軟中斷是由當前正在運行的進程所產(chǎn)生的。

硬中斷,是一種由硬件產(chǎn)生的電信號直接發(fā)送到中斷控制器上,然后由中斷控制器向 CPU 發(fā)送信號,CPU 檢測到該信號后,會中斷當前的工作轉(zhuǎn)而去處理中斷。然后,處理器會通知內(nèi)核已經(jīng)產(chǎn)生中斷,這樣內(nèi)核就會對這個中斷進行適當?shù)奶幚怼?/p>

當網(wǎng)卡收到數(shù)據(jù)包時會產(chǎn)生中斷請求(硬中斷)通知到 CPU,CPU 會中斷當前正在運行的任務,然后通知內(nèi)核有新數(shù)據(jù)包,內(nèi)核調(diào)用中斷處理程序(軟中斷)進行響應,把數(shù)據(jù)包從網(wǎng)卡緩存及時拷貝到內(nèi)存,否則會因為緩存溢出被丟棄。剩下的處理和操作數(shù)據(jù)包的工作就會交給軟中斷。

什么是多隊列網(wǎng)卡
當網(wǎng)卡不斷的接收數(shù)據(jù)包,就會產(chǎn)生很多中斷,一個中斷請求只能被一個CPU處理, 而現(xiàn)在的機器都是用多個CPU,同時只有一個 CPU 去處理 Ring Buffer 數(shù)據(jù)會很低效,這個時候就產(chǎn)生了叫做 Receive Side Scaling(RSS) 或者叫做 multiqueue 的機制來處理這個問題, 這就是為啥需要多隊列的原因。

RSS(Receive Side Scaling)是網(wǎng)卡的硬件特性,實現(xiàn)了多隊列。通過多隊列網(wǎng)卡驅(qū)動加載,獲取網(wǎng)卡型號,得到網(wǎng)卡的硬件 queue 的數(shù)量,并結(jié)合 CPU 核的數(shù)量,最終通過 Sum=Min(網(wǎng)卡 queue,CPU core)得出所要激活的網(wǎng)卡 queue 數(shù)量。

NIC 收到 Frame 的時候能通過 Hash Function 來決定 Frame 該放在哪個 Ring Buffer 上,觸發(fā)的 IRQ 也可以通過操作系統(tǒng)或者手動配置 IRQ affinity 將 IRQ 分配到多個 CPU 上。這樣 IRQ 能被不同的 CPU 處理,從而做到 Ring Buffer 上的數(shù)據(jù)也能被不同的 CPU 處理,從而提高數(shù)據(jù)的并行處理能力。

RSS 除了會影響到 NIC 將 IRQ 發(fā)到哪個 CPU 之外,不會影響別的邏輯。

什么是RPS
Receive Packet Steering(RPS) 是在 NIC 不支持 RSS 時候在軟件中實現(xiàn) RSS 類似功能的機制。其好處就是對 NIC 沒有要求,任何 NIC 都能支持 RPS,但缺點是 NIC 收到數(shù)據(jù)后 DMA 將數(shù)據(jù)存入的還是一個 Ring Buffer,NIC 觸發(fā) IRQ 還是發(fā)到一個 CPU,還是由這一個 CPU 調(diào)用 driver 的 poll 來將 Ring Buffer 的數(shù)據(jù)取出來。RPS 是在單個 CPU 將數(shù)據(jù)從 Ring Buffer 取出來之后才開始起作用,它會為每個 Packet 計算 Hash 之后將 Packet 發(fā)到對應 CPU 的 backlog 中,并通過 Inter-processor Interrupt(IPI) 告知目標 CPU 來處理 backlog。后續(xù) Packet 的處理流程就由這個目標 CPU 來完成。從而實現(xiàn)將負載分到多個 CPU 的目的。通常如果開啟了RPS會加重所有 CPU 的負擔.

IRQ 中斷請求 親和綁定
/proc/interrupts 文件中可以看到各個 CPU 上的中斷情況。

/proc/irq/[irq_num]/smp_affinity_list 可以查看指定中斷當前綁定的 CPU。

可以通過配置 IRQ affinity 指定 IRQ 由哪個 CPU 來處理中斷, 先通過 /proc/interrupts 找到 IRQ 號之后,將希望綁定的 CPU 號寫入 /proc/irq/IRQ_NUMBER/smp_affinity,寫入的是 16 進制的 bit mask。比如看到隊列 rx_0 對應的中斷號是 41 那就執(zhí)行:

echo 6 > /proc/irq/41/smp_affinity
6 表示的是 CPU2 和 CPU1

0 號 CPU 的掩碼是 0x1 (0001),1 號 CPU 掩碼是 0x2 (0010),2 號 CPU 掩碼是 0x4 (0100),3 號 CPU 掩碼是 0x8 (1000) 依此類推。

softirq 數(shù)統(tǒng)計
通過 /proc/softirqs 能看到每個 CPU 上 softirq 數(shù)量統(tǒng)計:

cat /proc/softirqs
                    CPU0       CPU1       
          HI:          1          0
       TIMER: 1650579324 3521734270
      NET_TX:   10282064   10655064
      NET_RX: 3618725935       2446
       BLOCK:          0          0
BLOCK_IOPOLL:          0          0
     TASKLET:      47013      41496
       SCHED: 1706483540 1003457088
     HRTIMER:    1698047   11604871
         RCU: 4218377992 3049934909

NET_RX 表示網(wǎng)卡收到包時候觸發(fā)的 softirq,一般看這個統(tǒng)計是為了看看 softirq 在每個 CPU 上分布是否均勻,不均勻的話可能就需要做一些調(diào)整。比如上面看到 CPU0 和 CPU1 兩個差距很大,原因是這個機器的 NIC 不支持 RSS,沒有多個 Ring Buffer。開啟 RPS 后就均勻多了。

如何開啟RPS
RPS 默認是關(guān)閉的,當機器有多個 CPU 并且通過 softirqs 的統(tǒng)計 /proc/softirqs 發(fā)現(xiàn) NET_RX 在 CPU 上分布不均勻或者發(fā)現(xiàn)網(wǎng)卡不支持 mutiqueue 時,就可以考慮開啟 RPS。

開啟 RPS 需要調(diào)整 /sys/class/net/DEVICE_NAME/queues/QUEUE/rps_cpus 的值。比如執(zhí)行:

echo f > /sys/class/net/eth0/queues/rx-0/rps_cpus
表示的含義是處理網(wǎng)卡 eth0 的 rx-0 隊列的 CPU 數(shù)設(shè)置為 f 。即設(shè)置有 15 個 CPU 來處理 rx-0 這個隊列的數(shù)據(jù),如果你的 CPU 數(shù)沒有這么多就會默認使用所有 CPU 。

netdev_max_backlog調(diào)優(yōu)
netdev_max_backlog 是內(nèi)核從 NIC 收到包后,交由協(xié)議棧(如 IP、TCP )處理之前的緩沖隊列, 通過softnet_stat可以確定是否發(fā)生了netdev backlog隊列溢出

[root@xxx ~]# cat /proc/net/softnet_stat
000000bf 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000028 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
000000c7 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000031 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
000021d8 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000929 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

C#復制全屏

每一行代表每個 CPU 核的狀態(tài)統(tǒng)計,從 CPU0 依次往下。 每一列代表一個 CPU 核的各項統(tǒng)計:第一列代表中斷處理程序收到的包總數(shù);第二列即代表由于 netdev_max_backlog 隊列溢出而被丟棄的包總數(shù)。 第3列表示軟中斷一次取走netdev_budget個數(shù)據(jù)包,或取數(shù)據(jù)包時間超過2ms的次數(shù)。 第4~8列固定為0,沒有意義。 第9列表示發(fā)送數(shù)據(jù)包時,對應的隊列被鎖住的次數(shù)。

netdev_max_backlog 的默認值是 1000,我們可以修改內(nèi)核參數(shù)來調(diào)優(yōu):

sysctl -w net.core.netdev_max_backlog=2000

鏈接:https://www.cnblogs.com/OpenSourceSite/p/18121680

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11345

    瀏覽量

    210402
  • 網(wǎng)卡
    +關(guān)注

    關(guān)注

    4

    文章

    314

    瀏覽量

    27462

原文標題:Linux之網(wǎng)絡(luò)排錯

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    hyper 網(wǎng)卡,hyper 網(wǎng)卡的實操流程,hyper-v批量管理工具的使用指南

    行業(yè)對高效配送的需求。批量管理虛擬機能夠?qū)崿F(xiàn)對物流業(yè)務系統(tǒng)的快速部署和靈活調(diào)整,提高配送調(diào)度的效率,降低運營成本,提升物流服務質(zhì)量。接下來和大家一起探索hyper網(wǎng)卡的實操流程。 ? ?hyper網(wǎng)卡的實操
    的頭像 發(fā)表于 02-05 10:29 ?72次閱讀
    hyper <b class='flag-5'>網(wǎng)卡</b>,hyper <b class='flag-5'>網(wǎng)卡</b>的實操<b class='flag-5'>流程</b>,hyper-v批量管理工具的使用指南

    Linux運維必備技能:手把手教你用tcpdump精準抓

    network 例子 不指定任何參數(shù) 監(jiān)聽第一塊網(wǎng)卡上經(jīng)過的數(shù)據(jù)。主機上可能有不止一塊網(wǎng)卡,所以經(jīng)常需要指定網(wǎng)卡。 ? ? tcpdump ? ? 監(jiān)聽特定
    的頭像 發(fā)表于 12-24 11:20 ?572次閱讀

    RZ T2H PCIe裸機程序開發(fā)和Linux下的配置介紹

    ,還提供2個PCIe Gen3通道等高速外設(shè)。本文主要介紹PCIe外設(shè)的功能、裸機下EP模式的程序開發(fā)、以及在Linux下,如何編譯網(wǎng)卡流程
    的頭像 發(fā)表于 12-18 11:14 ?885次閱讀
    RZ T2H PCIe裸機程序開發(fā)和<b class='flag-5'>Linux</b>下的配置介紹

    linux網(wǎng)卡配置文件

    網(wǎng)卡配置文件 ? ? 網(wǎng)卡目錄[root@localhost opt]# ls /etc/sysconfig/network-scripts/網(wǎng)卡文件名字,和我們ifconfig看到的一樣
    的頭像 發(fā)表于 12-10 10:09 ?290次閱讀

    ubuntu ping 開發(fā)板存在嚴重的丟情況,請問該怎么解決?

    我現(xiàn)在在學習一個嵌入式Linux的項目,要實現(xiàn)主機,虛擬機,開發(fā)板三者的通信,我的一系列設(shè)置應該是沒問題的。但是在ubuntu上ping開發(fā)板時總是會出現(xiàn)很嚴重的丟情況,有時甚至會有From
    發(fā)表于 11-01 16:50

    網(wǎng)卡的演進和應用

    隨著云計算和虛擬化技術(shù)的發(fā)展,網(wǎng)卡在功能和硬件結(jié)構(gòu)方面也經(jīng)歷了四個階段,即網(wǎng)卡、智能網(wǎng)卡、基于FPGA的DPU和DPU SoC網(wǎng)卡。本文將重點介紹這些不同類型的網(wǎng)絡(luò)適配器和處理器,在硬
    的頭像 發(fā)表于 10-24 16:45 ?531次閱讀
    <b class='flag-5'>網(wǎng)卡</b>的演進和應用

    服務器網(wǎng)卡和普通網(wǎng)卡區(qū)別

    處理能力 服務器網(wǎng)卡具有更強的處理能力,可以處理更復雜的網(wǎng)絡(luò)協(xié)議和數(shù)據(jù)。普通網(wǎng)卡的處理能力相對較弱。 1.3 延遲 服務器網(wǎng)卡的延遲通常較低,這對于需要快速響應的應用程序非常重要。
    的頭像 發(fā)表于 10-10 16:37 ?647次閱讀

    Linux網(wǎng)絡(luò)協(xié)議棧的實現(xiàn)

    請求并與底層的網(wǎng)絡(luò)硬件進行交互。本文將深入探討 Linux 網(wǎng)絡(luò)協(xié)議棧的架構(gòu)與實現(xiàn),涵蓋數(shù)據(jù)處理流程、關(guān)鍵模塊、協(xié)議棧層次以及性能優(yōu)化等方面。
    的頭像 發(fā)表于 09-10 09:51 ?368次閱讀
    <b class='flag-5'>Linux</b>網(wǎng)絡(luò)協(xié)議棧的實現(xiàn)

    有線網(wǎng)卡和無線網(wǎng)卡分別指的是什么

    有線網(wǎng)卡和無線網(wǎng)卡是計算機或網(wǎng)絡(luò)設(shè)備中用于連接網(wǎng)絡(luò)的兩種不同類型的網(wǎng)絡(luò)接口卡。它們的主要區(qū)別在于傳輸媒介和連接方式。
    的頭像 發(fā)表于 05-28 15:28 ?4110次閱讀

    Linux啟動流程基本分析

    Linux啟動流程總的來說可以分成三個階段 Linux啟動流程圖 ? 第一步:上電 ?在 x86 系統(tǒng)中,將 1M 空間最上面的 0xF0000 到 0xFFFFF 這 64K 映射給
    的頭像 發(fā)表于 05-11 08:49 ?769次閱讀
    <b class='flag-5'>Linux</b>啟動<b class='flag-5'>流程</b>基本分析

    電池生產(chǎn)的工藝流程

    電池,又稱為聚合物鋰離子電池,其生產(chǎn)工藝流程相對復雜,涉及到多個精細的步驟。
    的頭像 發(fā)表于 05-07 11:19 ?2968次閱讀

    門禁物聯(lián)網(wǎng)卡的使用與管理

    門禁物聯(lián)網(wǎng)卡,作為現(xiàn)代門禁系統(tǒng)的重要組件,它使得門禁系統(tǒng)能夠與網(wǎng)絡(luò)相連,從而實現(xiàn)遠程監(jiān)控、數(shù)據(jù)記錄、智能控制等多種功能。那么,門禁物聯(lián)網(wǎng)卡究竟如何使用呢?本文將詳細解析門禁物聯(lián)網(wǎng)卡的使用步驟
    的頭像 發(fā)表于 04-11 16:51 ?697次閱讀
    門禁物聯(lián)<b class='flag-5'>網(wǎng)卡</b>的使用與管理

    網(wǎng)卡揭秘:如何選擇適合您需求的網(wǎng)卡

    網(wǎng)卡(Network Interface Card,NIC),也稱網(wǎng)絡(luò)適配器,是連接計算機與網(wǎng)絡(luò)的硬件設(shè)備。在光通信系統(tǒng)中,網(wǎng)卡特指光纖網(wǎng)卡,它通過光纖接口與外部網(wǎng)絡(luò)通信,傳輸數(shù)據(jù)。早期的網(wǎng)卡
    的頭像 發(fā)表于 04-10 10:04 ?852次閱讀
    光<b class='flag-5'>網(wǎng)卡</b>揭秘:如何選擇適合您需求的<b class='flag-5'>網(wǎng)卡</b>

    Linux常用網(wǎng)絡(luò)命令介紹

    默認使用該命令會一直發(fā)送ICMP直到用戶手動中止,可以使用-c命令指定發(fā)送數(shù)據(jù)的個數(shù),使用-W指定最長等待時間,如果有多張網(wǎng)卡,還可以通過-I指定發(fā)送
    發(fā)表于 03-25 14:45 ?517次閱讀
    <b class='flag-5'>Linux</b>常用網(wǎng)絡(luò)命令介紹

    vps服務器的linux怎么查看zip壓縮里的內(nèi)容?

    要查看zip壓縮里的內(nèi)容,您可以使用unzip命令。以下是在Linux中查看zip壓縮內(nèi)容的基本步驟: 1、安裝unzip(如果未安裝): 如果您的系統(tǒng)上尚未安裝 unzip 工具,您可以使用以
    的頭像 發(fā)表于 03-22 17:34 ?880次閱讀
    百家乐博彩优惠论坛| 百家乐官网分析网| 大发888娱乐城注册lm0| 百苑百家乐官网的玩法技巧和规则 | 太阳百家乐路单生| 澳门百家乐官网哪家信誉最好 | 百家乐官网一年诈骗多少钱| 河间市| 大发888娱乐场玩什么| 百家乐官网天下| 百家乐官网游戏打水方法| 澳门顶级赌场手机在线链接| 百家乐真钱娱乐| 百家乐官网知敌便能制胜| 大发888娱乐城34| 澳门百家乐官网赌场| 网上赌百家乐官网可信吗| 皇冠现金| 致胜百家乐下载| 女优百家乐官网的玩法技巧和规则 | 鼎尚百家乐的玩法技巧和规则 | 阴宅24层手机罗盘| 百家乐官网机器昀程序| 大发888娱乐城 博狗| 百家乐软件编辑原理| 网上百家乐官网是假| 最新娱乐城送彩金| 皇冠百家乐在线游戏| 状元百家乐官网的玩法技巧和规则| 博彩网络| 威尼斯人娱乐网反| 百家乐双面数字筹码怎么出千| 百家乐官网微乐| 皇冠足球网| 威尼斯人娱乐棋牌app| 百家乐游戏真人游戏| 百家乐官网和| 时尚| 大发888娱乐场zb8| 博彩百家乐带连线走势图| 百家乐官网娱乐网网|