1. 程式人生 > 實用技巧 >網路基礎

網路基礎

網路基礎第一部分

課程概述介紹說明

1. 網路學習概念介紹  
     什麼是網路技術 | 學習網路重要性  | 網路的技術技能介紹瞭解
2. 網路實現通訊條件  
     網路傳輸傳輸介質介紹  |  網絡卡裝置功能作用說明 | 網路傳輸速率協商過程概念理解  |  網路資料傳遞過程	   
3. 網路重要裝置介紹  
     網路交換裝置概念作用介紹  |  網路路由裝置概念作用介紹概念掌握
4. 網路路由配置方法  
     路由配置命令資訊

1. 網路學習概念介紹

什麼是網路: 實現資料傳輸過程 傳送資料  接收資料

網路重要性: 所有所有技術領域都需要關注基礎基礎了

網路技術知識:  
路由相關知識 (路由協議 NAT技術 ACL訪問控制)
交換相關知識 (通訊原理 vlan 生成樹技術--網路環路問題)
網路安全知識 (防火牆 入侵 審計 等級保護--加固網路)
無線網路知識 語音網路技術 儲存網路技術 .... 

2.網路實現通訊條件

A主機 -- B主機

網路通訊基礎三要素:
1) 需要擁有傳輸介質 (網線 光纖線 無線)
   網線: 電訊號資訊 二進位制資訊 0 1  轉換高低電壓進行傳遞  
      網線型別: 5類 超5類 6類 7類 8類 在傳輸資料效率會有區別   100M 1000M 10000M
	 傳輸距離: 100m 
	 
   光纖: 光訊號資訊 反射實現資訊傳遞
     光纖型別: 單模光纖(通過一束光傳遞 傳輸距離會更長) 多模光纖(經過多次折射實現訊號傳遞 傳輸距離會短些)
	 傳輸距離: 幾公里 ~  幾十公里


網線製作(線序):
線序排序區分:
   568A:綠白-1,綠-2,橙白-3,藍-4,藍白-5,橙-6,棕白-7,棕-8。
   568B:橙白-1,橙-2,綠白-3,藍-4,藍白-5,綠-6,棕白-7,棕-8。 常用線序
   
2) 實現網路通訊網絡卡裝置
	   傳送資料: 將電腦上面二進位制資訊轉換成傳輸介質可以識別資訊(二進位制 - 電訊號)
	   接收資料: 將傳輸介質識別資訊轉換為電腦上面可以識別二進位制(電訊號 - 二進位制)
       
       位元流:01010101010010111	  

       每秒鐘接收一個bit==一個二進位制  10s
	   每毫秒接收一個bit==1000個       1s    bps每秒鐘接收或傳送多少個bit
       
	   100Mb -- 網路資料傳輸單位 b 位元  1bit=1/8  
	      MB -- 資料儲存單位     B 位元組  1B=8bit    1MB=8Mb
	  
	   傳輸資料效率: 130Mps  130000k 130000000bps (每秒鐘傳輸多少個bit )  
       100MB 資料   1B=8bit --> 100*8=800Mb / 130 = 8s
		
	   某個人購買100M線路, 但是利用下載軟體下載資料時, 根本無法達到100M, 為什麼?
	   100Mb  下載軟體下載資料時(速率顯示都是 B) --- 100Mb/8-損耗=8MB
	   運營商進行測速時 -- 發現100M線路速率可以達到 100/8=12.5
		
    3) 資料傳輸速率協商過程
	   通訊雙方網絡卡速率  傳輸介質速率   

階段知識總結:
1)網路知識概念介紹
2)網路通訊條件說明
3)網路資料傳輸過程 簡單說明
1)資料傳輸需要有封裝或解封過程
2)資料傳輸都是有去有回

操作安裝一個網路軟體程式:
思科:PacketTracer
H3C HW: ensp

3. 網路重要裝置介紹

3.1交換機

--- 為了實現多臺主機之間可以更好傳遞資訊

交換機: 實現一個網路內部多臺主機裝置通訊需求
如何實現資料傳遞:
問題一: 傳送出資料誰來接收, 誰來響應
        主機身份標識資訊:類似於人的名字  mac地址 實體地址=網絡卡廠商  
		MAC地址標識規律:採用16進位制數方式進行標識 0 - F  0AAA==思科  0BBB 華為
		源mac 目標mac :標識傳送或接收資料網絡卡資訊
		MAC地址呈現方式: 16進位制數進行顯示 不能進行修改調整 全球唯一

問題二: 傳送出資料如何準確到達目標主機
        首先借助廣播方式傳遞資訊, 並且每個資料資訊前面要有頭部資訊
		只有符合頭部資訊主機接收處理資料, 不符合的主機接收主機後會丟棄
		接收資料後, 網路通訊需要有相應過程
		  			

廣播通訊時:會使主機效能下降 / 避免廣播對部分主機影響

一個網路中主機數量過多,會將多個主機進行區域拆分,避免大量廣播多整個區域影響
拆分每一個區域屬於一個廣播域(區域網)

交換機理論上可以實現不同網路之間通訊:
問題一: 資料廣播時, 會引發資料安全性問題
問題二: 資料廣播時, 會發送資料到所有網路環境, 影響網路環境主機效能

3.2 路由器

--- 實現不同網路(不同區域)之間多臺主機裝置通訊需求

如何實現資料傳遞:
問題一: 傳送出資料誰來接收, 誰來響應
        IP地址如何標識主機身份:區域資訊(網段資訊)+ 區域中主機地址資訊
		                           192.168.16.            251
        IP地址是由十進位制組成 分為4組 xx.xx.xx.xx 每組十進位制範圍 0~255 
		路由器會識別資料包中源地址和目標地址網段資訊
        源網段資訊 == 目標網段資訊, 路由器會將資料包隔離不會發送
		源網段資訊 != 目標網段資訊, 路由器會將資料包進行轉發 
		
    資料資訊前面 要寫入源地址 目標地址資訊 --- IP地址概念(邏輯地址) 標識傳送或接收資料網絡卡資訊 + 網路資訊
    IP地址呈現方式:  10進位制資料進行顯示  可以按照規劃進行修改  全球唯一???
	
   MAC vs IP 
	MAC地址只是表示主機網絡卡資訊
	IP地址可以表示主機網絡卡資訊, 還可以表示區域網標識資訊  IP == 網路部分(區域網標識)+主機部分(網絡卡地址)


問題二: 傳送出資料如何準確到達目標主機	 如何避免將資料傳送到其它區域網中	
        藉助路由資訊, 來識別資料包如何進行轉發到指定網路中
		路由(路由表)  ==  導航(地圖) 
	2列資訊  路由表:
	第一列: 去往目標網路資訊(區域網編號資訊)
	第二列: 去往指定目標網路介面資訊
	
	根據路由表的資訊, 識別資料包頭部的目標網路資訊, 獲知資料應該如何進行轉發 到達指定網路中

PS: 路由表中條目資訊預設是空的, 需要利用特殊方法(路由協議)進行構建

網路環境規模劃分:
最小規模網路環境: 區域網
中型規模網路環境: 園區網 -- 多個區域網
大型規模網路環境: 都會網路 -- 多個園區網

超大規模網路環境: 網際網路 -- 多個都會網路

階段總結說明:
交換機:
概念:實現一個區域網內多臺主機通訊需求
識別地址方式:識別mac地址資訊進行通訊
資料轉發通訊方式:利用廣播方式實現通訊

路由器:
概念:實現不同區域網內多臺主機通訊需求
識別地址方式:識別IP地址資訊進行通訊
資料轉發通訊方式:利用路由表資訊實現通訊

4. 網路路由配置方法

4.1準備說明

實現內部多個主機可以互聯通訊--交換機

實現不同網段主機之間通訊
   1)讓交換機識別發往不同區域的資料,必須經過路由器   裝置閘道器--必經之路  
   2)路由器中並沒有去往指定網段路由條目

資料封包過程:

網路裝置配置模式說明:

cisco:
使用者模式 > 只能做簡單檢視
-enable/en-> # 特權模式(檢視更詳細資訊)
-configure terminal/conf t-> # (配置模式 (config)完成各種功能配置)
路由檢視方法:ctrl+z
show ip route

華為/H3C:
使用者模式 >(只能做簡單檢視)
--system/sys-> 特權模式 # 檢視更詳細資訊/完成功能

4.2 構建路由表4種方法

4種方法:
1)直連路由    自動新增方式
       interface gx/x 
	  ip address xx.xx.xx.xx 掩碼資訊 
	  no shutdown

2)靜態路由配置  --- 手動向路由表中新增指定資訊
      ip route 去往目標網段資訊    目標網段和掩碼資訊  下一跳介面地址   
      
      缺點:必須清楚整個通訊流程/對於大的網路架構環境配置複雜
	  優點:路由配置完,通訊效率較高

3) 動態路由協議進行配置
   動態路由: 相互學習過程  ==  人類社交過程   RIP
   
4) 

示例:

路由配置方法一: 直連路由配置  在配置好路由器介面地址時, 會自動載入
   介面地址配置 : 
   interface f0/0  
   ip address 192.168.10.254  255.255.255.0
   no shut   

   interface f1/0  
   ip address 192.168.20.254  255.255.255.0
   no shut   

   interface f4/0
   ip address 192.168.30.254  255.255.255.0
   no shut  

網路拓撲結構:

路由配置方法二: 靜態路由配置 (手工指定路由條目  目標網路+下一跳)
---> 下一跳: 去往下一個路由器的介面地址: 打通任督二脈的關鍵
應用場景: 只適合小型網路環境  因為靜態路由配置過於繁瑣

   PS: 網路通訊過程時有去有回
   介面地址配置 : 
   R1:
   interface f0/0            #啟用區域網介面
   ip address 192.168.10.254  255.255.255.0
   no shut   

   interface S2/0   #啟用to R2路由器的介面 
   ip address 12.0.0.1  255.255.255.0
   no shut   

   R2:
   interface S2/0   #啟用to R1路由器的介面   
   ip address 12.0.0.2  255.255.255.0
   no shut   

   interface S3/0   #啟用to R3路由器的介面   
   ip address 23.0.0.2  255.255.255.0
   no shut  

   interface f0/0            #啟用區域網介面
   ip address 192.168.20.254  255.255.255.0
   no shut     

   R3:
   interface f0/0           #...
   ip address 192.168.30.254  255.255.255.0
   no shut   

   interface S2/0         #...
   ip address 23.0.0.3  255.255.255.0
   no shut    

   R1路由表資訊          #網段資訊       #下一跳,線纜直連的   #中繼/直接到達          
   ip route 192.168.20.0  255.255.255.0 12.0.0.2  # to 192.168.20.0/24
   ip route 192.168.30.0  255.255.255.0 12.0.0.2  # to 192.168.20.0/24     

   R2路由表資訊
   ip route 192.168.10.0  255.255.255.0 12.0.0.1  # to 192.168.10.0/24
   ip route 192.168.30.0  255.255.255.0 23.0.0.3  # to 192.168.30.0/24

   R3路由表資訊                      
   ip route 192.168.10.0  255.255.255.0 23.0.0.2  # to 192.168.10.0/24
   ip route 192.168.20.0  255.255.255.0 23.0.0.2  # to 192.168.20.0/24

網路拓撲結構:

  路由配置方法三: 利用動態路由協議進行配置
  動態路由: 相互學習過程  ==  人類社交過程   RIP 
   
   R1: 
   router rip
   #宣告直連路由
   network 12.0.0.0
   network 192.168.10.0   

   學習:
   23.0.0.0      R2 
   192.168.20.0  R2 
   192.168.30.0  R2  

   R2 
   router rip
   network 12.0.0.0
   network 23.0.0.0
   network 192.168.20.0

   學習: 
   192.168.10.0  R1
   192.168.30.0  R2  

   R3 
   router rip
   network 23.0.0.0
   network 192.168.30.0   

   學習:
   192.168.10.0  R2
   192.168.20.0  R2
   12.0.0.0      R2
   
動態路由配置過程:
1. 第一個歷程:路由器介面啟用
地址配置 介面啟用

2. 第二個歷程:配置動態路由
R1: 
router RIP 
network  自己直連網段資訊

路由器彼此之間進行相互學習, 實現路由條目數量一致時, 會停止學習 整個學習過程稱為路由收斂過程

路由配置方法四: 靜態預設路由
作用 :簡化靜態路由配置,將多條下一跳地址相同靜態路由進行整合為一條
ip route 0.0.0.0 0.0.0.0  下一跳介面地址

預習:
01 什麼是網路通訊模型
02 系統中是否可以進行路由配置


網路基礎第二部分

1. 課程概述介紹說明

1)網路路由配置方法補充
2)網路拓撲結構規劃說明
3)網路層次模型介紹說明  osi七網路模型 資料傳輸詳細過程   抓包
4)網路相關重要協議作用

2. 課程知識回顧梳理

1)網路通訊三要素條件  	傳輸介質  網絡卡硬體  速率協商
2)網路資料傳輸過程    	封裝和解封
3)網路交換和路由概念
4)網路裝置基礎配置方法 直連路由 靜態路由 動態路由	

3.網路路由配置方法補充

動態路由配置:相互學習路由資訊(直連路由) 路由協議配置---宣告直連路由資訊
靜態預設路由:簡化靜態路由配置 下一跳資訊必須相同

動態路由配置方法:RIP OSPF BGP 學習知識通訊語言
RIP: 實現多個串聯路由器相互學習 有自身缺陷需要應用一些其他技術進行處理解決
OSPF:可以進行區域劃分,利用自身演算法可以實現路由防環(企業使用)
BGP: 瞭解 實現不同自治區域之間通訊

PS:實現路由條目相互學習可以有多種方式

4. 網路拓撲結構規劃說明

三個層次進行網路拓撲規劃:
· 核心層:部署裝置  路由器/防火牆/審計/行為管理裝置
  作用: 
  1)實現路由協議配置,使內部主機裝置可以訪問外網
  2)實現網路通訊冗餘能力 
  3)實現地址自動獲取功能   網段地址池 192.168.16.3 ~ 192.168.16.200

· 匯聚層:部署裝置  三層交換機(高階/介面多些)
  1)實現路由通訊配置,實現企業內部不同網段之間通訊  
  2)實現vlan區域劃分  v 虛擬  lan區域網  虛擬區域網
     vlan技術:就是將介面劃分到不同虛擬區域網中,將一個交換機產生的廣播包進行隔離
  3)訪問控制策略配置  ACL  
     http://www.wuwenhui.cn/3549.html
  4)將下層網路裝置和上層路由裝置進行串聯


· 接入層:部署裝置  二層交換機(低端)
  1)接入終端PC裝置
  2)安全配置資訊 進行mac地址繫結 

PS:拓撲圖可以幫助排查網路問題

核心層: 路由裝置 實現訪問外網
匯聚層:交換裝置(三層功能) 承上啟下
接入層:交換裝置(二層功能) 連線終端

*5. 網路通訊層次模型結構

網路通訊模型主要就是定義不同通訊標準規範,實現不同廠商網路裝置之間通訊
ISO國際化標準組織:OSI7層模型--細化了不同層次通訊規範標準
OSI 7層模型:應用層 表示層 會話層  傳輸層  網路層  資料鏈路層  物理層

TCP/IP 4層模型:應用層  主機到主機層  網際網路層  主機接入層
nginx  apache  IIS

5.1OSI7層模型

5.2 TCP/IP 4層模型

6. 網路層次模型詳細資料傳遞方式

區域網內部資料傳遞方式:
內部資料傳遞時,二層封裝的目標MAC地址,可以是全FF

不同區域網資料傳遞方式:
通訊過程跨越路由器會修改二層mac地址資訊,二層mac地址資訊只是在區域網內部有效
路由識別三層資料包封裝只關注網段資訊,不會關注主機地址資訊

 交換網路:資料包傳輸過程 二層目標mac:全FF
路由網路:資料包傳輸過程 路由器只關係目標網段資訊/經過路由器之後,二層mac地址資訊會進行改變

7. 重要協議原理

  1. TCP三次握手和四次揮手

  2. DNS域名解析協議

  3. ARP地址解析協議


網路基礎第三部分

1. 課程概述介紹說明

1. 網路相關重要協議作用
2. 網路通訊過程三次握手/四次揮手
3. 網路狀態轉換概念   併發能力
4. 企業主機上網原理/虛擬主機上網與遠端原理

2. 網路相關重要協議作用

2.1 應用層協議

2.1.1 telnet (23)

遠端連線協議/連線測試工具
實現方式:
yum install -y telnet-server
systemctl start telnet.socket
特點:
連線配置使用簡單/連線傳輸資料不安全

2.1.2 ssh: 遠端連線協議(22)

systemctl start sshd
特點:
連線傳輸資料會做加密處理

2.1.3 FTP:檔案傳輸協議(21)

1.遠端拉取示例:

拉取:本地 <-資料 (遠端主機)

#連線遠端主機
[root@oldgirl ~]# sftp 10.0.0.100
The authenticity of host '10.0.0.100 (10.0.0.100)' can't be established.
ECDSA key fingerprint is SHA256:WriaPn1fPNs0CGszkAu8t0XxtNfgpnVGdSPe1i5XwNw.
ECDSA key fingerprint is MD5:90:90:95:a2:76:3e:08:a1:bd:44:ff:4b:90:53:39:fc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.100' (ECDSA) to the list of known hosts.
#輸入遠端端密碼
[email protected]'s password: 
Connected to 10.0.0.100.

#操作:
sftp> cd /data
sftp> pwd
Remote working directory: /data
sftp> ls
bak_2020-10-01.tar.gz   bak_2020-10-12.tar.gz   bak_2020-10-13.tar.gz   bak_2020-10-14.tar.gz   oldboy.txt              

#拉取操作
sftp> get oldboy.txt
Fetching /data/oldboy.txt to oldboy.txt
/data/oldboy.txt            100%    7     6.9KB/s   00:00    
sftp> quit

驗證:

[root@oldgirl ~]# ll
total 41668
drwxr-xr-x. 2 root root       34 Sep  8 11:55 data1
-rw-r--r--. 1 root root 42663132 Sep  6 11:52 oldboy-5.avi
-rw-r--r--. 1 root root        7 Oct  4 09:46 oldboy.txt
[root@oldgirl ~]# cat oldboy.txt 
123456

2.推送:(本地)資料-> 遠端主機

[root@oldgirl /data]# sftp 10.0.0.100
[email protected]'s password: 
Connected to 10.0.0.100.

sftp> lcd /data
sftp> lls
oldgirl.txt
sftp> cd /data
sftp> put oldgirl.txt
Uploading oldgirl.txt to /data/oldgirl.txt
oldgirl.txt                                                                      100%    7    16.2KB/s   00:00    
sftp> ls
bak_2020-10-01.tar.gz   bak_2020-10-12.tar.gz   bak_2020-10-13.tar.gz   bak_2020-10-14.tar.gz   oldboy.txt              oldgirl.txt             
sftp> 

2.1.4 HTTP:超文字(程式碼檔案HTML)傳輸協議(80)

實現過程:

1.安裝web軟體:yum install -y nginx 
2.編寫超文字檔案資訊:
	<html>
    <head>
    </head>
    <body>
    <table border="1">
        <tr>
            <td>row 1, cell 1</td>
            <td>row 1, cell 2</td>
        </tr>
        <tr>
            <td>row 2, cell 1</td>
            <td>row 2, cell 2</td>
        </tr>
    </table>
    </body>
    </html>
3.瀏覽器訪問檔案資訊,看到頁面內容

2.1.5 SMTP:郵件傳輸協議,實現傳送郵件(25)

實現功能:

第一個歷程:編寫郵件服務配置
[root@oldboy /usr/share/nginx/html]# tail -3 /etc/mail.rc 
set [email protected] 
smtp=smtp.qq.com
set [email protected] 
smtp-auth-password=xxxxxxx      #授權碼
smtp-auth=login

第二個歷程:開啟郵件服務
systemctl start postfix

第三個歷程:測試傳送郵件
echo oldboy-network-test|mail -s test-oldboy [email protected]
mail -s test-oldboy [email protected] < /etc/hosts

2.1.5 NFS網路檔案系統協議(2049)

實現資料共享儲存

實現功能:
安裝部署NFS服務程式 配置操作 掛載

2.1.6 DHCP動態主機配置協議

==讓系統自動獲取IP地址

原理過程:
    客戶端                      		      DHCP服務端
1. 傳送廣播資訊,請求IP地址    
2.                             		     接收廣播資訊,分配IP地址資訊,做響應回覆
3. 客戶端接收響應,生成地址資訊,確認訊息    接收確認訊息,將地址池中IP地址進行標記
4.                                        當一定時間之後,會發送地址續租詢問資訊
5.  進行續租響應,不會回收地址
    沒有續租響應,地址會被回收

PS功能實現參考https://www.cnblogs.com/diantong/p/10878791.html

DHCP協議採用UDP作為傳輸協議,主機發送請求訊息到DHCP伺服器的68號埠,DHCP伺服器迴應應答訊息給主機的67號埠。

2.1.7 DNS域名解析協議(53)

金山 CDN(快取加速) -- 個網站架構(飯店) 開分店 智慧DNS
概念作用:域名解析系統 === 將瀏覽器輸入域名資訊轉換為IP地址 (www.jd.com == 62.135.169.121)

利用DNS實現訪問網站原理:域名解析成IP地址過程
1)本地解析域名過程
   檢視系統DNS快取:     ipconfig/displaydns
   檢視系統DNS配置檔案: C:\Windows\System32\drivers\etc\hosts

2)遞迴解析域名過程
   主機詢問LDNS服務,域名解析後的IP地址
   阿里DNS:223.5.5.5 223.6.6.6
   騰訊DNS:119.29.29.29
   電信DNS:114.114.114.114
   ....
  	
3)迭代解析域名過程
   域名結構:www.baidu.com. 
   根域名伺服器:13臺  中國沒有
   頂級域名伺服器: .net .cn .com ....
   二級域名伺服器:.qq .jd .baidu      自己定義申請
   網站主機名稱資訊:www bbs blog edu  自己定義規劃

圖解:

   向根域名伺服器傳送請求    獲得頂級域名伺服器資訊
   向頂級域名伺服器傳送請求  獲得二級域名伺服器資訊
   向二級域名伺服器傳送請求  獲得主機A記錄資訊
   LDNS伺服器快取A記錄      轉發給主機
   主機快取A記錄資訊        根據解析後的地址向網站服務傳送資料包  

2.2 傳輸層協議

2.1 TCP:傳輸控制協議

面向連線網路協議 保證資料傳輸可靠性 應用:檔案傳輸 郵件傳送 HTTP 面向連線的是 [TCP],該協議幾乎做了所有的事情

2.2 UDP:使用者資料報協議

無連線網路協議 保證資料傳輸效率 應用:語音通訊 視訊通訊 它除了給應用程式傳送資料包功能並允許它們在所需的層次上架構自己的協議之外,幾乎沒有做什麼特別的事情。

傳輸層TCP協議說明

TCP報文概念:

傳輸層埠號範圍由來
2的n次方 n表示佔用了多少bit
2的1次方=2 源端口占用1個bit 0 1 --- 十進位制 0 1
2的2次方=4 源端口占用2個bit 00 01 10 11 --- 十進位制 0 1 2 3
2的3次方=8 源端口占用3個bit 000 001 010 011 --- 十進位制 0 1 2 3 4 5 6 7
100 101 110 111

2的16次方=65536 源端口占用16個bit 範圍 0 ~ 65535 0號埠不被使用 1 ~ 65535

序列號:對資料包編號
確認號:對接收資料包進行確認的編號
控制欄位:
SYN: 請求建立連線控制欄位
ACK: 資料傳輸確認控制欄位
FIN: 請求斷開連線控制欄位


三次握手過程: 
第一次握手: 客戶端 -- 服務端傳送資訊  SYN=1 SEQ=X 
第二次握手: 服務端 -- 客戶端傳送資訊  SYN=1 ACK=1  SEQ=Y ACK=X+1
第三次握手: 客戶端 -- 服務端傳送資訊  ACK=1 SEQ=X+1 ACK=Y+1
PS:三次握手建立之後,才可以進行資料傳遞

四次揮手過程:
第一次揮手: 服務端 -- 客戶端傳送資訊  FIN=1 ACK=1
第二次揮手: 客戶端 -- 服務端傳送資訊  ACK=1 
第三次揮手: 客戶端 -- 服務端傳送資訊  FIN=1 ACK=1 
第四次揮手: 服務端 -- 客戶端傳送資訊  ACK=1
PS:四次揮手完畢,資料資訊不再進行傳遞

【問題】為什麼要進行三次握手呢
兩次確認

【問題】為什麼連線的時候是三次握手,關閉的時候卻是四次握手?

答:因為當Server端收到Client端的SYN連線請求報文後,可以直接傳送SYN+ACK報文。其中ACK報文是用來應答的,SYN報文是用來同步的。但是關閉連線時,當Server端收到FIN報文時,很可能並不會立即關閉SOCKET,所以只能先回復一個ACK報文,告訴Client端,"你發的FIN報文我收到了"。只有等到我Server端所有的報文都發送完了,我才能傳送FIN報文,因此不能一起傳送。故需要四步握手。
  1. 為什麼斷開過程需要四次完成,可以三次完成嗎?

    這是因為如果在收到FIN時,彼時還有資料未傳輸完,則先回復關於 FIN 的 ACK,告知對方我已經知道你要斷開了。則等待傳輸完畢後,被斷開方再發送 FIN,告知自己也已經可以斷開連線。

    但實際上完全可以是“三次揮手”,如果收到 FIN 時,已經沒有資料要傳輸,則是“三次揮手”。

  2. 梳理總結 擴充套件
    部落格資料:https://bbs.hh010.com/
    http://ccietea.com/


網路基礎第四部分

1.課程概述介紹說明

1)網路狀態轉換概念   併發能力
2)企業主機上網原理/虛擬主機上網與遠端原理
3)IP地址分類與規劃
4)系統相關路由配置
5)系統常見網路操作命令梳理

2. 課程知識回顧梳理

1)網路層次模型中重要協議原理  
   應用層:DHCP HTTP NFS FTP DNS ...  埠 80 3306 20/21 23 110
   傳輸層:TCP UDP
2)三次握手過程/四次揮手過程

3.網路狀態轉換概念

3.1 十一種狀態變化

   http://192.168.16.9:8080/  ==  http://10.0.0.100:80	
   
三次握手開始: 五種狀態變化
   1)初識狀態:
      服務端:closed  ---> listen
      客戶端:closed
   2) 第一次握手過程:
      客戶端:closed  ---> syn_sent 
      服務端:listen  ---> syn_recv
   3) 第二次握手過程:
      服務端:syn_recv
      客戶端:syn_sent ---> established 
   4) 第三次握手過程:
      客戶端:established
      服務端:syn_recv ---> established 


四次揮手開始:五種
   1) 初始狀態:
      服務端:established
      客戶端:established 
   2)第一次揮手過程:
      服務端:established ---> fin_wait1  
      客戶端:established ---> close_wait 
   3)第二次揮手過程:
      客戶端:close_wait
      服務端:fin_wait1   --->  fin_wait2
   4)第三次揮手過程:	   
      客戶端:close_wait  --->  last_ack
      服務端:fin_wait2   --->  time_wait	
   5)第四次揮手過程:
      服務端:time_wait   --->  等待一段時間 ---> closed 
      客戶端:last_ack    --->  closed 

PS: 斷開連線過程可以是三次嗎?  可以
三次揮手開始: 特殊狀態  closing 
   1) 初始狀態:
      服務端:established
      客戶端:established 
   2)第一次揮手過程:
      服務端:established ---> fin_wait1  
      客戶端:established ---> close_wait 
   3)第二次揮手過程:ack fin 
      客戶端:close_wait  ---> last_ack
      服務端:fin_wait1   ---> closing   
   4)第三次揮手過程:	   
      客戶端:last_ack    ---> closed 
      服務端:closing     ---> time_wait 等待一段時間 ---> closed

4. 企業主機上網原理

原理過程:
主機(IP地址/掩碼 閘道器 DNS) --- 交換機(vlan 給一些資料包進行標記) ---- 匯聚交換 ACL ---- 路由器裝置 路由/dhcp

3.1網路異常排錯

1. 主機無法訪問外網 
   ① 檢查配置地址是否正確
   ② 檢查是否能訪問閘道器          ping 閘道器
   ③ 檢查是否可以訪問外網IP地址  223.5.5.5  114.114.114.114
     ping通:無法開啟頁面,DNS有問題
     ping不通:路由配置問題 
     
第一個歷程:構建網路拓撲結構
核心層裝置:路由器     H3C      劃分vlan資訊 trunk配置 路由配置  DHCP配置  需要實現訪問外網
匯聚層裝置:三層交換機 H3C      劃分vlan資訊 trunk配置(承載多個vlan資料包鏈路)
接入層裝置:二層交換機 TPLink   區域:12個教室  1個辦公區域  1個監控區域  14個vlan
        vlan11  1教室  ...  vlan 22  12教室   vlan10 辦公區域  vlan30  監控區域

第二個歷程:進行裝置功能配置
路由裝置: 連線運營商網路(動態 撥號)  DHCP配置   nat配置
匯聚交換: vlan trunk acl
二層交換: arp繫結配置  vlan

3.2arp地址解析協議:

1)可以減少廣播資料包產生
2)可以增加網路安全性   

arp通訊過程原理:
第一個歷程:傳送ARP請求包,獲取目標主機mac地址  (廣播方式傳送)
第二個歷程:傳送ARP響應包,告知主機mac地址資訊  (單播方式傳送)
第三個歷程:主機收到響應包,會構建ARP表(mac與IP對應關係)
第四個歷程:資料傳輸時,會根據arp表資訊封裝二層目標mac地址資訊
PS:從而減少廣播包產生

arp表構建方式:
動態自動構建arp:表內資訊會自動更新變化  應用在辦公室 主機經常發生變更環境
靜態手工構建arp:表內資訊會固定不變      資料中心     

arp通訊過程原理

arp表構建方式

5. 虛擬主機網路配置

虛擬主機上網原理:需要藉助物理主機網絡卡進行上網(檢查物理主機網路與虛擬NAT對映服務)

下載部署軟體報錯:DNS配置問題/yum源沒有更新 ...	
虛擬主機無法遠端:虛擬網絡卡是否正常  SSH遠端連線排錯思路 三部曲

6. IP地址規劃說明

IP協議 瞭解 NA

32位二進位制數劃分為4組 32/4 每8位為一組 4組

00000000. 111111111. ---> 10進位制 IP地址:點分十進位制
110  6  11011 27 

00000001  1 2的0次方=1
00000010  2 2的1次方=2 .. 10000000  128  2的7次方  128 
====================================
 	 7   6   5   4    3   2   1   0 
 	128  64  32  16   8   4   2   1  
====================================


## 進位制-->>>>>> 十進位制  求和運算  00000110
00000100  4   0001 1011  16+8+2+1=27
00000010  2
--------
00000110  6


十進位制-->>>>>> 二進位制  求差運算
  	66   比較原則 是否大於等於指定位數 
66 - 64 = 2 - 2 =0  
128  64  32  16   8   4   2   1 
 0    1   0   0   0   0   1   0
88 - 64 = 24 - 16 = 8 - 8 =0
128  64  32  16   8   4   2   1 
 0    1   0   1   1   0   0   0

每一位十進位制數範圍 0~255  
0.0.0.0 ~ 255.255.255.255   40多億可以配置  
解決IP地址枯竭:
1)建立了IPv6 2的128次方 IPv4 2的32次方 
2)有效分類規劃IP地址
· 按照地址範圍進行分類  A B C D E
  A類地址  10.0.0.0     2的24次方地址可以使用
  B類地址  172.16.0.0   2的16次方地址可以使用
  C類地址  192.168.10.0 2的8次方地址可以使用   2的8次方=256 - 2 = 254  1~254	  
· 按照地址用途進行分類  私網地址(可以重複使用) 公網地址(全球唯一)  
  重複利用地址,會造成路由混亂 --- 私網地址資訊不能出現在網際網路
  10.0.0.0/8 			(10.0.0.0		到	10.255.255.255)
  172.16.0.0/16		    (172.16.0.0		到	172.31.255.255)
  192.168.0.0/24 	    (192.169.0.0	到	192.168.255.255)
  169.254.0.0/16 	    (169.254.0.0	到	169.254.255.255)*  系統預留地址
· 按照地址通訊方式分類 
  單播地址:網絡卡上配置地址
  組播地址:D類地址==組播地址  keepalived 實現高可用(vrrp)???
  廣播地址:主機位全為1的地址  192.168.10.255  A 10.255.255.255  B 172.16.255.255 
  網路地址:出現在路由器的路由表中地址  主機位全為0的地址  192.168.10.0	 10.0.0.0  172.16.0.0

PS:2的n次方-2 == 一個網路中可以規劃IP地址數量
A 11.0.0.0 2的24次方 - 2
B 172.32.0.0 2的16次方 - 2
c 192.168.100.0 2的8次方 - 2 256 - 2 - 1(閘道器)== 253個主機

IP地址子網劃分 什麼是掩碼
B 172.16.0.0 65534地址可以使用
172.16.0.1 .. 172.16.255.253 地址浪費 廣播風暴 路由器壓力增加

將網路地址進行子網劃分:

地址分類:172.16.0.0  掩碼錶示地址型別
掩碼地址中:1表示網路位 0 表示主機位
10.0.0.0   11111111.0.0.0  255.0.0.0  /8
172.16.0.0    255.255.0.0    /16
192.168.10.0  255.255.255.0  /24   	


​	
子網劃分方式:利用子網劃分計算器	

7. 系統路由配置說明

7.1 系統路由資訊

# route -n  A區域主機
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.254      0.0.0.0         UG    100    0        0 eth0
192.168.10.0    0.0.0.0         255.0.0.0       U     100    0        0 eth0
172.16.10.0     0.0.0.0         255.0.0.0       U     100    0        0 eth1
172.16.20.0     172.16.10.254   
	
# route -n  B區域主機
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.254      0.0.0.0         UG    100    0        0 eth0
192.168.20.0    0.0.0.0         255.0.0.0       U     100    0        0 eth0
172.16.20.0     0.0.0.0         255.0.0.0       U     100    0        0 eth1		
172.16.10.0     172.16.20.254	

7.2 系統新增路由

1. 靜態預設路由:
   route add default gw 10.0.0.254
   ip route  add default via 10.0.0.254

2. 靜態網段路由: 優先於靜態預設路由
   route add -net 223.5.5.0/24 gw 10.0.0.254
   ip route add 223.5.5.0/24 via 10.0.0.254

3. 靜態主機路由:
   route add -host 223.5.5.5 gw 10.0.0.254
   ip route add 223.5.5.5/32 via 10.0.0.254

PS:思考系統路由如何永久生效 參考文件

新增永久路由
1.在/etc/sysconfig/network-script/目錄下建立名為route-eth0的檔案
vi /etc/sysconfig/network-script/route-eth0   #在此檔案新增如下格式的內容
192.168.1.0/24 via 192.168.0.1
#重啟網路驗證
service network restart

2.在/etc/sysconfig/static-routes 檔案裡新增如下內容 (沒有static-routes的話就手動建立一個這樣的檔案)
any net 192.168.3.0/24 gw 192.168.3.254  
any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129  


推薦使用以上兩種方法,因為不論是重啟機器還是重啟網路服務路由都不會丟失。
3.在/etc/rc.local裡新增 (會有坑 只有重啟伺服器 才會新增上這條路由;而且重啟網路會導致失效)
方法: 
route add -net 192.168.3.0/24 dev eth0  
route add -net 192.168.2.0/24 gw 192.168.2.254  

rc.local是linux開機啟動執行的最後一個指令碼,故可以把靜態路由加上。