網(wǎng)絡(luò)基礎(chǔ)TCP/IP(一)

計算機(jī)與網(wǎng)絡(luò)設(shè)備要相互通信,雙方就必須基于相同的方法,比如,如何探測到通信目標(biāo),由哪一邊先發(fā)通信,使用哪一種語言進(jìn)行通訊,怎樣結(jié)束通信等規(guī)則都需要事先確定。不同的硬件,操作系統(tǒng)之間的通信,所有的一切都需要規(guī)則,而我們就把這種規(guī)則稱為協(xié)議(protocol

互聯(lián)網(wǎng)各種協(xié)議

像這樣把互聯(lián)網(wǎng)相關(guān)的協(xié)議集合起來總稱為TCP/IP。也有說法認(rèn)為,TCP/IP是指的TCP和IP這兩種協(xié)議。

TCP/IP協(xié)議里面重要的一點就是分層。TCP/IP協(xié)議按層次劃分為了4層,分別為:應(yīng)用層,傳輸層,網(wǎng)絡(luò)層,和數(shù)據(jù)鏈路層。這里我們要和網(wǎng)絡(luò)的七層協(xié)議由區(qū)分

網(wǎng)絡(luò)七層協(xié)議,英文全稱Open System Interconnection,簡寫OSI,OSI是一個開放性的通信系統(tǒng)互連參考模型。而把網(wǎng)絡(luò)分為多層,可以把復(fù)雜的網(wǎng)絡(luò)劃分成為更容易管理的層,減少復(fù)雜性,允許更容易編程改變或快速評估。

OSI模型有7層結(jié)構(gòu),每層都可以有幾個子層。 OSI的7層從上到下分別是 7 應(yīng)用層 6 表示層 5 會話層 4 傳輸層 3 網(wǎng)絡(luò)層 2 數(shù)據(jù)鏈路層 1 物理層 ;其中高層(即7、6、5、4層)定義了應(yīng)用程序的功能,下面3層(即3、2、1層)主要面向通過網(wǎng)絡(luò)的端到端的數(shù)據(jù)流

網(wǎng)絡(luò)七層協(xié)議

  • 應(yīng)用層
    為用用程序提供服務(wù)并規(guī)定通信細(xì)節(jié)。如文件傳輸、電子郵件、遠(yuǎn)程登錄協(xié)議。
  • 表示層
    將應(yīng)用處理的信息轉(zhuǎn)為適合網(wǎng)絡(luò)傳輸?shù)母袷?,或?qū)碜韵乱粚拥臄?shù)據(jù)轉(zhuǎn)換為上層能夠處理的格式。如文字、聲音、圖像等數(shù)據(jù)格式。
  • 會話層
    負(fù)責(zé)建立、斷開連接通信,以及數(shù)據(jù)分割等數(shù)據(jù)傳輸相關(guān)的管理。
  • 傳輸層
    主要起到傳輸作用。只在通信雙方節(jié)點上進(jìn)行處理,無需在路由器上處理??煽總鬏?,即確保數(shù)據(jù)可靠地傳送到目標(biāo)地址。
  • 網(wǎng)絡(luò)層
    將數(shù)據(jù)傳輸?shù)侥繕?biāo)地址的過程中,目標(biāo)地址可以是由多個路由器連接而成的某個地址。因此這一層主要負(fù)責(zé)地址管理和路由選擇。
  • 數(shù)據(jù)鏈路層
    主要負(fù)責(zé)互聯(lián)設(shè)備之間傳送和識別數(shù)據(jù)幀。
  • 物理層
    負(fù)責(zé)0、1 比特流與電壓的高低、光的閃滅之間的互換。
OSI

TCP/IP協(xié)議簇

  • 應(yīng)用層
    應(yīng)用層決定了向用戶提供應(yīng)用服務(wù)時的通信的活動。

    TCP/IP協(xié)議簇內(nèi)預(yù)存了各類通用的應(yīng)用服務(wù),比如FTP(File Transfer Protocol,文件傳輸協(xié)議)和DNS(Domain Name System,域名系統(tǒng))服務(wù)就是其中兩類

    HTTP協(xié)議也處于該層

  • 傳輸層
    傳輸層對上層應(yīng)用層,提供處于網(wǎng)絡(luò)連接中的兩臺計算機(jī)之間的數(shù)據(jù)傳輸

    在傳輸層有兩個性質(zhì)不同的協(xié)議:TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)

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

    網(wǎng)絡(luò)層又稱為網(wǎng)絡(luò)互連層,用來處理網(wǎng)絡(luò)上流動的數(shù)據(jù)包。數(shù)據(jù)包是網(wǎng)絡(luò)傳輸?shù)淖钚?shù)據(jù)單元。該層規(guī)定了通過怎么樣的路徑到達(dá)對方計算機(jī),并把數(shù)據(jù)包傳輸給對方

    與對方計算機(jī)之間通過多臺計算機(jī)或者網(wǎng)絡(luò)設(shè)備進(jìn)行傳輸時,網(wǎng)絡(luò)層所起的作用就是在眾多的選項內(nèi)選擇一條傳輸線

  • 鏈路層

    鏈路層又名數(shù)據(jù)鏈路層,網(wǎng)絡(luò)接口層,用來處理連接網(wǎng)絡(luò)的硬件部分。包括控制操作系統(tǒng),硬件的設(shè)備驅(qū)動,NIC(網(wǎng)絡(luò)適配器,也就是網(wǎng)卡),以及光纖等物理課件部分。硬件上的范疇均在鏈路層。

為什么已經(jīng)有了網(wǎng)絡(luò)七層協(xié)議還要提出TCP/IP協(xié)議四層協(xié)議呢

TCP/IP協(xié)議是互聯(lián)網(wǎng)協(xié)議(簇)的統(tǒng)稱,他是互聯(lián)網(wǎng)標(biāo)準(zhǔn)通信的基礎(chǔ),它提供點對點的鏈接機(jī)制,將數(shù)據(jù)應(yīng)該如何封裝、定址、傳輸、路由以及在目的地如何接收,都加以標(biāo)準(zhǔn)化。而OSI模型是開放式系統(tǒng)互聯(lián)通信參考模型

OSI是一個完整的、完善的宏觀模型,他包括了硬件層(物理層),當(dāng)然也包含了很多上面途中沒有列出的協(xié)議(比如DNS解析協(xié)議等);而TCP/IP(參考)模型,更加側(cè)重的是互聯(lián)網(wǎng)通信核心(也是就是圍繞TCP/IP協(xié)議展開的一系列通信協(xié)議)的分層,因此它不包括物理層,以及其他一些不想干的協(xié)議;其次,之所以說他是參考模型,是因為他本身也是OSI模型中的一部分,因此參考OSI模型對其分層。

網(wǎng)絡(luò)七層協(xié)議和TCP/IP協(xié)議四層協(xié)議的關(guān)系

網(wǎng)絡(luò)七層協(xié)議和TCP/IP協(xié)議四層協(xié)議.png

TCP/IP通訊傳輸流

TCP/IP通訊傳輸流.png

利用TCP/IP協(xié)議簇進(jìn)行網(wǎng)絡(luò)通信的時候,會通過分層順序與對方進(jìn)行通訊。
發(fā)送端從應(yīng)用層往下走,接收端則往應(yīng)用層上走

我們以一個常見的HTTP請求作為一個例子,看一下通訊流程

  • 1、客戶端在應(yīng)用層(HTTP協(xié)議)發(fā)出一個簡單的HTTP請求
  • 2、為了傳輸方便,在傳輸層(TCP協(xié)議)把從應(yīng)用層處接收到的數(shù)據(jù)(HTTP請求報文)進(jìn)行分割,并在各個報文上打上標(biāo)記序號以及端口號后轉(zhuǎn)發(fā)給網(wǎng)絡(luò)層
  • 3、在網(wǎng)絡(luò)層(IP協(xié)議)增加作為通訊目的地的MAC地址后轉(zhuǎn)發(fā)給鏈路層。這樣發(fā)送網(wǎng)絡(luò)通訊請求就準(zhǔn)備好了。
  • 4、接收端的服務(wù)器在鏈路層接收到數(shù)據(jù),按次序往上層發(fā)送,一直到應(yīng)用層。當(dāng)傳輸?shù)綉?yīng)用層,才能算真正接受到由客戶端發(fā)動過來的HTTP請求
通訊流程.jpg

在發(fā)送端在層與層之間進(jìn)行傳輸數(shù)據(jù)時,沒經(jīng)過一層必定會被打上一個該層所屬的首部信息。反之,接收端在層與層傳輸數(shù)據(jù)時,沒經(jīng)過一層會把對應(yīng)層的首部去掉

MAC地址、IP地址、 IP協(xié)議 、TCP、DNS

MAC地址

MAC(Media Access Control或者M(jìn)edium Access Control)地址,意譯為媒體訪問控制,或稱為物理地址、硬件地址,用來定義網(wǎng)絡(luò)設(shè)備的位置。在OSI模型中,第三層網(wǎng)絡(luò)層負(fù)責(zé)IP地址,第二層數(shù)據(jù)鏈路層則負(fù)責(zé) MAC地址。因此一個主機(jī)會有一個MAC地址,而每個網(wǎng)絡(luò)位置會有一個專屬于它的IP地址

MAC地址也叫物理地址、硬件地址或鏈路地址,由網(wǎng)絡(luò)設(shè)備制造商生產(chǎn)時寫在硬件內(nèi)部。這個地址與網(wǎng)絡(luò)無關(guān),也即無論將帶有這個地址的硬件(如網(wǎng)卡、集線器、路由器等)接入到網(wǎng)絡(luò)的何處,它都有相同的MAC地址,MAC地址一般不可改變,不能由用戶自己設(shè)定。

MAC地址的長度為48位(6個字節(jié)),通常表示為12個16進(jìn)制數(shù),每2個16進(jìn)制數(shù)之間用冒號隔開,如:08:00:20:0A:8C:6D就是一個MAC地址,其中前6位16進(jìn)制數(shù)08:00:20代表網(wǎng)絡(luò)硬件制造商的編號,它由IEEE(Istitute of Electrical and Electronics Engineers,電氣與電子工程師協(xié)會)分配,而后3位16進(jìn)制數(shù)0A:8C:6D代表該制造商所制造的某個網(wǎng)絡(luò)產(chǎn)品(如網(wǎng)卡)的系列號。每個網(wǎng)絡(luò)制造商必須確保它所制造的每個以太網(wǎng)設(shè)備都具有相同的前三字節(jié)以及不同的后三個字節(jié)。這樣就可保證世界上每個以太網(wǎng)設(shè)備都具有唯一的MAC地址

IP地址

對于IP地址,相信大家都很熟悉,即指使用TCP/IP協(xié)議指定給主機(jī)的32位地址。IP地址由用點分隔開的4個8八位組構(gòu)成,如192.168.0.1就是一個IP地址,這種寫法叫點分十進(jìn)制格式。IP地址由網(wǎng)絡(luò)地址和主機(jī)地址兩部分組成,分配給這兩部分的位數(shù)隨地址類(A類、B類、C類等)的不同而不同。網(wǎng)絡(luò)地址用于路由選擇,而主機(jī)地址用于在網(wǎng)絡(luò)或子網(wǎng)內(nèi)部尋找一個單獨的主機(jī)。一個IP地址使得將來自源地址的數(shù)據(jù)通過路由而傳送到目的地址變?yōu)榭赡堋?/p>

mac地址和ip地址有什么區(qū)別

IP地址是指Internet協(xié)議使用的地址,而MAC地址是Ethernet(以太網(wǎng))協(xié)議使用的地址。IP地址與MAC地址之間并沒有什么必然的聯(lián)系,MAC地址是Ethernet網(wǎng)卡上帶的地址,長度為48位。
每個Ethernet網(wǎng)卡生產(chǎn)廠家必須向IEEE組織申請一組MAC地址,在生產(chǎn)網(wǎng)卡時在網(wǎng)卡的串行EEPROM中寫入一個唯一的MAC地址。任何兩個Ethernet網(wǎng)卡的MAC地址,不管是哪一個廠家生產(chǎn)的都不應(yīng)相同。Ethernet芯片廠家不必負(fù)責(zé)MAC地址的申請,MAC地址存在于每一個Ethernet包中,是Ethernet包頭的組成部分,Ethernet交換機(jī)根據(jù)Ethernet包頭中的MAC源地址和MAC目的地址實現(xiàn)包的交換和傳遞。

IP地址是Internet協(xié)議地址,每個Internet包必須帶有IP地址,每個Internet服務(wù)提供商(ISP)必須向有關(guān)組織申請一組IP地址,然后一般是動態(tài)分配給其用戶。IP地址現(xiàn)是32位長,正在擴(kuò)充到128位。IP地址與MAC地址無關(guān),因為Ethernet的用戶,仍然可通過Modem連接Internet,取得一個動態(tài)的IP地址,這個地址每次可以不一致。IP地址通常工作于廣域網(wǎng),路由器處理的就是IP地址。 MAC地址工作于局域網(wǎng),局域網(wǎng)之間的互連一般通過現(xiàn)有的公用網(wǎng)或?qū)S镁€路,需要進(jìn)行網(wǎng)間協(xié)議轉(zhuǎn)換??梢栽贓thernet上傳送IP信息,此時IP地址只是Ethernet信息包數(shù)據(jù)域的一部分,Ethernet交換機(jī)或處理器看不見IP地址,只是將其作為普通數(shù)據(jù)處理。

補(bǔ)充:Internet 和Ethernet 的區(qū)別:ethernet是局域網(wǎng)的組網(wǎng)技術(shù),internet是上外網(wǎng)的技術(shù);在一個局域網(wǎng)中,每一臺計算機(jī)要組成一個局域網(wǎng),那么就要每一臺pc都有網(wǎng)卡,這些網(wǎng)卡通過統(tǒng)一標(biāo)準(zhǔn)制作,可以實現(xiàn)不同pc上的網(wǎng)卡進(jìn)行信號調(diào)制而實現(xiàn)通信,后來國際專業(yè)的一個組織將這種局域網(wǎng)組網(wǎng)技術(shù),包括這些網(wǎng)卡設(shè)計標(biāo)準(zhǔn)進(jìn)行統(tǒng)一的規(guī)定,就是現(xiàn)在使用的IEEE802.3標(biāo)準(zhǔn),網(wǎng)卡硬件制作商只要遵循這樣的標(biāo)準(zhǔn)就可以做出通用性的網(wǎng)卡。IEEE802.3標(biāo)準(zhǔn)是再ehternet局域網(wǎng)組網(wǎng)技術(shù)上頒布的標(biāo)準(zhǔn)。

有了ehternet技術(shù)可以實現(xiàn)局域網(wǎng)組網(wǎng),但是如果要讓這個局域網(wǎng)和更多,更大的局域網(wǎng)通信,就需要在這些局域網(wǎng)中規(guī)定一種通信的協(xié)議,比如tcp/ip,使用這樣的通信協(xié)議進(jìn)行全球性的通信的技術(shù)就是internet。

也就是說要上網(wǎng),你要一張網(wǎng)卡,另外還要到運(yùn)營商申請一個上網(wǎng)賬號才能實現(xiàn)上網(wǎng),那么這個網(wǎng)卡就是ethernet范疇,而這個上網(wǎng)的賬號就是internet范疇。ehternet和internet共同構(gòu)成我們上網(wǎng)的要素。

IP協(xié)議

IP(Internet Protocol)網(wǎng)絡(luò)協(xié)議,位于網(wǎng)絡(luò)層。IP協(xié)議的作用是把各種數(shù)據(jù)包傳送給對方。而要保證確實傳送到對方那里,則需要滿足各類條件。其中最重要的兩個條件就是IP地址和MAC地址。

IP是使用ARP協(xié)議憑借MAC地址進(jìn)行通信的

IP間的通信依賴MAC地址。在網(wǎng)絡(luò)上,通信的雙方在同一局域網(wǎng)(LAN)內(nèi)的情況是很少的,通常是經(jīng)過多臺計算機(jī)和網(wǎng)絡(luò)設(shè)備中轉(zhuǎn)才能連接到對方。而在進(jìn)行轉(zhuǎn)移的時候,會利用下一站中轉(zhuǎn)設(shè)備的MAC地址來搜索下一個中轉(zhuǎn)目標(biāo)。這時就會采用ARP(Address Resolution Protocol)。ARP是一種以解析地址的協(xié)議,根據(jù)通信方的IP地址就可以發(fā)查處對應(yīng)的MAC地址。


IP.jpg

TCP協(xié)議

按層次分,TCP位于傳輸層,提供可靠的字節(jié)流服務(wù)

字節(jié)流服務(wù)是指為了方便傳輸,將大塊的數(shù)據(jù)分割成以報文段為單位的數(shù)據(jù)進(jìn)行管理。

可靠的傳輸服務(wù)是指能夠把數(shù)據(jù)準(zhǔn)確的可靠的傳輸給對方,這就引出了TCP的三次握手

TCP協(xié)議為了更容易傳送大數(shù)據(jù)才把數(shù)據(jù)分割,而TCP協(xié)議能夠確認(rèn)數(shù)據(jù)最終是否送達(dá)到對方

為了準(zhǔn)確無誤地將數(shù)據(jù)送達(dá)到目標(biāo)處,TCP協(xié)議采用了三次握手策略。用TCP協(xié)議把數(shù)據(jù)包送出去后,TCP不會對傳送后的情況置之不理,它一定會向?qū)Ψ酱_認(rèn)是否成功送達(dá)。

握手過程中使用了TCP的標(biāo)志(flag):SYN(synronize 同步)和 ACK(acknowledgement 確認(rèn))

三次握手.jpg

發(fā)送端首先發(fā)送一個帶SYN標(biāo)志的數(shù)據(jù)包給對方,接受端收到后,回傳一個帶有SYN/ACK標(biāo)志的數(shù)據(jù)包以示傳達(dá)確認(rèn)信息,最后,發(fā)送端再回傳一個帶ACK標(biāo)志的數(shù)據(jù)包,代表握手結(jié)束

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

UDP
談到TCP,就必須要說到UDP了

UDP(User Data Protocol,用戶數(shù)據(jù)報協(xié)議)是與TCP相對應(yīng)的協(xié)議。它是面向非連接的協(xié)議,它不與對方建立連接,而是直接就把數(shù)據(jù)包發(fā)送過去!

UDP 適用于一次只傳送少量數(shù)據(jù)、對可靠性要求不高的應(yīng)用環(huán)境。比如,我們經(jīng)常使用“ping”命令來測試兩臺主機(jī)之間TCP/IP通信是否正常,其實 “ping”命令的原理就是向?qū)Ψ街鳈C(jī)發(fā)送UDP數(shù)據(jù)包,然后對方主機(jī)確認(rèn)收到數(shù)據(jù)包,如果數(shù)據(jù)包是否到達(dá)的消息及時反饋回來,那么網(wǎng)絡(luò)就是通的。例如, 在默認(rèn)狀態(tài)下,一次“ping”操作發(fā)送4個數(shù)據(jù)包。大家可以看到,發(fā)送的數(shù)據(jù)包數(shù)量是4包,收到的也是4包(因為對方主機(jī)收到后會發(fā)回一 個確認(rèn)收到的數(shù)據(jù)包)。這充分說明了UDP協(xié)議是面向非連接的協(xié)議,沒有建立連接的過程。正因為UDP協(xié)議沒有連接的過程,所以它的通信效果高;但也正因為如此,它的可靠性不如TCP協(xié)議高。

DNS

DNS(Domain Name System 域名系統(tǒng))負(fù)責(zé)域名解析,是和HTTP協(xié)議一樣位于應(yīng)用層的協(xié)議。它提供域名到IP地址之間的解析服務(wù)。

DNS服務(wù)產(chǎn)生原因:用戶通常使用主機(jī)名域名來訪問對方的計算機(jī),而不是直接通過IP地址訪問。因為與IP地址的一組純數(shù)字相比,用字母數(shù)字組合的表示更加符合人類的記憶。但是計算機(jī)更擅長處理數(shù)字。為了解決這個問題,DNS服務(wù)應(yīng)運(yùn)而生。
DNS協(xié)議提供通過域名查找IP地址,或逆向從IP地址反查找域名的服務(wù)

DNS.jpg

學(xué)習(xí)了IP協(xié)議,TCP協(xié)議和DNS服務(wù),我們就來一張圖來看看HTTP協(xié)議的通信過程中各自發(fā)揮的作用

HTTP協(xié)議.jpg

URL和URI

591228-20160116223301225-1866838315.png
  • 1、URL(Uniform Resoure Locator,統(tǒng)一資源定位符)
  • 2、URI(Uniform Resoure Identifier ,統(tǒng)一資源標(biāo)示符)

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

Resoure:可標(biāo)識的任何東西

Identifier:表示可標(biāo)識的對象

URI就是由某個協(xié)議方案表示的資源定位標(biāo)識符;例如采用HTTP協(xié)議時,協(xié)議方案就是http

為了讓大家更加清楚URL和URI的區(qū)別,這里我找到了一個比較生動形象的解釋,摘錄:Web基礎(chǔ)-Uri跟Url的區(qū)別

首先給大家舉個例子,有一家公司的總經(jīng)理,某天,給了我一張名片,上面寫了他的頭銜,北京XXX公司總經(jīng)理 張三,還有他的辦公室地址,北京市海淀區(qū)長安街35號北京XXX公司總經(jīng)理辦公室,那么,我以后給我的朋友吹牛,我認(rèn)識北京XXX公司的總經(jīng)理張三,我的朋友都知道北京XXX公司的總經(jīng)理是一個叫張三的人,那么,這個頭銜就和張三對應(yīng)起來了,只要一說到這個頭銜,大家都知道說的是張三,反應(yīng)到網(wǎng)絡(luò)世界,這個頭銜就叫做URI,只要你給我一個URI,我就知道它代表了什么,比如,http://www.sina.com.cn代表了新浪網(wǎng),admin@qq.com代表了某一個人的qq郵箱,你的qq號也是一個URI(騰訊服務(wù)器內(nèi)可以識別就是你的QQ賬戶),URI就是網(wǎng)絡(luò)資源的頭銜,通過URI標(biāo)記可以把網(wǎng)絡(luò)世界里面的每一個事物都加以標(biāo)記并區(qū)分開來。

好的,現(xiàn)在出現(xiàn)了一個問題,你現(xiàn)在知道北京XXX公司總經(jīng)理是張三,“北京XXX公司總經(jīng)理”就是張三這個人的URI,可是,我讓你親自去和張三見一面,你做得到嗎?你肯定做不到,因為你不知道他的地址,雖然你有他的URI頭銜,但是除此以外,你對他具體的情況一無所知,于是你要定位到他,你就必須得到他的辦公室地址,通過“北京市海淀區(qū)長安街35號北京XXX公司總經(jīng)理辦公室”這個地址,你就找到了張三。反應(yīng)到網(wǎng)絡(luò)世界,網(wǎng)絡(luò)世界里面的每一個資源不光有自己的頭銜,還要能夠被人訪問,被人找到,所以,網(wǎng)絡(luò)地址是必須的,否則,這個網(wǎng)絡(luò)資源的存在沒有任何意義,這個地址就叫做URL。

通過上面的描述,可以發(fā)現(xiàn),URI強(qiáng)調(diào)的是給資源標(biāo)記命名,URL強(qiáng)調(diào)的是給資源定位,但是你會發(fā)現(xiàn),URL顯然比URI包含信息更多,我通過URL也可以知道張三是總經(jīng)理,并且我還知道了他的地址,所以大多數(shù)情況下大家覺得給一個網(wǎng)絡(luò)資源分別命名和給出地址太麻煩,干脆就用地址既當(dāng)?shù)刂酚茫之?dāng)標(biāo)記名用,所以,URL也充當(dāng)了WWW萬維網(wǎng)里面URI的角色,但是他比URI多了一層意義,我不光知道你叫什么,我還知道你在哪里。我們在瀏覽器輸入的都是URL,因為我們輸入的目的是為了找到某一個資源,當(dāng)然你輸入的是URI也是沒錯的,因為URL也是URI。

總結(jié):URI標(biāo)記了一個網(wǎng)絡(luò)資源,僅此而已; URL標(biāo)記了一個WWW互聯(lián)網(wǎng)資源(用地址標(biāo)記),并給出了他的訪問地址。

內(nèi)容參考:《圖解HTTP》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容