我先梳理一下先
首先計算機網路學習的核心就是網路協議的學習,網路協議是為計算機網路中進行資料交換而建立的規則、標準或者說是約定的集合
計算機網路知識
- 一、網路層次劃分
- 二、OSI七層網路模型
- 2.1 OSI七層模型簡介
- 2.2 OSI七層網路模型詳解
- 1)物理層(Physical Layer)
- 2)資料鏈路層(Data Link Layer)
- 3)網路層(Network Layer)
- 4)傳輸層(Transport Layer)
- 5)會話層
- 6)表示層
- 7)應用層
- 三、IP地址
- 3.1 網路地址
- 3.2 廣播地址
- 3.3 組播地址
- 3.4 255.255.255.255
- 3.5 0.0.0.0
- 3.6 回環地址
- 3.7 A、B、C類私有地址
- 四、子網掩碼
- 4.1 什么是子網掩碼
- 五、網路協議
- 5.1 ARP/RARP協議
- 1)地址決議協議,即ARP(Address Resolution Protocol)
- 2)逆地址決議協議,即RARP
- 5.2 TCP/IP協議
- 1)IP協議
- 2)TCP協議
- 3)TCP協議的三次握手和四次揮手
- 5.3 UDP協議
- 5.4 DNS協議
- 5.5 NAT協議
- 5.6 DHCP協議
- 5.7 HTTP協議
一、網路層次劃分
著名的OSI/RM模型(Open System Interconnection/Reference Model),將計算機網路體系結構的通信協議劃分為七層,自下而上依次為:
物理層(Physics Layer)
資料鏈路層(Data Link Layer)
網路層(Network Layer)
傳輸層(Transport Layer)
會話層(Session Layer)
表示層(Presentation Layer)
應用層(Application Layer)
其中第四層(傳輸層)完成資料傳送服務
上面三層(會話層,表示層,應用層)面向用戶

依次為:TCP/IP 4層模型
TCP/IP 5層模型
OSI 7層模型
二、OSI七層網路模型
2.1 OSI七層模型簡介
TCP/IP協議是互聯網的基礎協議,沒有它就根本不可能上網,任何和互聯網有關的操作都離不開TCP/IP協議,不管是OSI七層模型還是TCP/IP的四層、五層模型,每一層中都要自己的專屬協議,完成自己相應的作業以及與上下層級之間進行溝通

2.2 OSI七層網路模型詳解
1)物理層(Physical Layer)
激活、維持、關閉通信端點之間的機械特性、電氣特性、功能特性以及程序特性,該層為上層協議提供了一個傳輸資料的可靠的物理媒體,簡單的說,物理層確保原始的資料可在各種物理媒體上傳輸,物理層記住兩個重要的設備名稱,中繼器和集線器
2)資料鏈路層(Data Link Layer)
資料鏈路層在物理層提供的服務的基礎上向網路層提供服務,其最基本的服務是將源自網路層來的資料可靠地傳輸到相鄰節點的目標機網路層
為達到這一目的,資料鏈路必須具備一系列相應的功能,主要有:
如何將資料組合成資料塊,在資料鏈路層中稱這種資料塊為幀(frame),幀是資料鏈路層的傳送單位;如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯,如何調節發送速率以使與接收方相匹配;以及在兩個網路物體之間提供資料鏈路通路的建立、維持和釋放的管理,資料鏈路層在不可靠的物理介質上提供可靠的傳輸
該層的作用包括:物理地址尋址、資料的成幀、流量控制、資料的檢錯、重發等
有關資料鏈路層的重點:
資料鏈路層為網路層提供可靠的資料傳輸
基本資料單位為幀
主要的協議:以太網協議
兩個重要設備名稱:網橋和交換機
3)網路層(Network Layer)
網路層的目的是實作兩個端系統之間的資料透明傳送,具體功能包括尋址和路由選擇、連接的建立、保持和終止等,它提供的服務使傳輸層不需要了解網路中的資料傳輸和交換技術,用盡量少的詞來記住網路層,那就是"路徑選擇、路由及邏輯尋址"
網路層中涉及眾多的協議,其中包括最重要的協議,也是TCP/IP的核心協議——IP協議,IP協議非常簡單,僅僅提供不可靠、無連接的傳送服務
IP協議的主要功能有:無連接資料報傳輸、資料報路由選擇和差錯控制,與IP協議配套使用實作其功能的還有地址決議協議ARP、逆地址決議協議RARP、因特網報文協議ICMP、因特網組管理協議IGMP
有關網路層的重點為:
網路層負責對子網間的資料包進行路由選擇,此外,網路層還可以實作擁塞控制、網際互連等功能
基本資料單位為IP資料報
包含的主要協議:
IP協議(Internet Protocol,因特網互聯協議)
ICMP協議(Internet Control Message Protocol,因特網控制報文協議)
ARP協議(Address Resolution Protocol,地址決議協議)
RARP協議(Reverse Address Resolution Protocol,逆地址決議協議)
重要的設備:路由器
4)傳輸層(Transport Layer)
第一個端到端,即主機到主機的層次,傳輸層負責將上層資料分段并提供端到端的、可靠的或不可靠的傳輸,此外,傳輸層還要處理端到端的差錯控制和流量控制問題, 傳輸層的任務是根據通信子網的特性,最佳的利用網路資源,為兩個端系統的會話層之間,提供建立、維護和取消傳輸連接的功能,負責端到端的可靠資料傳輸,在這一層,資訊傳送的協議資料單元稱為段或報文, 網路層只是根據網路地址將源結點發出的資料包傳送到目的結點,而傳輸層則負責將資料可靠地傳送到相應的埠
有關網路層的重點:
傳輸層負責將上層資料分段并提供端到端的、可靠的或不可靠的傳輸以及端到端的差錯控制和流量控制問題
包含的主要協議:TCP協議(Transmission Control Protocol,傳輸控制協議)、UDP協議(User Datagram Protocol,用戶資料報協議)
重要設備:網關
5)會話層
會話層管理主機之間的會話行程,即負責建立、管理、終止行程之間的會話,會話層還利用在資料中插入校驗點來實作資料的同步
6)表示層
表示層對上層資料或資訊進行變換以保證一個主機應用層資訊可以被另一個主機的應用程式理解,表示層的資料轉換包括資料的加密、壓縮、格式轉換等
7)應用層
為作業系統或網路應用程式提供訪問網路服務的介面
會話層、表示層和應用層重點:
資料傳輸基本單位為報文
包含的主要協議:
FTP(檔案傳送協議)
Telnet(遠程登錄協議)
DNS(域名決議協議)
SMTP(郵件傳送協議)
POP3協議(郵局協議)
HTTP協議(Hyper Text Transfer Protocol)
三、IP地址
3.1 網路地址
IP地址由網路號(包括子網號)和主機號組成,網路地址的主機號為全0,網路地址代表著整個網路
3.2 廣播地址
廣播地址通常稱為直接廣播地址,是為了區分受限廣播地址
廣播地址與網路地址的主機號正好相反,廣播地址中,主機號為全1,當向某個網路的廣播地址發送訊息時,該網路內的所有主機都能收到該廣播訊息
3.3 組播地址
D類地址就是組播地址
A,B,C,D類地址:(只有A,B,C有網路號和主機號之分,D類地址和E類地址沒有劃分網路號和主機號)
A類地址以0開頭,第一個位元組作為網路號,地址范圍為:0.0.0.0~127.255.255.255
B類地址以10開頭,前兩個位元組作為網路號,地址范圍是:128.0.0.0~191.255.255.255
C類地址以110開頭,前三個位元組作為網路號,地址范圍是:192.0.0.0~223.255.255.255
D類地址以1110開頭,地址范圍是224.0.0.0~239.255.255.255,D類地址作為組播地址(一對多的通信)
E類地址以1111開頭,地址范圍是240.0.0.0~255.255.255.255,E類地址為保留地址,供以后使用
3.4 255.255.255.255
該IP地址指的是受限的廣播地址,受限廣播地址與一般廣播地址(直接廣播地址)的區別在于,受限廣播地址只能用于本地網路,路由器不會轉發以受限廣播地址為目的地址的分組;一般廣播地址既可在本地廣播,也可跨網段廣播,例如:主機192.168.1.1/30上的直接廣播資料包后,另外一個網段192.168.1.5/30也能收到該資料報;若發送受限廣播資料報,則不能收到
一般的廣播地址(直接廣播地址)能夠通過某些路由器(當然不是所有的路由器),而受限的廣播地址不能通過路由器
3.5 0.0.0.0
常用于尋找自己的IP地址,例如在我們的RARP,BOOTP和DHCP協議中,若某個未知IP地址的無盤機想要知道自己的IP地址,它就以255.255.255.255為目的地址,向本地范圍(具體而言是被各個路由器屏蔽的范圍內)的服務器發送IP請求分組
3.6 回環地址
127.0.0.0/8被用作回環地址,回環地址表示本機的地址,常用于對本機的測驗,用的最多的是127.0.0.1
3.7 A、B、C類私有地址
私有地址(private address)也叫專用地址,它們不會在全球使用,只具有本地意義
A類私有地址:10.0.0.0/8,范圍是:10.0.0.0~10.255.255.255
B類私有地址:172.16.0.0/12,范圍是:172.16.0.0~172.31.255.255
C類私有地址:192.168.0.0/16,范圍是:192.168.0.0~192.168.255.255
四、子網掩碼
隨著互連網應用的不斷擴大,原先的IPv4的弊端也逐漸暴露出來,即網路號占位太多,而主機號位太少,所以其能提供的主機地址也越來越稀缺,目前除了使用NAT在企業內部利用保留地址自行分配以外,通常都對一個高類別的IP地址進行再劃分,以形成多個子網,提供給不同規模的用戶群使用
4.1 什么是子網掩碼
子網掩碼是標志兩個IP地址是否同屬于一個子網的,也是32位二進制地址,其每一個為1代表該位是網路位,為0代表主機位,它和IP地址一樣也是使用點式十進制來表示的,如果兩個IP地址在子網掩碼的按位與的計算下所得結果相同,即表明它們共屬于同一子網中
五、網路協議
5.1 ARP/RARP協議
1)地址決議協議,即ARP(Address Resolution Protocol)
arp協議由來:計算機通信基本靠吼,即廣播的方式,所有上層的包到最后都要封裝上以太網頭,然后通過以太網協議發送,在談及以太網協議時候,我門了解到通信是基于mac的廣播方式實作,計算機在發包時,獲取自身的mac是容易的,如何獲取目標主機的mac,就需要通過arp協議
arp協議功能:廣播的方式發送資料包,獲取目標主機的mac地址
協議作業方式:每臺主機ip都是已知的
2)逆地址決議協議,即RARP
向地址轉換協議(RARP:Reverse Address Resolution Protocol) 反向地址轉換協議(RARP)允許局域網的物理機器從網關服務器的 ARP 表或者快取上請求其 IP 地址,網路管理員在局域網網關路由器里創建一個表以映射物理地址(MAC)和與其對應的 IP 地址,當設定一臺新的機器時,其 RARP 客戶機程式需要向路由器上的 RARP 服務器請求相應的 IP 地址
5.2 TCP/IP協議
TCP/IP協議是Internet最基本的協議、Internet國際互聯網路的基礎,由網路層的IP協議和傳輸層的TCP協議組成
1)IP協議
IP層接收由更低層(網路介面層例如以太網設備驅動程式)發來的資料包,并把該資料包發送到更高層—TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的資料包傳送到更低層,IP資料包是不可靠的,因為IP并沒有做任何事情來確認資料包是否按順序發送的或者有沒有被破壞,IP資料包中含有發送它的主機的地址(源地址)和接收它的主機的地址(目的地址)
2)TCP協議
TCP是面向連接的通信協議,通過三次握手建立連接,通訊完成時要拆除連接,由于TCP是面向連接的所以只能用于端到端的通訊,TCP提供的是一種可靠的資料流服務,采用"帶重傳的肯定確認"技術來實作傳輸的可靠性,TCP還采用一種稱為"滑動視窗"的方式進行流量控制,所謂視窗實際表示接收能力,用以限制發送方的發送速度
3)TCP協議的三次握手和四次揮手
圖中簡稱注明:
seq:"sequance"序列號
ack:"acknowledge"確認號
SYN:"synchronize"請求同步標志
ACK:"acknowledge"確認標志
FIN:"Finally"結束標志

TCP連接建立程序
首先Client端發送連接請求報文
Server端接受連接后回復ACK報文,并為這次連接分配資源
Client端接收到ACK報文后也向Server段發生ACK報文,并分配資源
這樣TCP連接就建立了
TCP連接斷開程序
假設Client端發起中斷連接請求,也就是發送FIN報文
Server端接到FIN報文后,意思是說"我Client端沒有資料要發給你了",但是如果你還有資料沒有發送完成,則不必急著關閉Socket,可以繼續發送資料
所以你先發送ACK,“告訴Client端,你的請求我收到了,但是我還沒準備好,請繼續你等我的訊息”
這個時候Client端就進入FIN_WAIT狀態,繼續等待Server端的FIN報文
當Server端確定資料已發送完成,則向Client端發送FIN報文,“告訴Client端,好了,我這邊資料發完了,準備好關閉連接了”
Client端收到FIN報文后,"就知道可以關閉連接了,但是他還是不相信網路,怕Server端不知道要關閉,所以發送ACK后進入TIME_WAIT狀態,如果Server端沒有收到ACK則可以重傳
Server端收到ACK后,“就知道可以斷開連接了”
Client端等待了2MSL后依然沒有收到回復,則證明Server端已正常關閉,那好,我Client端也可以關閉連接了,TCP連接就這樣關閉了
為什么要三次握手?
在只有兩次"握手"的情形下,假設Client想跟Server建立連接,但是卻因為中途連接請求的資料報丟失了,故Client端不得不重新發送一遍;這個時候Server端僅收到一個連接請求,因此可以正常的建立連接
但是,有時候Client端重新發送請求不是因為資料報丟失了,而是有可能資料傳輸程序因為網路并發量很大在某結點被阻塞了,這種情形下Server端將先后收到2次請求,并持續等待兩個Client請求向他發送資料…問題就在這里,Cient端實際上只有一次請求,而Server端卻有2個回應,極端的情況可能由于Client端多次重新發送請求資料而導致Server端最后建立了N多個回應在等待,因而造成極大的資源浪費,所以,"三次握手"很有必要
為什么要四次揮手?
第一步,你自己先停止向Server端發送資料,并等待Server的回復,但事情還沒有完,雖然你自身不往Server發送資料了,但是因為你們之前已經建立好平等的連接了,所以此時他也有主動權向你發送資料;故Server端還得終止主動向你發送資料,并等待你的確認,
使用TCP的協議:
FTP(檔案傳輸協議)
Telnet(遠程登錄協議)
SMTP(簡單郵件傳輸協議)
POP3(和SMTP相對,用于接收郵件)
HTTP協議等
5.3 UDP協議
UDP用戶資料報協議,是面向無連接的通訊協議,UDP資料包括目的埠號和源埠號資訊,由于通訊不需要連接,所以可以實作廣播發送
UDP通訊時不需要接收方確認,屬于不可靠的傳輸,可能會出現丟包現象
UDP與TCP位于同一層,但它不管資料包的順序、錯誤或重發,因此,UDP不被應用于那些使用虛電路的面向連接的服務,UDP主要用于那些面向查詢—應答的服務,例如NFS,相對于FTP或Telnet,這些服務需要交換的資訊量較小
每個UDP報文分UDP報頭和UDP資料區兩部分,報頭由四個16位長(2位元組)欄位組成,分別說明該報文的源埠、目的埠、報文長度以及校驗值,UDP報頭由4個域組成,其中每個域各占用2個位元組,具體如下:
(1)源埠號
(2)目標埠號
(3)資料報長度
(4)校驗值
使用UDP協議包括:
TFTP(簡單檔案傳輸協議)
SNMP(簡單網路管理協議)
DNS(域名決議協議)
NFS
BOOTP
TCP 與 UDP 的區別:TCP是面向連接的,可靠的位元組流服務;UDP是面向無連接的,不可靠的資料報服務
5.4 DNS協議
DNS是域名系統(DomainNameSystem)的縮寫,該系統用于命名組織到域層次結構中的計算機和網路服務,可以簡單地理解為將URL轉換為IP地址,每一個域名都對應一個惟一的IP地址,在Internet上域名與IP地址之間是一一對應的,DNS就是進行域名決議的服務器
5.5 NAT協議
NAT網路地址轉換(Network Address Translation)屬接入廣域網(WAN)技術,是一種將私有(保留)地址轉化為合法IP地址的轉換技術,它被廣泛應用于各種型別Internet接入方式和各種型別的網路中,原因很簡單,NAT不僅完美地解決了lP地址不足的問題,而且還能夠有效地避免來自網路外部的攻擊,隱藏并保護網路內部的計算機
5.6 DHCP協議
DHCP動態主機設定協議(Dynamic Host Configuration Protocol)是一個局域網的網路協議,使用UDP協議作業,主要有兩個用途:給內部網路或網路服務供應商自動分配IP地址,給用戶或者內部網路管理員作為對所有計算機作中央管理的手段
5.7 HTTP協議
超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最為廣泛的一種網路協議,所有的WWW檔案都必須遵守這個標準
HTTP 協議包括哪些請求
GET:請求讀取由URL所標志的資訊
POST:給服務器添加資訊(如注釋)
PUT:在給定的URL下存盤一個檔案
DELETE:洗掉給定的URL所標志的資源
HTTP 中, POST 與 GET 的區別
1)Get是從服務器上獲取資料,Post是向服務器傳送資料
2)Get是把引數資料佇列加到提交表單的Action屬性所指向的URL中,值和表單內各個欄位一一對應,在URL中可以看到
3)Get傳送的資料量小,不能大于2KB;Post傳送的資料量較大,一般被默認為不受限制
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286770.html
標籤:其他
下一篇:C語言基礎篇之初識c語言(1)
