可靠傳輸機(jī)制

前言

??TCP發(fā)送的報文段是交給IP層傳送的,但I(xiàn)P層只能提供盡最大努力服務(wù)评肆。也就是說损合,TCP下面的網(wǎng)絡(luò)所提供的是不可靠的傳輸。因此亲茅,TCP必須采用適當(dāng)?shù)拇胧┎拍苁沟脙蓚€傳輸層之間的通信變得可靠回铛。

??理想的傳輸條件有以下特點:

(1) 傳輸信道不產(chǎn)生差錯。
(2) 不管發(fā)送方以多快的速度發(fā)送數(shù)據(jù)克锣,接收方總是來得及處理收到的數(shù)據(jù)茵肃。

??在這樣的情況下,不采取任何措施就能實現(xiàn)可靠傳輸娶耍。

??然而實際的網(wǎng)絡(luò)都不具備上述的兩個條件免姿。但是我們可以使用一些可靠傳輸協(xié)議,當(dāng)出現(xiàn)差錯時讓發(fā)送方重傳出現(xiàn)差錯的數(shù)據(jù)榕酒,同時在接收方來不及處理收到的數(shù)據(jù)時胚膊,及時告知發(fā)送方降低數(shù)據(jù)發(fā)送的速度——流量控制故俐。這樣本來不可靠的信道就能實現(xiàn)可靠的傳輸。

??注:在計算機(jī)網(wǎng)絡(luò)發(fā)展初期紊婉,通信鏈路不太可靠药版,因此在鏈路層傳輸數(shù)據(jù)時都要采用的可靠的傳輸協(xié)議(如停止等待協(xié)議),同樣出傳輸層同樣也需要某種機(jī)制來保證傳輸層的可靠傳輸喻犁。如今通信鏈路質(zhì)量變得可靠槽片,通信出現(xiàn)差錯的可能性就變小,所以現(xiàn)在也就不要求數(shù)據(jù)鏈路層要實現(xiàn)可靠傳輸肢础,即數(shù)據(jù)鏈路層就拋棄了可靠傳輸?shù)呢?zé)任还栓,交給傳輸層實現(xiàn)。而鏈路層則主要負(fù)責(zé)差錯控制传轰,這樣就會讓數(shù)據(jù)在鏈路層上傳輸速度更快剩盒,延遲更小。

1 可靠傳輸

??可靠傳輸:即發(fā)送端發(fā)送的是什么慨蛙,接收端接收到的就是什么辽聊。也就是在數(shù)據(jù)傳輸?shù)倪^程中沒有傳輸差錯。
??數(shù)據(jù)傳輸過程中可能出現(xiàn)的問題:比特出差錯期贫、丟包跟匆。

丟包:物理線路故障、設(shè)備故障通砍、病毒攻擊玛臂、路由信息錯誤等原因,導(dǎo)致的數(shù)據(jù)包的丟失情況埠帕。

??可靠傳輸?shù)姆椒ǎ?strong>停止-等待協(xié)議垢揩、滑動窗口協(xié)議。

2 停止-等待協(xié)議

?? 2.1 前提

??(1) 全雙工通信的雙方既是發(fā)送方也是接收方敛瓷,但是為了討論問題方便,僅考慮一方發(fā)送數(shù)據(jù)(發(fā)送方)斑匪,一方接收數(shù)據(jù)(接收方)呐籽。
??(2) 數(shù)據(jù)傳輸?shù)倪^程中既可能出現(xiàn)差錯,又有可能出現(xiàn)丟包的現(xiàn)象蚀瘸。
??(3) 所有傳輸?shù)臄?shù)據(jù)單元稱為分組狡蝶。

?? 2.2 無差錯情況

??發(fā)送方每發(fā)送一分組就停止等待,只有等到了接收方發(fā)送來的確認(rèn)后才可以發(fā)送下一個分組贮勃。

?? 2.2 有差錯情況

??(1) 分組丟失或檢測到分組出錯
??發(fā)送方在傳輸過程中分組丟失贪惹,這時接收方?jīng)]有接收到分組不會知道發(fā)送方發(fā)送了分組,就不會給發(fā)送方返回確認(rèn)信息(分組出錯寂嘉,接收方會直接丟棄分組也不會返回確認(rèn)信息)奏瞬,而發(fā)送方在等待接收方的確認(rèn)信息以此來發(fā)送下一個分組枫绅。所以可靠傳輸協(xié)議這樣規(guī)定:當(dāng)發(fā)送方超過一段時間沒有仍然沒有收到的確認(rèn),就認(rèn)為剛才的分組丟失了硼端,因而重傳前面的發(fā)送過的分組并淋。這就是超時重傳

??超時重傳要求在每次發(fā)送完一個分組時設(shè)置一個超時計時器珍昨,如果在超時計時器到期之前收到了對方的確認(rèn)县耽,就撤銷已設(shè)置的超時計時器。

??(1) 超時重傳要求發(fā)送完一個分組后镣典,必須暫時保留已發(fā)送的分組的副本(在超時重傳時使用)兔毙,只有收到了相應(yīng)的確認(rèn)后才能清除暫時保留的副本。
??(2) 超時計時器設(shè)置的重傳時間應(yīng)當(dāng)比數(shù)據(jù)在分組中傳輸?shù)钠骄鵕TT更長一些兄春。
??(3) 分組和確認(rèn)分組必須進(jìn)行編號瞒御。如果接收方發(fā)送確認(rèn)分組丟失(或分組出錯),發(fā)送方在規(guī)定時間內(nèi)沒有收到確認(rèn)就會超時重傳神郊,如果沒有編號肴裙,那么接收方就不知道這個分組是新的還是已經(jīng)接收過的,這可能就導(dǎo)致了分組重復(fù)涌乳,所以對分組編號可以很好的解決分組丟失或分組出錯等問題蜻懦。

??(2) 確認(rèn)分組(ACK)丟失
??接收端接收了發(fā)送方傳輸?shù)姆纸M后,向發(fā)送方發(fā)送ACK夕晓,但是ACK在傳輸過程中丟失了宛乃,那么發(fā)送方就收不到確認(rèn)信息,這時發(fā)送端超時計時器到期后就要重傳分組蒸辆,接收方仍會重復(fù)接收分組征炼,并且丟棄重復(fù)的分組,并重傳ACK躬贡。

??(3) ACK分組遲到
??下圖的傳輸過程沒有出現(xiàn)差錯谆奥,接收方接收分組后向發(fā)送方發(fā)送ACK,但是確認(rèn)信息遲到了拂玻,在超時計時器到期后發(fā)送方會重新發(fā)送分組酸些,接收方仍然會重復(fù)接收分組,并且丟棄重復(fù)的分組檐蚜,并重傳ACK魄懂。當(dāng)發(fā)送方收到ACK后會發(fā)送下一個分組,在后來發(fā)送方收到遲到的ACK時闯第,發(fā)送方會收下并直接丟失市栗。

??優(yōu)缺點:停止等待協(xié)議優(yōu)點是簡單,但缺點是信道利用率太低。

?? 2.3 信道利用率

??假定A發(fā)送分組需要的時間是TD填帽。顯然蛛淋,TD等于分組的長度除以數(shù)據(jù)率。再假定分組正確到達(dá)B后盲赊,B處理分組的時間可以忽略不計铣鹏,同時立即發(fā)回確認(rèn)。假定B發(fā)送確認(rèn)分組需要時間TA哀蘑,如果A處理確認(rèn)分組的時間也可以忽略不計诚卸,那么A在經(jīng)過(TD + RTT + TA)后就可以再發(fā)送下一個分組,這里的RTT是往返時間绘迁。

??信道利用率:發(fā)送方在一個發(fā)送周期內(nèi)合溺,有效地發(fā)送數(shù)據(jù)所需要的時間占整個發(fā)送周期的比率

??因為僅僅是在時間TD內(nèi)才用來傳送有用數(shù)據(jù)(包括分組的首部)缀台,因此信道利用率U為:

假定1200km的信道的往返時間RTT = 20ms棠赛。分組長度是1200bit,發(fā)送速率是1MBit/s膛腐。若忽略處理時間和 TA( TA一般遠(yuǎn)小于 TD)睛约,則信道利用率U = 5.66%。

?? 2.4 流水線技術(shù)

??為了提高傳輸效率哲身,發(fā)送方可以不使用低效率的停止等待協(xié)議辩涝,而是采用流水線傳輸

??流水線傳輸就是發(fā)送方可以連續(xù)發(fā)送多個分組勘天,不必每次發(fā)完一個分組就停下來等待對方的確認(rèn)怔揩。這樣信道上一直有數(shù)據(jù)在不斷的傳送,顯然這樣會提供信道利用率脯丝。


??但是流水線技術(shù)對可靠傳輸帶來了如下的影響:

(1) 必須增加序號范圍商膊。因為每個傳輸中的分組必須有一個唯一的序號,而且也許有多個在傳輸而沒有未確認(rèn)的分組宠进。而在停止等待協(xié)議中晕拆,由于發(fā)送一個分組就必須等待這個分組被確認(rèn),所以只需要一個序號即可(如每次傳輸完成后序號遞增)砰苍。
(2) 協(xié)議的發(fā)送方和接收方雙方需要緩存多個分組潦匈。
(3) 所需的序號范圍和對緩存的要求取決于數(shù)據(jù)傳輸協(xié)議如果處理丟失、損壞及延時過大的分組赚导。解決這些問題有兩種基本的方法:回退N步協(xié)議GBN(Go-Back-N)選擇重傳協(xié)議SR(Selective Repeat)

3 回退N步協(xié)議GBN

??在回退N步協(xié)議中赤惊,允許發(fā)送方發(fā)送多個分組而不需等待確認(rèn)吼旧,但它也受限于流水線中未確認(rèn)的分組數(shù)不能超過某個最大允許數(shù)N。


??發(fā)送窗口:發(fā)送方維持的一組連續(xù)的允許發(fā)送的分組的序號未舟。凡是發(fā)送出現(xiàn)的分組圈暗,在沒有收到確認(rèn)之前都需要暫時保留其副本掂为,以便在重傳時使用。

注:序號是可重用的员串,這里假設(shè)序號的范圍是 [ 0 , 7 ]勇哗。上圖中窗口的大小是5,表示最多可以連續(xù)發(fā)送5個分組而不需等待確認(rèn)寸齐∮担可見發(fā)送窗口越大,發(fā)送方在收到對方確認(rèn)之前就可以發(fā)送更多的數(shù)據(jù)渺鹦,因此傳輸效率也就越高帕膜。但是弯囊,窗口的大小也不是無限制的,窗口的大小受接收方的給出的窗口值和網(wǎng)絡(luò)擁塞的影響,是動態(tài)變化的覆糟。

??發(fā)送方每收到一個確認(rèn),就把發(fā)送窗口向前滑動一個分組的位置惑芭。如上圖所示掸绞,發(fā)送方收到了對第0分組的確認(rèn)后,將發(fā)送窗口向前移動一個分組的位置咽安。


??上圖表示了GBN協(xié)議的序號范圍示意圖伴网。其中

基序號:表示最早的未被確認(rèn)的分組。
下一個序號:表示最小未使用的序號板乙,即下一個待發(fā)分組的序號是偷。

??序號被分割成了四個部分,各個部分的含義如圖所示募逞。

??2.1 發(fā)送方必須響應(yīng)的三種類型事件:

??(1) 上層的調(diào)用蛋铆。

??當(dāng)上層要發(fā)送數(shù)據(jù)時,發(fā)送方會先檢查發(fā)送窗口是否已滿放接,如果未滿刺啦,則產(chǎn)生一個分組并將其發(fā)送;如果窗口已滿纠脾,發(fā)送方只需將數(shù)據(jù)返回給上層玛瘸,暗示窗口已滿,上層可能要等一會再試苟蹈。再實際中糊渊,發(fā)送方可以緩存這些數(shù)據(jù),等窗口不滿時再發(fā)送分組慧脱。

??(2) 收到一個ACK:GBN協(xié)議中渺绒,對序號為n的分組的確認(rèn)是采用累積確認(rèn)(cumulative acknowledgement)的方式。

??發(fā)送方可以不用每接收一個分組就返回一個確認(rèn),當(dāng)一連串分組按序到達(dá)時宗兼,發(fā)送方可以為這一連串的分組返回一個確認(rèn)躏鱼,確認(rèn)的分組就是按序到達(dá)的最大的分組序號。例如殷绍,如下圖所示染苛,接收方同時接收到0、1主到、2茶行、3號分組,那么接收方可以就返回一個ACK 3表示接收方已經(jīng)正確收到了3號分組以及之前的所有分組镰烧。
??即接收方返回一個ACK n的分組拢军,那么就表示接收方已經(jīng)收到了n分組以及n分組之前的所有分組,即使接收方?jīng)]有返回n之前的確認(rèn)怔鳖。

??(3) 超時事件:如果發(fā)生超時事件茉唉,發(fā)送方重傳所有已發(fā)送但還未被確認(rèn)過的分組

后退N步協(xié)議名字就來源于出現(xiàn)丟失或時延過程分組發(fā)送方的行為结执。在GBN協(xié)議中度陆,發(fā)送方僅僅使用一個定時器,這個定時器可以當(dāng)作是最早的已發(fā)送但是沒有被確認(rèn)的分組所使用的定時器献幔。如果收到了一個ACK懂傀,但仍有已發(fā)送但未被確認(rèn)的分組,則定時器會被重新啟動蜡感。當(dāng)沒有已發(fā)送但是沒有被確認(rèn)的分組時蹬蚁,定時器被終止。

舉個例子說明一下郑兴,假設(shè)發(fā)送方發(fā)送了0號犀斋、1號、2號情连、3號分組叽粹,此時0號分組是最早發(fā)送但是未被確認(rèn)的分組,計時器在0號分組發(fā)送后啟動却舀,之后發(fā)送方接收到了0號虫几、1號分組的確認(rèn)。此時仍有已發(fā)送但是沒有被確認(rèn)的分組挽拔,即2號分組了辆脸,所以計時器重新啟動。但2號分組由于網(wǎng)絡(luò)原因而丟失螃诅,所以也就收不到2號分組的確認(rèn)每强,由于GBN協(xié)議是累積確認(rèn)機(jī)制始腾,自然3號分組即使送達(dá)接收方也不會返回ACK 3州刽,等到計時器超時空执,發(fā)送方會把2號分組和3號分組重新再發(fā)送一次。

??2.2 發(fā)送方需要做的事

??(1) 如果接收方正確收到n號分組穗椅,并且按序(即上次交付給上層的分組序號是n-1)辨绊,則接收方位分組n發(fā)送一個ACK,并將該分組交付給上層匹表。

??(2) 其他情況门坷,接收方丟棄分組,并為最近按序接收到的分組重新發(fā)送ACK袍镀。即GBN協(xié)議中默蚌,接收方丟失所有失序的分組,接收方不緩存任何的失序分組苇羡,只需要維護(hù)一個下一個按序接收的分組序號:expectedseqnum绸吸。

??如下圖所示,發(fā)送方發(fā)送4個分組设江,其中2號分組丟失锦茁,接收方返回0號分組的確認(rèn)后,就知道下一個需要接收的分組序號是1叉存,但是沒有接收到1號分組码俩,而是后面的3號分組和4號分組,所以接收方發(fā)現(xiàn)不是1號分組則簡單粗暴的丟失歼捏,并且為最近按序收到的分組重新發(fā)送ACK稿存,本例中即接收方返回的是ACK 0,它給發(fā)送端返回的意思是瞳秽,我已經(jīng)正確收到0號分組了瓣履,請給我下一個分組即1號分組,其他分組不是我想要的寂诱。

??很顯然拂苹,GBN協(xié)議對失序的分組選擇直接丟失的行為優(yōu)點是使得接收緩存簡單,即接收方不緩存任何失序的分組痰洒,但是缺點也是非常明顯的瓢棒,由于一個分組出錯可能需要重傳原來已經(jīng)正確傳送的分組,這對資源無疑是一種浪費丘喻,其次這些重傳的分組也許也會丟失或出錯脯宿,從而導(dǎo)致更多的重傳。

??最后泉粉,用一個例子總結(jié)下一GBN協(xié)議的工作流程

假設(shè)窗口長度為4连霉,序號范圍0~7榴芳。


??(1) 發(fā)送端發(fā)送0、1跺撼、2窟感、3號分組,此時發(fā)送窗口已滿歉井,不能在發(fā)送新的分組柿祈,在4個分組的傳輸?shù)倪^程中,其中2號分組丟失哩至。



??(2) 接收方返回對0號分組的確認(rèn)躏嚎,此時窗口向前滑動一個分組位置,并同時發(fā)送4號分組菩貌。此時卢佣,由于0號分組已被確認(rèn),計時器重新啟動箭阶,開始為分組1開始計時....


??(3) 接收方在接收到發(fā)送方的0號分組后期望接下來收到1號分組虚茶,但是沒有收到1號分組,但是卻收到2號分組和3號分組尾膊,所以直接丟失媳危,并向發(fā)送方返回ACK 0,同樣對于之后收到的4號分組也是直接丟失并返回ACK 0冈敛,此時窗口已經(jīng)滿了待笑,也無法發(fā)送新的分組。

??(4) 在計時器超時后抓谴,發(fā)送方重傳所有已發(fā)送但是沒有被確認(rèn)的分組暮蹂,即1號、2號癌压、3號和4號分組仰泻,如果這次沒有分組丟失,那么接收方會返回這4個分組的確認(rèn)滩届,發(fā)送方在收到確認(rèn)后集侯,將窗口向前移動4個分組位置。


2.3 GBN協(xié)議總結(jié)

??(1) GBN協(xié)議使用累積確認(rèn)機(jī)制帜消。
??(2) 接收方只按順序接收分組棠枉,不按序的分組直接丟失
??(3) 重傳時需要重傳全部已發(fā)送但是沒有被確認(rèn)的分組泡挺。
??(4) 確認(rèn)序列號最大的辈讶、按序到達(dá)的分組

3 選擇重傳協(xié)議SR

??選擇重傳協(xié)議是對GBN協(xié)議的缺點進(jìn)行了改進(jìn)娄猫,GNB超時重傳會對那些已經(jīng)正確傳送的分組都重新傳送贱除,并且對失序到達(dá)的分組直接丟失生闲。

??選擇重選協(xié)議通過讓發(fā)送方僅重傳那些可能在接收方出錯(即丟失或受損)的分組而避免了不必須要的重傳。SR協(xié)議的改進(jìn)措施:

??1) 接收方對每個分組單獨進(jìn)行確認(rèn)月幌,并設(shè)置緩存機(jī)制碍讯,緩存亂序到達(dá)的分組
??2) 發(fā)送方只重傳那些沒有收到的ACK分組,并為每個分組設(shè)置定時器飞醉。

??下圖表示選擇重選協(xié)議的發(fā)送窗口和接收窗口冲茸。發(fā)送窗口和同步窗口是不同步的

注:上下兩個圖并沒有對應(yīng)關(guān)系缅帘。

??3.1 SR發(fā)送方必須響應(yīng)的三件事

??(1) 上層的調(diào)用

從上層收到數(shù)據(jù)后难衰,SR發(fā)送方檢查下一個可用于該分組的序號钦无,如果序號位于發(fā)送窗口之內(nèi),則發(fā)送分組盖袭;否則就像GBN一樣失暂,要么將數(shù)據(jù)緩存,要么返回給上層過一會再傳輸鳄虱。

??(2) 收到一個ACK弟塞。

如果收到ACK,假如該分組序號在窗口內(nèi)拙已,則SR發(fā)送方將那個被確認(rèn)的分組標(biāo)記為已接收决记。如果該分組序號是窗口的下界(最左邊第一個窗口對應(yīng)的序號),則窗口向前移動到具有最小序號的未確認(rèn)分組處倍踪。

??如下圖所示系宫,當(dāng)收到2號分組的確認(rèn)后,窗口向前滑動一直到最小序號的未確認(rèn)的分組處建车,即5號分組處扩借。


image.png

??(3) 超時:定時器再次被用來發(fā)送丟失的分組。每個分組都有自己的邏輯定時器缤至,因為超時發(fā)生后只能發(fā)送一個分組潮罪。

??3.2 SR接收方必須做的事

??(1) SR接收方將確認(rèn)一個正確接收的分組(在窗口內(nèi))而不管其是否按序。失序的分組將被緩存直到所有丟失的分組(即序號更小的分組)都被收到為止领斥,這是才可將一批分組按序交付給上層嫉到,然后向前移動滑動窗口。

如下圖所示戒突,3號屯碴、4號以及6號分組失序達(dá)到并已經(jīng)確認(rèn),如果此時2號分組到達(dá)膊存,那么接收方就將2號导而、3號和4號分組交付給上層忱叭,并將窗口向前滑動。

??如果接收方收到一個在窗口左側(cè)的分組(確切的來說今艺,左邊一個窗口大小范圍的序號分組韵丑,即rev_base - N~rev_base - 1),在這種情況下虚缎,必須發(fā)送一個ACk撵彻,即使該分組是接收方以前已確認(rèn)的分組。

還是上圖实牡,如果接收端過了一會又接收到了2號分組陌僵,這就表明接收端發(fā)送給發(fā)送方的確認(rèn)分組丟失了,接收方以為接收方?jīng)]有收到自己分送的分組创坞,這時會超時重傳碗短,但是接收方確實已經(jīng)接收到了2號分組,所以此時接收方會給發(fā)送方重新返回一個ACK题涨。

??對于其他情況偎谁,則忽略分組即可。

??下面的圖可以表示SR協(xié)議的工作過程纲堵,具體分析過程和GBN協(xié)議相似巡雨,這里就不細(xì)說了。

圖中假設(shè)了發(fā)送窗口和接收窗口的大小都是4席函,序號范圍0~7铐望。

??3.3 SR協(xié)議總結(jié)

??(1) 對窗口內(nèi)的分組逐一確認(rèn),收一個確認(rèn)一個向挖。
??(2) 只傳出錯的分組蝌以。
??(3) 接收方有緩存機(jī)制,存放失序的分組何之。

4 小結(jié)

考慮到本文篇幅跟畅,還有一些內(nèi)容下篇文章再說。

??本文完

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末溶推,一起剝皮案震驚了整個濱河市徊件,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蒜危,老刑警劉巖虱痕,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異辐赞,居然都是意外死亡部翘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門响委,熙熙樓的掌柜王于貴愁眉苦臉地迎上來新思,“玉大人窖梁,你說我怎么就攤上這事〖星簦” “怎么了纵刘?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長荸哟。 經(jīng)常有香客問我假哎,道長,這世上最難降的妖魔是什么鞍历? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任舵抹,我火速辦了婚禮,結(jié)果婚禮上堰燎,老公的妹妹穿的比我還像新娘掏父。我一直安慰自己,他們只是感情好秆剪,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著爵政,像睡著了一般仅讽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钾挟,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天洁灵,我揣著相機(jī)與錄音,去河邊找鬼掺出。 笑死徽千,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的汤锨。 我是一名探鬼主播双抽,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼闲礼!你這毒婦竟也來了牍汹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤柬泽,失蹤者是張志新(化名)和其女友劉穎慎菲,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锨并,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡露该,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了第煮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片解幼。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡抑党,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出书幕,到底是詐尸還是另有隱情新荤,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布台汇,位于F島的核電站苛骨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏苟呐。R本人自食惡果不足惜痒芝,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望牵素。 院中可真熱鬧严衬,春花似錦、人聲如沸笆呆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赠幕。三九已至俄精,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間榕堰,已是汗流浹背竖慧。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留逆屡,地道東北人圾旨。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像魏蔗,于是被迫代替她去往敵國和親砍的。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

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