網(wǎng)絡(luò)模型:七層膨处、五層见秤、四層概念及功能分析

網(wǎng)絡(luò)開發(fā)過程中,經(jīng)常遇到各種協(xié)議真椿,如:TCP鹃答、UDP、HTTP突硝、FTP测摔、IP等。這些協(xié)議差別很大解恰、用途不同锋八。為了更好理解這些協(xié)議,需先掌握網(wǎng)絡(luò)分層模型护盈。

當(dāng)前查库,網(wǎng)絡(luò)模型存在三種劃分方式:

  1. 開放式系統(tǒng)互聯(lián)模型(Open System Interconnection Model,縮寫為 OSI model黄琼,簡(jiǎn)稱為 OSI 模型)樊销。
  2. TCP/IP 四層模型整慎。
  3. 五層模型。

如果互聯(lián)網(wǎng)只有一個(gè)協(xié)議統(tǒng)籌围苫,某個(gè)地方需要改變?cè)O(shè)計(jì)時(shí)裤园,就必須把所有部分整體換掉。分層之后只需把變動(dòng)的層替換掉即可剂府。把各層之間的接口部分規(guī)劃好之后拧揽,每個(gè)層內(nèi)部的設(shè)計(jì)就能夠自由改動(dòng)了。

層次化之后腺占,設(shè)計(jì)也變得相對(duì)簡(jiǎn)單了淤袜。處于應(yīng)用層之上的應(yīng)用,只考慮分配給自己的任務(wù)衰伯,而不需要弄清楚對(duì)方在地球上哪個(gè)地方铡羡,對(duì)方的傳輸路線是怎樣的,是否能確保傳輸送達(dá)等問題意鲸。

下面分別介紹各種劃分方式烦周。

1. OSI 模型

OSI 模型由國際標(biāo)準(zhǔn)化組織在 1984 年提出,試圖使各種計(jì)算機(jī)在世界范圍內(nèi)互聯(lián)為網(wǎng)絡(luò)的標(biāo)準(zhǔn)框架怎顾。

OSI 模型是一個(gè)七層體系結(jié)構(gòu)读慎,每層都有特定功能。七層協(xié)同工作槐雾,將數(shù)據(jù)從一個(gè)設(shè)備傳輸?shù)搅硪粋€(gè)設(shè)備夭委。

computer-network-seven-layers-of-OSI-model.png

1.1 第一層 物理層 Physical Layer

OSI 參考模型最底層是物理層,物理層負(fù)責(zé)在設(shè)備和物理傳輸介質(zhì)之間傳輸募强、接收非結(jié)構(gòu)化數(shù)據(jù)株灸,它將數(shù)字 bits 轉(zhuǎn)換為電、無線電或光信號(hào)钻注。規(guī)范定義了如電壓、電壓變化時(shí)間配猫、物理速率幅恋、最大傳輸距離等。

物理層負(fù)責(zé)將單個(gè) bits 從一個(gè)節(jié)點(diǎn)傳輸?shù)较乱粋€(gè)節(jié)點(diǎn)泵肄。當(dāng)接收數(shù)據(jù)時(shí)捆交,物理層接收信號(hào)、將其轉(zhuǎn)換為0和1腐巢,并發(fā)送給數(shù)據(jù)鏈路層品追,鏈路層將 frame 組合為原始狀態(tài)。

computer-network-osi-model-layers-bits.png

物理層功能如下:

  • 比特同步 bit synchronization:物理層通過提供原子鐘冯丙,實(shí)現(xiàn)發(fā)送肉瓦、接收比特同步。
  • 比特率控制 bit rate control:物理層定義了傳輸控制,決定每秒發(fā)送數(shù)據(jù)量泞莉。
  • 物理拓?fù)?physical topologies:物理層指定在網(wǎng)絡(luò)中排列不同設(shè)備哪雕、節(jié)點(diǎn)的方式,如總線鲫趁、星形或網(wǎng)狀拓?fù)洹?/li>
  • 傳輸模式 transmission mode:物理層還定義了兩個(gè)連接的設(shè)備間數(shù)據(jù)傳輸方式斯嚎。如:
    • 單工 simplex:數(shù)據(jù)傳輸是單向的,一方固定為發(fā)送端挨厚、另一方固定為接收端堡僻。
    • 半雙工 half-duplex:數(shù)據(jù)可以在一個(gè)信號(hào)載體的兩個(gè)方向上傳輸,但不能同時(shí)傳輸疫剃。
    • 全雙工 duplex:數(shù)據(jù)可以在兩個(gè)方向上同時(shí)傳輸钉疫,它在能力上相當(dāng)于兩個(gè)單工通信的結(jié)合。

網(wǎng)絡(luò)層慌申、數(shù)據(jù)鏈路層和物理層也稱為底層或硬件層陌选。

1.2 第二層 數(shù)據(jù)鏈路層 Data Link Layer

數(shù)據(jù)鏈路層(Data Link Layer,縮寫 DLL)負(fù)責(zé)節(jié)點(diǎn)到節(jié)點(diǎn)的消息傳遞蹄溉,該層的主要功能是確保在物理層上從一個(gè)節(jié)點(diǎn)到另一個(gè)節(jié)點(diǎn)正確傳輸數(shù)據(jù)咨油。當(dāng)數(shù)據(jù)包到達(dá)時(shí),DDL 使用 MAC 地址傳輸給目標(biāo)主機(jī)柒爵。

數(shù)據(jù)鏈路層被劃分為兩個(gè)子層:

  • 邏輯鏈路控制 Logical Link Control役电,簡(jiǎn)寫為 LLC。
  • 媒體訪問控制 Media Access Control棉胀,簡(jiǎn)寫為 MAC法瑟。

從網(wǎng)絡(luò)層接收的數(shù)據(jù)包(packet)根據(jù)網(wǎng)卡(Network Interface Card,縮寫為NIC)的幀大小進(jìn)一步分割唁奢。DLL 在發(fā)送方霎挟、接收方的 header 中封裝了 MAC 地址。

通過地址解析協(xié)議(Address Resolution Protocol麻掸,縮寫為ARP)酥夭,可以獲取擁有指定 IP 地址目標(biāo)主機(jī)的 MAC 地址。

數(shù)據(jù)鏈路層功能如下:

  • 封裝成幀 framing:它為發(fā)送方提供了一種對(duì)接收方有意義的一組比特脊奋,其通過將特殊的位模式附加到幀的開頭和結(jié)尾來實(shí)現(xiàn)熬北。
  • 物理尋址 physical addressing:創(chuàng)建幀后,data link layer 為每一幀的 header 添加發(fā)送方诚隙、接收方的 MAC 地址讶隐。
  • 錯(cuò)誤控制 error control:data link layer 的錯(cuò)誤控制機(jī)制會(huì)檢測(cè)、重發(fā)丟失或損壞的幀久又。
  • 流控制 flow control:雙方的速率必須保持恒定巫延,否則數(shù)據(jù)可能會(huì)被損壞效五。Flow control 協(xié)調(diào)在收到確認(rèn)之前可發(fā)送的數(shù)據(jù)量。
  • 訪問控制 access control:多個(gè)設(shè)備共享一個(gè)通信通道時(shí)烈评,MAC 子層用于確定給定時(shí)間哪個(gè)設(shè)備可以控制該通道火俄。

Data link layer 中的數(shù)據(jù)包稱為幀。

1.3 第三層 網(wǎng)絡(luò)層 Network Layer

網(wǎng)絡(luò)層用于將數(shù)據(jù)從一臺(tái)主機(jī)傳輸?shù)轿挥诓煌W(wǎng)絡(luò)中的另一臺(tái)主機(jī)讲冠。它還負(fù)責(zé)分組路由瓜客,即從多條路線中選取路徑最短的。Network layer 會(huì)把發(fā)送者竿开、接收者的 IP 地址放到 header 中谱仪。

網(wǎng)絡(luò)層功能如下:

  • 路由 routing:網(wǎng)絡(luò)層協(xié)議決定從源到目的地選取哪條線路。
  • 邏輯尋址 logical addressing:為唯一地標(biāo)識(shí)互聯(lián)網(wǎng)上的每個(gè)設(shè)備否彩,網(wǎng)絡(luò)層定義了一種尋址方案疯攒。發(fā)送者和接收者的 IP 地址由網(wǎng)絡(luò)層放置到 header 中。

1.4 第四層 傳輸層 Transport Layer

傳輸層從網(wǎng)絡(luò)層獲取服務(wù)列荔,并向應(yīng)用層提供服務(wù)敬尺。Transport layer 提供端到端的消息傳遞服務(wù),發(fā)送成功后返回確認(rèn)贴浙、數(shù)據(jù)出錯(cuò)后重發(fā)的功能砂吞。Transport layer 中的數(shù)據(jù)稱為 segments。

1.4.1 發(fā)送方

Transport layer 從上層接收格式化數(shù)據(jù)崎溃,對(duì)數(shù)據(jù)進(jìn)行分片蜻直,流量、錯(cuò)誤控制袁串,確保正確的數(shù)據(jù)傳輸概而。還會(huì)將源、目標(biāo)主機(jī)端口號(hào)添加到 header囱修,并將 segment 數(shù)據(jù)轉(zhuǎn)發(fā)給 network layer赎瑰。

1.4.2 接收方

Transport layer 從 header 讀取端口號(hào),并將數(shù)據(jù)轉(zhuǎn)發(fā)給對(duì)應(yīng) app破镰,還會(huì)對(duì)分段數(shù)據(jù)進(jìn)行排序和重組餐曼。

Transport layer 提供以下功能:

  • 分段和重組 segmentation and reassembly:傳輸層從 session layer 接收 message,將 message 分割為更小單位啤咽,每個(gè) segment 都關(guān)聯(lián)一個(gè) header晋辆。傳輸層在目標(biāo)端重組 message渠脉。
  • 服務(wù)點(diǎn)尋址 service point addressing:為了將消息傳遞給正確的進(jìn)程宇整,transport layer header 包含 service point addressing 或 port address。

Transport layer 有兩個(gè)性質(zhì)不同的協(xié)議:

  • TCP(Transmission Control Protocol芋膘,傳輸控制協(xié)議)鳞青,面向鏈接霸饲,是 byte stream。
    • 數(shù)據(jù)按順序到達(dá)臂拓。
    • 數(shù)據(jù)最小錯(cuò)誤厚脉。
    • 重復(fù)數(shù)據(jù)被丟棄。
    • 丟失胶惰、缺失的數(shù)據(jù)會(huì)重發(fā)傻工。
    • 流量擁塞控制。
  • UDP(User Data Protocol孵滞,用戶數(shù)據(jù)報(bào)協(xié)議)中捆,無鏈接,不可靠坊饶。
    • 使用弱校驗(yàn)和算法(weak checksum algorithm)檢查錯(cuò)誤泄伪。
    • 用于對(duì)準(zhǔn)時(shí)性要求高,可靠性要求低的流媒體(音頻匿级、視頻蟋滴、Voice over IP 等),或者建立可靠鏈接消耗太大的簡(jiǎn)單查詢痘绎,如 DNS 解析津函。

Transport layer 中的數(shù)據(jù)被稱為 segment。Transport layer 由操作系統(tǒng)管理简逮,是 OSI 模型的核心球散。

1.5 第五層 會(huì)話層 Session Layer

會(huì)話層負(fù)責(zé)建立連接,維護(hù)會(huì)話散庶、認(rèn)證蕉堰,并確保安全。

Session layer 功能如下:

  • 建立悲龟、維護(hù)屋讶、終止會(huì)話。
  • 同步:會(huì)話層允許進(jìn)程向數(shù)據(jù)中添加同步點(diǎn)须教,用于定位錯(cuò)誤皿渗,避免數(shù)據(jù)丟失。
  • 對(duì)話控制:會(huì)話層允許兩個(gè)系統(tǒng)以半雙工或全雙工方式互相通信轻腺。

1.6 第六層 表示層 Presentation Layer

表示層也稱為轉(zhuǎn)換層(translation layer)乐疆。在表示層提取應(yīng)用層的數(shù)據(jù),并根據(jù)需要轉(zhuǎn)換格式贬养,以便通過網(wǎng)絡(luò)傳輸挤土。

表示層功能如下:

  • 轉(zhuǎn)換。例如误算,將 ASCII 轉(zhuǎn)換為 EBCDIC仰美。
  • 加密迷殿、解密。加密時(shí)將數(shù)據(jù)轉(zhuǎn)換為另一種樣式咖杂,加密后的數(shù)據(jù)被稱為密文庆寺,解密后的數(shù)據(jù)被稱為明文。加密诉字、解密時(shí)需要使用對(duì)應(yīng)的 key懦尝。
  • 壓縮:壓縮可以減少需傳送的數(shù)據(jù)量。

1.7 第七層 應(yīng)用層 Application Layer

OSI 模型的最頂層是應(yīng)用層壤圃,應(yīng)用層是 app 訪問網(wǎng)絡(luò)导披、向用戶顯示接收到信息的窗口。

應(yīng)用層功能如下:

  • 網(wǎng)絡(luò)虛擬終端埃唯。
  • FTAM-File 傳輸?shù)脑L問與管理撩匕。
  • 郵件服務(wù)。
  • 目錄服務(wù)墨叛。

2. TCP/IP 四層模型

OSI 模型是一個(gè)參考/邏輯模型止毕,它旨在通過將通信過程分為更小、更簡(jiǎn)單的組件來描述通信系統(tǒng)的功能漠趁。TCP/IP 是 Transmission Control Protocol/Internet Protocol 協(xié)議的縮寫扁凛,包含以下四層:

  1. 網(wǎng)絡(luò)接口層 Network Interface。
  2. 網(wǎng)絡(luò)層 Internet Layer闯传。
  3. 傳輸層 Transport Layer / Host-to-Host谨朝。
  4. 應(yīng)用層 Application Layer。
computer-network-TCP-IP-model-vs-OSI-model.png

2.1 第一層 網(wǎng)絡(luò)接口層 Network Interface

TCP/IP 模型中的 network interface 對(duì)應(yīng) OSI model 中的 data link 和 physical甥绿。網(wǎng)絡(luò)接口層進(jìn)行硬件尋址字币、物理傳輸數(shù)據(jù)。

2.2 第二層 網(wǎng)絡(luò)層 Internet Layer

TCP/IP模型中的網(wǎng)絡(luò)層與 OSI 模型中的網(wǎng)絡(luò)層對(duì)應(yīng)共缕,定義了數(shù)據(jù)邏輯傳輸?shù)膮f(xié)議洗出。網(wǎng)絡(luò)層主要協(xié)議有:

  • 互聯(lián)網(wǎng)協(xié)議(Internet Protocol,縮寫為 IP):根據(jù)數(shù)據(jù)包 header图谷,將其從發(fā)送方傳遞到接收方翩活。IP 有 IPv4 和 IPv6 兩個(gè)版本。
  • 互聯(lián)網(wǎng)控制消息協(xié)議(Internet Control Message Protocol便贵,縮寫為 ICMP):用于 IP 中發(fā)送控制消息菠镇,用于定位通信中各種問題。
  • 地址解析協(xié)議(Address Resolution Protocol承璃,縮寫為 ARP):用于獲取擁有指定 IP 地址目標(biāo)主機(jī)的 MAC 地址利耍。

2.3 第三層 傳輸層 Transport Layer

TCP/IP 模型中的 transport layer 對(duì)應(yīng) OSI 模型中的 transport layer,負(fù)責(zé)端到端數(shù)據(jù)傳輸和錯(cuò)誤控制。Transport layer 主要協(xié)議有面向連接的 TCP 協(xié)議堂竟、無鏈接的 UDP 協(xié)議。

2.4 第四層 應(yīng)用層 Application Layer

TCP/IP 模型中的應(yīng)用層對(duì)應(yīng) OSI 模型中的 application layer玻佩、presentation layer出嘹、session layer 三層。負(fù)責(zé)節(jié)點(diǎn)到節(jié)點(diǎn)的通信咬崔,并控制用戶界面税稼。

應(yīng)用層協(xié)議有:HTTP、HTTPS垮斯、FTP郎仆、TFTP、Telnet兜蠕、SSH扰肌、SMTP、SNMP熊杨、DNS等曙旭。

3. 五層模型

雖然 OSI 模型由國際標(biāo)準(zhǔn)組織制定,但其實(shí)現(xiàn)過于復(fù)雜晶府、制定周期過長(zhǎng)桂躏,在其整套標(biāo)準(zhǔn)推出之前,TCP/IP 模型已經(jīng)在全球范圍內(nèi)被廣泛使用川陆,因此剂习,TCP/IP 模型才是事實(shí)上的標(biāo)準(zhǔn)。

TCP/IP 模型定義了應(yīng)用層较沪、傳輸層鳞绕、網(wǎng)際層、網(wǎng)絡(luò)接口層共四層尸曼,但并沒有給出接口層的具體實(shí)現(xiàn)猾昆。因此,通常將網(wǎng)絡(luò)接口層替換為 OSI 七層模型中的數(shù)據(jù)鏈路層和物理層骡苞,這就是五層網(wǎng)絡(luò)模型:

computer-network-compare-model.png

4. 傳輸過程中如何處理數(shù)據(jù)

在分層系統(tǒng)中垂蜗,層之間使用不同格式交換數(shù)據(jù),被稱為協(xié)議數(shù)據(jù)單元(Protocol data unit解幽,縮寫為 PDU)贴见。下圖顯示了不同層之間 PDU:

computer-network-PDU.png

例如,當(dāng)用戶請(qǐng)求訪問網(wǎng)站時(shí)躲株,服務(wù)器把請(qǐng)求的數(shù)據(jù)傳遞給 application layer片部。此時(shí),從上層至下層各層根據(jù)約定執(zhí)行相應(yīng)操作霜定,數(shù)據(jù)通過物理層傳遞給接收者档悠。接收者收到數(shù)據(jù)后廊鸥,從底層向上傳輸,每層執(zhí)行相應(yīng)功能辖所,直到發(fā)送給對(duì)應(yīng) app惰说。

computer-network-how-data-is-processed-in-OSI-and-TCPIP-models.jpg

從上層向下層傳輸過程中,每層會(huì)為 PDU 添加 header缘回、footer吆视,用以指導(dǎo)、標(biāo)記 packet酥宴,這個(gè)過程稱為封裝啦吧。Header、footer 和 data 共同構(gòu)成下一層的 PDU拙寡。整個(gè)過程持續(xù)到最底層授滓,即 physical layer 或 network access layer,數(shù)據(jù)從這一層傳輸給接收者肆糕。接收者處理過程相反褒墨,每層根據(jù) header、footer 解封裝數(shù)據(jù)擎宝,直到所有數(shù)據(jù)接收郁妈、處理完畢。

5. TCP/IP 和 OSI 對(duì)故障排除的意義

有了分層概念绍申,當(dāng)連接失敗時(shí)更容易檢查故障噩咪。每一層都為上一層服務(wù),檢查時(shí)應(yīng)從底層開始极阅。例如胃碾,當(dāng)計(jì)算機(jī)無法連接到網(wǎng)絡(luò)時(shí),應(yīng)先檢查是否接入了網(wǎng)線筋搏,或路由器是否連接到了網(wǎng)線仆百,RJ45 引腳是否完好等。

總結(jié)

盡管仍然經(jīng)常引用 OSI 模型奔脐,但 Internet protocol 組件已經(jīng)成為網(wǎng)絡(luò)協(xié)議的標(biāo)準(zhǔn)俄周。TCP/IP 簡(jiǎn)潔的實(shí)現(xiàn)方式、相互獨(dú)立的協(xié)議髓迎,使其成為現(xiàn)實(shí)中的標(biāo)準(zhǔn)峦朗。

HTTP 建立連接的過程中需要三次握手,如果你對(duì)握手過程不了解排龄,可以查看我的另一篇文章三次握手波势、七次握手、四次揮手

參考資料:

  1. Layers of OSI Model

  2. TCP/IP Model

  3. TCP/IP vs. OSI: What’s the Difference Between the Two Models?

  4. TCP/IP vs OSI Model: What's the Difference?

歡迎更多指正:https://github.com/pro648/tips

本文地址:https://github.com/pro648/tips/blob/master/sources/網(wǎng)絡(luò)模型:七層尺铣、五層拴曲、四層概念及功能分析.md

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市凛忿,隨后出現(xiàn)的幾起案子澈灼,更是在濱河造成了極大的恐慌,老刑警劉巖侄非,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異流译,居然都是意外死亡逞怨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門福澡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叠赦,“玉大人,你說我怎么就攤上這事革砸〕悖” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵算利,是天一觀的道長(zhǎng)册踩。 經(jīng)常有香客問我,道長(zhǎng)效拭,這世上最難降的妖魔是什么暂吉? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮缎患,結(jié)果婚禮上慕的,老公的妹妹穿的比我還像新娘。我一直安慰自己挤渔,他們只是感情好肮街,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著判导,像睡著了一般嫉父。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上眼刃,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天熔号,我揣著相機(jī)與錄音,去河邊找鬼鸟整。 笑死引镊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弟头,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吩抓,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了赴恨?” 一聲冷哼從身側(cè)響起疹娶,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎伦连,沒想到半個(gè)月后雨饺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惑淳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年额港,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片歧焦。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡移斩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出绢馍,到底是詐尸還是另有隱情向瓷,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布舰涌,位于F島的核電站猖任,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏瓷耙。R本人自食惡果不足惜超升,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哺徊。 院中可真熱鬧室琢,春花似錦、人聲如沸落追。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽轿钠。三九已至巢钓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疗垛,已是汗流浹背症汹。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贷腕,地道東北人背镇。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓咬展,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親瞒斩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子破婆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

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