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è)功能相對單一的子進(jìn)程
  • 整個(gè)流程更加清晰卡啰,復(fù)雜問題簡單化
  • 更容易發(fā)現(xiàn)問題并針對性的解決問題
    • 應(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é)議的簡稱
  • 早期的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表或者緩存上請求其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)心的是用什么信號來表示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)識計(jì)算機(jī)身份的
  • 每個(gè)網(wǎng)卡都有一個(gè)全球唯一的地址來標(biāo)識自己,不會(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ò)中观话,每臺計(jì)算機(jī)都有一個(gè)唯一的地址予借,方便別人找到它,這個(gè)地址稱為IP地址频蛔。

3.2.3.1 IP頭部
ipheader.png
  • 版本
  • 首部長部
  • 優(yōu)先級與服務(wù)類型
  • 總長度 該字段用以指示整個(gè)IP數(shù)據(jù)包的長度灵迫,最長為65535字節(jié),包括頭和數(shù)據(jù)
  • 標(biāo)識符 唯一標(biāo)識主機(jī)發(fā)送的每一份數(shù)據(jù)報(bào)
  • 標(biāo)志 分為3個(gè)字段晦溪,依次為保留位瀑粥、不分片位和更多片位
    • 保留位:一般被置為0
    • 不分片位:表示該數(shù)據(jù)報(bào)是否被分片,如果被置為1三圆,則不能對數(shù)據(jù)報(bào)進(jìn)行分片狞换,如果要對其進(jìn)行分片處理,就應(yīng)將其置為0
    • 更多片位:除了最后一個(gè)分片舟肉,其他每個(gè)組成數(shù)據(jù)報(bào)的片都要將該位置設(shè)置為1.
  • 段偏移量 該分片相對于原始數(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對應(yīng)于一個(gè)數(shù)據(jù)包通過路由器的數(shù)目磷籍,一個(gè)數(shù)據(jù)包每經(jīng)過一個(gè)路由器适荣,TTL將減去1。
  • 協(xié)議號 用以指示IP數(shù)據(jù)包中封裝的是哪個(gè)協(xié)議
  • 首部校驗(yàn)和 檢驗(yàn)和是16位的錯(cuò)誤檢測字段院领。目的主機(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ī)測試的,除了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)識的是主機(jī)所在的子網(wǎng),以及哪些位標(biāo)識的是主機(jī)位的掩碼教翩。 子網(wǎng)掩碼不能單獨(dú)存在杆勇,它必須結(jié)合IP地址一起使用。 子網(wǎng)掩碼只有一個(gè)作用饱亿,就是將某個(gè)IP地址劃分成網(wǎng)絡(luò)地址和主機(jī)地址兩部分蚜退。

  • 子網(wǎng)掩碼也是32個(gè)二進(jìn)制位
  • 對應(yīng)IP的網(wǎng)絡(luò)部分用1表示
  • 對應(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 對可靠性要求高的上層協(xié)議,實(shí)現(xiàn)可靠性的保證 [#](#t223.3.2 對可靠性要求高的上層協(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)行分段打包傳輸
  • 對每個(gè)數(shù)據(jù)包編號控制順序
  • 運(yùn)輸中丟失识埋、重發(fā)和丟棄處理
  • 流量控制避免擁塞
3.3.4.1 TCP數(shù)據(jù)包封裝
tcpport.png
  • 源端口號和目標(biāo)端口號凡伊,計(jì)算機(jī)通過端口號識別訪問哪個(gè)服務(wù),比如http服務(wù)或ftp服務(wù),發(fā)送方端口號是進(jìn)行隨機(jī)端口窒舟,目標(biāo)端口號決定了接收方哪個(gè)程序來接收
tcpsequence.png
  • 32位序列號 TCP用序列號對數(shù)據(jù)包進(jìn)行標(biāo)記系忙,以便在到達(dá)目的地后重新重裝,假設(shè)當(dāng)前的序列號為 s惠豺,發(fā)送數(shù)據(jù)長度為 l银还,則下次發(fā)送數(shù)據(jù)時(shí)的序列號為 s + l。在建立連接時(shí)通常由計(jì)算機(jī)生成一個(gè)隨機(jī)數(shù)作為序列號的初始值
tcpconfirm.png
  • 確認(rèn)應(yīng)答號 它等于下一次應(yīng)該接收到的數(shù)據(jù)的序列號洁墙。假設(shè)發(fā)送端的序列號為 s蛹疯,發(fā)送數(shù)據(jù)的長度為 l,那么接收端返回的確認(rèn)應(yīng)答號也是 s + l热监。發(fā)送端接收到這個(gè)確認(rèn)應(yīng)答后捺弦,可以認(rèn)為這個(gè)位置以前所有的數(shù)據(jù)都已被正常接收。

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

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

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

tcpack.png
  • ACK(acknowledgement 確認(rèn))為1表示確認(rèn)號
tcpsyn.png
  • SYN(synchronous建立聯(lián)機(jī)) 同步序號位 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)答號開始能夠接受多少個(gè) 8 位字節(jié)囱晴。如果窗口大小為 0膏蚓,可以發(fā)送窗口探測。

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)識為SYN標(biāo)識位的數(shù)據(jù)段發(fā)送給主機(jī)B請求連接籽孙,通過該數(shù)據(jù)段告訴主機(jī)B希望建立連接,需要B應(yīng)答朗鸠,并告訴主機(jī)B傳輸?shù)钠鹗夹蛄刑?/li>
  • 第二次握手是主機(jī)B用一個(gè)確認(rèn)應(yīng)答ACK和同步序列號SYNC標(biāo)志位的數(shù)據(jù)段來響應(yīng)主機(jī)A蚯撩,一是發(fā)送ACK告訴主機(jī)A收到了數(shù)據(jù)段,二是通知主機(jī)A從哪個(gè)序列號做標(biāo)記烛占。
  • 第三次握手是主機(jī)A確認(rèn)收到了主機(jī)B的數(shù)據(jù)段并可以開始傳輸實(shí)際數(shù)據(jù)胎挎。
3.2.4.2.2 四次斷開
  • 主機(jī)A發(fā)送FIN控制位發(fā)出斷開連接的請求
  • 主機(jī)B進(jìn)行響應(yīng)沟启,確認(rèn)收到斷開連接請求
  • 主機(jī)B提出反方向的關(guān)閉要求
  • 主機(jī)A確認(rèn)收到的主機(jī)B的關(guān)閉連接請求
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)簡單胳搞,在數(shù)據(jù)傳輸時(shí)能實(shí)現(xiàn)最小的開銷,如果進(jìn)程想發(fā)送很短的報(bào)文而對可靠性要求不高可以使用

3.4.1 UDP的封裝格式

15.udp.png
udplength.png
udpcheck.png

3.4.2 UDP的應(yīng)用

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

3.4.3 DNS服務(wù)器

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

DNS是Domain Name Service的縮寫称杨,DNS服務(wù)器進(jìn)行域名和與之對應(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ā)出請求肌毅,我要訪問www.163.com,請告訴我它的IP地址
  • 本地DNS服務(wù)器向DNS根服務(wù)器發(fā)出請求姑原,根DNS服務(wù)器會(huì)告訴本地服務(wù)器(.com)的服務(wù)器地址
  • 本地DNS服務(wù)器會(huì)向(.com域)發(fā)請求悬而,會(huì)得到(163.com)的服務(wù)器地址
  • 本地DNS服務(wù)器會(huì)向(163.com)發(fā)請求,會(huì)得到(www.163.com)的IP地址1.1.1.1
  • 本地DNS服務(wù)器向客戶端回復(fù)域名(www.163.com)對應(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)鍵的字段信息端口號般婆,它用于標(biāo)識上層的協(xié)議或應(yīng)用程序,確保上層數(shù)據(jù)的正常通信
  • 計(jì)算機(jī)可以多進(jìn)程并發(fā)運(yùn)行朵逝,例如在發(fā)郵件的同時(shí)也可以通過瀏覽器瀏覽網(wǎng)頁蔚袍,這兩種應(yīng)用通過端口號進(jìn)行區(qū)分
  • 在網(wǎng)絡(luò)層,上層數(shù)據(jù)被封裝上親的報(bào)文頭部(IP頭部)配名,上層的數(shù)據(jù)是包括TCP頭部的页响。IP地址包括的最關(guān)鍵字段信息就是IP地址,用于標(biāo)識網(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)換成電信號在網(wǎng)絡(luò)中傳輸
18.send.png

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

  • 數(shù)據(jù)封裝完畢傳輸?shù)浇邮辗胶螅瑢?shù)據(jù)要進(jìn)行解封裝
  • 在物理層贴彼,先把電信號轉(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)先級的定義如下:
    • 111--Network Control(網(wǎng)絡(luò)控制)一般保留給網(wǎng)絡(luò)控制數(shù)據(jù)使用,如路由蚌堵。
    • 110--Internetwork Control(網(wǎng)間控制)
    • 101--Critic(關(guān)鍵)語音數(shù)據(jù)使用买决。
    • 100--Flash Override(疾速)視頻會(huì)議和視頻流使用。
    • 011--Flash(閃速)語音控制數(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)容合作請聯(lián)系作者
  • 序言:七十年代末迁筛,一起剝皮案震驚了整個(gè)濱河市煤蚌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌细卧,老刑警劉巖尉桩,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異贪庙,居然都是意外死亡蜘犁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門止邮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來这橙,“玉大人奏窑,你說我怎么就攤上這事∥隽担” “怎么了良哲?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長助隧。 經(jīng)常有香客問我筑凫,道長,這世上最難降的妖魔是什么并村? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任巍实,我火速辦了婚禮,結(jié)果婚禮上哩牍,老公的妹妹穿的比我還像新娘棚潦。我一直安慰自己,他們只是感情好膝昆,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布丸边。 她就那樣靜靜地躺著,像睡著了一般荚孵。 火紅的嫁衣襯著肌膚如雪妹窖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天收叶,我揣著相機(jī)與錄音骄呼,去河邊找鬼。 笑死判没,一個(gè)胖子當(dāng)著我的面吹牛蜓萄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播澄峰,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼嫉沽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了俏竞?” 一聲冷哼從身側(cè)響起耻蛇,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胞此,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跃捣,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡漱牵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疚漆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酣胀。...
    茶點(diǎn)故事閱讀 38,716評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡刁赦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出闻镶,到底是詐尸還是另有隱情甚脉,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布铆农,位于F島的核電站牺氨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏墩剖。R本人自食惡果不足惜猴凹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望岭皂。 院中可真熱鬧郊霎,春花似錦、人聲如沸爷绘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽土至。三九已至购对,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間毙籽,已是汗流浹背洞斯。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坑赡,地道東北人烙如。 一個(gè)月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像毅否,于是被迫代替她去往敵國和親亚铁。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評論 2 350

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

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