網絡管理基礎

1.PDU: Protocol Data Unit,協議數據單元是指對等層次之間傳遞的數據單位 ?
物理層的 PDU是數據位 bit ?
數據鏈路層的 PDU是數據幀 frame ?
網絡層的PDU是數據包 packet ?
傳輸層的 PDU是數據段 segment ?
其他更高層次的PDU是消息 message

2.TCP特性
工作在傳輸層 ?
面向連接協議 ?
全雙工協議 ?
半關閉 ?
錯誤檢查 ?
將數據打包成段,排序 ?
確認機制 ?
數據恢復,重傳 ?
流量控制,滑動窗口 ?
擁塞控制,慢啟動和擁塞避免算法

3.TCP包頭
源端口、目標端口:計算機上的進程要和其他進程通信是要通過計算機端口的,而一個計算機端口某個時刻只能被一個進程占用,
所以通過指定源端口和目標端口,就可以知道是哪兩個進程需要通信。源端口、目標端口是用16位表示的,可推算計算機的端口個數為 2^16個 ?
序列號:表示本報文段所發送數據的第一個字節的編號。在TCP連接中所傳送的字節流的每一個字節都會按順序編號。由于序列號由32位表示,
所以每2^32個字節,就會出現序列號回繞,再次從0開始 ?
確認號:表示接收方期望收到發送方下一個報文段的第一個字節數據的編號。也就是告訴發送發:我希望你(指發送方)下次發送的數據的第一個字節數據的編號是這個確認號 ?
數據偏移:表示TCP報文段的首部長度,共4位,由于TCP首部包含一個長度可變的選項部分,需要指定這個TCP報文段到底有多長。它指出TCP報文段的數據起始處距離TCP報文段的起始處有多遠。
該字段的單位是32位(即4個字節為計算單位),4位二進制最大表示15,所以數據偏移也就是TCP首部最大60字節
URG:表示本報文段中發送的數據是否包含緊急數據。后面的緊急指針字段(urgent pointer)只有當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報文段稱為結束報文段
窗口大?。罕硎粳F在允許對方發送的數據量,也就是告訴對方,從本報文段的確認號開始允許對方發送的數據量 ?
校驗和:提供額外的可靠性 ?
緊急指針:標記緊急數據在數據字段中的位置 ?
選項部分:其最大長度可根據TCP首部長度進行推算。TCP首部長度用4位表示,選項部分最長為:(2^4-1)*4-20=40字節
常見選項:最大報文段長度:Maxium Segment Size,MSS ?
窗口擴大:Windows Scaling ?
時間戳:Timestamps

4.TCP包頭選項
(1)最大報文段長度
指明自己期望對方發送TCP報文段時那個數據字段的長度。默認是536字節。數據字段的長度加上TCP首部的長度才等于整個TCP報文段的長度。
MSS不宜設的太大 也不宜設的太小。若選擇太小,極端情況下,TCP報文段只含有1字節數據,在IP層傳輸的數據報的開銷至少有40字節(包括TCP報文段的首部和IP數據報的首部)。
這樣,網絡的利用率就不會超過1/41。若TCP報文段非常長,那么在IP層傳輸時就有可能要分解成多個短數據報片。在終點要把收到的各個短數據報片裝配成原來的TCP報文段。
當傳輸出錯時還要進行重傳,這些也都會使開銷增大。因此MSS應盡可能大,只要在IP層傳輸時不需要再分片就行。在連接建立過程中,雙方都把自己能夠支持的MSS寫入這一字段。
MSS只出現在SYN報文中。即:MSS出現在SYN=1的報文段中
(2)窗口擴大
為了擴大窗口,由于TCP首部的窗口大小字段長度是16位,所以其表示的最大數是 65535。但是隨著時延和帶寬比較大的通信產生(如衛星通信),需要更大的窗口來滿足性能
和吞吐率,所以產生了這個窗口擴大選項
(3)時間戳
可以用來計算RTT(往返時間),發送方發送TCP報文時,把當前的時間值放入時間戳字段,接收方收到后發送確認報文時,把這個時間戳字段的值復制到確認報文中,
當發送方收到確認報文后即可計算出RTT。也可以用來防止回繞序號PAWS,也可以說可以用來區分相同序列號的不同報文。因為序列號用32為表示,每2^32個序列號就會產生回繞,
那么使用時間戳字段就很容易區分相同序列號的不同報文

5.TCP協議PORT
傳輸層通過port號,確定應用層協議 ?
Port number: ?
tcp:傳輸控制協議,面向連接的協議;通信前需要建立虛擬鏈路;結束后拆除鏈路 0-65535 ?
udp:User Datagram Protocol,無連接的協議 0-65535 ?
IANA:互聯網數字分配機構(負責域名,數字資源,協議分配)
0-1023:系統端口或特權端口(僅管理員可用) ,眾所周知,永久的分配給固定的系統
應用使用,22/tcp(ssh), 80/tcp(http), 443/tcp(https)
1024-49151:用戶端口或注冊端口,但要求并不嚴格,分配給程序注冊為某應用使用,1433/tcp(SqlServer),1521/tcp(oracle), 3306/tcp(mysql),11211/tcp/udp (memcached)
49152-65535:動態端口或私有端口,客戶端程序隨機使用的端口
其范圍的定義:/proc/sys/net/ipv4/ip_local_port_range

6.有限狀態機FSM:Finite State Machine
CLOSED 沒有任何連接狀態 ?
LISTEN 偵聽狀態,等待來自遠方TCP端口的連接請求 ?
SYN-SENT 在發送連接請求后,等待對方確認 ?
SYN-RECEIVED 在收到和發送一個連接請求后,等待對方確認 ?
ESTABLISHED 代表傳輸連接建立,雙方進入數據傳送狀態 ?
FIN-WAIT-1 主動關閉,主機已發送關閉連接請求,等待對方確認 ?
FIN-WAIT-2 主動關閉,主機已收到對方關閉傳輸連接確認,等待對方發送關閉傳輸連接請求 ?
TIME-WAIT 完成雙向傳輸連接關閉,等待所有分組消失 ?
CLOSE-WAIT 被動關閉,收到對方發來的關閉連接請求,并已確認 ?
LAST-ACK 被動關閉,等待最后一個關閉傳輸連接確認,并等待所有分組消失 ?
CLOSING 雙方同時嘗試關閉傳輸連接,等待對方確認

客戶端先發送一個FIN給服務端,自己進入了FIN_WAIT_1狀態,這時等待接收服務端的報文,該報文會有三種可能: ?
只有服務端的ACK ?
只有服務端的FIN ?
基于服務端的ACK,又有FIN ?
1、只收到服務器的ACK,客戶端會進入FIN_WAIT_2狀態,后續當收到服務端的FIN時,回應發送一個ACK,會進入到TIME_WAIT狀態,
這個狀態會持續2MSL(TCP報文段在網絡中的最大生存時間, RFC1122標準的建議值是2min).客戶端等待2MSL,是為了當最后一個ACK丟失時,可以再發送一次。
因為服務端在等待超時后會再發送一個FIN 給客戶端,進而客戶端知道ACK已丟失 ?
2、只有服務端的FIN時,回應一個ACK給服務端,進入CLOSING狀態,然后接收到服務端的ACK時,進入TIME_WAIT狀態 ?
3、同時收到服務端的ACK和FIN,直接進入TIME_WAIT狀態

7.客戶端的典型狀態轉移
客戶端通過connect系統調用主動與服務器建立連接connect系統調用首先給服務器發送一個同步報文段,使連接轉移到SYN_SENT狀態 ?
此后connect系統調用可能因為如下兩個原因失敗返回: ?
1、如果connect連接的目標端口不存在(未被任何進程監聽),或者該端口仍被處于TIME_WAIT狀態的連接所占用(見后文),則服務器將給客戶端發送一個復位報文段,connect調用失敗。 ?
2、如果目標端口存在,但connect在超時時間內未收到服務器的確認報文段, 則connect調用失敗。 ?
connect調用失敗將使連接立即返回到初始的CLOSED狀態。如果客戶端成功收到服務器的同步報文段和確認,則connect調用成功返回,連接轉移至ESTABLISHED狀態
當客戶端執行主動關閉時,它將向服務器發送一個結束報文段,同時連接進入FIN_WAIT_1狀態。若此時客戶端收到服務器專門用于確認目的的確認報文段,則連接轉移至
FIN_WAIT_2狀態。當客戶端處于FIN_WAIT_2狀態時,服務器處于CLOSE_WAIT狀態,這一對狀態是可能發生半關閉的狀態。此時如果服務器也關閉連接(發送結束報文段),則客戶端將給予確認并進入TIME_WAIT狀態 ?
客戶端從FIN_WAIT_1狀態可能直接進入TIME_WAIT狀態(不經過FIN_WAIT_2 狀態),前提是處于FIN_WAIT_1狀態的服務器直接收到帶確認信息的結束報文段(而不是先收到確認報文段,再收到結束報文段)
處于FIN_WAIT_2狀態的客戶端需要等待服務器發送結束報文段,才能轉移至TIME_WAIT狀態,否則它將一直停留在這個狀態。如果不是為了在半關閉狀態下繼續接收數據,
連接長時間地停留在FIN_WAIT_2狀態并無益處。連接停留在FIN_WAIT_2狀態的情況可能發生在:客戶端執行半關閉后,未等服務器關閉連接就強行退出了。此時客戶端連接由
內核來接管,可稱之為孤兒連接(和孤兒進程類似) ?
Linux為了防止孤兒連接長時間存留在內核中,定義了兩個內核參數:
/proc/sys/net/ipv4/tcp_max_orphans 指定內核能接管的孤兒連接數目 ?
/proc/sys/net/ipv4/tcp_fin_timeout 指定孤兒連接在內核中生存的時間

8.TCP超時重傳
異常網絡狀況下(開始出現超時或丟包),TCP控制數據傳輸以保證其承諾的可靠服務 ?
TCP服務必須能夠重傳超時時間內未收到確認的TCP報文段。為此,TCP模塊為每個TCP報文段都維護一個重傳定時器,該定時器在TCP報文段第一次被發送時啟動。
如果超時時間內未收到接收方的應答,TCP模塊將重傳TCP報文段并重置定時器。至于下次重傳的超時時間如何選擇,以及最多執行多少次重傳,就是TCP的重傳策略 ?
與TCP超時重傳相關的兩個內核參數: ?
/proc/sys/net/ipv4/tcp_retries1,指定在底層IP接管之前TCP最少執行的重傳次數,默認值是3 ?
/proc/sys/net/ipv4/tcp_retries2,指定連接放棄前TCP最多可以執行的重傳次數,默認值15(一般對應13~30min)

9.擁塞控制
網絡中的帶寬、交換結點中的緩存和處理機等,都是網絡的資源。在某段時間,若對網絡中某一資源的需求超過了該資源所能提供的可承受的能力,網絡的性能就會變壞。
這種情況就叫做擁塞 ?
TCP為提高網絡利用率,降低丟包率,并保證網絡資源對每條數據流的公平性。即所謂的擁塞控制 ?
TCP擁塞控制的標準文檔是RFC 5681,其中詳細介紹了擁塞控制的四個部分:慢啟動(slow start)、擁塞避免(congestion avoidance)、快速重傳(fast retransmit)
和快速恢復(fast recovery)。擁塞控制算法在Linux下有多種實現,比如reno算法、vegas算法和cubic算法等。它們或者部分或者全部實現了上述四個部分 ?
當前所使用的擁塞控制算法 /proc/sys/net/ipv4/tcp_congestion_control

10.UDP特性
工作在傳輸層 ?
提供不可靠的網絡訪問 ?
非面向連接協議 ?
有限的錯誤檢查 ?
傳輸性能高 ?
無數據恢復特性

11.ARP表
[root@centos7 ~]#ip neigh
192.168.74.1 dev eth0 lladdr 00:50:56:c0:00:01 REACHABLE
192.168.74.254 dev eth0 lladdr 00:50:56:e3:29:de STALE
192.168.199.1 dev eth1 lladdr d4:ee:07:52:3a:46 STALE
192.168.199.207 dev eth1 lladdr ac:c1:ee:7b:a3:5b STALE
[root@centos7 ~]#arp -n
Address HWtype HWaddress Flags Mask face
192.168.74.1 ether 00:50:56:c0:00:01 C eth0
192.168.74.254 ether 00:50:56:e3:29:de C eth0
192.168.199.1 ether de:ee:07:52:3a:46 C eth1
192.168.199.207 ether ac:c1:ee:7b:a3:5b C eth1

12.Internet 協議特征
運行于OSI網絡層 ?
面向無連接的協議 ?
獨立處理數據包 ?
分層編址 ?
盡力而為傳輸 ?
無數據恢復功能

13.IP PDU 報頭
版本:占4位,指 IP 協議的版本目前的IP協議版本號為4 ?
首部長度:占4位,可表示的最大數值是15個單位,一個單位為4字節,因此IP的首部長度的最大值是60字節 ?
區分服務:占8位,用來獲得更好的服務,在舊標準中叫做服務類型,但實際上一直未被使用過.后改名為區分服務.只有在使用區分服務(DiffServ)時,
這個字段才起作用.一般的情況下都不使用 ?
總長度:占16位,指首部和數據之和的長度,單位為字節,因此數據報的最大長度為 65535 字節.總長度必須不超過最大傳送單元 MTU ?
標識:占16位,它是一個計數器,通常,每發送一個報文,該值會加1,也用于數據包分片,在同一個包的若干分片中,該值是相同的 ?
標志(flag):占3位,目前只有后兩位有意義 ?
DF: Don‘t Fragment,中間的一位,只有當 DF=0 時才允許分片 ?
MF: More Fragment,最高位,MF=1表示后面還有分片。MF=0表示最后一個分片
片偏移:占12位,指較長的分組在分片后,該分片在原分組中的相對位置.片偏移以8個字節為偏移單位 ?
生存時間:占8位,記為TTL (Time To Live) 數據報在網絡中可通過的路由器數的最大值,TTL字段是由發送端初始設置一個8bit字段.推薦的初始值由分配數字RFC指定,當前值為
64.發送 ICMP 回顯應答時經常把 TTL 設為最大值 255 ?
協議:占8位,指出此數據報攜帶的數據使用何種協議以便目的主機的IP層將數據部分上交給哪個處理過程, 1表示為ICMP協議,2表示為IGMP協議,6表示為TCP協議, 17表示為UDP協議
首部檢驗和:占16位,只檢驗數據報的首部不檢驗數據部分.這里不采用 CRC 檢驗碼而采用簡單的計算方法 ?
源地址和目的地址:都各占4字節,分別記錄源地址和目的地址

14.IP地址
它們可唯一標識 IP 網絡中的每臺設備 ?
每臺主機(計算機、網絡設備、外圍設備)必須具有唯一的地址 ?
IP地址由兩部分組成:
? 網絡ID: ? 標識網絡 ? 每個網段分配一個網絡ID
? 主機ID: ? 標識單個主機 ? 由組織分配給各設備

15.IP地址分類
A類: 0 000 0000 – 0 111 1111: 1-127
網絡數:126, 127
每個網絡中的主機數:2^24-2
默認子網掩碼:255.0.0.0
私網地址:10.0.0.0 ?

B類: 10 00 0000 – 10 11 1111:128-191
網絡數:2^14
每個網絡中的主機數:2^16-2
默認子網掩碼:255.255.0.0
私網地址:172.16.0.0-172.31.0.0

C類: 110 0 0000 – 110 1 1111: 192-223
網絡數:2^21
每個網絡中的主機數:2^8-2
默認子網掩碼:255.255.255.0
私網地址:192.168.0.0-192.168.255.0

D類:組播 1110 0000 – 1110 1111: 224-239

E類: 240-255

16.其他
(1)單工:單向
雙工:雙向
全雙工:同時雙向
半雙工:輪流雙向

(2)網橋可以分割沖突域,但無法阻隔廣播域。
(3)ethtool eth0(1,2…) :查看網卡信息
(4)route -n : 查看路由表
(5)網卡作用于:數據鏈路層
路由器作用于:網絡層
交換機作用于:數據鏈路層
wifi作用于:數據鏈路層
(6)查看各種協議的端口號:cat /etc/services

20180428

1.私有IP地址
A類 10.0.0.0 到 10.255.255.255

B類 172.16.0.0 到 172.31.255.255

C類 192.168.0.0 到 192.168.255.255

2.特殊地址
0.0.0.0 0.0.0.0不是一個真正意義上的IP地址。它表示一個集合:所有不清楚的主機和目的網絡。 ?
255.255.255.255 限制廣播地址。對本機來說,這個地址指本網段內(同一廣播域)的所有主機 ?
127.0.0.1~127.255.255.254 本機回環地址,主要用于測試。在傳輸介質上永遠不應該出現目的地址為“127.0.0.1”的數據包。 ?
224.0.0.0到239.255.255.255 組播地址,224.0.0.1特指所有主機,224.0.0.2特指所有路由器。224.0.0.5指OSPF路由器,地址多用于一些特定的程序以及多媒體程序 ?
169.254.x.x 如果Windows主機使用了DHCP自動分配IP地址,而又無法從DHCP服務器獲取地址,系統會為主機分配這樣地址。

3.保留地址
網絡地址:000000000000
廣播地址:111111111111

4.跨網絡通信
跨網絡通信:路由 ?
路由分類: 主機路由 網絡路由 默認路由 ?
優先級:精度越高,優先級越高

5.基本網絡配置
將Linux主機接入到網絡,需要配置網絡相關設置。 ?
一般包括如下內容:
主機名
IP/netmask
路由:默認網關
DNS服務器
主DNS服務器
次DNS服務器
第三DNS服務器

6.CentOS 6網卡名稱
接口命名方式:CentOS 6
以太網:eth[0,1,2,…]
ppp:ppp[0,1,2,…](撥號類型,以較少使用) ?
網絡接口識別并命名相關的udev配置文件: /etc/udev/rules.d/70-persistent-net.rules ?
查看網卡: dmesg |grep –i eth
ethtool -i eth0 ?
卸載網卡驅動: modprobe -r e1000
rmmod e1000 ?
裝載網卡驅動: modprobe e1000

7.網絡配置方式
靜態指定:
ifconfig, route, netstat
ip: object {link, addr, route}, ss, tc
system-config-network-tui,setup
配置文件 ?
動態分配:
DHCP: Dynamic Host Configuration Protocol

8.配置網絡接口
ifconfig命令
ifconfig [interface]
ifconfig -a
ifconfig IFACE [up|down]
ifconfig interface [aftype] options | address …
ifconfig IFACE IP/netmask [up]
ifconfig IFACE IP netmask NETMASK
注意:立即生效
啟用混雜模式:[-]promisc

9.route命令
路由管理命令 ?
查看:route -n ?
添加:route add
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] ?
目標:192.168.1.3 網關:172.16.0.1
route add -host 192.168.1.3 gw 172.16.0.1 dev eth0 ?
目標:192.168.0.0 網關:172.16.0.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
默認路由,網關:172.16.0.1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
route add default gw 172.16.0.1 ?
刪除:
route del route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If] ?
目標:192.168.1.3 網關:172.16.0.1
route del -host 192.168.1.3 ?
目標:192.168.0.0 網關:172.16.0.1
route del -net 192.168.0.0 netmask 255.255.255.0

10.配置動態路由
通過守護進程獲取動態路由
? 安裝quagga包
? 支持多種路由協議:RIP、OSPF和BGP
? 命令vtysh配置

11.其他
(1)CIDR:無類域間路由表示法:IP/網絡ID位數
(2)劃分子網:一個大網絡(主機多=主機ID多,網絡ID位少),劃分成多個小網絡(主機少=主機ID位數少,網絡ID位數多),網絡ID位向主機ID位借N個位,劃分成2^N個小網。
(3)合并超網:多個小網絡合并成一個大網,主機ID位向網絡ID位借位。(找相同位)
(4)路由表的構成:
①目標:數據包發送的目標路徑
②netmask:配合目標路徑
③interface:本路由的出口
④gateway:直連:網關無需配置
非直連:下一個路由器臨近本路由器的接口地址
(5)cat /proc/sys/net/ipv4/ip_forward : 0 改成 1 :啟動路由功能
(6)追蹤路由:traceroute
mtr
tracepath
(7)公式:①網絡(網段)數量=2^可變網絡ID數
②一個網路的主機數量=2^主機ID位數-2=2^(32-網絡ID位數)-2
③網絡ID=IP與子網掩碼netmask
④劃分子網數=劃分成2^N個(網絡ID位向主機ID位借N位)

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97330

(0)
煙花兒煙花兒
上一篇 2018-05-02 08:50
下一篇 2018-05-02 14:48

相關推薦

  • linux基礎(一)

    初級運維的一些基本命令跟相應的作用。

    Linux筆記 2018-04-01
  • liunx 基礎

    命令別名: 命令格式 :

    Linux筆記 2018-04-01
  • 網絡通信安全基礎、openssl、openssh

    數據安全分為: 保密性:數據保密性、隱私性 完整性:數據完整性、系統完整性 可用性:數據有效性   安全攻擊分為: 被動攻擊:竊聽 主動攻擊:偽裝、重放、消息篡改、拒絕服務   安全機制: 加密、數字簽名、訪問控制、數據完整性、認證交換機制、流量填充、路由控制、公證   安全服務: 認證: 訪問控制: 數據保密性:連接、無連接、…

    Linux筆記 2017-12-06
  • 第二周總結

    反向單引號 ` `:執行能力強,可以執行命令 [等價于$()]單引號 ‘ ’:只顯示字符雙引號 “ ”:識別變量,不識別命令花括號{ }: 里面內容互相組合 打印重復字符串的簡化形式echo file{1,3,5} 結果為:file1 file3 file5rm -f file{1,3,5} 刪除file1 file3 file5echo file{1..1…

    Linux筆記 2018-07-29
  • 震驚?。?!原來CentOS-7裝起來這么容易

    震驚?。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。?!

    2018-07-22
  • 第二周小總結

    課堂筆記

    2018-04-09
欧美性久久久久