目錄
一.網路協議
1.1協議分層--OSI七層模型
1.2協議分層--TCP/IP五層/四層模型
二.網路傳輸基本流程
2.1資料封裝
2.2資料分用
三.網路中地址管理
3.1IP地址
網路解決的問題是牽扯到資料雙方的,一定會存在資料發送方和資料接收方,而此時的發送方和接收方就是某一個行程,網路解決的不同機器之間不同行程的行程通信問題,
一.網路協議
網路協議解決的就是網路雙方發送的網路資料格式問題,網路協議本質上就是對發和接受的資料的格式做出約定,
1.1協議分層--OSI七層模型
OSI七層模型是一個理論模型在工業當中參考的并不是很廣泛,他包含物理層,資料鏈路層,網路層,傳輸層,會話層,表示層和應用層(物數網傳會表應),
- 物理層:他負責將資料轉換成光電信號,將光電信號轉換成二進制資料,實際最終信號的傳輸是通過物理層實作的,典型設備:集線器,
- 資料鏈路層:他負責相鄰設備之間的傳輸,他將位元組合成位元組,再將位元組組合成幀,使用鏈路層地址(以太網使用MAC地址)來訪問介質,并進行差錯檢驗,典型設備:交換機,
- 網路層:他通過IP尋址來建立兩個節點之間的連接,為源端的運輸層送來的分組,他負責地址管理和路由選擇,選擇合適的路由和交換節點,正確的按照地址傳輸給目的端的傳輸層,典型設備是路由器,
- 傳輸層:他負責端與端之間的傳輸,傳輸層的作用是為了上層協議提供端到端的可靠和透明的資料傳輸服務,包括處理差錯控制和流量控制等,
- 會話層:他就是負責建立,管理和終止表示層物體之間的通信會話,不同設備中的應用程式之間的服務請求和回應組成了會話層的通信,
- 表示層:他提供各種用于應用層資料的編碼和轉換功能,確保一個系統的應用層發送的資料能被另一個系統的應用層所識別,
- 應用層:他是為計算機用戶提供應用介面,也為用戶直接提供各種網路服務,
OSI七層模型各層的功能定義:
1.2協議分層--TCP/IP五層/四層模型
TCP/IP模型如果是按五層模型的話自底向上是物理層,資料鏈路層,網路層,傳輸層,應用層;如果是四層模型的話就不算物理層,應用層代碼就是程式員完成的代碼,而剩下的四層傳輸層,網路層,資料鏈路層和物理層的代碼在內核當中的網路協議堆疊就將已完成代碼,
兩種協議分層的對比
| OSI七層模型 | TCP/IP模型 | 對應的網路協議 |
| 物理層 | 資料鏈路層 | IEEE802.1A,IEEE 802.2到IEEE802.11,以太網協議 |
| 資料鏈路層 | FDDI , Ethernet(以太網協議) , Arpanet , PDN , SLIP , PPP | |
| 網路層 | 網路層 | IP,ICMP,RARP,AKP,UUCP |
| 傳輸層 | 傳輸層 | TCP,UDP |
| 會話層 | 應用層 | SMTP,DNS |
| 表示層 | Telent,Rlogin,SNMP,Gopher | |
| 應用層 | HTTP,TFTP,FTP,NFS,WAIS,SMTP |
二.網路傳輸基本流程
- 不同的協議層對資料包有不同的稱謂,在傳輸層叫欄位(segment),在網路層叫做資料報 (datagram),在鏈路層叫做幀(frame),
- 應用層資料通過協議堆疊發到網路上時,每層協議都要加上一個資料首部(header),稱為封裝(Encapsulation),
- 首部資訊中包含了一些類似于首部有多長, 載荷(payload)有多長, 上層協議是什么等資訊. 資料封裝成幀后發到傳輸介質上,到達目的主機后每層協議再剝掉相應的首部, 根據首部中的 "上層協議欄位" 將資料交給對應的上層協議處理,
2.1資料封裝
資料在發送的程序中是資料封裝的程序,如下圖是資料封裝的程序:

現在在應用層產生了一個資料A,在應用層有可能會給傳輸的資料加上所使用的的APP的首部,然后傳輸到傳輸層;傳輸層在這里打上傳輸層的TCP首部/UDP首部(看你用的是什么協議)然后將資料交給網路層;網路層在這里打上IP的頭部,然后將整個資料再遞交給資料鏈路層;資料鏈路層再打上以太網頭部和以太網尾部,然后將資料遞交給物理層,物理層將其處理成光電信號傳輸給對端,對端物理層進行接收,
2.2資料分用
資料的分用就是當前已經傳輸過來的資料進行分用,也就是上圖的逆轉,進行層層分用,物理層將傳輸過來的資料轉化成二進制資料,然后遞交給資料鏈路層;資料鏈路層拿到資料之后去掉以太網頭部與尾部,將中間的資料遞交給網路層;網路層拿到資料去掉IP首部然后傳遞給傳輸層;傳輸層去掉傳輸層頭部遞交給應用層;應用層的去掉自己APP的包頭,然后得到原始資料,
三.網路中地址管理
3.1IP地址
IP協議有兩個版本, IPv4和IPv6. 我們整個的課程, 凡是提到IP協議, 沒有特殊說明的, 默認都是指IPv4,
- IP地址作用:他是在IP一種用來標識網路中不同主機的地址
- IP地址的本質:對于IPv4來說, IP地址是一個4位元組, 32位的整數
- IP地址的表現形式:我們通常也使用 "點分十進制" 的字串表示IP地址, 例如 192.168.0.1 ; 用點分割的每一個數字表示一個 位元組, 范圍是 0 - 255
注意:機器獲取的IP地址并不是固定的,他是動態的,我們在解決IP地址枯竭的問題上我們有兩個協議,一個是動態主機分配協議(DHCP),誰上網給誰分配IP;另一個是地址轉換協議,
3.2MAC地址
- MAC地址作用:他是資料鏈路層相連的設備進行互相識別
- MAC地址本質:它的長度為48位,也就是說6個位元組
- MAC地址表現形式:16進制數字加上冒號的形式來表示
注意:他在出廠時由網卡廠商分配,為固定形式,一般是不可以修改的
四.埠
- 埠的作用:在一臺機器上,一個埠可以唯一標識一臺行程,所以當網路資料到達網路協議堆疊之后,可以通過埠資訊確認該條訊息是發送給哪一個行程的,
- 埠的本質:它的本質其實是一個uint16_t的整數(0~65535)
注意:一個埠只能被一個行程所系結,但是一個行程可以系結多個埠,IP+port就可以在網路當中唯一定位一臺主機當中的一個行程了,
知名埠:0~1023,這個范圍內的埠已經被一些知名的協議或者程式所使用了,
http:80 https:443 ssh:22 oracle:1521 Mysql:3306
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/294909.html
標籤:其他
下一篇:Nginx教程
