聊一聊計(jì)算機(jī)網(wǎng)絡(luò)的五層模型

正文

上面說了一些題外話,哈哈瞻想。下面我們開始今天的知識(shí)點(diǎn)胞枕。

互聯(lián)網(wǎng)相隔n公里路的兩臺(tái)計(jì)算機(jī)杆煞,是如何進(jìn)行數(shù)據(jù)的傳送的呢?在成千上萬臺(tái)的計(jì)算機(jī)中腐泻,一臺(tái)計(jì)算機(jī)是如何正確著找到另外一個(gè)計(jì)算機(jī)决乎,并把數(shù)據(jù)傳給它的呢?

學(xué)過計(jì)算機(jī)網(wǎng)絡(luò)的同學(xué)可能知道派桩,在這互聯(lián)網(wǎng)中构诚,計(jì)算機(jī)與計(jì)算機(jī)之間的數(shù)據(jù)傳送,主要是基于各種“協(xié)議”串聯(lián)起來的铆惑。不過今天要講的范嘱,并不會(huì)詳細(xì)去講各種協(xié)議,而是通過各種簡化之后员魏,讓你大概知道數(shù)據(jù)之間傳送的原理丑蛤。

模型

互聯(lián)網(wǎng)中數(shù)據(jù)的傳送,其實(shí)分為好幾層來處理數(shù)據(jù)的逆趋,每一層有它自己明確的功能盏阶。例如就像流水線生產(chǎn)一樣,一部分人負(fù)責(zé)這部分的工作闻书,處理完之后就把剩余的工作扔給另外一部分人來處理......

對于互聯(lián)網(wǎng)數(shù)據(jù)傳送的分層模型名斟,有分成七層的,有分成5層的魄眉,還有分成4層的砰盐。例如分成七層模型的如下(從上到下):

  • 應(yīng)用層
  • 表示層
  • 會(huì)話層
  • 傳輸層
  • 網(wǎng)絡(luò)層
  • 數(shù)據(jù)鏈路層
  • 物理層

七層中,越往下越靠近計(jì)算機(jī)底層坑律,越往上越靠近用戶岩梳。

不過,我們今天要講的,是以分成五層的模型來講冀值。其分層如下圖:

五層模式.png

相當(dāng)于把應(yīng)用層也物、表示層、會(huì)話層看成是一層的列疗。接下來我們從下往上來一步一步講滑蚯,看看如何從一臺(tái)計(jì)算機(jī)準(zhǔn)確著傳給另一臺(tái)計(jì)算機(jī)的。

一. 物理層

一臺(tái)計(jì)算機(jī)與另一臺(tái)計(jì)算機(jī)要進(jìn)行通信抵栈,第一件要做的事是什么告材?當(dāng)然是要把這臺(tái)計(jì)算機(jī)與另外的其他計(jì)算機(jī)連起來啊,例如可以通過光纖啊古劲,電纜啊斥赋,雙絞線啊等物體把他們聯(lián)起來。然后才能進(jìn)行通信产艾,也就是說疤剑,,物理層負(fù)責(zé)把兩臺(tái)計(jì)算機(jī)連起來胰舆,然后在計(jì)算機(jī)之間傳送0,1這樣的電信號(hào)骚露。

二. 數(shù)據(jù)鏈路層

前面說了,物理層它只是單純著負(fù)責(zé)在計(jì)算機(jī)之間傳輸0缚窿,1這樣的電信號(hào)棘幸。假如這些0,1組合的傳送毫無規(guī)則倦零,計(jì)算機(jī)是解讀不了的误续。因此,我們需要制定一套規(guī)則來進(jìn)行0扫茅,1的傳送蹋嵌。例如多少個(gè)電信號(hào)為一組啊,每一組信號(hào)應(yīng)該如何標(biāo)識(shí)才能讓計(jì)算機(jī)讀懂啊等葫隙。

數(shù)據(jù)鏈路層工作在物理層之上栽烂,負(fù)責(zé)給這些0,1制定傳送的規(guī)則恋脚,然后另一方再按照相應(yīng)的規(guī)則來進(jìn)行解讀腺办。

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

以太網(wǎng)協(xié)議規(guī)定,一組電信號(hào)構(gòu)成一個(gè)數(shù)據(jù)包糟描,把這個(gè)數(shù)據(jù)包稱之為“楨”怀喉。每一個(gè)楨由標(biāo)頭(Head)數(shù)據(jù)(Data)兩部分組成。如下:

image

這個(gè)楨的最大長度是1518個(gè)字節(jié)船响,最小長度為64字節(jié)躬拢。假如需要傳送的數(shù)據(jù)很大的話躲履,就分成多個(gè)楨來進(jìn)行傳送。

對于表頭數(shù)據(jù)這兩個(gè)部分聊闯,他們存放的都是一些什么數(shù)據(jù)呢工猜?我猜你瞇著眼睛都能想到他們應(yīng)該放什么數(shù)據(jù)。 毫無疑問菱蔬,我們至少得知道這個(gè)楨是誰發(fā)送域慷,發(fā)送給誰的等這些信息吧?所以標(biāo)頭部分主要是一些說明數(shù)據(jù)汗销,例如發(fā)送者,接收者等信息抵窒。而數(shù)據(jù)部分則是這個(gè)數(shù)據(jù)包具體的弛针,想給接受的內(nèi)容。

大家想一個(gè)問題李皇,一個(gè)楨的長度是64~1518個(gè)字節(jié)削茁,也就是說楨的長度不是固定的,那你覺得標(biāo)頭部分的字節(jié)長度是固定的嗎掉房?它當(dāng)然是固定的啊茧跋,假如不是固定的,每個(gè)楨都是單獨(dú)發(fā)的卓囚,那計(jì)算機(jī)怎么知道標(biāo)頭是幾個(gè)字節(jié)瘾杭,數(shù)據(jù)是幾個(gè)字節(jié)。所以標(biāo)頭部分的字節(jié)是固定的哪亿,并且固定為18個(gè)字節(jié)粥烁。

2. MAC地址

把一臺(tái)計(jì)算的的數(shù)據(jù)通過物理層和鏈路層發(fā)送給另一臺(tái)計(jì)算機(jī),究竟是誰發(fā)給誰的蝇棉,計(jì)算機(jī)與計(jì)算機(jī)之間如何區(qū)分讨阻,,你總得給他們一個(gè)唯一的標(biāo)識(shí)吧篡殷?

這就是MAC地址钝吮,連入網(wǎng)絡(luò)的每一個(gè)計(jì)算機(jī)都會(huì)有網(wǎng)卡接口,每一個(gè)網(wǎng)卡都會(huì)一個(gè)地址板辽,這個(gè)地址就叫做MAC地址奇瘦。計(jì)算機(jī)之間的數(shù)據(jù)傳送,就是通過MAC地址來唯一尋找戳气、傳送的链患。MAC地址在網(wǎng)卡生產(chǎn)是就被唯一標(biāo)識(shí)了。

3. 廣播與ARP協(xié)議

image

如圖瓶您,假如計(jì)算機(jī)A知道了計(jì)算機(jī)B的MAC地址麻捻,然后計(jì)算機(jī)A想要給計(jì)算機(jī)B傳送數(shù)據(jù)纲仍,雖然計(jì)算機(jī)A知道了計(jì)算機(jī)B的MAC地址,可是它要怎么給它傳送數(shù)據(jù)呢贸毕?計(jì)算機(jī)A不僅連著計(jì)算機(jī)B郑叠,而且計(jì)算機(jī)A也還連著其他的計(jì)算機(jī)。 雖然計(jì)算機(jī)A知道計(jì)算機(jī)B的MAC地址明棍,可是計(jì)算機(jī)A是無法知道計(jì)算機(jī)B是分布在哪邊路線上的乡革。實(shí)際上,計(jì)算機(jī)A是通過廣播的方式把數(shù)據(jù)發(fā)送給計(jì)算機(jī)B摊腋。在同一個(gè)子網(wǎng)中沸版,計(jì)算機(jī)A要向計(jì)算機(jī)B發(fā)送一個(gè)數(shù)據(jù)包,這個(gè)數(shù)據(jù)包包含接收者的MAC地址兴蒸。這個(gè)時(shí)候同一個(gè)子網(wǎng)中的計(jì)算機(jī)C,D也會(huì)收到這個(gè)數(shù)據(jù)包的视粮,然后收到這個(gè)數(shù)據(jù)包的計(jì)算機(jī),會(huì)把數(shù)據(jù)包的MAC地址取出來橙凳,與自身的MAC地址對比蕾殴,如果兩者相同,則接受這個(gè)數(shù)據(jù)包岛啸,否則就丟棄這個(gè)數(shù)據(jù)包钓觉。這種發(fā)送方式我們稱之為廣播,就像我們平時(shí)在廣場上通過廣播的形式呼叫某個(gè)人一樣。

那么問題來了坚踩,計(jì)算機(jī)A是如何知道計(jì)算機(jī)B的MAC地址的呢荡灾?這個(gè)時(shí)候就得由ARP協(xié)議這個(gè)家伙來解決了,不過ARP協(xié)議會(huì)涉及到IP地址堕虹,不過我們下面才會(huì)扯到IP地址卧晓。因此我們先放著,就當(dāng)作是有這么一個(gè)ARP協(xié)議赴捞,通過它我們可以知道子網(wǎng)中其他計(jì)算機(jī)的MAC地址逼裆。

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

上面我們有說到子網(wǎng)這個(gè)關(guān)鍵詞,實(shí)際上我們所處的網(wǎng)絡(luò)赦政,是由無數(shù)個(gè)子網(wǎng)絡(luò)構(gòu)成的胜宇。廣播的時(shí)候,也只有同一個(gè)子網(wǎng)里面的計(jì)算機(jī)能夠收到恢着。 假如沒有子網(wǎng)這種劃分的話桐愉,計(jì)算機(jī)A發(fā)一個(gè)數(shù)據(jù)包給計(jì)算機(jī)B,其他所有計(jì)算機(jī)也都能收到這個(gè)數(shù)據(jù)包,然后進(jìn)行對比再舍棄掰派。世界上有那么多它計(jì)算機(jī)从诲,每一臺(tái)計(jì)算機(jī)都能收到其他所有計(jì)算機(jī)的數(shù)據(jù)包,那就不得了了靡羡。那還不得奔潰系洛。 因此產(chǎn)生了子網(wǎng)這么一個(gè)東西俊性。

那么問題來了,我們?nèi)绾螀^(qū)分哪些MAC地址是屬于同一個(gè)子網(wǎng)的呢描扯?假如是同一個(gè)子網(wǎng)定页,那我們就用廣播的形式把數(shù)據(jù)傳送給對方,如果不是同一個(gè)子網(wǎng)的绽诚,我們就會(huì)把數(shù)據(jù)發(fā)給網(wǎng)關(guān)典徊,讓網(wǎng)關(guān)進(jìn)行轉(zhuǎn)發(fā)。

為了解決這個(gè)問題我們引入了一套新的地址協(xié)議恩够,這個(gè)地址協(xié)議能夠幫助我們區(qū)分MAC地址是否處于同一個(gè)子網(wǎng)中卒落。這也是網(wǎng)絡(luò)層負(fù)責(zé)解決的問題。

1. IP協(xié)議

這個(gè)協(xié)議就是IP協(xié)議蜂桶,它所定義的地址导绷,我們稱之為IP地址。IP協(xié)議有兩種版本屎飘,一種是IPv4,另一種是IPv6。不過我們目前大多數(shù)用的還是IPv4贾费,我們現(xiàn)在也只討論IPv4這個(gè)版本的協(xié)議钦购。

這個(gè)IP地址由32為的二進(jìn)制數(shù)組成,我們一般把它分成4段的十進(jìn)制表示褂萧,地址范圍為0.0.0.0~255.255.255.255

每一臺(tái)想要聯(lián)網(wǎng)的計(jì)算機(jī)都會(huì)有一個(gè)IP地址押桃。這個(gè)IP地址被分為兩部分,前面一部分代表網(wǎng)絡(luò)部分导犹,后面一部分代表主機(jī)部分唱凯。并且網(wǎng)絡(luò)部分和主機(jī)部分的二進(jìn)制位數(shù)是不固定的。

假如兩臺(tái)計(jì)算機(jī)的網(wǎng)絡(luò)部分是一模一樣的谎痢,我們就說這兩臺(tái)計(jì)算機(jī)是處于同一個(gè)子網(wǎng)中磕昼。例如192.168.43.1和192.168.43.2,假如這兩個(gè)IP地址的網(wǎng)絡(luò)部分為24為,主機(jī)部分為8位节猿。那么他們的網(wǎng)絡(luò)部分都為192.168.43票从,所以他們處于同一個(gè)子網(wǎng)中。

可是問題來了滨嘱,你怎么知道網(wǎng)絡(luò)部分是占幾位峰鄙。也就是說,單單從兩臺(tái)計(jì)算機(jī)的IP地址太雨,我們是無法判斷他們的是否處于同一個(gè)子網(wǎng)中的吟榴。

這就引申出了另一個(gè)關(guān)鍵詞————子碼掩碼。子碼掩碼和IP地址一樣也是32位二進(jìn)制數(shù)囊扳,不過它的網(wǎng)絡(luò)部分規(guī)定全部為1吩翻,主機(jī)部分規(guī)定全部為0.也就是說兜看,假如上面那兩個(gè)IP地址的網(wǎng)絡(luò)部分為24為,主機(jī)部分為8為的話仿野,那他們的子碼掩碼都為11111111.11111111.11111111.00000000铣减,即255.255.255.0。

那有了子字碼掩碼脚作,如何來判端IP地址是否處于同一個(gè)子網(wǎng)中呢葫哗。顯然,知道了子碼掩碼球涛,相當(dāng)于我們知道了網(wǎng)絡(luò)部分是幾位劣针,主機(jī)部分是幾位。我們只需要把IP地址與它的子碼掩碼做與(and)運(yùn)算亿扁,然后把各自的結(jié)果進(jìn)行比較就行了捺典,如果比較的結(jié)果相同,則代表是同一個(gè)子網(wǎng)从祝,否則不是同一個(gè)子網(wǎng)襟己。

例如,192.168.43.1和192.168.43.2的子碼掩碼都為255.255.255.0牍陌,把IP與子碼掩碼相與擎浴,可以得到他們都為192.168.43.0,進(jìn)而他們處于同一個(gè)子網(wǎng)中毒涧。

ARP協(xié)議

有了上面IP協(xié)議的知識(shí)贮预,我們回來講一下ARP協(xié)議。
有了兩臺(tái)計(jì)算機(jī)的IP地址契讲,我們就可以判斷出它們是否處于同一個(gè)子網(wǎng)之中仿吞。 假如他們處于同一個(gè)子網(wǎng)之中,計(jì)算機(jī)A要給計(jì)算機(jī)B發(fā)送數(shù)據(jù)時(shí)捡偏。我們可以通過ARP協(xié)議來得到計(jì)算機(jī)B的MAC地址唤冈。ARP協(xié)議也是通過廣播的形式給同一個(gè)子網(wǎng)中的每臺(tái)電腦發(fā)送一個(gè)數(shù)據(jù)包(當(dāng)然,這個(gè)數(shù)據(jù)包會(huì)包含接收方的IP地址)银伟。對方收到這個(gè)數(shù)據(jù)包之后务傲,會(huì)取出IP地址與自身的對比,如果相同枣申,則把自己的MAC地址回復(fù)給對方售葡,否則就丟棄這個(gè)數(shù)據(jù)包。這樣忠藤,計(jì)算機(jī)A就能知道計(jì)算機(jī)B的MAC地址了挟伙。

可能有人會(huì)問,知道了MAC地址之后,發(fā)送數(shù)據(jù)是通過廣播的形式發(fā)送尖阔,詢問對方的MAC地址也是通過廣播的形式來發(fā)送贮缅,那其他計(jì)算機(jī)怎么知道你是要傳送數(shù)據(jù)還是要詢問MAC地址呢?其實(shí)在詢問MAC地址的數(shù)據(jù)包中介却,在對方的MAC地址這一欄中谴供,填的是一個(gè)特殊的MAC地址,其他計(jì)算機(jī)看到這個(gè)特殊的MAC地址之后齿坷,就能知道廣播想干嘛了桂肌。

假如兩臺(tái)計(jì)算機(jī)的IP不是處于同一個(gè)子網(wǎng)之中,這個(gè)時(shí)候永淌,我們就會(huì)把數(shù)據(jù)包發(fā)送給網(wǎng)關(guān)崎场,然后讓網(wǎng)關(guān)讓我們進(jìn)行轉(zhuǎn)發(fā)傳送

DNS服務(wù)器

這里再說一個(gè)問題,我們是如何知道對方計(jì)算機(jī)的IP地址的呢遂蛀?這個(gè)問題可能有人會(huì)覺得很白癡谭跨,心想,當(dāng)然是計(jì)算機(jī)的操作者來進(jìn)行輸入了李滴。這沒錯(cuò)螃宙,當(dāng)我們想要訪問某個(gè)網(wǎng)站的時(shí)候,我們可以輸入IP來進(jìn)行訪問所坯,但是我相信絕大多數(shù)人是輸入一個(gè)網(wǎng)址域名的污呼,例如訪問百度是輸入www.baidu.com這個(gè)域名。其實(shí)當(dāng)我們輸入這個(gè)域名時(shí)包竹,會(huì)有一個(gè)叫做DNS服務(wù)器的家伙來幫我們解析這個(gè)域名,然后返回這個(gè)域名對應(yīng)的IP給我們的籍凝。

四. 傳輸層

雖然我們已經(jīng)把數(shù)據(jù)成功從計(jì)算機(jī)A傳送到計(jì)算機(jī)B了周瞎,可是,計(jì)算機(jī)B里面有各種各樣的應(yīng)用程序饵蒂,計(jì)算機(jī)該如何知道這些數(shù)據(jù)是給誰的呢声诸?

這個(gè)時(shí)候,端口(Port)這個(gè)家伙就上場了退盯,也就是說彼乌,我們在從計(jì)算機(jī)A傳數(shù)據(jù)給計(jì)算表B的時(shí)候,還得指定一個(gè)端口渊迁,以供特定的應(yīng)用程序來接受處理慰照。
也就是說,傳輸層的功能就是建立端口到端口的通信琉朽。相比網(wǎng)絡(luò)層的功能是建立主機(jī)到主機(jī)的通信毒租。

也就是說,有了IP和端口箱叁,我們就可以進(jìn)行通信了墅垮。這個(gè)時(shí)候可能有人會(huì)說惕医,我輸入IP地址的時(shí)候并沒有指定一個(gè)端口啊。其實(shí)呢算色,對于有些傳輸協(xié)議抬伺,已經(jīng)有設(shè)定了一些默認(rèn)端口了。例如http的傳輸默認(rèn)端口是80灾梦,這些端口信息也會(huì)包含在數(shù)據(jù)包里的峡钓。

應(yīng)用層

終于說到應(yīng)用層了,應(yīng)用層這一層最接近我們用戶了。

雖然我們收到了傳輸層傳來的數(shù)據(jù)大磺,可是這些傳過來的數(shù)據(jù)五花八門恢总,有html格式的,有mp4格式的捧灰,各種各樣。你確定你能看的懂统锤?

因此我們需要指定這些數(shù)據(jù)的格式規(guī)則毛俏,收到后才好解讀渲染。而應(yīng)用層的功能饲窿,就是用來規(guī)定應(yīng)用程序的數(shù)據(jù)格式的煌寇。

五層模型至此講到這里。對于有些層講的比較簡潔逾雄,就隨便概況了一下阀溶。如果你想詳細(xì)去了解,可以去買計(jì)算機(jī)網(wǎng)絡(luò)相應(yīng)的資料鸦泳。希望我的講解能讓你對計(jì)算機(jī)之間數(shù)據(jù)的傳輸有個(gè)大概的了解银锻。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市做鹰,隨后出現(xiàn)的幾起案子击纬,更是在濱河造成了極大的恐慌,老刑警劉巖钾麸,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件更振,死亡現(xiàn)場離奇詭異,居然都是意外死亡饭尝,警方通過查閱死者的電腦和手機(jī)肯腕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钥平,“玉大人乎芳,你說我怎么就攤上這事。” “怎么了奈惑?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵吭净,是天一觀的道長。 經(jīng)常有香客問我肴甸,道長寂殉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任原在,我火速辦了婚禮友扰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庶柿。我一直安慰自己村怪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布浮庐。 她就那樣靜靜地躺著甚负,像睡著了一般。 火紅的嫁衣襯著肌膚如雪审残。 梳的紋絲不亂的頭發(fā)上梭域,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音搅轿,去河邊找鬼病涨。 笑死,一個(gè)胖子當(dāng)著我的面吹牛璧坟,可吹牛的內(nèi)容都是我干的既穆。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼雀鹃,長吁一口氣:“原來是場噩夢啊……” “哼幻工!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起褐澎,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎伐蒋,沒想到半個(gè)月后工三,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡先鱼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年俭正,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焙畔。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡掸读,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情儿惫,我是刑警寧澤澡罚,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站肾请,受9級(jí)特大地震影響留搔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜铛铁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一隔显、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧饵逐,春花似錦括眠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至账锹,卻和暖如春萌业,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奸柬。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來泰國打工生年, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人廓奕。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓抱婉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親桌粉。 傳聞我的和親對象是個(gè)殘疾皇子蒸绩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

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