網絡通信原理算法
路由(IP地址 路由表 路由協議)vim
交換(MAC地址 mac表 廣播域與衝突域)centos
OSI7層模型數組
網絡通信數據包分裝過程瀏覽器
TCP/IP模型(TCP/IP協議簇)緩存
TCP三次握手/四次揮手狀態集轉換安全
IP地址分類服務器
IP地址子網劃分原理網絡
DNS協議原理架構
ARP協議原理
與系統相關網絡操做命令
路由交換部分
網絡安所有分
網絡運營商部署部分
無線網絡技術
語音網絡技術
到底什麼是網絡:實現通信的技術
網絡誕生第一步:網絡主機
至少兩臺有通信需求的主機才能構建網絡
網絡誕生第二步:硬件網卡
主機之間實現網絡通信須要有硬件支持,網卡就是實現通信的硬件
網絡誕生第三步:傳輸介質
實現網絡通信還須要有傳輸介質,常見的傳輸介質爲網線、管線、wifi無線等
網絡誕生第四步:數據傳輸
經過網卡將計算機能夠識別的二進制信息轉換爲電壓信息進行傳輸
調製解調的過程
網絡誕生第五步:傳輸問題
經過網卡和傳輸介質,定義1個bit傳輸的單位時間,從而分辨連續相同的信號
網絡誕生第六步:傳輸依賴
在網絡數據傳輸過程當中,影響傳輸速率主要是通信雙方的網卡和傳輸介質
以上就是一個網絡拓撲圖
網絡拓撲==網絡設備鏈接圖
作網絡拓撲圖有助於咱們檢查問題、解決問題
問題:
在現實中,須要通信的主機可不止兩臺,如何在多臺計算機之間通信,引入設備X(能夠配置不少網卡的設備)
主機A發送後信息到主機D,主機B和C會不會響應
主機D接收到A的信息,如何清除是主機A發送的
廣播包:當全部主機接入到X設備後,主機會發送一個網絡包,識別多有的主機
交換機設備說明:
交換機概念:解決多臺主機在一個網絡裏面通信的需求
主機身份標識信息:稱爲叫作mac地址,又稱爲是一個物理地址(刻錄在網卡上面的)
交換機通信的網絡範圍:稱爲叫作一個局域網
交換機傳輸數據問題:
01. 會有廣播風暴產生:會讓主機接收到大量廣播包,影響主機性能
一個交換機全部接口處於一個廣播域內
02. 早期交換網絡中,會存在數據衝突問題(數據碰撞)
目前一個交換機每個接口處於一個衝突域內便可
總結:假設一個24口的交換機;總共有24個衝突域;總共有一個廣播域
交換機做用特徵說明:
在一個交換機的端口上所鏈接的全部終端設備,均在一個網段上(稱爲一個廣播域)
而且一個網段會有一個統一的網絡標識(mac),會產生廣播消耗設備CPU資源(廣播問題)
交換機能夠隔離衝突域,每個端口就是一個衝突域
終端用戶的設備接入
基本的安全功能
廣播域的隔離沒法具有的
大量主機在一個廣播域內,會有廣播風暴問題,咱們能夠把一個大的局域網切割成多個小得局域網
當有多個局域網的時候,即多個交換機組成的網絡。兩個局域網之間的主機之間該如何通信?
鏈接路由器的主機經過IP地址識別不一樣的主機
IP:局域網標識+主機標識
路由器會有一個路由表,記錄不一樣口鏈接的不一樣局域網標識
路由器設備說明:
路由器概念說明:實現不一樣網段主機通信的需求
路由器身份標識信息:稱爲ip地址(網段信息+網絡主機信息=IP地址),IP地址又稱爲是一個邏輯地址
總結:假設一個5口的路由器:總共有5個衝突域,總共有5個廣播域
路由器做用特徵說明:
廣播、組播控制
對數據作尋址、選擇到達目的網絡的最佳路徑
流量管理
鏈接廣域網
網絡層次架構組成
核心層:(放置外網互聯路由器設備)
核心層的功能主要是實現骨幹網絡之間的優化傳輸,骨幹層設計任務的重點一般是冗餘能力、可靠性和高速的傳輸。
匯聚層:(放置的3層交換機)
匯聚層是樓羣或小區的信息匯聚點,是鏈接接入層和核心層的網絡設備,爲接入層提供數據的匯聚\傳輸\管理\分發處理。
匯聚層爲接入層提供基於策略的鏈接,如地址合併,協議過濾,路由服務,認證管理等。
經過網段劃分(如VLAN)與網絡隔離能夠防止某些網段的問題蔓延和影響到核心層。
匯聚層同時也能夠提供接入層虛擬網之間的互連,控制和限制接入層對核心層的訪問,保證核心層的安全和穩定。
接入層:(放置2層交換機)
接入層一般指網絡中直接面向用戶鏈接或訪問的部分。接入層目的是容許終端用戶鏈接到網絡,所以接入層交換機具備低成本和高端口密度特性。
網絡規模區域劃分
局域網:
本地私有的一個網絡範圍。若是是一個規模比較大的局域網,也會成爲是一個園區網。
城域網:
若是一個網絡的覆蓋面積達到了一個城市,就能夠稱爲城域網。
廣域網:(互聯網)
若是覆蓋面積達到了全國或者全球,就稱爲廣域網,全球最大的廣域網就是Internet互聯網。
①. 網絡層次模型概念介紹
OSI的概念:
open system interconnect開放系統互連參考模型,是由ISO(國際標準化組織)定義的。
是個靈活的、穩健的和可互操做的模型,並非協議,是用來了解和設計網絡體系結構的。
②. 網絡層次模型做用說明
OSI模型的目的:
規範不一樣系統的互聯標準,使兩個不一樣的系統可以較容易的通訊,而不須要改變底層的硬件或軟件的邏輯。
每一層指定了不一樣協議標準
③. 網絡層次模型組成部分
OSI把網絡按照層次分爲7層
由下到上分別爲物理層,數據鏈路層,網絡層,傳輸層,會話層,表示層,應用層。每一個層次對應了相應的標準或者協議。
④. 網絡層次模型逐層說明
傳輸層:
重要協議:TCP協議和UDP協議
傳輸層數據包稱爲報文:會包含兩個重要的信息--->源端口信息 目標端口信息
網絡層:
重要協議:IP協議
網絡層數據包稱爲包:會包含兩個重要的信息--->源IP地址信息 目標IP地址信息
數據鏈路層:
數據鏈路層數據包稱爲幀:會包含兩個重要的信息--->源MAC地址信息 目標mac地址信息
物理層:
傳輸模式:單工(電臺廣播) 半雙工(對講機) 全雙工(電話)(通用模式)
物理拓撲:總線型 星型 環形網絡
①. 網絡層次模型概念介紹
用於簡化OSI層次,以及相關的標準。
傳輸控制協議(tcp/ip)族是相關國防部(DoD)所建立的,主要用來確保數據的完整性及在毀滅性戰爭中維持通訊
是由一組不一樣功能的協議組合在一塊兒構成的協議簇
利用一組協議完成OSI所實現的功能
DoD(TCP/IP)模型各層包含的協議
②. 網絡層次模型做用說明
③. 網絡層次模型組成部分
④. 網絡層次模型逐層說明
①. 網絡重要協議說明
TCP與UDP協議對比:
傳輸控制協議(TCP) 用戶數據報文協議(UDP)
面向鏈接 無鏈接
可靠傳輸 不可靠傳輸
流控 盡力而爲,盡力傳遞
使用TCP應用 使用UDP的應用:
WEB瀏覽器;電子郵件;文件傳輸程序 域名系統(DNS);視頻流;IP語音(VoIP)
tcp:必須創建鏈接,須要雙方都贊成,同步
udp:無需鏈接,無論對方贊成不一樣意,異步
②. 網絡協議報文結構
源端口隨機分配,目標端口使用知名端口
[root@test ~]# cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
因爲TCP協議頭部使用16位來保存端口號,因此端口的個數最多爲65536個,2^16=65536。0號端口不會被tcp和udp協議使用
tcp和udp協議端口號範圍是 1~65535 ,並非全部的端口都能隨意使用
http 80 ssh 22 telnet 23
控制字段:
ack:表示確認控制字段,實現數據可靠鏈接
syn:表示請求創建鏈接字段
fin :表示請求斷開鏈接字段
說明:控制字段信息默認爲0,控制字段功能不起做用;控制字段信息置爲1,表示相應控制字段功能開啓
應用客戶端使用的源端口號通常爲系統中未使用的且大於1024的
目的端口號爲服務器端應用服務的進程,如telnet爲23
TCP報文結構
UDP報文結構
③. 網絡鏈接創建過程
TCP/IP三次握手創建過程
一握手:請求創建鏈接(syn)
二握手:鏈接確認再請求(ack syn)
三握手:最後確認,即創建(ack)
④. 網絡鏈接斷開過程
TCP/IP三次握手創建過程
一揮手:請求鏈接要斷開(fin)
二揮手:斷開請求要確認(ack)
三揮手:思考事後要斷開(fin,ack)
四揮手:最後確認,要斷開(ack)
⑤. 網絡狀態轉換過程
TCP的十一種狀態機轉換
另外一種揮手狀況:ACK確認字段沒有被客戶端收到,可是等來了FIN ACK,客戶端直接變成closing
經過命令netstat -an 查看
[root@luffy-001 scripts]# netstat -an|grep -i es Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 64 10.0.0.200:22 10.0.0.1:51401 ESTABLISHED tcp 0 0 10.0.0.200:22 10.0.0.1:58972 ESTABLISHED Active UNIX domain sockets (servers and established) unix 2 [ ] DGRAM 10926 @/org/freedesktop/hal/udev_event [root@luffy-001 scripts]# netstat -lntup|grep sshd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1549/sshd tcp 0 0 :::22 :::* LISTEN 1549/sshd
①. ARP協議原理
ARP協議的功能
1) 將IPv4地址解析爲MAC地址
2) 維護映射的緩存
經過cmd查看arp緩存
win中
[D:\~]$ arp -a 接口: 192.168.0.16 --- 0xb Internet 地址 物理地址 類型 192.168.0.1 a8-6b-7c-08-8b-ee 動態 192.168.0.6 e4-0e-ee-8a-8b-61 動態 192.168.0.14 f4-f5-db-38-21-a0 動態 192.168.0.21 70-47-e9-3d-13-cd 動態 192.168.0.22 60-91-f3-64-5b-94 動態 192.168.0.24 a4-50-46-e5-72-25 動態 192.168.0.31 00-25-ab-55-62-89 動態 192.168.0.255 ff-ff-ff-ff-ff-ff 靜態
Linux中
[root@luffy-001 scripts]# arp -a ? (10.0.0.2) at 00:50:56:ef:3e:a0 [ether] on eth0 ? (10.0.0.1) at 00:50:56:c0:00:08 [ether] on eth0
②. DNS協議原理
DNS是什麼?DNS(Domain Name System)
DNS稱爲域名系統,在網站運行中器到了相當重要的做用
主要做用是負責把網站域名解析爲對應的IP地址。
域名的層次級別:
第一個級別:稱爲 根域名服務器 .(全球13個)
第二個級別:稱爲 頂級域名服務器(一級域名服務器).com .cn .gov
第三個級別:稱爲 二級域名服務器(受權DNS服務器).baidu.com .jd.com
第四個級別:稱爲 虛擬主機信息 www.baidu.com www.jd.com
DNS解析相關命令
dig @8.8.8.8 www.xxx.com +trace
nslookup www.xxx.com
host www.xxx.com
ping www.xxx.com
[root@luffy-001 scripts]# dig www.baidu.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8061 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 89 IN CNAME www.a.shifen.com. www.a.shifen.com. 89 IN A 163.177.151.109 www.a.shifen.com. 89 IN A 163.177.151.110 ;; Query time: 76 msec ;; SERVER: 223.5.5.5#53(223.5.5.5) ;; WHEN: Wed Feb 20 00:20:04 2019 ;; MSG SIZE rcvd: 90 [root@luffy-001 scripts]# nslookup www.baidu.com Server: 223.5.5.5 Address: 223.5.5.5#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 163.177.151.110 Name: www.a.shifen.com Address: 163.177.151.109 [root@luffy-001 scripts]# host www.baidu.com www.baidu.com is an alias for www.a.shifen.com. www.a.shifen.com has address 163.177.151.109 www.a.shifen.com has address 163.177.151.110 [root@luffy-001 scripts]# ping www.baidu.com PING www.a.shifen.com (163.177.151.110) 56(84) bytes of data. 64 bytes from 163.177.151.110: icmp_seq=1 ttl=128 time=9.61 ms 64 bytes from 163.177.151.110: icmp_seq=2 ttl=128 time=9.51 ms
查看本地DNS緩存ipconfig /displaydns
按照IP地址數值範圍劃分(A B C 類 D類 組播地址 E類 預留研發使用)
32位IP地址,按照每8位劃分
按照IP地址用途進行劃分(公網地址 私網地址)
劃分公網和私網地址最主要的做用:就是避免IP地址資源枯竭
常見私有地址
10.0.0.0/8 (10.0.0.0 到 10.255.255.255)
172.16.0.0/12 (172.16.0.0 到 172.31.255.255)
192.168.0.0/16 (192.168.0.0 到 192.168.255.255)
169.254.0.0/16 (169.254.0.0 到 169.254.255.255)*
IP私網地址相似於咱們的身份證
IP公網地址相似於咱們的護照信息
按照IP地址通信方式劃分(單播地址 組播地址 廣播地址)
單播地址:
就是網卡上配置的IP地址,就稱爲單播地址
組播地址:
通常爲D類地址,稱爲組播地址,只能在一個組內進行互相訪問通信
廣播地址:
就是主機位全爲1的,就稱爲廣播地址
網絡地址
就是主機位全爲0的,就稱爲網絡地址
特殊IP地址說明:
127.0.0.1
表示迴環地址,進行測試使用,驗證本地的TCP協議簇安裝的是否正確。ping 127.0.0.1測試網卡是夠正常
0.0.0.0
主機位全爲0的稱爲是網絡地址
255.255.255.255
主機位全爲1的稱爲是廣播地址,即向全部人發出信息
結論:主機地址能夠範圍中,不能包含網絡地址和廣播地址
總結得知:
0和255做爲主機的地址,是不能進行分配使用的,只有0-255之間的地址能夠進行分配爲主機地址使用
根據主機地址範圍取值,能夠引入一個公式:
能夠分配的主機地址個數=2的N次方-2 192.168.12. == 2的8次方=256-2=254 2的16次方=65536-2=65534
N次方的N表示有多少個主機位
-2就表示減去網絡地址和廣播地址,剩餘的就是可分配的主機地址
VLSN可變長子網掩碼劃分過程
IP地址劃分子網的緣由
172.16.0.0 ==> 2的16次方(n表示B類地址的主機位個數)-2=65536-2=65534
01. 爲了不IP地址資源浪費,會對IP地址進行子網劃分
02. 大量的廣播包,造成廣播風暴,會嚴重影響主機性能
03. 會對路由器產生壓力,路由的性能也會被耗盡
IP地址劃分子網計算法
172.16.0.0 == 前兩個8位爲網絡爲 後兩個8位爲主機位
網絡掩碼概念:
有32位二進制數組成,而且每8位爲一組,只要是網絡位,都會置爲1
172.16.0.0 這個B類地址爲例說明:
172-128=44-32=12-8=4
10101100 00010000 00000000 00000000
掩碼就是把網絡位全置爲1
11111111 11111111 00000000 00000000
掩碼:
255.0.0.0 A類掩碼信息 /8
255.255.0.0 B類掩碼信息 /16
255.255.255.0 C類掩碼信息 /24
將紅線右移
總結得知:
所以能夠獲得另外一個計算公式的結論
能夠劃分的子網數=2的N次方
其中N表示借用的主機位個數
01. 系統網卡配置參數說明 網卡配置參數詳解 [root@oldboy ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 <- 第一塊網卡邏輯設備名;第二塊爲eth1, 有些系統也會以em等字符標識(centos7系統) TYPE=Ethernet <- 上網類型,目前基本都是以太網 UUID=sasd-sdasd-wqe-12 <- 通用惟一識別碼(Universally Unique Identifier); 若是是vmware克隆的虛擬機沒法啓動網卡能夠去除此項。 ONBOOT=yes <- 這個地方要設置爲yes,才能保證下次開機啓動激活網卡設備 NM_CONTROLLED=no <- 是否經過NetworkManager管理網卡設備(centos6關閉) BOOTPROTO=none <- 啓動協議,獲取IP地址配置方式,有none|bootp|dhcp三個選項 IPADDR=10.0.0.51 <- 表示本臺局域網中服務器的固定IP地址 NETMASK=255.255.255.0 <- 子網掩碼,用來規劃網絡爲和主機位的,通常爲255.255.255.0 DNS2=223.6.6.6 <- 第二個DNS,這裏默認會覆蓋以及優選於/etc/resolv.conf的配置文件 GATEWAY=10.0.0.254 <- 局域網上網網關地址 DNS1=223.5.5.5 <- 主DNS,這裏默認會覆蓋以及優先於/etc/resolv.conf的配置生效 USERCTL=no PEERDNS=yes <- 是否確認網卡配置文件中的DNS配置優先於/etc/resolv.conf配置文件 IPV6INIT=no <- 是否支持IPV6 HWADDR=00:0c:29:10:2e:28 <- 以太網硬件地址即MAC地址,若是是vmware克隆的虛擬機 沒法啓動網卡能夠堅決果斷的刪除此項。 網卡配置生效方法: # 推薦:ifdown,ifup進行指定髮卡的重啓操做 ifdown eth0 && ifup eth0 <- 重啓eth0網卡 ifup eth0 <- 啓動eth0網卡 針對全部網卡進行重啓操做(工做場景慎用此命令) /etc/init.d/network restart 02. 系統默認網關配置說明
[root@luffy-001 scripts]# route -n 查看路由信息
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
添加默認網關路由(gw是網關縮寫) route add default gw 10.0.0.254 route del default gw 10.0.0.254 添加靜態網段路由 route add -net 172.16.1.0 netmask 255.255.255.0 gw 192.168.1.1
或者 route add -net 172.16.1.0/24 gw 192.168.1.1
[root@luffy-001 scripts]# route add -net 172.16.1.0 netmask 255.255.255.0 gw 192.168.1.1
SIOCADDRT: Network is unreachable # 報錯,由於網關不存在
[root@luffy-001 scripts]# route add -net 172.16.1.0 netmask 255.255.255.0 gw 10.0.0.254
[root@luffy-001 scripts]# ping 172.16.1.0
PING 172.16.1.0 (172.16.1.0) 56(84) bytes of data.
添加靜態主機路由 route add -host 192.168.2.13 dev eth2
route add -host 172.16.2.2 gw 10.0.0.254
03. 系統網卡多個地址配置 IP別名方式配置多地址 ifconfig eth0:1 10.0.0.100/24 up <- 配置別名IP,即虛擬IP(VIP),並啓用虛擬IP ifconfig eth0:X down <- 停掉指定別名IP配置 輔助IP方式配置多地址 ip addr add 10.0.0.13/24 dev eth0:1 ip addr add 10.0.0.14/24 broadcast 10.0.0.255 dev ethx 添加廣播地址 ip add del 10.0.0.10/24 dev ethx 須要使用 ip address show(簡寫ip a) 查看用ip addr 命令添加的IP
04. 網絡地址信息獲取命令 查看網絡狀態經常使用命令: ifconfig命令:centos 5 6系統中經常使用 用於顯示網路配置信息 ip命令:centos7系統 用於顯示網路配置信息 route命令: 查看路由配置信息
route -n 顯示主機名稱信息;也能夠利用hostname顯示ip地址配置信息hostname -I
hostname(uname -n) 顯示主機的端口與服務網絡鏈接狀態,ESTABLISHED表示創建鏈接的狀態,數量即表示網絡鏈接數
netstat(ss-centos7) 顯示主機的端口與服務網絡鏈接狀態。 lsof
05. 網絡鏈接異經常用排查命令 ping命令 -c<count> 設置完成要求迴應的次數;默認會一直長ping -f 表示極限ping,ping過程當中不顯示任何信息,效率更高 -i<interval> 指定收發信息的間隔時間 -q 不顯示指定執行過程,開頭和結尾的相關信息除外 -s <數據包大小> 設置數據包的大小 tracroute/tracert命令,跟蹤網絡路徑 telnet命令 ,查看相應的服務有沒有開啓 telnet ip 端口 nmap命令 ,與telnet命令相似 nmap ip -p 端口 或者 端口-端口(20-40)