Node進(jìn)階 ---- NetWork(一)

1. 協(xié)議的概念和作用

  • 為了讓計(jì)算機(jī)能夠通信,計(jì)算機(jī)需要定義通信規(guī)則,這些規(guī)則就是協(xié)議
  • 規(guī)則是多種,協(xié)議也有多種
  • 協(xié)議就是數(shù)據(jù)封裝格式+傳輸

1.1 服務(wù)+協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸

2. OSI七層模型

Open System Interconnection,適用于所有的網(wǎng)絡(luò)

  • 分工帶來效能
  • 將復(fù)雜的流程分解為幾個(gè)功能相對(duì)單一的子進(jìn)程
  • 整個(gè)流程更加清晰,復(fù)雜問題簡(jiǎn)單化
  • 更容易發(fā)現(xiàn)問題并針對(duì)性的解決問題
    • 應(yīng)用層(Application) 提供網(wǎng)絡(luò)與用戶應(yīng)用軟件之間的接口服務(wù)
    • 表示層(Presentation) 提供格式化的表示和轉(zhuǎn)換數(shù)據(jù)服務(wù),如加密和壓縮
    • 會(huì)話層(Session) 提供包括訪問驗(yàn)證和會(huì)話管理在內(nèi)的建立和維護(hù)應(yīng)用之間通信的機(jī)制
    • 傳輸層(Transimission) 提供建立、維護(hù)和取消傳輸連接功能,負(fù)責(zé)可靠地傳輸數(shù)據(jù)(PC)
    • 網(wǎng)絡(luò)層(Network) 處理網(wǎng)絡(luò)間路由,確保數(shù)據(jù)及時(shí)傳送(路由器)
    • 數(shù)據(jù)鏈路層(DataLink) 負(fù)責(zé)無錯(cuò)傳輸數(shù)據(jù),確認(rèn)幀、發(fā)錯(cuò)重傳等(交換機(jī))
    • 物理層(Physics) 提供機(jī)械、電氣、功能和過程特性(網(wǎng)卡、網(wǎng)線、雙絞線、同軸電纜、中繼器)
osi.png

3. TCP/IP參考模型

  • TCP/IP是傳輸控制協(xié)議/網(wǎng)絡(luò)互聯(lián)協(xié)議的簡(jiǎn)稱
  • 早期的TCP/IP模型是一個(gè)四層結(jié)構(gòu),從下往上依次是網(wǎng)絡(luò)接口層、互聯(lián)網(wǎng)層、傳輸層和應(yīng)用層
  • 后來在使用過程中,借鑒OSI七層參考模型,將網(wǎng)絡(luò)接口層劃分為了物理層和數(shù)據(jù)鏈路層,形成五層結(jié)構(gòu)
tcpip.png

常用協(xié)議

  • TCP/IP協(xié)議被稱為傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議,又稱網(wǎng)絡(luò)通訊協(xié)議
  • 是由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成,是一個(gè)很大的協(xié)議集合
  • 物理層和數(shù)據(jù)鏈路層沒有定義任何特定協(xié)議,支持所有的標(biāo)準(zhǔn)和專用的協(xié)議
  • 網(wǎng)絡(luò)層定義了網(wǎng)絡(luò)互聯(lián)也就是IP協(xié)議
    • 網(wǎng)際協(xié)議IP(Internet Protocal) 負(fù)責(zé)主機(jī)和網(wǎng)絡(luò)之間尋址和路由數(shù)據(jù)包
    • 地址解析協(xié)議ARP(Address Resolution Protocol) 獲得同一物理網(wǎng)絡(luò)中的硬件主機(jī)MAC地址
    • 反向地址轉(zhuǎn)換協(xié)議(Reverse Address Resolution Protocol) 允許局域網(wǎng)的物理機(jī)器從網(wǎng)關(guān)服務(wù)器的ARP表或者緩存上請(qǐng)求其IP地址
    • 網(wǎng)際控制消息協(xié)議ICMP(Internet Control Message Protocol) 發(fā)送消息,并報(bào)告有關(guān)數(shù)據(jù)包的傳送錯(cuò)誤
    • 互聯(lián)組管理協(xié)議IGMP(Internet Group Management Protocol) IP主機(jī)向本地多路廣播路由器報(bào)告主機(jī)組成員
  • 傳輸層定義了TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報(bào))協(xié)議
  • 應(yīng)用層定義了HTTP(超文本傳輸協(xié)議)、FTP(文件傳輸協(xié)議)、DNS(域名系統(tǒng))等協(xié)議
protocal.png

3.1 網(wǎng)絡(luò)接口層

網(wǎng)絡(luò)接口層是TCP/IP模型的最底層,負(fù)責(zé)接收從上一層交來的數(shù)據(jù)報(bào)并將數(shù)據(jù)報(bào)通過底層的物理網(wǎng)絡(luò)發(fā)送出去,比較常見的就是設(shè)備的驅(qū)動(dòng)程序,此層沒有特定的協(xié)議 網(wǎng)絡(luò)接口層又分為物理層和數(shù)據(jù)鏈路層

3.1.1 物理層

計(jì)算機(jī)在傳遞數(shù)據(jù)的時(shí)候傳遞的都是0和1的數(shù)字,而物理層關(guān)心的是用什么信號(hào)來表示0和1,是否可以雙向通信,最初的連接如何建立以及完成連接如何終止,物理層是為數(shù)據(jù)傳輸提供可靠的環(huán)境。

  • 為數(shù)據(jù)端設(shè)備提供傳送數(shù)據(jù)的通路
  • 傳輸數(shù)據(jù)
    • 激活物理連接,在連接的設(shè)備之間連接起來形成通路
    • 傳輸數(shù)據(jù),關(guān)心如何打包數(shù)據(jù)和控制傳輸速度
    • 關(guān)閉物理連接
2.phisical.png

3.1.2 數(shù)據(jù)鏈路層

數(shù)據(jù)鏈路層們于物理層和互聯(lián)網(wǎng)層之間,用來向網(wǎng)絡(luò)層提供數(shù)據(jù),就是把源計(jì)算機(jī)網(wǎng)絡(luò)層傳過來的信息傳遞給目標(biāo)主機(jī)。

  • 如何將數(shù)據(jù)組合成數(shù)據(jù)幀(Frame),幀是數(shù)據(jù)鏈路層的傳輸單位
  • 數(shù)據(jù)鏈路的建立、維護(hù)和拆除
  • 幀包裝、幀傳輸、幀同步
  • 幀的差錯(cuò)恢復(fù)
  • 流量控制

3.1.3 MAC地址

  • 在通信過程中是用內(nèi)置在網(wǎng)卡內(nèi)的地址來標(biāo)識(shí)計(jì)算機(jī)身份的
  • 每個(gè)網(wǎng)卡都有一個(gè)全球唯一的地址來標(biāo)識(shí)自己,不會(huì)重復(fù)
  • MAC地址48位的二進(jìn)制組成,通常分為6段,用16進(jìn)制表示
8.mac.png

3.2 互聯(lián)網(wǎng)層(網(wǎng)絡(luò)層)

  • 位于傳輸層和網(wǎng)絡(luò)接口層之間,用于把數(shù)據(jù)從源主機(jī)經(jīng)過若干個(gè)中間節(jié)點(diǎn)傳送到目標(biāo)主機(jī),并向傳輸層提供最基礎(chǔ)的數(shù)據(jù)傳輸服務(wù),它要提供路由和選址的工作
iplayer

3.2.1 選址

交換機(jī)是靠MAC來尋址的,而因?yàn)镸AC地址是無層次的,所以要靠IP地址來確認(rèn)計(jì)算機(jī)的位置,這就是選址

8.address.png
t0123c4234759d969dc.jpg

3.2.2 路由

在能夠選擇的多條道路之間選擇一條最短的路徑就是路由的工作

8.router.png

3.2.3 IP

在網(wǎng)絡(luò)中,每臺(tái)計(jì)算機(jī)都有一個(gè)唯一的地址,方便別人找到它,這個(gè)地址稱為IP地址。

3.2.3.1 IP頭部
ipheader.png
  • 版本
  • 首部長(zhǎng)部
  • 優(yōu)先級(jí)與服務(wù)類型
  • 總長(zhǎng)度 該字段用以指示整個(gè)IP數(shù)據(jù)包的長(zhǎng)度,最長(zhǎng)為65535字節(jié),包括頭和數(shù)據(jù)
  • 標(biāo)識(shí)符 唯一標(biāo)識(shí)主機(jī)發(fā)送的每一份數(shù)據(jù)報(bào)
  • 標(biāo)志 分為3個(gè)字段,依次為保留位、不分片位和更多片位
    • 保留位:一般被置為0
    • 不分片位:表示該數(shù)據(jù)報(bào)是否被分片,如果被置為1,則不能對(duì)數(shù)據(jù)報(bào)進(jìn)行分片,如果要對(duì)其進(jìn)行分片處理,就應(yīng)將其置為0
    • 更多片位:除了最后一個(gè)分片,其他每個(gè)組成數(shù)據(jù)報(bào)的片都要將該位置設(shè)置為1.
  • 段偏移量 該分片相對(duì)于原始數(shù)據(jù)報(bào)開始處位置的偏移量
  • TTL(Time to Live生存時(shí)間) 該字段用于表示IP數(shù)據(jù)包的生命周期,可以防止一個(gè)數(shù)據(jù)包在網(wǎng)絡(luò)中無限循環(huán)地發(fā)下去。TTL的意思是一個(gè)數(shù)據(jù)包在被丟棄之前在網(wǎng)絡(luò)中的最大周轉(zhuǎn)時(shí)間。該數(shù)據(jù)包經(jīng)過的每一個(gè)路由器都會(huì)檢查該字段中的值,當(dāng)TTL的值為0時(shí)此數(shù)據(jù)包會(huì)被丟棄。TTL對(duì)應(yīng)于一個(gè)數(shù)據(jù)包通過路由器的數(shù)目,一個(gè)數(shù)據(jù)包每經(jīng)過一個(gè)路由器,TTL將減去1。
  • 協(xié)議號(hào) 用以指示IP數(shù)據(jù)包中封裝的是哪個(gè)協(xié)議
  • 首部校驗(yàn)和 檢驗(yàn)和是16位的錯(cuò)誤檢測(cè)字段。目的主機(jī)和網(wǎng)絡(luò)中的每個(gè)網(wǎng)關(guān)都要重新計(jì)算報(bào)頭的校驗(yàn)和,一樣表示沒有改動(dòng)過.
  • 源IP地址 該字段用于表示數(shù)據(jù)包的源地址,指的是發(fā)送該數(shù)據(jù)包的設(shè)備的網(wǎng)絡(luò)地址
  • 目標(biāo)IP地址 該字段用于表示數(shù)據(jù)包的目標(biāo)的地址,指的是接收節(jié)點(diǎn)的網(wǎng)絡(luò)地址
3.2.3.2 IP地址格式
  • IP地址是一個(gè)網(wǎng)絡(luò)編碼,用來確定網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)。
  • IP地址是由32位二進(jìn)制(32bit)組成
9.ip.png
3.2.3.3 IP地址組成
  • 網(wǎng)絡(luò)部分(NETWORK)
  • 主機(jī)部分(HOST)
ippart.png
3.2.3.4 IP地址表示
9.ip.png
3.2.3.5 IP地址的分類
  • IP地址的網(wǎng)絡(luò)部分是由Internet地址分配機(jī)構(gòu)來統(tǒng)一分配的,這樣可以保證IP的唯一性。
  • ip地址中全為1的ip即255.255.255.255,它稱為限制廣播地址,如果將其作為數(shù)據(jù)包的目標(biāo)地址可以理解為發(fā)送到所有網(wǎng)絡(luò)的所有主機(jī)
  • ip地址中全為0的ip即0.0.0.0,它表示啟動(dòng)時(shí)的ip地址,其含義就是尚未未分配時(shí)的ip地址
  • 127是用來進(jìn)行本機(jī)測(cè)試的,除了127.255.255.255外,其它的127開頭的地址都代表本機(jī)
10.ipclass.png
3.2.3.6 公有地址和私有地址

私有IP

  • A類私有IP:10.0.0.0 ~ 10.255.255.255
  • B類私有IP:172.16.0.0 ~ 172.31.255.255
  • C類私有IP:192.168.0.0 ~ 192.168.255.255

其他范圍的IP均為公有IP地址

3.2.3.7 子網(wǎng)掩碼

子網(wǎng)掩碼(subnet mask)又叫子網(wǎng)絡(luò)遮罩,它是一種用來指明一個(gè)IP地址的哪些位標(biāo)識(shí)的是主機(jī)所在的子網(wǎng),以及哪些位標(biāo)識(shí)的是主機(jī)位的掩碼。 子網(wǎng)掩碼不能單獨(dú)存在,它必須結(jié)合IP地址一起使用。 子網(wǎng)掩碼只有一個(gè)作用,就是將某個(gè)IP地址劃分成網(wǎng)絡(luò)地址和主機(jī)地址兩部分。

  • 子網(wǎng)掩碼也是32個(gè)二進(jìn)制位
  • 對(duì)應(yīng)IP的網(wǎng)絡(luò)部分用1表示
  • 對(duì)應(yīng)IP地址的主機(jī)部分用0表示
  • IP地址和子網(wǎng)掩碼做邏輯與運(yùn)算得到網(wǎng)絡(luò)地址
    • 0和任何數(shù)相與都是0
    • 1和任何數(shù)相與都等于任何數(shù)本身
  • A B C 三類地址都有自己默認(rèn)的子網(wǎng)掩碼
    • A類 255.0.0.0
    • B類 255.255.0.0
    • C類 255.255.255.0
10.mask.png

3.3 傳輸層

位于應(yīng)用層和網(wǎng)絡(luò)接口層之間

  • 是面向連接的、可靠的的進(jìn)程到進(jìn)程通信的協(xié)議
  • TCP提供全雙工服務(wù),即數(shù)據(jù)可在同一時(shí)間雙向傳播
  • TCP將若干個(gè)字節(jié)構(gòu)成一個(gè)分組,此分組稱為報(bào)文段(Segment)
11.transfer.png

3.3.1 傳輸層的功能

提供了一種端到端的連接

11.connect.png

3.3.2 對(duì)可靠性要求高的上層協(xié)議,實(shí)現(xiàn)可靠性的保證 [#](#t223.3.2 對(duì)可靠性要求高的上層協(xié)議,實(shí)現(xiàn)可靠性的保證)

  • 如果數(shù)據(jù)丟失、損壞的情況下如何保證可靠性
  • 網(wǎng)絡(luò)層只管傳遞數(shù)據(jù),成功與否并不關(guān)心

3.3.3 協(xié)議分類

  • TCP(Transimision Control Protocal)
    • 傳輸控制協(xié)議
    • 可靠的、面向連接的協(xié)議
    • 傳輸效率低
  • UDP(User Datagram Protocal)
    • 用戶數(shù)據(jù)報(bào)協(xié)議
    • 不可靠的、無連接的服務(wù)
    • 傳輸效率高

3.3.4 TCP功能

  • 將數(shù)據(jù)進(jìn)行分段打包傳輸
  • 對(duì)每個(gè)數(shù)據(jù)包編號(hào)控制順序
  • 運(yùn)輸中丟失、重發(fā)和丟棄處理
  • 流量控制避免擁塞
3.3.4.1 TCP數(shù)據(jù)包封裝
tcpport.png
  • 源端口號(hào)和目標(biāo)端口號(hào),計(jì)算機(jī)通過端口號(hào)識(shí)別訪問哪個(gè)服務(wù),比如http服務(wù)或ftp服務(wù),發(fā)送方端口號(hào)是進(jìn)行隨機(jī)端口,目標(biāo)端口號(hào)決定了接收方哪個(gè)程序來接收
tcpsequence.png
  • 32位序列號(hào) TCP用序列號(hào)對(duì)數(shù)據(jù)包進(jìn)行標(biāo)記,以便在到達(dá)目的地后重新重裝,假設(shè)當(dāng)前的序列號(hào)為 s,發(fā)送數(shù)據(jù)長(zhǎng)度為 l,則下次發(fā)送數(shù)據(jù)時(shí)的序列號(hào)為 s + l。在建立連接時(shí)通常由計(jì)算機(jī)生成一個(gè)隨機(jī)數(shù)作為序列號(hào)的初始值
tcpconfirm.png
  • 確認(rèn)應(yīng)答號(hào) 它等于下一次應(yīng)該接收到的數(shù)據(jù)的序列號(hào)。假設(shè)發(fā)送端的序列號(hào)為 s,發(fā)送數(shù)據(jù)的長(zhǎng)度為 l,那么接收端返回的確認(rèn)應(yīng)答號(hào)也是 s + l。發(fā)送端接收到這個(gè)確認(rèn)應(yīng)答后,可以認(rèn)為這個(gè)位置以前所有的數(shù)據(jù)都已被正常接收。

  • 首部長(zhǎng)度:TCP 首部的長(zhǎng)度,單位為 4 字節(jié)。如果沒有可選字段,那么這里的值就是 5。表示 TCP 首部的長(zhǎng)度為 20 字節(jié)。

tcpcontrolpng.png
  • 控制位 TCP的連接、傳輸和斷開都受這六個(gè)控制位的指揮

    • PSH(push急迫位) 緩存區(qū)將滿,立刻傳輸速度
    • RST(reset重置位) 連接斷了重新連接
    • URG(urgent緊急位) 緊急信號(hào)
  • 緊急指針:盡在 URG(urgent緊急) 控制位為 1 時(shí)有效。表示緊急數(shù)據(jù)的末尾在 TCP 數(shù)據(jù)部分中的位置。通常在暫時(shí)中斷通信時(shí)使用(比如輸入 Ctrl + C)。

tcpack.png
  • ACK(acknowledgement 確認(rèn))為1表示確認(rèn)號(hào)
tcpsyn.png
  • SYN(synchronous建立聯(lián)機(jī)) 同步序號(hào)位 TCP建立連接時(shí)要將這個(gè)值設(shè)為1

    tcpfin.png
  • FIN發(fā)送端完成位,提出斷開連接的一方把FIN置為1表示要斷開連接
tcpwindow.png
  • 窗口值 說明本地可接收數(shù)據(jù)段的數(shù)目,這個(gè)值的大小是可變的。當(dāng)網(wǎng)絡(luò)通暢時(shí)將這個(gè)窗口值變大加快傳輸速度,當(dāng)網(wǎng)絡(luò)不穩(wěn)定時(shí)減少這個(gè)值可以保證網(wǎng)絡(luò)數(shù)據(jù)的可靠傳輸。它是來在TCP傳輸中進(jìn)行流量控制的

  • 窗口大?。河糜诒硎緩膽?yīng)答號(hào)開始能夠接受多少個(gè) 8 位字節(jié)。如果窗口大小為 0,可以發(fā)送窗口探測(cè)。

udpcheck.png
  • 用來做差錯(cuò)控制,TCP校驗(yàn)和的計(jì)算包括TCP首部、數(shù)據(jù)和其它填充字節(jié)。在發(fā)送TCP數(shù)據(jù)段時(shí),由發(fā)送端計(jì)算校驗(yàn)和,當(dāng)?shù)竭_(dá)目的地時(shí)又進(jìn)行一次檢驗(yàn)和計(jì)算。如果兩次校驗(yàn) 和一致說明數(shù)據(jù)是正確的,否則 將認(rèn)為數(shù)據(jù)被破壞,接收端將丟棄該數(shù)據(jù)
3.2.4.2 握手和斷開
  • TCP是面向連接的協(xié)議,它在源點(diǎn)和終點(diǎn)之間建立虛擬連接,而不是物理連接
  • 在數(shù)據(jù)通信之前,發(fā)送端與接收端要先建立連接,等數(shù)據(jù)發(fā)送結(jié)束后,雙方再斷開連接
  • TCP連接的每一方都是由一個(gè)IP地址和一個(gè)端口組成
sequencenumber.jpg
3.2.4.2.1 三次握手
  • 第一次握手主機(jī)A通過一個(gè)標(biāo)識(shí)為SYN標(biāo)識(shí)位的數(shù)據(jù)段發(fā)送給主機(jī)B請(qǐng)求連接,通過該數(shù)據(jù)段告訴主機(jī)B希望建立連接,需要B應(yīng)答,并告訴主機(jī)B傳輸?shù)钠鹗夹蛄刑?hào)
  • 第二次握手是主機(jī)B用一個(gè)確認(rèn)應(yīng)答ACK和同步序列號(hào)SYNC標(biāo)志位的數(shù)據(jù)段來響應(yīng)主機(jī)A,一是發(fā)送ACK告訴主機(jī)A收到了數(shù)據(jù)段,二是通知主機(jī)A從哪個(gè)序列號(hào)做標(biāo)記。
  • 第三次握手是主機(jī)A確認(rèn)收到了主機(jī)B的數(shù)據(jù)段并可以開始傳輸實(shí)際數(shù)據(jù)。
3.2.4.2.2 四次斷開
  • 主機(jī)A發(fā)送FIN控制位發(fā)出斷開連接的請(qǐng)求
  • 主機(jī)B進(jìn)行響應(yīng),確認(rèn)收到斷開連接請(qǐng)求
  • 主機(jī)B提出反方向的關(guān)閉要求
  • 主機(jī)A確認(rèn)收到的主機(jī)B的關(guān)閉連接請(qǐng)求
3.2.4.2.3 抓包
seqpre.png

3.4 UDP

  • UDP是一個(gè)無連接、不保證可靠性的傳輸層協(xié)議,也就是說發(fā)送端不關(guān)心發(fā)送的數(shù)據(jù)是否到達(dá)目標(biāo)主機(jī)、數(shù)據(jù)是否出錯(cuò)等,收到數(shù)據(jù)的主機(jī)也不會(huì)告訴 發(fā)送方是否收到了數(shù)據(jù),它的可靠性由上層協(xié)議來保障
  • 首部結(jié)構(gòu)簡(jiǎn)單,在數(shù)據(jù)傳輸時(shí)能實(shí)現(xiàn)最小的開銷,如果進(jìn)程想發(fā)送很短的報(bào)文而對(duì)可靠性要求不高可以使用

3.4.1 UDP的封裝格式

15.udp.png
udplength.png
udpcheck.png

3.4.2 UDP的應(yīng)用

  • QQ
  • 視頻軟件
  • TFTP 簡(jiǎn)單文件傳輸協(xié)議(短信)

3.4.3 DNS服務(wù)器

3.4.3.1 域名
  • 域名空間結(jié)構(gòu)
  • 根域
  • 頂級(jí)域
    • 組織域
    • 國(guó)家/地區(qū)域名
  • 二級(jí)域名
arealocal.png
3.4.3.2 DNS服務(wù)器

DNS是Domain Name Service的縮寫,DNS服務(wù)器進(jìn)行域名和與之對(duì)應(yīng)的IP地址轉(zhuǎn)換的服務(wù)器

  • IP地址不易記憶
  • 早期使用Hosts文件解析域名
    • 主要名稱重復(fù)
    • 主機(jī)維護(hù)困難
  • DNS(Domain Name System 域名系統(tǒng))
    • 分布式
    • 層次性
3.4.3.3 查找過程
dnsquery.jpg
  • 客戶端向本地域名服務(wù)器發(fā)出請(qǐng)求,我要訪問www.163.com,請(qǐng)告訴我它的IP地址
  • 本地DNS服務(wù)器向DNS根服務(wù)器發(fā)出請(qǐng)求,根DNS服務(wù)器會(huì)告訴本地服務(wù)器(.com)的服務(wù)器地址
  • 本地DNS服務(wù)器會(huì)向(.com域)發(fā)請(qǐng)求,會(huì)得到(163.com)的服務(wù)器地址
  • 本地DNS服務(wù)器會(huì)向(163.com)發(fā)請(qǐng)求,會(huì)得到(www.163.com)的IP地址1.1.1.1
  • 本地DNS服務(wù)器向客戶端回復(fù)域名(www.163.com)對(duì)應(yīng)的IP地址是1.1.1.1

3.5 應(yīng)用層

3.5.1 協(xié)議

17.mail.png

3.5.2 應(yīng)用層常見協(xié)議

  • HTTP 超文件傳輸協(xié)議
  • FTP 文件傳輸協(xié)議
  • SMTP(發(fā)送郵件)和POP3(接收郵件)

3.6 案例

數(shù)據(jù)->傳輸層(包)->網(wǎng)絡(luò)層(段Segment)->數(shù)據(jù)鏈路層(幀)

3.6.1 發(fā)送方是從高層到低層封裝數(shù)據(jù)

  • 在應(yīng)用層要把各式各樣的數(shù)據(jù)如字母、數(shù)字、漢字、圖片等轉(zhuǎn)換成二進(jìn)制
  • 在TCP傳輸層中,上層的數(shù)據(jù)被分割成小的數(shù)據(jù)段,并為每個(gè)分段后的數(shù)據(jù)封裝TCP報(bào)文頭部
  • 在TCP頭部有一個(gè)關(guān)鍵的字段信息端口號(hào),它用于標(biāo)識(shí)上層的協(xié)議或應(yīng)用程序,確保上層數(shù)據(jù)的正常通信
  • 計(jì)算機(jī)可以多進(jìn)程并發(fā)運(yùn)行,例如在發(fā)郵件的同時(shí)也可以通過瀏覽器瀏覽網(wǎng)頁(yè),這兩種應(yīng)用通過端口號(hào)進(jìn)行區(qū)分
  • 在網(wǎng)絡(luò)層,上層數(shù)據(jù)被封裝上親的報(bào)文頭部(IP頭部),上層的數(shù)據(jù)是包括TCP頭部的。IP地址包括的最關(guān)鍵字段信息就是IP地址,用于標(biāo)識(shí)網(wǎng)絡(luò)的邏輯地址。
  • 數(shù)據(jù)鏈路徑層,上層數(shù)據(jù)成一個(gè)MAC頭部,內(nèi)部有最關(guān)鍵的是MAC地址。MAC地址就是固化在硬件設(shè)備內(nèi)部的全球唯一的物理地址。
  • 在物理層,無論在之前哪一層封裝的報(bào)文頭和還是上層數(shù)據(jù)都是由二進(jìn)制組成的,物理將這些二進(jìn)制數(shù)字比特流轉(zhuǎn)換成電信號(hào)在網(wǎng)絡(luò)中傳輸
18.send.png

3.6.2 接收方是從低層到高層解封裝

  • 數(shù)據(jù)封裝完畢傳輸?shù)浇邮辗胶?,將?shù)據(jù)要進(jìn)行解封裝
  • 在物理層,先把電信號(hào)轉(zhuǎn)成二進(jìn)制數(shù)據(jù),并將數(shù)據(jù)傳送至數(shù)據(jù)鏈路層
  • 在數(shù)據(jù)鏈路層,把MAC頭部拆掉,并將剩余的數(shù)據(jù)傳送至上一層
  • 在網(wǎng)絡(luò)層,數(shù)據(jù)的IP頭部被拆掉,并將剩余的數(shù)據(jù)送至上一層
  • 在傳輸層,把TCP頭部拆掉,將真實(shí)的數(shù)據(jù)傳送至應(yīng)用層
19.receive.png

3.6.3 真實(shí)網(wǎng)絡(luò)環(huán)境

  • 發(fā)送方和接收方中間可能會(huì)有多個(gè)硬件中轉(zhuǎn)設(shè)備
  • 中間可能會(huì)增加交換機(jī)和路由器
  • 數(shù)據(jù)在傳輸過程中不斷地進(jìn)行封裝和解封裝的過程,每層設(shè)備只能處理哪一層的數(shù)據(jù)
    • 交換機(jī)屬于數(shù)據(jù)鏈路層
    • 路由器屬于網(wǎng)絡(luò)層
reaenv2.png

4. 附錄

4.1 不同層中的稱謂:

  • 數(shù)據(jù)幀(Frame):是一種信息單位,它的起始點(diǎn)和目的點(diǎn)都是數(shù)據(jù)鏈路層。
  • 數(shù)據(jù)包(Packet):也是一種信息單位,它的起始和目的地是網(wǎng)絡(luò)層。
  • 段(Segment):通常是指起始點(diǎn)和目的地都是傳輸層的信息單元。
  • 消息(message):是指起始點(diǎn)和目的地都在網(wǎng)絡(luò)層以上(經(jīng)常在應(yīng)用層)的信息單元。

4.2 IP頭服務(wù)類型

  • IP首部中的服務(wù)類型(TOS)
  • TOS包括共8位,包括3 bit的優(yōu)先權(quán)字段(取值可以從000-111所有值),4 bit的TOS子字段和1 bit未用位但必須置0。
  • 3bit的8個(gè)優(yōu)先級(jí)的定義如下:
    • 111--Network Control(網(wǎng)絡(luò)控制)一般保留給網(wǎng)絡(luò)控制數(shù)據(jù)使用,如路由。
    • 110--Internetwork Control(網(wǎng)間控制)
    • 101--Critic(關(guān)鍵)語(yǔ)音數(shù)據(jù)使用。
    • 100--Flash Override(疾速)視頻會(huì)議和視頻流使用。
    • 011--Flash(閃速)語(yǔ)音控制數(shù)據(jù)使用。
    • 010--Immediate(快速)數(shù)據(jù)業(yè)務(wù)使用
    • 001--Priority(優(yōu)先)數(shù)據(jù)業(yè)務(wù)使用
    • 000--Routine(普通)默認(rèn)標(biāo)記值。
  • 4 bit的TOS分別代表:最小時(shí)延、最大吞吐量、最高可靠性和最小費(fèi)用。4 bit中只能置其中1 bit。如果所有4 bit均為0,那么就意味著是一般服務(wù)。
  • Telnet、Rlogin這兩個(gè)交互應(yīng)用要求最小的傳輸時(shí)延,F(xiàn)TP文件傳輸要求最大吞吐量,最高可靠性是指網(wǎng)絡(luò)管理(SNMP)和路由選擇協(xié)議。用戶網(wǎng)絡(luò)新聞要求最小費(fèi)用

4.3 握手和斷開

tcp_hand_shake_detail.png
handshake.gif
tcp_head.png

5. 參考

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

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

  • 1、TCP為什么需要3次握手,4次斷開? “三次握手”的目的是“為了防止已失效的連接請(qǐng)求報(bào)文段突然又傳送到了服務(wù)端...
    杰倫哎呦哎呦閱讀 3,640評(píng)論 0 6
  • 1.這篇文章不是本人原創(chuàng)的,只是個(gè)人為了對(duì)這部分知識(shí)做一個(gè)整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,352評(píng)論 6 174
  • 個(gè)人認(rèn)為,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,185評(píng)論 0 8
  • 簡(jiǎn)介 用簡(jiǎn)單的話來定義tcpdump,就是:dump the traffic on a network,根據(jù)使用者...
    JasonShi6306421閱讀 1,342評(píng)論 0 1
  • 名詞延伸 通俗的說,域名就相當(dāng)于一個(gè)家庭的門牌號(hào)碼,別人通過這個(gè)號(hào)碼可以很容易的找到你。如果把IP地址比作一間房子...
    楊大蝦閱讀 20,787評(píng)論 2 56

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