計算機網絡(英語:computer network),一般也簡稱網絡,是利用通訊設備和線路將地理位置不一樣的、功能獨立的多個計算機系統鏈接起來,以功能完善的網絡軟件實現網絡的硬件、軟件及資源共享和信息傳遞的系統。簡單的說即鏈接兩臺或多臺計算機進行通訊的系統。mysql
帶寬和延遲:咱們把網絡比喻成公路,帶寬大比如公路寬,能夠跑的車也就多;而延遲能夠能夠看做是路況,延遲高說明路況很差,堵車。算法
網絡的拓撲:sql
網絡通訊模式:緩存
網絡從範圍可劃分:安全
網絡中的經常使用概念:服務器
開放式系統互聯通訊參考模型(英語:Open System Interconnection Reference Model,縮寫爲 OSI),簡稱爲OSI模型(OSI model),一種概念模型,由國際標準化組織提出,一個試圖使各類計算機在世界範圍內互連爲網絡的標準框架。網絡
七:應用層(Application Layer):提供爲應用軟件而設的接口,以設置與另外一應用軟件之間的通訊。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。架構
六:表示層(Presentation Layer):把數據轉換爲能與接收者的系統格式兼容並適合傳輸的格式。oracle
五:會話層(Session Layer):負責在數據傳輸中設置和維護電腦網絡中兩臺電腦之間的通訊鏈接。框架
四:傳輸層(Transport Layer):把傳輸表頭(TH)加至數據以造成數據包。傳輸表頭包含了所使用的協議等發送信息。例如:傳輸控制協議(TCP)等。
三:網絡層(Network Layer):決定數據的路徑選擇和轉寄,將網絡表頭(NH)加至數據包,以造成分組。網絡表頭包含了網絡數據。例如:互聯網協議(IP)等。
二:數據鏈路層(Data Link Layer):負責網絡尋址、錯誤偵測和改錯。當表頭和表尾被加至數據包時,會造成幀。數據鏈表頭(DLH)是包含了物理地址和錯誤偵測及改錯的方法。數據鏈表尾(DLT)是一串指示數據包末端的字符串。例如以太網、無線局域網(Wi-Fi)和通用分組無線服務(GPRS)等。
一:物理層(Physical Layer):在局部局域網上傳送數據幀(data frame),它負責管理電腦通訊設備和網絡媒體之間的互通。包括了針腳、電壓、線纜規範、集線器、中繼器、網卡、主機適配器等。
PDU: Protocol Data Unit,協議數據單元是指對等層次之間傳遞的數據單位
是一個網絡通訊模型,以及一整個網絡傳輸協議家族,爲互聯網的基礎通訊架構。它常被通稱爲TCP/IP協議族(英語:TCP/IP Protocol Suite,或TCP/IP Protocols),簡稱TCP/IP。由於該協議家族的兩個核心協議:TCP(傳輸控制協議)和IP(網際協議),爲該家族中最先經過的標準。因爲在網絡通信協議廣泛採用分層的結構,當多個層次的協議共同工做時,相似計算機科學中的堆棧,所以又被稱爲TCP/IP協議棧(英語:TCP/IP Protocol Stack)。這些協議最先發源於美國國防部(縮寫爲DoD)的ARPA網項目,所以也被稱做DoD模型(DoD Model)。
對應OSI模型的物理層和數據鏈路層,下面總結一下工做在此層的設備及協議:
網絡傳輸線纜有雙絞線,同軸電纜和光纖,如今同軸電纜已經被淘汰了;雙絞線的傳輸距離在100m之內,同軸電纜(細):<185m,同軸電纜(粗):<500m
雙絞線可分爲屏蔽式和非屏蔽式,屏蔽式雙絞線孔幹饒更好
雙絞線線序:
雙絞線還分爲直通線和交叉線,相同類設備鏈接用交叉線,不一樣類設備用直連線,不過如今的網絡設備能夠只能識別收發
RJ-45:
若是速度在100Mdps之內使用1236線來傳輸,若是超過100Mdps到1000Mdps時使用所有線路傳輸,若是大於1000Mdps時使用八條線路全雙工模式傳輸。
GBIC是Giga Bitrate Interface Converter的縮寫,是將千兆位電信號轉換爲光信號的接口器件。
集線器的主要功能是對接收到的信號進行再生整形放大,以擴大網絡的傳輸距離,同時把全部節點集中在以它爲中心的節點上。
集線器工做在物理層,不會記錄MAC地址,hub中的設備共享網絡帶寬,半雙工工做模式。
網橋工做在OSI模型中的物理層和數據鏈路層。
網橋(Bridge)是早期的兩端口二層網絡設備,用來鏈接不一樣網段。網橋的兩個端口分別有一條獨立的交換信道,不是共享一條背板總線,可隔離衝突域。
以太網橋能夠監聽和學習數據幀中的源MAC地址,創建MAC地址表,若是是未知的目標MAC則轉發到監聽端口外的全部端口,若是是MAC表中有的目標地址則會直接轉發到相應的端口。
網橋轉發全部廣播報文,能夠隔離衝突域,可是沒法隔離廣播域
交換機的工做原理和以太網橋相同。可是比網橋有更高級的功能
二層交換機工做於數據鏈路層。交換機內部的CPU會在每一個端口成功鏈接時,經過將MAC地址和端口對應,造成一張MAC表。在從此的通信中,發往該MAC地址的數據包將僅送往其對應的端口,而不是全部的端口。所以交換機可用於劃分數據鏈路層廣播,即衝突域;但它不能劃分網絡層廣播,即廣播域。
交換機端口的工做模式:Access(普通模式),Multi(多vlan模式),Trunk(中繼模式)
以太網幀的結構:
Preamble:前導信息
Destination Address:目標MAC地址
Source Address:源MAC地址
Type:上層協議類型
Data:數據
FCS:校驗位
物理地址(Physical Address),它是一個用來確認網絡設備位置的地址。MAC地址用於在網絡中惟一標示一個網卡,一臺設備如有一或多個網卡,則每一個網卡都須要並會有一個惟一的MAC地址。
MAC地址共48位(6個字節),以十六進制表示。前24位由IEEE決定如何分配,後24位由實際生產該網絡設備的廠商自行指定。ff:ff:ff:ff:ff:ff則做爲廣播地址。
是一種建構於局域網交換技術(LAN Switch)的網絡管理的技術,網管人員能夠藉此經過控制交換機有效分派出入局域網的數據包到正確的出入端口,達到對不一樣實體局域網中的設備進行邏輯分羣(Grouping)管理,並下降局域網內大量數據流通時,因無用數據包過多致使擁塞的問題,以及提高局域網的信息安全保障。
VLAN的特色:
提供路由與轉送兩種重要機制,能夠決定數據包歷來源端到目的端所通過的路由路徑(host到host之間的傳輸路徑),這個過程稱爲路由;將路由器輸入端的數據包移送至適當的路由器輸出端(在路由器內部進行),這稱爲轉送。
路由工做在OSI模型的網絡層
把一個數據包從一個設備發送到不一樣網絡裏的另外一個設備上去。這些工做依靠路由器來完成。路由器只關心網絡的狀態和決定網絡中的最佳路徑。路由的實現依靠路由器中的路由表來完成。
路由器的負責:
是一種面向鏈接的、可靠的、基於字節流的傳輸層通訊協議,由IETF的RFC 793定義。在簡化的計算機網絡OSI模型中,它完成第四層傳輸層所指定的功能
TCP的工做特性:
端口號:計算機上的進程要和其餘進程通訊是要經過計算機端口的,而一個計算機端口某個時刻只能被一個進程佔用,因此經過指定源端口和目標端口,就能夠知道是哪兩個進程須要通訊。
源端口和目的端口用16bit標識,最大標識2^16=65536 個端口
0-1023:系統端口
1024-29151:普通用戶端口
49152-65535:客戶段隨機端口
常見應用的端口號
http 80
https 443
ftp 20/21
dns 53
tftp 69
smtp25
pop3 110
map 143
telnet 23
ssh 22
mysql 3306
oracle 1521
sql server 1433
[root@rhel6 ~]# cat /etc/services 查看當前已使用的全部協議及端口號
[root@rhel6 ~]# cat /proc/sys/net/ipv4/ip_local_port_range 查看客戶端端口範圍
序列號(序號):表示本報文段所發送數據的第一個字節的編號。在TCP鏈接中所傳送的字節流的每個字節都會按順序編號。因爲序列號由32位表示,因此每2^32個字節,就會出現序列號迴繞,再次從 0 開始。
確認號:表示接收方指望收到發送方下一個報文段的第一個字節數據的編號。也就是告訴發送發:我但願你(指發送方)下次發送的數據的第一個字節數據的編號是這個確認號
數據偏移:表示TCP報文段的首部長度,共4位,因爲TCP首部包含一個長度可變的選項部分,須要指定這個TCP報文段到底有多長。它指出 TCP 報文段的數據起始處距離 TCP 報文段的起始處有多遠。該字段的單位是32位(即4個字節爲計算單位),4位二進制最大表示15,因此數據偏移也就是TCP首部最大60字節
URG:表示本報文段中發送的數據是否包含緊急數據。後面的緊急指針字段(urgentpointer)只有當URG=1時纔有效;
ACK:表示是否前面的確認號字段是否有效。ACK=1,表示有效。只有當ACK=1時,前面的確認號字段纔有效。TCP規定,鏈接創建後,ACK必須爲1,帶ACK標誌的TCP報文段稱爲確認報文段;
PSH:提示接收端應用程序應該當即從TCP接收緩衝區中讀走數據,爲接收後續數據騰出空間。若是爲1,則表示對方應當當即把數據提交給上層應用,而不是緩存起來,若是應用程序不將接收到的數據讀走,就會一直停留在TCP接收緩衝區中;
RST:若是收到一個RST=1的報文,說明與主機的鏈接出現了嚴重錯誤(如主機崩潰),必須釋放鏈接,而後再從新創建鏈接。或者說明上次發送給主機的數據有問題,主機拒絕響應,帶RST標誌的TCP報文段稱爲復位報文段;
SYN:在創建鏈接時使用,用來同步序號。當SYN=1,ACK=0時,表示這是一個請求創建鏈接的報文段;當SYN=1,ACK=1時,表示對方贊成創建鏈接。SYN=1,說明這是一個請求創建鏈接或贊成創建鏈接的報文。只有在前兩次握手中SYN才置爲1,帶SYN標誌的TCP報文段稱爲同步報文段;
FIN:表示通知對方本端要關閉鏈接了,標記數據是否發送完畢。若是FIN=1,即告訴對方:「個人數據已經發送完畢,你能夠釋放鏈接了」,帶FIN標誌的TCP報文段稱爲結束報文段。
窗口大小:表示如今容許對方發送的數據量,也就是告訴對方,從本報文段的確認號開始容許對方發送的數據量
校驗和:提供額外的可靠性
緊急指針:標記緊急數據在數據字段中的位置
選項部分:其最大長度可根據TCP首部長度進行推算。TCP首部長度用4位表示,選項部分最長爲:(2^4-1)*4-20=40字節
常見選項:
客戶端發出確認包後從SYNSEND狀態切換到ESTABLISHED(已鏈接狀態);服務器收到ESTABLISHED(已鏈接狀態),接下來就能夠愉快的通訊了。
當數據傳輸完成時須要斷開鏈接,由客戶端或者服務器,或者同時發起斷開請求,咱們下面只假設客戶端發起分手請求來討論:
一次tcp的會話完成!
是一個簡單的面向數據報的傳輸層協議
UDP特性:
是互聯網協議族的核心協議之一。它用於TCP/IP網絡中發送控制消息,提供可能發生在通訊環境中的各類問題反饋,經過這些信息,使管理者能夠對所發生的問題做出診斷,而後採起適當的措施解決。
ICMP依靠IP來完成它的任務,它是IP的主要部分。它與傳輸協議(如TCP和UDP)顯著不一樣:它通常不用於在兩點間傳輸數據。它一般不禁網絡程序直接使用,除了ping和traceroute這兩個特別的例子。
TCP/IP協議棧中把ISO七層模型中的會話層,表示層,應用層所有合爲應用層。
運行在TCP協議上的協議:
運行在UDP協議上的協議:
IP地址
它們可惟一標識 IP 網絡中的每臺設備
每臺主機(計算機、網絡設備、外圍設備)必須具備惟一的地址 IP地址由兩部分組成:
• 網絡ID:
• 標識網絡 • 每一個網段分配一個網絡ID
• 主機 ID:
• 標識單個主機
• 由組織分配給各設備