【深入淺出Linux】IP路由器尋址全過程分析

TCP/IP協(xié)議簇是目前互聯(lián)網(wǎng)應(yīng)用最廣的協(xié)議棧,談到TCP/IP協(xié)議棧就不能不講一講IP路由的問題梁只,因?yàn)樵谖覀兪褂玫木W(wǎng)絡(luò)通信中幾乎每時(shí)每刻都在發(fā)生著IP路由的事件……。當(dāng)你在網(wǎng)絡(luò)世界中還是一位新手的時(shí)候,你也許認(rèn)為設(shè)備之間實(shí)現(xiàn)IP路由所需的僅僅是一臺(tái)設(shè)備的IP地址而已门坷,如果你真的這樣認(rèn)為那就錯(cuò)了讶坯。每臺(tái)設(shè)備在進(jìn)行IP路由的時(shí)候除了必需的IP地址外還需要很多其他信息來完成數(shù)據(jù)的封裝番电!我將通過以下網(wǎng)絡(luò)場(chǎng)景提供的案例一步一步地來分析設(shè)備在進(jìn)行IP路由時(shí)將會(huì)發(fā)生哪些通信事件。

image

在這個(gè)場(chǎng)景中有兩個(gè)網(wǎng)絡(luò),這兩個(gè)網(wǎng)絡(luò)通過一臺(tái)具有兩個(gè)以太網(wǎng)接口(F0/0漱办,F(xiàn)0/1)的路由器連接在一起这刷。路由器的這兩個(gè)端口和你自己電腦上的RJ-45型號(hào)的網(wǎng)卡端口是一樣的,都是內(nèi)建在路由器中的∶渚現(xiàn)在我們來看一看當(dāng)位于網(wǎng)絡(luò)A的主機(jī)A想要和位于網(wǎng)絡(luò)B的主機(jī)B進(jìn)行通信時(shí)都發(fā)生了什么暇屋?

主機(jī)A打開命令提示符(具體方法:開始——運(yùn)行——cmd),命令提示符(>)后輸入ping 1.1.1.5 當(dāng)“ping”這個(gè)指令被計(jì)算機(jī)執(zhí)行的時(shí)候洞辣,TCP/IP協(xié)議棧會(huì)調(diào)用該協(xié)議椄琅伲互聯(lián)網(wǎng)層的“ICMP”協(xié)議封裝“ping 1.1.1.5”這個(gè)請(qǐng)求。

ICMP協(xié)議封裝如下:

ICMP報(bào)頭 (主機(jī)A) Ping 1.1.1.5

Host A(主機(jī)A)若要將這個(gè)ICMP協(xié)議封裝的請(qǐng)求發(fā)送給目標(biāo)主機(jī)B(Host B)就必須要使用IP協(xié)議來“運(yùn)輸”該請(qǐng)求扬霜。這樣定鸟,IP協(xié)議這個(gè)時(shí)候就充當(dāng)了一個(gè)郵差的角色,將ICMP這個(gè)數(shù)據(jù)包寫上發(fā)送者(主機(jī)A)的IP地址和接收者(主機(jī)B)的IP地址著瓶,然后就可以根據(jù)這個(gè)目標(biāo)地址(主機(jī)B的地址)來“投遞”這個(gè)數(shù)據(jù)包了联予。

IP協(xié)議封裝如下:

IP報(bào)頭 ICMP報(bào)頭 (主機(jī)A) Ping 1.1.1.5

經(jīng)過IP協(xié)議封裝的數(shù)據(jù)包只是完成了TCP/IP協(xié)議簇網(wǎng)絡(luò)層上的封裝,接下來要完成的是數(shù)據(jù)鏈路層的封裝材原。在進(jìn)行數(shù)據(jù)鏈路層的信息封裝之前主機(jī)A還需啟動(dòng)IP路由進(jìn)程來判斷目標(biāo)主機(jī)B在本地網(wǎng)絡(luò)還是在遠(yuǎn)程網(wǎng)絡(luò)沸久。若主機(jī)B在本地網(wǎng)絡(luò),說明主機(jī)B和主機(jī)A在同一個(gè)邏輯子網(wǎng)中余蟹,也就是同一個(gè)IP網(wǎng)段內(nèi)卷胯。若主機(jī)B在遠(yuǎn)程網(wǎng)絡(luò)則說明主機(jī)B與主機(jī)A不在同一個(gè)網(wǎng)段內(nèi),比如本例中客叉,主機(jī)A位于網(wǎng)絡(luò)A而主機(jī)B位于網(wǎng)絡(luò)B诵竭。顯而易見,在本例的網(wǎng)絡(luò)場(chǎng)景中主機(jī)A會(huì)判斷出主機(jī)B位于遠(yuǎn)程網(wǎng)絡(luò)兼搏。那么問題是主機(jī)A是如何做出判斷的呢卵慰?

首先主機(jī)A將自己的IP地址和子網(wǎng)掩碼作“與運(yùn)算”。所謂與運(yùn)算就是無論是二進(jìn)制的“0”和“1”相與還是二進(jìn)制的“0”和“0”相與佛呻,得出的結(jié)果都為“0”裳朋,而只有二進(jìn)制“1”和“1”相與得出的結(jié)果為“1”。比如本例中吓著,主機(jī)A的IP地址為192.168.0.5鲤嫡,將這個(gè)IP地址轉(zhuǎn)換為二進(jìn)制就是:11000000 10101000 00000000 00000101

主機(jī)A的子網(wǎng)掩碼為255.255.255.0,將該掩碼轉(zhuǎn)換為二進(jìn)制就是:11111111 11111111 11111111 00000000 將主機(jī)A二進(jìn)制形式的IP地址和子網(wǎng)掩碼作“與運(yùn)算”的結(jié)果是: 11000000 10101000 00000000 00000000

為了方便查看將這個(gè)“與運(yùn)算”的結(jié)果再轉(zhuǎn)換為點(diǎn)分十進(jìn)制的數(shù)就是:192.168.0.0

這樣主機(jī)A就通過“與運(yùn)算”完成了IP路由判斷的第一步绑莺。接下來的第二步是將目標(biāo)主機(jī)(主機(jī)B)的IP地址與發(fā)送方(主機(jī)A)的子網(wǎng)掩碼作“與運(yùn)算”暖眼,比如本例中,主機(jī)B的IP地址為1.1.1.5纺裁,將這個(gè)IP地址轉(zhuǎn)換為二進(jìn)制就是:00000001 00000001 00000001 00000101

主機(jī)A的子網(wǎng)掩碼為255.255.255.0將該掩碼轉(zhuǎn)換為二進(jìn)制就是:11111111 11111111 11111111 00000000 將以上兩組二進(jìn)制的數(shù)進(jìn)行“與運(yùn)算”的結(jié)果是:00000001 00000001 00000001 00000000 將這個(gè)“與運(yùn)算”的結(jié)果轉(zhuǎn)換為點(diǎn)分十進(jìn)制的數(shù)就是:1.1.1.0 這樣我們就得到了兩組“與運(yùn)算”的結(jié)果诫肠,分別是:192.168.0.0和1.1.1.0

對(duì)于主機(jī)A來說司澎,經(jīng)過這樣一番“與運(yùn)算”后,如果兩個(gè)“與運(yùn)算”結(jié)果相同栋豫,則說明目標(biāo)主機(jī)B和自己在同一個(gè)網(wǎng)絡(luò)內(nèi)挤安,即目標(biāo)主機(jī)B在本地網(wǎng)絡(luò)。相反地丧鸯,對(duì)于主機(jī)A來說蛤铜,經(jīng)過這樣一番“與運(yùn)算”后,如果兩個(gè)“與運(yùn)算”結(jié)果不同丛肢,則說明目標(biāo)主機(jī)B和自己不在同一個(gè)網(wǎng)絡(luò)內(nèi)围肥,即目標(biāo)主機(jī)B在遠(yuǎn)程網(wǎng)絡(luò)。在本例中蜂怎,很顯然目標(biāo)主機(jī)B對(duì)于發(fā)送方(主機(jī)A)來說在遠(yuǎn)程網(wǎng)絡(luò)——也就是在網(wǎng)絡(luò)B虐先。

主機(jī)A通過以上與目標(biāo)主機(jī)B略顯復(fù)雜的“與運(yùn)算”后,完成了路由判斷的第一步——判斷出了目標(biāo)主機(jī)B在遠(yuǎn)程網(wǎng)絡(luò)派敷。接下來主機(jī)A需要“思考”的是如何才能夠到達(dá)主機(jī)B所在的網(wǎng)絡(luò)?主機(jī)A首先會(huì)查詢自己的路由表撰洗,看在自己的路由表中能否找到去往目標(biāo)網(wǎng)絡(luò)(網(wǎng)絡(luò)B)的路由條目篮愉。為了方便大家理解,我將主機(jī)A的路由表輸出顯示如下:

Active Routes:

Network Destination Netmask Gateway Interface Metric
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.0.0 255.255.255.0 192.168.0.5 192.168.0.5 10
192.168.0.5 255.255.255.255 127.0.0.1 127.0.0.1 10
192.168.0.255 255.255.255.255 192.168.0.5 192.168.0.5 10
224.0.0.0 240.0.0.0 192.168.0.5 192.168.0.5 10
255.255.255.255 255.255.255.255 192.168.0.5 192.168.0.5 1
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.5 10

Default Gateway: 192.168.0.1

從主機(jī)A路由表的輸出顯示中我們沒有找到與目標(biāo)主機(jī)B所在的網(wǎng)絡(luò)相匹配的具體路由差导,也就是說主機(jī)A沒有到達(dá)1.1.1.0這個(gè)網(wǎng)絡(luò)的路由试躏。但是我們注意到在該路由表的最后一行輸出的是: Default Gateway(默認(rèn)/缺省網(wǎng)關(guān)): 192.168.0.1 路由表最后一行的輸出說明主機(jī)A在沒有找到能夠到達(dá)目標(biāo)網(wǎng)絡(luò)的具體路由的情況下,會(huì)將發(fā)往目標(biāo)網(wǎng)絡(luò)的數(shù)據(jù)包發(fā)送到默認(rèn)/缺省網(wǎng)關(guān)(192.168.0.1)设褐,由這個(gè)默認(rèn)/缺省網(wǎng)關(guān)再將該數(shù)據(jù)包轉(zhuǎn)發(fā)到目標(biāo)網(wǎng)絡(luò)颠蕴。

好了,現(xiàn)在主機(jī)A知道了默認(rèn)網(wǎng)關(guān)(192.168.0.1)是自己的下一跳地址助析,主機(jī)A開始執(zhí)行封裝犀被。封裝信息如下:

目的MAC 源MAC: 源IP 目的IP ICMP報(bào)頭 (主機(jī)A)
下一跳設(shè)備的MAC 主機(jī)A的MAC地址 192.168.0.5 1.1.1.5 ICMP報(bào)頭 Ping 1.1.1.5

在以上所封裝的尋址信息當(dāng)中,主機(jī)A唯一不知道的就是“下一跳設(shè)備的MAC地址”外冀,這里的“下一跳設(shè)備MAC地址”是指主機(jī)A的默認(rèn)網(wǎng)關(guān)192.168.0.1的F0/0接口的MAC地址寡键。這里容易讓人產(chǎn)生一個(gè)困惑,主機(jī)A的目的IP地址是主機(jī)B雪隧,那么為什么主機(jī)A封裝的鏈路層的目的MAC地址卻是路由器F0/0的MAC地址呢西轩?原因是當(dāng)初人們?cè)谠O(shè)計(jì)數(shù)據(jù)鏈路層時(shí)主要考慮如何解決一條線路上相鄰兩端設(shè)備之間的通信。

從這個(gè)網(wǎng)絡(luò)場(chǎng)景中我們看到主機(jī)A和主機(jī)B從各自所處的物理位置上看并不屬于相鄰的兩臺(tái)設(shè)備(中間隔著一臺(tái)路由器)脑沿。既然主機(jī)B并不是主機(jī)A直接相鄰的設(shè)備藕畔,那么主機(jī)A在數(shù)據(jù)鏈路層封裝的目的MAC地址當(dāng)然就不可能是主機(jī)B了。主機(jī)A通過IP路由的流程判斷和查詢路由表知道要想到達(dá)主機(jī)B就必須將數(shù)據(jù)包發(fā)給路由器A的F0/0接口(F0/0接口也是主機(jī)A到達(dá)主機(jī)B必經(jīng)的直接相鄰的接口)庄拇,因此F0/0的MAC地址就成為主機(jī)A在數(shù)據(jù)鏈路層封裝的目的MAC地址注服。在本例中假如主機(jī)A要給Server A發(fā)送數(shù)據(jù)而不是給主機(jī)B,那么主機(jī)A在數(shù)據(jù)鏈路層封裝的目的MAC地址就是Server A的MAC地址,因?yàn)镾erver A與主機(jī)A是彼此直接相鄰的設(shè)備祠汇。那么對(duì)于主機(jī)A來說它是否知道路由器F0/0接口的MAC地址呢仍秤?主機(jī)A是不知道的。所以接下來主機(jī)A需要做的是如何才能找到F0/0接口的MAC地址以完成數(shù)據(jù)鏈路層的封裝成幀可很。首先主機(jī)A查看自己的ARP緩存表诗力,每臺(tái)主機(jī)/電腦都有這個(gè)ARP緩存表,該緩存表記錄著與自己發(fā)生過通信的所有的直接相鄰設(shè)備或主機(jī)的硬件地址(MAC地址)我抠,ARP緩存表經(jīng)過一段時(shí)間會(huì)自動(dòng)刪除苇本,比如Windows 的動(dòng)態(tài) ARP 緩存條目不超過 10 分鐘就會(huì)被刪除。如果主機(jī)A與路由器之前曾發(fā)生過通信菜拓,主機(jī)A自然能在ARP緩存表中找到路由器F0/0的硬件MAC地址瓣窄,可是如果這是主機(jī)A與路由器的第一次通信,則主機(jī)A會(huì)向網(wǎng)絡(luò)A上發(fā)送發(fā)送ARP廣播請(qǐng)求數(shù)據(jù)包纳鼎,該ARP請(qǐng)求包包含的關(guān)鍵信息如下:

發(fā)送方IP地址(192.168.0.5) 發(fā)送方MAC地址(主機(jī)A MAC地址)
目的IP地址(192.168.0.1) 目的MAC地址(000000000000)

以上ARP請(qǐng)求包中封裝的三項(xiàng)信息都是已知的俺夕,只有“目的MAC地址”這一信息是未知的(全“0”填充)。當(dāng)該ARP請(qǐng)求包發(fā)送到網(wǎng)絡(luò)A上時(shí)贱鄙,網(wǎng)絡(luò)A上的設(shè)備接收該ARP包并查看該ARP包內(nèi)的具體封裝信息劝贸。因?yàn)樵揂RP包中封裝的目的IP地址是192.168.0.1,所以只有具有192.168.0.1這個(gè)IP的接口或設(shè)備才應(yīng)答該ARP查詢請(qǐng)求逗宁,應(yīng)答者會(huì)將自己的硬件MAC地址封裝到這個(gè)ARP應(yīng)答數(shù)據(jù)包中映九。這個(gè)ARP應(yīng)答數(shù)據(jù)包(本例中由路由器F0/0接口發(fā)出ARP應(yīng)答)封裝的關(guān)鍵信息如下:

發(fā)送方IP地址(192.168.0.1) 發(fā)送方MAC地址(F0/0接口MAC地址)
目的IP地址(192.168.0.5) 目的MAC地址(主機(jī)A的MAC地址)

主機(jī)A通過ARP協(xié)議解析出路由器F0/0接口的MAC地址從而完成了數(shù)據(jù)鏈路層的封裝。通過主機(jī)A這個(gè)解析過程大家可以看到主機(jī)A在第一次與默認(rèn)網(wǎng)關(guān)通信時(shí)的確是費(fèi)了一番周折瞎颗,為了找到默認(rèn)網(wǎng)關(guān)F0/0接口的MAC地址也“耽擱”了一些時(shí)間件甥,這也是為什么我們?cè)诘谝淮蝡ing網(wǎng)絡(luò)上某臺(tái)主機(jī)/設(shè)備的時(shí)候通常會(huì)看到第一個(gè)數(shù)據(jù)包會(huì)出現(xiàn)“request timed out!”(請(qǐng)求超時(shí)!)的情況哼拔。最后主機(jī)A完成MAC地址解析后將該幀發(fā)送到網(wǎng)絡(luò)A上引有,該幀的具體封裝如下:

目的MAC 源MAC 源IP 目的IP ICMP報(bào)頭 (主機(jī)A)
路由器F0/0接口 主機(jī)A的MAC地址 192.168.0.5 1.1.1.5 ICMP報(bào)頭 Ping 1.1.1.5

因?yàn)樵搸哪康腗AC地址是F0/0的MAC地址,所以只有路由器的F0/0接口接收并處理該數(shù)據(jù)幀管挟。路由器將該幀解封裝并查看網(wǎng)絡(luò)層的封裝信息轿曙,路由器看到該數(shù)據(jù)包網(wǎng)絡(luò)層封裝的目的地址是1.1.1.5。路由器為了將這個(gè)數(shù)據(jù)包轉(zhuǎn)發(fā)到1.1.1.5僻孝,使用前面提到的“與運(yùn)算”的方法進(jìn)行計(jì)算导帝,依據(jù)計(jì)算結(jié)果判斷目標(biāo)地址1.1.1.5對(duì)于路由器自己來說在本地網(wǎng)絡(luò)還是在遠(yuǎn)程網(wǎng)絡(luò)。路由器所做“與運(yùn)算”過程簡(jiǎn)述如下:

路由器的F0/0接口上的IP地址192.168.0.1與F0/0接口的子網(wǎng)掩碼255.255.255.0作“與運(yùn)算”得到“結(jié)果1”穿铆;目標(biāo)地址1.1.1.5與路由器F0/0接口的子網(wǎng)掩碼255.255.255.0作“與運(yùn)算”得到“結(jié)果2”您单;“結(jié)果1”與“結(jié)果2”并不相同,證明目標(biāo)地址1.1.1.5并不處在路由器的F0/0接口所在的網(wǎng)絡(luò)A荞雏。

路由器的另一個(gè)接口F0/1的IP地址1.1.1.1與F0/1接口的子網(wǎng)掩碼255.255.255.0作“與運(yùn)算”得到“結(jié)果3”虐秦;目標(biāo)地址1.1.1.5與F0/1接口上的子網(wǎng)掩碼255.255.255.0作“與運(yùn)算”得到“結(jié)果4”平酿;“結(jié)果3”與“結(jié)果4”相同,證明目標(biāo)地址1.1.1.5處在路由器的F0/1接口所在的網(wǎng)絡(luò)B悦陋。這也就意味著路由器B只需將發(fā)送給1.1.1.5的數(shù)據(jù)包從F0/1接口發(fā)出去就OK了蜈彼。我們將路由器的這種路由稱為直接路由。

路由器得出上述結(jié)論后立刻執(zhí)行封裝俺驶,封裝的具體信息如下:

目的MAC 源MAC 源IP地址 目的IP地址 ICMP報(bào)頭 (主機(jī)A)
主機(jī)B的MAC地址 路由器F0/1接口 192.168.0.5 1.1.1.5 ICMP報(bào)頭 Ping 1.1.1.5

在以上路由器封裝的具體信息中的目的MAC地址是主機(jī)B的MAC地址幸逆。如果路由器在ARP緩存表中并未查到主機(jī)B的硬件MAC地址,則路由器仍然會(huì)像主機(jī)A查詢路由器F0/0接口硬件MAC地址一樣發(fā)送ARP請(qǐng)求來查詢主機(jī)B的MAC地址暮现。關(guān)于路由器對(duì)主機(jī)B 硬件MAC地址的查詢過程在這里就不再重復(fù)了还绘。

這樣主機(jī)B就收到了該數(shù)據(jù)幀,主機(jī)B對(duì)該幀進(jìn)行解封裝看到了網(wǎng)絡(luò)層封裝的目的IP地址栖袋,知道這個(gè)數(shù)據(jù)包的目的地是自己后拍顷,主機(jī)B繼續(xù)對(duì)其拆封裝并查看ICMP報(bào)頭內(nèi)的信息得出結(jié)論:這是一個(gè)請(qǐng)求自己進(jìn)行反饋的數(shù)據(jù)包,需要自己將這條“數(shù)據(jù)包已到達(dá)主機(jī)B”的信息回饋給主機(jī)A塘幅。因此主機(jī)B為了將回饋信息順利送達(dá)主機(jī)A需要經(jīng)過如封裝:

目的MAC 源MAC 源IP 目的IP ICMP報(bào)頭 對(duì)(主機(jī)A)
路由器F0/1接口 主機(jī)B的MAC地址 1.1.1.5 192.168.0.5 ICMP報(bào)頭 Ping 1.1.1.5的應(yīng)答

主機(jī)B在發(fā)送應(yīng)答數(shù)據(jù)包時(shí)封裝的目的MAC地址是路由器F0/1接口的MAC地址昔案,這也是主機(jī)B通過路由判斷和與運(yùn)算得出的結(jié)論,對(duì)于主機(jī)B來說路由器F0/1接口是它的下一跳电媳。

路由器F0/1接口在收到主機(jī)B發(fā)來的數(shù)據(jù)包后為了將其轉(zhuǎn)發(fā)給主機(jī)A再次進(jìn)行封裝爱沟,具體的封裝信息如下:

目的MAC 源MAC 源IP 目的IP ICMP報(bào)頭 對(duì)(主機(jī)A)
主機(jī)A的MAC地址 路由器F0/0接口 1.1.1.5 192.168.0.5 ICMP報(bào)頭 Ping 1.1.1.5的應(yīng)答

從主機(jī)A到路由器再到主機(jī)B執(zhí)行的封裝過程中我們可以看出網(wǎng)絡(luò)層封裝的信息是始終不變的:源IP是192.168.0.5 目的IP是1.1.1.5。始終變化的是一跳一跳的硬件MAC地址匆背。從主機(jī)B到路由器再到主機(jī)A執(zhí)行的封裝過程中我們同樣可以看出網(wǎng)絡(luò)層封裝的信息也是始終不變的:源IP是1.1.1.5目的IP是192.168.0.5。始終變化的還是一跳一跳的硬件MAC地址身冀。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末钝尸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子搂根,更是在濱河造成了極大的恐慌珍促,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剩愧,死亡現(xiàn)場(chǎng)離奇詭異猪叙,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)仁卷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門穴翩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人锦积,你說我怎么就攤上這事芒帕。” “怎么了丰介?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵背蟆,是天一觀的道長(zhǎng)鉴分。 經(jīng)常有香客問我,道長(zhǎng)带膀,這世上最難降的妖魔是什么志珍? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮垛叨,結(jié)果婚禮上伦糯,老公的妹妹穿的比我還像新娘。我一直安慰自己点额,他們只是感情好舔株,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著还棱,像睡著了一般载慈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上珍手,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天办铡,我揣著相機(jī)與錄音,去河邊找鬼琳要。 笑死寡具,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的稚补。 我是一名探鬼主播童叠,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼课幕!你這毒婦竟也來了厦坛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤乍惊,失蹤者是張志新(化名)和其女友劉穎杜秸,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體润绎,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡撬碟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了莉撇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呢蛤。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖棍郎,靈堂內(nèi)的尸體忽然破棺而出顾稀,到底是詐尸還是另有隱情,我是刑警寧澤坝撑,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布静秆,位于F島的核電站粮揉,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏抚笔。R本人自食惡果不足惜扶认,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望殊橙。 院中可真熱鬧辐宾,春花似錦、人聲如沸膨蛮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敞葛。三九已至誉察,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惹谐,已是汗流浹背持偏。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留氨肌,地道東北人鸿秆。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像怎囚,于是被迫代替她去往敵國(guó)和親卿叽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355