BLE入門 20 藍(lán)牙5速率分析

文章從以下幾個(gè)問(wèn)題著手分析藍(lán)牙5的速率:

  1. BLE的實(shí)際吞吐量是多少潘酗?
  2. 藍(lán)牙5的新2M PHY用于數(shù)據(jù)傳輸?
  3. 影響/確定數(shù)據(jù)吞吐量的因素有哪些眶拉?
  4. 如何計(jì)算應(yīng)用程序中的數(shù)據(jù)吞吐量谍倦?
  5. 如何最大化數(shù)據(jù)吞吐量?

實(shí)際吞吐量

藍(lán)牙5定義的 LE 2M PHY以及藍(lán)牙4.x協(xié)議 LE 1M PHY都稱為未編碼PHY,因?yàn)樗鼈兠课粩?shù)據(jù)使用1個(gè)符號(hào)表示(與使用S=2或S=8的新LE編碼PHY相比)檩赢。

我們需要明白各大芯片廠商數(shù)據(jù)手冊(cè)宣傳的速度(1 Mbps和新的2 Mbps)僅僅只是理論值(空中速率),并且在應(yīng)用程序中吞吐量會(huì)被削減违寞。原因有多種贞瞒,我們將在下面一一介紹。

藍(lán)牙5“2x速度”需要硬件支持趁曼,因此老的設(shè)備/芯片/模塊將不支持藍(lán)牙5 2M PHY(市面已經(jīng)有手機(jī)支持藍(lán)牙5 2M PHY)军浆。要注意,為了實(shí)現(xiàn)更高吞吐量挡闰,需要兩個(gè)BLE設(shè)備相互都支持LE 2M PHY乒融。

此外,當(dāng)使用更高速度的PHY時(shí),實(shí)際上功耗可以做的更低(傳輸相同數(shù)量的數(shù)據(jù)簇抵,時(shí)間短功耗低)庆杜。這是因?yàn)闇p少了芯片工作時(shí)間而又沒(méi)有增加發(fā)射功率。反過(guò)來(lái)這樣做改善了與2.4 GHz頻譜內(nèi)的其他無(wú)線技術(shù)的共存(也是由于減少了無(wú)線電工作時(shí)間碟摆,減少2,4G帶寬的占用)晃财。

為什么不可能達(dá)到BLE的理論速度?

1 Mbps(LE 1M PHY)典蜕,2 Mbps(LE 2M PHY)断盛,125 kbps和500 kbps(均使用LE編碼PHY,S = 8和S = 2)的數(shù)據(jù)速率是無(wú)線電在空中的速率傳輸數(shù)據(jù)愉舔,但由于以下原因钢猛,應(yīng)用程序吞吐量是達(dá)不到該理論值:

  1. 藍(lán)牙規(guī)范限制每個(gè)連接間隔的數(shù)據(jù)包數(shù)量
  2. 數(shù)據(jù)包之間的幀間間隔(IFS)延遲(150 us)
  3. 即使沒(méi)有可用于傳輸?shù)臄?shù)據(jù),也需要從設(shè)備發(fā)送空數(shù)據(jù)包
  4. 數(shù)據(jù)包開(kāi)銷 - 并非數(shù)據(jù)包中的所有字節(jié)都用于有效負(fù)載

為了更好地理解這些因素并了解影響應(yīng)用程序吞吐量的因素轩缤,我們必須深入了解數(shù)據(jù)包格式命迈。 下圖顯示了LE 1M PHY和2M PHY數(shù)據(jù)包的外觀:

我們感興趣的部分(真正定義應(yīng)用程序數(shù)據(jù)的部分)是ATT Payload。 從圖中可以看出火的,藍(lán)牙低功耗中的每一層都使用了許多額外開(kāi)銷字節(jié)壶愤。

在4.0和4.1中,最大ATT有效載荷為20個(gè)字節(jié)馏鹤。
在4.2和5.0中征椒,稱為數(shù)據(jù)長(zhǎng)度擴(kuò)展(DLE)的新功能允許ATT有效載荷最多可容納244個(gè)字節(jié)的數(shù)據(jù)。

藍(lán)牙5速率:使用新的2M PHY實(shí)現(xiàn)2倍速

首先了解下藍(lán)牙5中使用新LE 2M PHY的局限性:

  1. 不能用于主要廣播信道(37湃累,38勃救,39)。
  2. 可用于與數(shù)據(jù)包在同一通道上發(fā)送的輔助“輔助數(shù)據(jù)包”(37個(gè)通道:0-36)治力。

藍(lán)牙5規(guī)格書(shū)說(shuō)明蒙秒,LE 1M PHY是強(qiáng)制性的,而LE 2M PHY是可選的琴许,因此税肪,并非所有聲稱支持藍(lán)牙5的芯片都必須能夠處理更高的吞吐量。

LE 2M PHY上可以發(fā)生從端廣播模式和主端掃描模式榜田,然后使用LE 2M PHY在第二廣告信道上進(jìn)行連接益兄。

用戶交互數(shù)據(jù)從一個(gè)設(shè)備傳輸?shù)搅硪粋€(gè)設(shè)備是發(fā)生在兩個(gè)設(shè)備的連接階段。連接的設(shè)備可以通過(guò)更新PHY來(lái)協(xié)商使用不同PHY箭券。它可以在建立連接后由從設(shè)備或主設(shè)備發(fā)起净捅,但主設(shè)備最終將決定哪個(gè)PHY(基于從設(shè)備的請(qǐng)求和主設(shè)備支持的PHY)。

影響B(tài)LE應(yīng)用程序的數(shù)據(jù)吞吐量因素:

  1. 使用的PHY(LE 1M vs. LE 2M與LE編碼(S = 2或S = 8))
  2. 連接間隔
  3. 每個(gè)連接間隔的最大數(shù)據(jù)包數(shù)
  4. ATT最大傳輸單元(ATT MTU)
  5. 數(shù)據(jù)長(zhǎng)度擴(kuò)展(DLE)
  6. 操作類型:寫(xiě)入響應(yīng)與寫(xiě)入無(wú)響應(yīng)辩块,指示與通知
  7. 幀間間隔(IFS):后續(xù)數(shù)據(jù)包之間的時(shí)間間隔(150 us)
  8. 傳輸空包
  9. 數(shù)據(jù)包開(kāi)銷 - 并非數(shù)據(jù)包中的所有字節(jié)都用于應(yīng)用程序有效負(fù)載
    根據(jù)這9點(diǎn)蛔六,我們一點(diǎn)一點(diǎn)詳細(xì)地討論荆永。

PHY

藍(lán)牙5中基本上有三種PHY:原始的1 Mbps PHY,新的2 Mbps和編碼的PHY(S = 2或S = 8)国章。所使用的PHY將直接影響您可以實(shí)現(xiàn)的最大數(shù)據(jù)吞吐量具钥,因?yàn)樗_定了通過(guò)無(wú)線方式發(fā)送數(shù)據(jù)包的實(shí)際原始數(shù)據(jù)速率。

每個(gè)連接事件的連接間隔和最大數(shù)據(jù)包

連接間隔有效地確定在一個(gè)連接事件期間可以發(fā)送多少數(shù)據(jù)包液兽。值越高骂删,在一個(gè)連接事件中可以發(fā)送的數(shù)據(jù)包越多(某些設(shè)備達(dá)到某個(gè)限制)。

BLE連接間隔和事件

每個(gè)連接事件的數(shù)據(jù)包數(shù)量取決于設(shè)備和BLE堆棧四啰,因此它受到限制宁玫,并且在特定設(shè)備上的設(shè)備和堆棧版本之間有所不同。此值還取決于設(shè)備的操作柑晒,因此無(wú)線電可能必須處理其他事件欧瘪,并且每個(gè)連接事件發(fā)送的數(shù)據(jù)包數(shù)量可能達(dá)不到堆棧允許的最大值。例如匙赞,iOS和Android之間的數(shù)量不同佛掖,也會(huì)根據(jù)設(shè)備上運(yùn)行的操作系統(tǒng)版本而有所不同。

數(shù)據(jù)長(zhǎng)度擴(kuò)展(DLE)

此功能允許數(shù)據(jù)包大小保持更大的有效負(fù)載(最多251個(gè)字節(jié)涌庭,而禁用時(shí)為27個(gè)字節(jié))苦囱。此功能是在藍(lán)牙規(guī)范4.2版中引入的。

ATT最大傳輸單元(ATT MTU)

ATT MTU確定發(fā)送器和接收器可以處理的最大數(shù)據(jù)量以及它們可以保存在緩沖器中的數(shù)據(jù)量脾猛。
MTU值影響開(kāi)銷數(shù)據(jù)量(特別是3個(gè)字節(jié)的ATT頭)。允許的最小ATT MTU是27個(gè)字節(jié)鱼鸠。這允許最多20個(gè)字節(jié)的ATT有效載荷(3個(gè)字節(jié)用于ATT報(bào)頭猛拴,4個(gè)字節(jié)用于L2CAP報(bào)頭)。

對(duì)于MTU值有多高蚀狰,每個(gè)規(guī)范沒(méi)有限制愉昆,但使用中的特定堆棧可能有其自身的局限性麻蹋。例如跛溉,如果啟用DLE,則最多可以傳輸251 - 4 = 247個(gè)字節(jié)(扣除L2CAP標(biāo)頭大小后)扮授。在考慮ATT報(bào)頭(3個(gè)字節(jié))之后芳室,我們留下了244個(gè)字節(jié)用于實(shí)際的ATT有效載荷數(shù)據(jù)。如果MTU至少為247字節(jié)刹勃,則MTU將適合一個(gè)單獨(dú)的數(shù)據(jù)包堪侯。如果MTU大于247字節(jié),則MTU將跨越多個(gè)分組荔仁,導(dǎo)致吞吐量下降(由于分組開(kāi)銷和分組之間的定時(shí))伍宦。

有效MTU由客戶端和服務(wù)器支持的ATT MTU的最小值確定芽死。例如,如果客戶端支持100字節(jié)的ATT MTU并且服務(wù)器響應(yīng)它支持150字節(jié)的ATT MTU次洼,則客戶端將決定用于從其上進(jìn)行連接的ATT MTU是100字節(jié)关贵。

操作類型:寫(xiě)入響應(yīng)與寫(xiě)入無(wú)響應(yīng),指示與通知

如果需要高吞吐量卖毁,那么我們可以使用Write without response或Notifications將數(shù)據(jù)從客戶端傳輸?shù)椒?wù)器以及從服務(wù)器傳輸?shù)娇蛻舳艘驹_@些操作不需要其他設(shè)備確認(rèn)收到數(shù)據(jù)并在下一個(gè)數(shù)據(jù)塊發(fā)送之前做出響應(yīng)。

幀間間隔(IFS):連續(xù)數(shù)據(jù)包之間的時(shí)間延遲(150 us)

藍(lán)牙規(guī)范:

傳輸空包

如果接收數(shù)據(jù)的設(shè)備沒(méi)有要發(fā)回的數(shù)據(jù),則仍需要按照藍(lán)牙規(guī)范發(fā)送空數(shù)據(jù)包跑芳。

數(shù)據(jù)包開(kāi)銷

正如我們?cè)跀?shù)據(jù)包格式圖中看到的那樣迂苛,數(shù)據(jù)包包含一些不計(jì)入應(yīng)用程序數(shù)據(jù)(ATT數(shù)據(jù))的開(kāi)銷數(shù)據(jù)∧罴溃基本上,這些字節(jié)將消耗部分傳輸數(shù)據(jù)速率碍侦,而不考慮作為應(yīng)用程序數(shù)據(jù)的一部分發(fā)送的任何字節(jié)粱坤。

計(jì)算應(yīng)用程序數(shù)據(jù)吞吐量

正如我們之前提到的,有如下些因數(shù)會(huì)影響數(shù)據(jù)吞吐量:

  1. 使用藍(lán)牙版本和PHY
  2. DLE:數(shù)據(jù)長(zhǎng)度擴(kuò)展 - 啟用與否
  3. ATT MTU值
  4. 連接間隔
  5. 每個(gè)連接事件的最大數(shù)據(jù)包數(shù)
  6. 操作(寫(xiě)入響應(yīng)與寫(xiě)入沒(méi)有響應(yīng)瓷产,以及通知與指示)
  7. 幀間間隔(IFS):150微秒

藍(lán)牙版本和PHY確定原始數(shù)據(jù)傳輸速率站玄。例如,如果我們使用藍(lán)牙版本4.2和LE 1M PHY濒旦,則傳輸速率為1 Mbps株旷。另一方面,如果我們使用藍(lán)牙5 S = 8的 LE編碼PHY尔邓,則數(shù)據(jù)速率降至125 kbps晾剖。

DLE,ATT MTU梯嗽,連接間隔齿尽,每個(gè)連接間隔的最大數(shù)據(jù)包數(shù),操作和IFS都是用于實(shí)際數(shù)據(jù)傳輸時(shí)間灯节。

數(shù)據(jù)包格式在傳輸?shù)臄?shù)據(jù)量是實(shí)際應(yīng)用程序數(shù)據(jù)方面起著重要作用循头。 LE 1M PHY和LE 2M PHY都具有類似的數(shù)據(jù)包格式。 LE編碼PHY具有明顯不同的數(shù)據(jù)包格式炎疆,因此我們將分別查看這兩種情況:LE 1M PHY和LE 2M PHY計(jì)算卡骂。

參考LE未編碼PHY的數(shù)據(jù)包格式:

針對(duì)不同PHY,數(shù)據(jù)開(kāi)銷略有不同磷雇。 對(duì)于1M PHY偿警,前導(dǎo)碼是1字節(jié),而對(duì)于2M PHY唯笙,前導(dǎo)碼是2字節(jié)螟蒸。 MIC字段是可選字段盒使,僅用于加密連接。 為簡(jiǎn)單起見(jiàn)七嫌,我們只考慮未加密的連接 - 對(duì)于加密的情況少办,它只是增加了4個(gè)字節(jié)的開(kāi)銷。

對(duì)于LE編碼PHY诵原,數(shù)據(jù)包格式如下所示(來(lái)自藍(lán)牙5.0規(guī)范第6卷英妓,第B部分,第2.2節(jié)):

計(jì)算吞吐量的步驟(以Mbps為單位):

為簡(jiǎn)單起見(jiàn)绍赛,我們做假設(shè)如下:

  1. 未啟用加密(數(shù)據(jù)包中不包含MIC字段)蔓纠。
  2. 我們感興趣的是單方向的吞吐量(例如Master to Slave),所以我們假設(shè)另一個(gè)方向只傳輸空數(shù)據(jù)包吗蚌。
  3. 寫(xiě)入時(shí)腿倚,對(duì)方無(wú)需響應(yīng)(No Ack)。

步驟:

  1. 確定正在使用的PHY并記下原始數(shù)據(jù)傳輸速率

例如: 對(duì)于1M PHY - > 1 Mbps蚯妇,對(duì)于編碼PHY和S = 8 - > 125 kbps

  1. 確定從接收器發(fā)送一個(gè)數(shù)據(jù)包和空包的時(shí)間敷燎。

    可以發(fā)送一個(gè)數(shù)據(jù)包的時(shí)間包括以下內(nèi)容:

Data_Packet_Time =發(fā)送空包的時(shí)間+ IFS +發(fā)送實(shí)際數(shù)據(jù)包+ IFS的時(shí)間

空包傳輸時(shí)間可以如下計(jì)算:

傳輸空包的時(shí)間=空包大小/原始數(shù)據(jù)速率
空包將包含以下字段:前導(dǎo) + 訪問(wèn)地址(access address)+ LL頭+ CRC。
對(duì)于1M PHY箩言,前導(dǎo)將為1字節(jié)硬贯,因此空包的總大小= 1 + 4 + 2 + 3字節(jié)= 10字節(jié)= 80位。
對(duì)于2M PHY陨收,空數(shù)據(jù)包的大小將為88位饭豹,因?yàn)镻remable是2個(gè)字節(jié)而不是1個(gè)字節(jié))。

基于此务漩,傳輸空1M PHY數(shù)據(jù)包的時(shí)間將是:

傳輸空數(shù)據(jù)包的時(shí)間=空數(shù)據(jù)包大小/原始數(shù)據(jù)速率= 80位/ 1兆位/秒= 80微秒

數(shù)據(jù)包將包含數(shù)據(jù)包格式圖中列出的所有字段墨状,但MIC字段除外(加密禁用)。

傳輸數(shù)據(jù)包的時(shí)間=數(shù)據(jù)包size / raw data rate

如果我們啟用了DLE并且ATT MTU等于一個(gè)數(shù)據(jù)包中允許的最大字節(jié)數(shù):247個(gè)字節(jié)菲饼,那么我們可以將數(shù)據(jù)包大小計(jì)算為:

數(shù)據(jù)包size= 1 + 4 + 2 + 4 + 247 + 3字節(jié)= 265字節(jié)= 265 * 8位= 2088 bit

發(fā)送數(shù)據(jù)包的時(shí)間= 2088位/ 1 Mbps = 2,088us

Data_Packet_Time =發(fā)送空包的時(shí)間+ IFS +發(fā)送實(shí)際數(shù)據(jù)包的時(shí)間+ IFS = 80 + 2 * 150 + 2088 = 2,468us

2M PHY的情況下,它將是:

Data_Packet_Time =發(fā)送空包的時(shí)間+ IFS +發(fā)送實(shí)際數(shù)據(jù)包的時(shí)間+ IFS = 88/2 + 2 * 150 +(2 + 4 + 2 + 4 + 247 + 3)* 8/2 = 1,392us

當(dāng)啟用DLE并且ATT MTU設(shè)置為小于247時(shí)列赎,會(huì)產(chǎn)生更多開(kāi)銷(因?yàn)楝F(xiàn)在大于ATT MTU的數(shù)據(jù)被分成更多數(shù)據(jù)包)宏悦。例如,假設(shè)我們將ATT MTU設(shè)置為158包吝,那么為了傳輸244個(gè)字節(jié)的應(yīng)用程序數(shù)據(jù)饼煞,我們需要兩個(gè)數(shù)據(jù)包而不是一個(gè),導(dǎo)致吞吐量因字節(jié)開(kāi)銷增加而增加而增加數(shù)據(jù)包之間的IFS诗越。

在另一種情況下砖瞧,我們可以禁用DLE(有效負(fù)載大小最多27個(gè)字節(jié))和ATT MTU大于27個(gè)字節(jié)。這也將導(dǎo)致需要為相同數(shù)量的數(shù)據(jù)發(fā)送更多數(shù)據(jù)包嚷狞,從而導(dǎo)致吞吐量下降块促。

注意:

用于計(jì)算上面使用的數(shù)據(jù)和空數(shù)據(jù)包大小的方法可以用于計(jì)算LE編碼PHY荣堰。

一個(gè)連接間隔期間可以傳輸多少數(shù)據(jù)包

前一篇文章講過(guò),這種計(jì)算并不總是純粹的數(shù)學(xué)計(jì)算竭翠,需要考慮使用的堆棧和設(shè)備的限制振坚。在藍(lán)牙芯片供應(yīng)商的SDK中,通常在其文檔中會(huì)列出最大值斋扰。 iOS和Android的最大值隨操作系統(tǒng)版本而變化渡八,所以要弄清楚并不容易。

一旦計(jì)算出最大值传货,就可以計(jì)算出適合所選連接間隔的最大理論數(shù)據(jù)包數(shù)屎鳍。例如,如果我們的連接間隔為7.5毫秒(規(guī)范允許的最低值)问裕,則對(duì)于上面的示例(使用1M PHY逮壁,啟用DLE):

每個(gè)連接間隔的最大數(shù)據(jù)包數(shù)= [連接間隔/ Data_Packet_Time]
其中[] 表示舍入到最大整數(shù)(整數(shù))。

每個(gè)連接間隔的最大數(shù)據(jù)包數(shù)= [7.5 * 1,000微秒/ 2,468微秒] = 3個(gè)數(shù)據(jù)包
通常僻澎,這個(gè)數(shù)字是不現(xiàn)實(shí)的貌踏,因?yàn)樵谶B續(xù)的連接事件上發(fā)送的數(shù)據(jù)包之間存在時(shí)間延遲。因此窟勃,對(duì)于我們的示例祖乳,我們將使用2個(gè)數(shù)據(jù)包而不是3個(gè)數(shù)據(jù)包。

一旦我們計(jì)算出每個(gè)連接間隔可以傳輸?shù)淖畲髷?shù)據(jù)包數(shù)秉氧,我們就可以計(jì)算出數(shù)據(jù)吞吐量

數(shù)據(jù)吞吐量 = 每個(gè)連接間隔的數(shù)據(jù)/連接間隔 = 每個(gè)連接間隔的數(shù)據(jù)包數(shù)量*每個(gè)數(shù)據(jù)包/連接間隔的數(shù)據(jù)大小
= 2 * 244 * 8位/7.5毫秒= 520,533位/秒?= 508kbps

大家會(huì)認(rèn)為眷昆,連接間隔越小,速率肯定更高汁咏,實(shí)際并不是這樣的亚斋。

下面就根據(jù)真實(shí)測(cè)試數(shù)據(jù)和計(jì)算理論值一一對(duì)比。

總結(jié):

路由器攘滩,藍(lán)牙帅刊,手機(jī)wifi等2.4G的設(shè)備干擾,測(cè)試設(shè)備主從之間的距離漂问,設(shè)備之間存在障礙等因數(shù)都會(huì)影響測(cè)試結(jié)果赖瞒。
上面列出的測(cè)試值和理論值,可能實(shí)際環(huán)境中的測(cè)量數(shù)據(jù)吞吐量不一致蚤假。
干擾和傳輸/接收錯(cuò)誤會(huì)影響數(shù)據(jù)吞吐量(重試栏饮,數(shù)據(jù)丟失和連接事件關(guān)閉會(huì)導(dǎo)致吞吐量降低)。
但本文詳細(xì)分析了所有和速率相關(guān)的因素磷仰,在實(shí)際使用中袍嬉,大家可以自由DIY。

參考

https://mp.weixin.qq.com/s/12YaDn4sF5f3xTBYA9e2fA

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末灶平,一起剝皮案震驚了整個(gè)濱河市伺通,隨后出現(xiàn)的幾起案子箍土,更是在濱河造成了極大的恐慌,老刑警劉巖泵殴,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涮帘,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡笑诅,警方通過(guò)查閱死者的電腦和手機(jī)调缨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)吆你,“玉大人弦叶,你說(shuō)我怎么就攤上這事「径啵” “怎么了伤哺?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)者祖。 經(jīng)常有香客問(wèn)我立莉,道長(zhǎng),這世上最難降的妖魔是什么七问? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任蜓耻,我火速辦了婚禮,結(jié)果婚禮上械巡,老公的妹妹穿的比我還像新娘刹淌。我一直安慰自己,他們只是感情好讥耗,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布有勾。 她就那樣靜靜地躺著,像睡著了一般古程。 火紅的嫁衣襯著肌膚如雪蔼卡。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,696評(píng)論 1 312
  • 那天挣磨,我揣著相機(jī)與錄音菲宴,去河邊找鬼。 笑死趋急,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的势誊。 我是一名探鬼主播呜达,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼粟耻!你這毒婦竟也來(lái)了查近?” 一聲冷哼從身側(cè)響起眉踱,我...
    開(kāi)封第一講書(shū)人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎霜威,沒(méi)想到半個(gè)月后谈喳,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡戈泼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年婿禽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片大猛。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扭倾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出挽绩,到底是詐尸還是另有隱情膛壹,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布唉堪,位于F島的核電站模聋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏唠亚。R本人自食惡果不足惜链方,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望趾撵。 院中可真熱鬧侄柔,春花似錦、人聲如沸占调。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)究珊。三九已至薪者,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間剿涮,已是汗流浹背言津。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留取试,地道東北人悬槽。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像瞬浓,于是被迫代替她去往敵國(guó)和親初婆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容