TCP/IP協(xié)議族全析

TCP/IP協(xié)議族

計(jì)算機(jī)與網(wǎng)絡(luò)設(shè)備要相互通信,雙方就必須基于相同的方法鲸鹦。如何探測到通信目標(biāo)、由那一邊現(xiàn)發(fā)起通信跷跪、使用哪種語言馋嗜、使用那種操作系統(tǒng)、怎樣結(jié)束通信等都需要事先確定吵瞻。不同的硬件葛菇、操作系統(tǒng)之間的相互通信甘磨,所有的這一切都需要一種規(guī)則。而我們就把這種規(guī)則稱為協(xié)議眯停。而與互聯(lián)網(wǎng)相關(guān)聯(lián)的協(xié)議集合起來總稱為TCP/IP協(xié)議族济舆。

圖:TCP/IP是互聯(lián)網(wǎng)各類協(xié)議族的總稱

TCP/IP的分層管理

TCP/IP協(xié)議族里最重要的一點(diǎn)就是分層。TCP/IP協(xié)議族暗層次可以氛圍以下五層:應(yīng)用層莺债、傳輸層滋觉、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層齐邦、實(shí)體層椎侠。

圖:TCP/IP的分層

把TCP/IP層次化的好處有很多。比如措拇,如果互聯(lián)網(wǎng)只由一個(gè)協(xié)議統(tǒng)籌我纪,某個(gè)地方需要改變?cè)O(shè)計(jì)時(shí),就必須把所有部分整體替換掉丐吓。而分成之后只需把改變的曾替換掉即可浅悉。八個(gè)層之間的接口部分規(guī)劃好之后,每個(gè)層次內(nèi)部的設(shè)計(jì)就能夠自由改動(dòng)了券犁。

實(shí)體層

實(shí)體層就是把電腦連接起來的物理手段术健,它主要規(guī)定了網(wǎng)絡(luò)的一些電氣特性。

鏈接層

用來處理連接網(wǎng)絡(luò)的硬件部分族操。包括控制操作系統(tǒng)苛坚、硬件的設(shè)備驅(qū)動(dòng)、NIC(Network Interface Card色难,網(wǎng)絡(luò)適配器泼舱,即網(wǎng)卡),及光纖等物理可見部分枷莉。硬件上的范疇均在鏈路層的作用范圍之內(nèi)娇昙。

1.以太網(wǎng)協(xié)議

早起的時(shí)候,每家公司都有自己的電信號(hào)分組方式笤妙。逐漸的冒掌,一種叫做以太網(wǎng)的協(xié)議,占據(jù)了主導(dǎo)地位蹲盘。

以太網(wǎng)協(xié)議規(guī)定股毫,一組電信號(hào)構(gòu)成一個(gè)數(shù)據(jù)包,叫做楨(frame)召衔。每一幀分成兩個(gè)部分:標(biāo)頭(Head)和數(shù)據(jù)(Data)铃诬。“標(biāo)頭”包含數(shù)據(jù)的一些說明項(xiàng),比如發(fā)送者趣席、接受者兵志、數(shù)據(jù)類型等;“數(shù)據(jù)”則是發(fā)送的具體內(nèi)容宣肚。

圖:數(shù)據(jù)包

2.MAC地址

以太網(wǎng)規(guī)定想罕,如網(wǎng)設(shè)備,必須有網(wǎng)卡接口霉涨。數(shù)據(jù)包必須是從一塊網(wǎng)卡按价,傳送到另一塊網(wǎng)卡。網(wǎng)卡的地址就是數(shù)據(jù)包的發(fā)送地址和接收地址嵌纲,被稱為MAC地址俘枫。

3.廣播

如何從一塊網(wǎng)卡獲知另一塊網(wǎng)卡地址,首先采用的是一種ARP協(xié)議(Address Resolution Protocol)獲取對(duì)應(yīng)的MAC地址逮走,然后以太網(wǎng)采用了一種很原始的方式鸠蚪,向所有的本網(wǎng)內(nèi)所有計(jì)算機(jī)發(fā)送,讓每臺(tái)計(jì)算機(jī)自己判斷對(duì)應(yīng)的MAC地址是否與自己一樣师溅,如果一樣茅信,就接受這個(gè)包,做進(jìn)一步處理墓臭,負(fù)責(zé)就丟棄這個(gè)包蘸鲸。這種發(fā)送方式就叫做廣播(Broadcasting)。

在同一局域網(wǎng)內(nèi)窿锉,PC1發(fā)送的數(shù)據(jù)包以廣播的形式進(jìn)行發(fā)送酌摇,當(dāng)匹配對(duì)象PC2接收到請(qǐng)求之后,就可以將PC1的IP和MAC映射信息存儲(chǔ)在本地的【ARP緩存表】嗡载,既然知道PC1在哪里窑多,就可以返回ARP單播回應(yīng)包。

網(wǎng)絡(luò)層

互聯(lián)網(wǎng)是無數(shù)個(gè)子網(wǎng)絡(luò)共同組成的一個(gè)巨型網(wǎng)絡(luò)洼滚,如果在同一個(gè)子網(wǎng)絡(luò)埂息,就采用廣播的方式發(fā)送,否則就采用路由方式發(fā)送遥巴。這就導(dǎo)致了網(wǎng)絡(luò)層的誕生千康。他的作用是引進(jìn)一套新的地址,使得我們能夠區(qū)分不同的計(jì)算機(jī)是否屬于同一個(gè)子網(wǎng)絡(luò)铲掐。這套地址就叫做"網(wǎng)絡(luò)地址"皂林,簡稱"網(wǎng)址"六荒。

網(wǎng)絡(luò)層用來處理在網(wǎng)絡(luò)上流動(dòng)的數(shù)據(jù)包搀突。數(shù)據(jù)包是網(wǎng)絡(luò)層傳輸?shù)淖钚?shù)據(jù)單位坡倔。該層規(guī)定了通過怎樣的路徑到達(dá)對(duì)方計(jì)算機(jī)疯攒,并把數(shù)據(jù)傳送給對(duì)方。

1.IP協(xié)議

IP協(xié)議的作用是把各種數(shù)據(jù)包傳送給對(duì)方晰搀。而要確保數(shù)據(jù)確實(shí)發(fā)送到對(duì)方哪里蕉拢,則需要滿足各類條件。其中最主要的條件是IP地址和MAC地址刻两。IP地址指明了節(jié)點(diǎn)被分配到的地址增蹭,MAC是網(wǎng)卡所屬的固定地址。 IP地址可更換磅摹,但MAC地址基本上不會(huì)更改滋迈。

互聯(lián)網(wǎng)上的每一臺(tái)計(jì)算機(jī),都會(huì)分配一個(gè)IP地址户誓。這個(gè)地址分為兩部分饼灿,前一部分代表網(wǎng)絡(luò),后一部分代表主機(jī)帝美。判斷兩臺(tái)計(jì)算機(jī)是否屬于同一個(gè)子網(wǎng)絡(luò)碍彭,需要用到另一個(gè)參數(shù)子網(wǎng)掩碼,它是一個(gè)32位地址悼潭,它只有一個(gè)作用庇忌,就是將某個(gè)IP地址劃分成網(wǎng)絡(luò)地址主機(jī)地址兩部分,如果兩臺(tái)電腦的網(wǎng)絡(luò)地址部分相同舰褪,則可以判定他們?cè)谕粋€(gè)子網(wǎng)絡(luò)皆疹。

2.ARP協(xié)議

IP間的通信依賴MAC地址。在網(wǎng)絡(luò)上占拍,通信雙方不在同一局域網(wǎng)內(nèi)略就,事實(shí)上沒有辦法得到對(duì)方的MAC地址,只能把數(shù)據(jù)包傳送到兩個(gè)子網(wǎng)絡(luò)連接處的"網(wǎng)關(guān)"(gateway)晃酒,讓網(wǎng)關(guān)去處理表牢。而在同一局域網(wǎng)內(nèi),我們可以使用ARP協(xié)議(Address Resolution Protocol)掖疮,獲取對(duì)方的MAC地址初茶。ARP是一種用以解析地址的協(xié)議,根據(jù)通信方的IP地址就可以反查處對(duì)應(yīng)的MAC地址浊闪。

3.IMCP協(xié)議

IP協(xié)議并不是一個(gè)可靠的協(xié)議恼布,它不保證數(shù)據(jù)被送達(dá),那么搁宾,自然的折汞,保證數(shù)據(jù)送達(dá)的工作應(yīng)該由其他的模塊來完成。其中一個(gè)重要的模塊就是ICMP(網(wǎng)絡(luò)控制報(bào)文)協(xié)議盖腿。當(dāng)傳送IP數(shù)據(jù)包發(fā)生錯(cuò)誤——比如主機(jī)不可達(dá)爽待,路由不可達(dá)等等损同,ICMP協(xié)議將會(huì)把錯(cuò)誤信息封包,然后傳送回給主機(jī)鸟款。給主機(jī)一個(gè)處理錯(cuò)誤的機(jī)會(huì)膏燃,這也就是為什么說建立在IP層以上的協(xié)議是可能做到安全的原因。

傳輸層

傳輸層對(duì)上層應(yīng)用層何什,提供處于網(wǎng)絡(luò)連接中的兩臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)傳輸组哩。在同一個(gè)電腦中接收到發(fā)送給不同軟件的數(shù)據(jù)包,則需要依靠端口(port)來區(qū)分是發(fā)給具體某個(gè)軟件处渣,它其實(shí)是一個(gè)網(wǎng)卡的程序編號(hào)伶贰。傳輸層的功能就是建立在“端口到端口”的通信。在傳輸層有兩個(gè)性質(zhì)不同的協(xié)議:TCP(Transmission Protocol罐栈,傳輸控制協(xié)議)和UDP(User Data Protocol黍衙,用戶數(shù)據(jù)報(bào)協(xié)議)。

TCP協(xié)議

tcp是一種面向連接的荠诬、可靠的琅翻、基于字節(jié)流的傳輸層通信協(xié)議。是專門為了在不可靠的互聯(lián)網(wǎng)絡(luò)上提供一個(gè)可靠的端到端字節(jié)流而設(shè)計(jì)的浅妆,面向字節(jié)流望迎。TCP協(xié)議將大快數(shù)據(jù)分割成報(bào)文段(segment)為單位的數(shù)據(jù)包進(jìn)行管理,為了確保無誤的將數(shù)據(jù)發(fā)送到目標(biāo)處凌外,TCP協(xié)議采用了三次握手(three-way handshaking)策略辩尊。握手中使用了TCP的標(biāo)志(flag)-SYN(synchronize)、ACK(acknowledgement)和seq(sequence)康辑。

圖:TCP數(shù)據(jù)發(fā)送流程圖

TCP三次握手過程

第一次握手:客戶端發(fā)送一個(gè)含有同步序列號(hào)的標(biāo)志位給服務(wù)器請(qǐng)求建立連接摄欲,同時(shí)客戶端進(jìn)入SYN_SENT狀態(tài)。發(fā)送報(bào)文的同時(shí)也啟動(dòng)一個(gè)定時(shí)器疮薇,等待服務(wù)器確認(rèn)收到這個(gè)報(bào)文段胸墙,如果不能及時(shí)收到一個(gè)確認(rèn),將重新發(fā)送這個(gè)報(bào)文段按咒。這次握手總共做了兩件事:我要和你通信迟隅、你可以用seq=x作為起始數(shù)據(jù)段來回應(yīng)我。

第二次握手:服務(wù)端收到這個(gè)報(bào)文段励七,需要對(duì)報(bào)文段進(jìn)行確認(rèn)智袭,設(shè)置ACK=x+1,seq=y掠抬,讓客戶端以這個(gè)序列號(hào)作為起始數(shù)據(jù)段來進(jìn)行回應(yīng)吼野,這時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài)。這次握手總共做了兩件事:你可以和我通信两波、你可以用seq=y作為起始數(shù)據(jù)段來回應(yīng)我瞳步。

第三次握手:客戶端收到服務(wù)器的確認(rèn)報(bào)文段闷哆,會(huì)先進(jìn)性確認(rèn),如果收到的報(bào)文檢驗(yàn)有差錯(cuò)单起,那么就會(huì)丟棄這個(gè)報(bào)文段抱怔,如果檢驗(yàn)無誤,則會(huì)對(duì)服務(wù)器進(jìn)行回復(fù)嘀倒,設(shè)置ACK=Y+1野蝇。這時(shí)客戶端與服務(wù)端都進(jìn)入ESTABLISHED狀態(tài),完成TCP三次握手括儒。

若握手過程中某個(gè)階段莫名中斷,TCP協(xié)議會(huì)再次以相同順序發(fā)送相同的數(shù)據(jù)包锐想。

TCP四次分手

第一次分手:當(dāng)客戶端完成數(shù)據(jù)傳輸后帮寻,會(huì)對(duì)服務(wù)器發(fā)送一個(gè)FIN報(bào)文段,客戶端進(jìn)入FIN_WAIT_1狀態(tài)赠摇。表明數(shù)據(jù)發(fā)送結(jié)束固逗。

第二次分手:服務(wù)器收到客戶端發(fā)送來的FIN報(bào)文段,會(huì)返回一個(gè)ACK報(bào)文段藕帜,ACK加一烫罩,客戶端進(jìn)入FIN_WAIT_2狀態(tài),意思就是我同意你的關(guān)閉請(qǐng)求洽故。

第三次分手:服務(wù)器向客戶端發(fā)送FIN報(bào)文段贝攒,請(qǐng)求關(guān)閉連接, 服務(wù)器進(jìn)入LAST_ACK狀態(tài)时甚。

第四次分手:客戶端收到服務(wù)器發(fā)送的FIN狀態(tài)隘弊,會(huì)向服務(wù)器發(fā)送ACK報(bào)文段,ACK加一荒适,客戶端進(jìn)入TIME_WAIT狀態(tài)梨熙,服務(wù)器收到ACK報(bào)文段后,就關(guān)閉連接刀诬;此時(shí)咽扇,客戶端等待2MSL后依然沒有收到回復(fù),則證明服務(wù)器已正常關(guān)閉陕壹,那好质欲,客戶端也可以關(guān)閉連接了。

客戶端應(yīng)用程序的狀態(tài)遷移圖

CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED

服務(wù)器的狀態(tài)遷移圖

CLOSED->LISTEN->SYN_RECE->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED

UDP協(xié)議

UDP 是一種面向無連接帐要,且不可靠的協(xié)議把敞,在通信過程中,它并不像 TCP 那樣需要先建立一個(gè)連接榨惠,只要(目的地址奋早,端口號(hào)盛霎,源地址,端口號(hào))確定了耽装,就可以直接發(fā)送信息報(bào)文愤炸,并且不需要確保服務(wù)端一定能收到或收到完整的數(shù)據(jù)。它僅僅提供了校驗(yàn)和機(jī)制來保障一個(gè)報(bào)文是否完整掉奄,若校驗(yàn)失敗规个,則直接丟棄報(bào)文,不做任何處理姓建。

圖:UDP Service-Client關(guān)系圖

TCP與UD片間的區(qū)別

1诞仓、tcp是面向連接的,可靠性高速兔;udp是無連接的墅拭,可靠性較低;

2涣狗、由于tcp是連接的通信谍婉,需要有三次握手、重新確認(rèn)等連接過程镀钓,會(huì)有延時(shí)穗熬,實(shí)時(shí)性差;同時(shí)過程復(fù)雜丁溅,也使其易于被攻擊唤蔗;而udp無連接,無建立連接的過程唧瘾,因而實(shí)時(shí)性較強(qiáng)措译,也稍安全;

3饰序、在傳輸相同大小的數(shù)據(jù)時(shí)领虹,tcp首部開銷20字節(jié);udp首部開銷只有8個(gè)字節(jié)求豫,tcp報(bào)頭比udp復(fù)雜塌衰,故實(shí)際包含的用戶數(shù)據(jù)較少。tcp無丟包蝠嘉,而udp有丟包(注:網(wǎng)速的提升導(dǎo)致現(xiàn)在丟包率很低)最疆,故tcp開銷大,udp開銷較性楦妗努酸;

4、每條tcp連接只能是點(diǎn)到點(diǎn)的杜恰;udp支持一對(duì)一获诈、一對(duì)多仍源、多對(duì)一、多對(duì)多的交互通信舔涎。

5笼踩、TCP對(duì)系統(tǒng)資源要求較多,UDP對(duì)系統(tǒng)資源要求較少

采用TCP亡嫌,一旦發(fā)生丟包嚎于,TCP會(huì)將后續(xù)的包緩存起來,等前面的包重傳并接收到后再繼續(xù)發(fā)送挟冠,延時(shí)會(huì)越來越大于购,基于UDP對(duì)實(shí)時(shí)性要求較為嚴(yán)格的情況下,采用自定義重傳機(jī)制(注:UDP本身并不具有重傳機(jī)制)知染,能夠把丟包產(chǎn)生的延遲降到最低价涝,盡量減少網(wǎng)絡(luò)問題對(duì)游戲性造成影響。如果對(duì)實(shí)時(shí)性要求高和高速傳輸?shù)膱龊舷滦枰褂胾dp持舆;如果需要傳輸大量數(shù)據(jù)且對(duì)可靠性要求高的情況下應(yīng)該使用tcp;在可靠性要求較低伪窖,追求效率的情況下應(yīng)該使用udp逸寓。

應(yīng)用層

應(yīng)用層決定了向用戶提供應(yīng)用服務(wù)時(shí)通信的活動(dòng)。TCP/IP協(xié)議族內(nèi)預(yù)存了各類通用的應(yīng)用服務(wù)覆山。比如竹伸,F(xiàn)TP(File Transfer Protocol,文件傳輸協(xié)議)和DNS服務(wù)(Domain Name System簇宽,域名系統(tǒng))服務(wù)就是其中兩類勋篓。而HTTP協(xié)議也處于該層。

DNS

DNS(Domain Name System)服務(wù)提供了域名到IP地址之間的解析服務(wù)魏割。計(jì)算機(jī)可以被賦予IP地址譬嚣,也可以被賦予主機(jī)名和域名。比如www.18yk.com钞它。我們通常使用主機(jī)名或者域名來訪問對(duì)方的計(jì)算機(jī)拜银,而不是直接通過IP地址訪問。這就需要DNS服務(wù)來為我們將它們轉(zhuǎn)換成IP地址遭垛,DNS協(xié)議通過域名的查找IP地址尼桶,會(huì)逆向從IP地址反差域名服務(wù)。

圖:DNS工作流程圖

HTTP協(xié)議

HTTP(Hyper Text Transfer Protocol)超文本傳輸協(xié)議锯仪,是一種建立在TCP上的無狀態(tài)連接泵督,也是我們?nèi)粘S玫淖疃嗟囊环N協(xié)議。

圖:HTTP協(xié)議工作流程圖

URI

URI(Uniform Resource Identifier)統(tǒng)一資源標(biāo)識(shí)符庶喜,RFC2396分別對(duì)這 3 個(gè)單詞進(jìn)行了如下定義:

Uniform :規(guī)定統(tǒng)一的格式可方便處理多種不同類型的資源小腊, 而不用根據(jù)上下文環(huán)境來識(shí)別資源指定的訪問方式救鲤。另外, 加入新增的協(xié)議方案(如http:或ftp:) 也更容易溢豆。

Resource :資源的定義是可標(biāo)識(shí)的任何東西蜒简。 除了文檔文件、 圖像或服務(wù)(例如當(dāng)天的天氣預(yù)報(bào)) 等能夠區(qū)別于其他類型的漩仙, 全都可作為資源搓茬。 另外, 資源不僅可以是單一的队他, 也可以是多數(shù)的集合體卷仑。

Identifier :表示可標(biāo)識(shí)的對(duì)象。 也稱為標(biāo)識(shí)符麸折。

RFC3986列舉了幾種URI的常用語法格式:

1.tp://ftp.is.co.za/rfc/rfc1808.txt

2.http://www.ietf.org/rfc/rfc2396.txt

3.ldap://[2001:db8::7]/c=GB?objectClass?one

4.mailto:John.Doe@example.com

5.news:comp.infosystems.www.servers.unix

6.tel:+1-816-555-1212

7.telnet://192.0.2.16:80/

8.urn:oasis:names:specification:docbook:dtd:xml:4.1.2

TCP/IP通信傳輸流

利用TCP/IP協(xié)議族進(jìn)行網(wǎng)絡(luò)通信時(shí)锡凝,會(huì)通過分層順序與對(duì)方進(jìn)行通信。發(fā)送端從應(yīng)用層往下走垢啼,接收段則往應(yīng)用層上走窜锯。以HTTP舉例說明:

發(fā)送端

首先作為發(fā)送端的客戶端在應(yīng)用層(HTTP協(xié)議)發(fā)出一個(gè)想看某個(gè)Web頁面的HTTP請(qǐng)求。為了傳輸方便芭析,在傳輸層(TCP協(xié)議)把從應(yīng)用層收到的數(shù)據(jù)(THTTP請(qǐng)求報(bào)文)進(jìn)行分割锚扎,并根據(jù)各個(gè)報(bào)文上打上標(biāo)記序號(hào)及端口號(hào)后轉(zhuǎn)發(fā)給網(wǎng)絡(luò)層。在網(wǎng)絡(luò)層(IP協(xié)議)馁启,增加作為通信目的地的MAC地址后轉(zhuǎn)送給鏈路層驾孔。這樣一個(gè)網(wǎng)絡(luò)通信請(qǐng)求就準(zhǔn)備齊全了。

接收端

接受端的服務(wù)器在鏈路層接收到數(shù)據(jù)惯疙,按順序往上層發(fā)送翠勉,一直到應(yīng)用層。當(dāng)傳輸?shù)綉?yīng)用層才算真正接收到由客戶端發(fā)送過來的HTTP請(qǐng)求霉颠。

發(fā)送端在層與層之間傳輸數(shù)據(jù)時(shí)对碌,每經(jīng)過一層時(shí)必定會(huì)被打上一個(gè)該層所屬的首部信息。反之蒿偎。接收段在層與層傳輸數(shù)據(jù)時(shí)俭缓,每經(jīng)過一層會(huì)把對(duì)應(yīng)的首部消去。而這種把數(shù)據(jù)信息包裝起來的做法被稱為封裝(encapsulate)酥郭。


感言:到這里TCP/IP協(xié)議族就暫時(shí)告一亂落华坦。寫作的目的主要是最近在閱讀《圖解HTTP》這本書籍時(shí)產(chǎn)生了一些心的,并通過在網(wǎng)上查找相關(guān)資料進(jìn)行整理總結(jié)不从,將之記錄下來惜姐,與大家共享,也方便以后自己查閱。若其中有何錯(cuò)誤漏洞歹袁,請(qǐng)大家不吝賜教坷衍。

參考資料1:https://blog.csdn.net/u011957758/article/details/72353485

參考資料2:http://www.reibang.com/p/0cf648510bce

參考資料3:http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html

--------------------- 作者:蝸牛非牛 來源:CSDN 原文:https://blog.csdn.net/qq_34003239/article/details/82992495?utm_source=copy 版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接条舔!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末枫耳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子孟抗,更是在濱河造成了極大的恐慌迁杨,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凄硼,死亡現(xiàn)場離奇詭異铅协,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)摊沉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門狐史,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人说墨,你說我怎么就攤上這事骏全。” “怎么了尼斧?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵吟温,是天一觀的道長。 經(jīng)常有香客問我突颊,道長,這世上最難降的妖魔是什么潘悼? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任律秃,我火速辦了婚禮,結(jié)果婚禮上治唤,老公的妹妹穿的比我還像新娘棒动。我一直安慰自己,他們只是感情好宾添,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布船惨。 她就那樣靜靜地躺著,像睡著了一般缕陕。 火紅的嫁衣襯著肌膚如雪粱锐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天扛邑,我揣著相機(jī)與錄音怜浅,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛恶座,可吹牛的內(nèi)容都是我干的搀暑。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼跨琳,長吁一口氣:“原來是場噩夢啊……” “哼自点!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起脉让,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤桂敛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后侠鳄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體埠啃,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年伟恶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碴开。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡博秫,死狀恐怖潦牛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情挡育,我是刑警寧澤巴碗,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站即寒,受9級(jí)特大地震影響橡淆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜母赵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一逸爵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凹嘲,春花似錦师倔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至凶朗,卻和暖如春瓷胧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背棚愤。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國打工抖单, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓矛绘,卻偏偏與公主長得像耍休,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子货矮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

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