linux網絡管理

linux網絡管理

計算機網絡

MAC
MAC(Media Access Control或者Medium Access Control)地址,意譯爲媒體訪問控制介質訪問控制,或稱爲物理地址硬件地址,用來定義網絡設備的位置。在OSI模型中,第三層網絡層負責IP地址第二層數據鏈路層則負責MAC地址。因此一個主機會有一個MAC地址,而每個網絡位置會有一個專屬於它的IP地址。
MAC地址(MAC Address)
MAC(Medium/Media Access Control)地址,用來表示互聯網上每一個站點的標識符,採用十六進制數表示,共六個字節(48位二進制數)。其中,前三個字節(24位二進制數)是由IEEE的註冊管理機構RA負責給不同廠家分配的代碼(高位24位),也稱爲“編制上唯一的標識符”(Organizationally Unique Identifier),後三個字節(低位24位二進制數)由各廠家自行指派給生產的適配器接口,稱爲擴展標識符(唯一性)。一個地址塊可以生成224個不同的地址。MAC地址實際上就是適配器地址或適配器標識符EUI-48。
MAC地址是網卡決定的,是固定的
用六個字節的十六進制數表示
MAC地址對應於OSI參考模型的第二層數據鏈路層,工作在數據鏈路層的交換機維護着計算機MAC地址和自身端口的數據庫,交換機根據收到的數據幀中的“目的MAC地址”字段來轉發數據幀。
在網絡底層的物理傳輸過程中,是通過物理地址來識別主機的,它一定是全球唯一的。形象地說,MAC地址就如同我們身份證上的身份證號碼,具有全球唯一性

談起MAC地址,不得不說一下IP地址。IP地址工作在OSI參考模型的第三層網絡層。兩者之間分工明確,默契合作,完成通信過程。IP地址專注於網絡層,將數據包從一個網絡轉發到另外一個網絡;而MAC地址專注於數據鏈路層,將一個數據幀從一個節點傳送到相同鏈路的另一個節點。

IP地址
IP地址是指互聯網協議地址(英語:Internet Protocol Address,又譯爲網際協議地址),是IP Address的縮寫。IP地址是IP協議提供的一種統一的地址格式,它爲互聯網上的每一個網絡和每一臺主機分配一個邏輯地址,以此來屏蔽物理地址的差異。
IP地址是一個32位的二進制數,通常被分割爲4個“8位二進制數”(也就是4個字節)。IP地址通常用“點分十進制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之間的十進制整數。例:點分十進IP地址(100.4.5.6),實際上是32位二進制數(01100100.00000100.00000101.00000110)。
IP地址(英語:Internet Protocol Address)是一種在Internet上的給主機編址的方式,也稱爲網際協議地址。常見的IP地址,分爲IPv4(32位)與IPv6(128位)兩大類。IPV4就是有4段數字,每一段最大不超過255。由於互聯網的蓬勃發展,IP位址的需求量愈來愈大,使得IP位址的發放愈趨嚴格,各項資料顯示全球IPv4位址可能在2005至2010年間全部發完(實際情況是在2011年2月3日IPv4位地址分配完畢)。
地址空間的不足必將妨礙互聯網的進一步發展。爲了擴大地址空間,擬通過IPv6(128位)重新定義地址空間。IPv6採用128位地址長度。在IPv6的設計過程中除了一勞永逸地解決了地址短缺問題以外,還考慮了在IPv4中解決不好的其它問題。

IP地址轉換
Internet上的每臺主機(Host)都有一個唯一的IP地址。IP協議就是使用這個地址在主機之間傳遞信息,這是Internet 能夠運行的基礎。IP地址的長度爲32位(共有2^32個IP地址),分爲4段,每段8位,用十進制數字表示,每段數字範圍爲0~255,段與段之間用句點隔開。例如159.226.1.1。IP地址可以視爲網絡標識號碼與主機標識號碼兩部分,因此IP地址可分兩部分組成,一部分爲網絡地址,另一部分爲主機地址。
網絡地址:用於識別主機所在的網絡
主機地址:用於識別該網絡中的主機。

地址格式爲:IP地址=網絡地址+主機地址或IP地址=網絡地址+子網地址+主機地址。
網絡地址的位數直接決定了可以分配的網絡數(計算方法:2^網絡號位數-2);主機地址的位數則決定了網絡中最大的主機數(計算方法:2^主機號位數-2)。

IP地址類型
公有地址
公有地址(Public address)由Inter NIC(Internet Network Information Center因特網信息中心)負責。這些IP地址分配給註冊並向Inter NIC提出申請的組織機構。通過它直接訪問因特網。

私有地址
私有地址(Private address)屬於非註冊地址,專門爲組織機構內部使用。
以下列出留用的內部私有地址

IP地址分類
IP地址編址方案:IP地址編址方案將IP地址空間劃分爲A、B、C、D、E五類,其中A、B、C是基本類,D、E類作爲多播和保留使用。
Internet委員會定義了5種IP地址類型以適合不同容量的網絡,即A類~E類。它們適用的類型分別爲:大型網絡;中型網絡;小型網絡;多目地址;備用。常用的是B和C兩類。
其中A、B、C3類(如下表格)由InternetNIC在全球範圍內統一分配,D、E類爲特殊地址。
A、B、C三類IP地址的特徵:當將IP地址寫成二進制形式時,A類地址的第一位總是0,B類地址的前兩位總是10,C類地址的前三位總是110。


A類IP地址
一個A類IP地址是指, 在IP地址的四段號碼中,第一段號碼爲網絡號碼,剩下的三段號碼爲本地計算機的號碼。如果用二進制表示IP地址的話,A類IP地址就由1字節的網絡地址和3字節主機地址組成,網絡地址的最高位必須是“0”。A類IP地址中網絡的標識長度爲8位,主機標識的長度爲24位,A類網絡地址數量較少,有126個網絡,每個網絡可以容納主機數達1600多萬臺。
A類IP地址 地址範圍1.0.0.0到127.255.255.255(二進制表示爲:00000001 00000000 00000000 00000000 - 01111110 11111111 11111111 11111111)。最後一個是廣播地址。
A類IP地址的子網掩碼爲255.0.0.0,每個網絡支持的最大主機數爲256的3次方-2=16777214臺。

A類地址總結 :
(1)A類地址第1字節爲網絡地址,其它3個字節爲主機地址。它的第1個字節的第一位固定爲0.
(2)A類地址網絡號範圍:1.0.0.0---126.0.0.0
(3)A類地址中的私有地址和保留地址:
① 10.X.X.X是私有地址(所謂的私有地址就是在互聯網上不使用,而被用在局域網絡中的地址)。範圍(10.0.0.0---10.255.255.255)
② 127.X.X.X是保留地址,用做循環測試用的。

B類IP地址
一個B類IP地址是指,在IP地址的四段號碼中,前兩段號碼爲網絡號碼。如果用二進制表示IP地址的話,B類IP地址就由2字節的網絡地址和2字節主機地址組成,網絡地址的最高位必須是“10”。B類IP地址中網絡的標識長度爲16位,主機標識的長度爲16位,B類網絡地址適用於中等規模的網絡,有16384個網絡,每個網絡所能容納的計算機數爲6萬多臺。
B類IP地址地址範圍128.0.0.0-191.255.255.255(二進制表示爲:10000000 00000000 00000000 00000000----10111111 11111111 11111111 11111111)。 最後一個是廣播地址。
B類IP地址的子網掩碼爲255.255.0.0,每個網絡支持的最大主機數爲256的2次方-2=65534臺。

B類地址總結:
(1) B類地址第1字節和第2字節爲網絡地址,其它2個字節爲主機地址。它的第1個字節的前兩位固定爲10.
(2) B類地址網絡號範圍:128.0.0.0---191.255.0.0。
(3) B類地址的私有地址和保留地址
① 172.16.0.0---172.31.255.255是私有地址
② 169.254.X.X是保留地址。如果你的IP地址是自動獲取IP地址,而你在網絡上又沒有找到可用的DHCP服務器。就會得到其中一個IP。
191.255.255.255是廣播地址,不能分配。

C類IP地址
一個C類IP地址是指,在IP地址的四段號碼中,前三段號碼爲網絡號碼,剩下的一段號碼爲本地計算機的號碼。如果用二進制表示IP地址的話,C類IP地址就由3字節的網絡地址和1字節主機地址組成,網絡地址的最高位必須是“110”。C類IP地址中網絡的標識長度爲24位,主機標識的長度爲8位,C類網絡地址數量較多,有209萬餘個網絡。適用於小規模的局域網絡,每個網絡最多隻能包含254臺計算機。
C類IP地址範圍192.0.0.0-223.255.255.255(二進制表示爲: 11000000 00000000 00000000 00000000 - 11011111 11111111 11111111 11111111)。
C類IP地址的子網掩碼爲255.255.255.0,每個網絡支持的最大主機數爲256-2=254臺
D類IP地址
D類IP地址在歷史上被叫做多播地址(multicast address),即組播地址。在以太網中,多播地址命名了一組應該在這個網絡中應用接收到一個分組的站點。多播地址的最高位必須是“1110”,範圍從224.0.0.0到239.255.255.255。
C類地址總結
(1)C類地址第1字節、第2字節和第3個字節爲網絡地址,第4個字節爲主機地址。另外第1個字節的前三位固定爲110。
(2)C類地址網絡號範圍:192.0.0.0---223.255.255.0。
(3) C類地址中的私有地址:
192.168.X.X是私有地址。(192.168.0.0---192.168.255.255)

D類地址
(1) D類地址不分網絡地址和主機地址,它的第1個字節的前四位固定爲1110。
(2) D類地址範圍:224.0.0.0---239.255.255.255

E類地址
(1) E類地址不分網絡地址和主機地址,它的第1個字節的前五位固定爲11110。
(2) E類地址範圍:240.0.0.0---255.255.255.254

CIDR無類地址
IP/網絡ID位數(子網掩碼中1的位數)
除ABCDE以外的IP地址段劃分方式,如:192.168.1.0 255.255.255.252等分成C段劃分的地址

子網掩碼(subnet mask)
子網掩碼(subnet mask)又叫網絡掩碼、地址掩碼、子網絡遮罩,它是一種用來指明一個IP地址的哪些位標識的是主機所在的子網,以及哪些位標識的是主機的位掩碼。子網掩碼不能單獨存在,它必須結合IP地址一起使用。子網掩碼只有一個作用,就是將某個IP地址劃分成網絡地址和主機地址兩部分。
子網掩碼是一個32位地址,用於屏蔽IP地址的一部分以區別網絡標識和主機標識,並說明該IP地址是在局域網上,還是在遠程網上。
子網掩碼——屏蔽一個IP地址的網絡部分的“全1”比特模式。
子網掩碼(subnet mask)的八位

子網掩碼通過和IP地址二進制數逐位進行“與”運算(全1則得1,不全1則得0),來區別網絡標識和主機標識

網絡ID=IP與子網掩碼
IP:10.1.252.100
netmask:255.255.0.0
網絡ID:10.1.0.0
例如:
A 10.1.252.213 255.255.0.0
B 10.1.253.210 255.255.255.0

A IP地址與A mask地址 網段10.1.0.0
A 用B IP地址與A mask地址 認爲網段10.1.0.0
所以A認爲B與自己同一網段
B IP地址與B mask地址 網段10.1.253.0
B 用A IP地址與B mask地址 認爲網段10.1.252.0
所以B認爲A與自己不同一網段

可變長度子網掩碼
利用子網掩碼可以把大的網絡劃分成子網,即VLSM(可變長子網掩碼),也可以把小的網絡歸併成大的網絡即超網。
子網、超網和無類域間路由
需要注意的是,不要以爲同一網絡的計算機分配不同的IP地址,就可以提高網絡傳輸效率。事實上,同一網絡內的計算機仍然處於同一廣播域,廣播包的數量不會由於IP地址的不同而減少,所以,僅僅是爲計算機指定不同網段,並不能實現劃分廣播域的目的。若欲減少廣播域,最根本的解決辦法就是劃分VLAN,然後爲每個VLAN分別指定不同的IP網段。
傳統IP地址分類的缺點是不能在網絡內部使用路由,這樣一來,對於比較大的網絡,例如一個A類網絡,會由於網絡中主機數量太多而變得難以管理。爲此,引入子網掩碼(NetMask),從邏輯上把一個大網絡劃分成一些小網絡。子網掩碼是由一系列的1和0構成,通過將其同IP地址做“與”運算來指出一個IP地址的網絡號是什麼。對於傳統IP地址分類來說,A類地址的子網掩碼是255.0.0.0;B類地址的子網掩碼是255.255.0.0;C類地址的子網掩碼是255.255.255.0。例如,如果要將一個B類網絡166.111.0.0劃分爲多個C類子網來用的話,只要將其子網掩碼設置爲255.255.255.0即可,這樣166.111.1.1和166.111.2.1就分屬於不同的網絡了。像這樣,通過較長的子網掩碼將一個網絡劃分爲多個網絡的方法就叫做劃分子網(Subnetting)。
在選擇專用(私有)IP地址時,應當注意以下幾點:
1、爲每個網段都分配一個C類IP地址段,建議使用192.168.2.0--192.168.254.0段IP地址。由於某些網絡設備(如寬帶路由器或無線路由器)或應用程序(如ICS)擁有自動分配IP地址功能,而且默認的IP地址池往往位於192.168.0.0和192.168.1.0段,因此,在採用該IP地址段時,往往容易導致IP地址衝突或其他故障。所以,除非必要,應當儘量避免使用上述兩個C類地址段。
2、可採用C類地址的子網掩碼,如果有必要,可以採用變長子網掩碼。通常情況下,不要採用過大的子網掩碼,每個網段的計算機數量都不要超過250臺計算機。同一網段的計算機數量越多,廣播包的數量越大,有效帶寬就損失得越多,網絡傳輸效率也越低。
3、即使選用10.0.0.1--10.255.255.254或172.16.0.1--172.31.255.254段IP地址,也建議採用255.255.255.0作爲子網掩碼,以獲取更多的IP網段,並使每個子網中所容納的計算機數量都較少。當然,如果必要,可以採用變長子網掩碼,適當增加可容納的計算機數量。
4、爲網絡設備的管理WLAN分配一個獨立的IP地址段,以避免發生與網絡設備管理IP的地址衝突,從而影響遠程管理的實現。基於同樣的原因,也要將所有的服務器劃分至一個獨立的網段。
超網(Supernetting)是同子網類似的概念,它通過較短的子網掩碼將多個小網絡合成一個大網絡。例如,一個單位分到了8個C類地址:202.120.224.0 ~ 202.120.231.0,只要將其子網掩碼設置爲255.255.248.0,就能使這些C類網絡相通。

劃分子網
一個大網分成若干個小網
網絡ID向主機ID借位n,子網數:2^n
劃分子網後損失IP地址數=(子網數-1)*2
例如:
172.16.0 0000000.0

172.16.0 0000000.1
172.16.0 0000000.00000001
172.16.0 1111111.11111111

172.16.0 1111111.11111111
172.16.1 0000000.00000000

172.16.1 0000000.00000001
172.16.1 1111111.11111110
172.16.1 1111111.254

172.16.1.255

合併多個小子網成一個大的超網
主機ID向網絡ID借位
1、合併位必須一樣纔可以合併
2、借位後剩餘位必須包含所有情況(即剩餘位的變化)

例如:
220.78.168.0/16 - 220.78.175.0/16

220.78.10101 000.0
220.78.10101 001.0

220.78.10101 111.0

220.78.168.0/21

特殊地址
源IP地址
每一個字節都爲0的地址(“0.0.0.0”)對應於當前主機;
若IP地址全爲0,也就是0.0.0.0,則這個IP地址在IP數據報中只能用作源IP地址,這發生在當設備啓動時但又不知道自己的IP地址情況下。在使用DHCP分配IP地址的網絡環境中,這樣的地址是很常見的。用戶主機爲了獲得一個可用的IP地址,就給DHCP服務器發送IP分組,並用這樣的地址作爲源地址,目的地址爲255.255.255.255(因爲主機這時還不知道DHCP服務器的IP地址)。
0.0.0.0不是一個真正意義上的IP地址。它表示一個集合:所有不清楚的主機和目的網絡。

限制廣播地址
廣播通信是“一對所有”的通信方式。若一個IP地址的2進制數全爲1,也就是255.255.255.255,則這個地址用於定義整個互聯網。如果設備想使IP數據報被整個Internet所接收,就發送這個目的地址全爲1的廣播包,但這樣會給整個互聯網帶來災難性的負擔。因此網絡上的所有路由器都阻止具有這種類型的分組被轉發出去,使這樣的廣播僅限於本地網段。也就是說IP地址中的每一個字節都爲1的IP地址(“255.255.255.255”)是當前子網的廣播地址;對本機來說,這個地址指本網段內(同一廣播域)的所有主機
直接廣播地址
一個網絡中的最後一個地址爲直接廣播地址,也就是HostID全爲1的地址。主機使用這種地址把一個IP數據報發送到本地網段的所有設備上,路由器會轉發這種數據報到特定網絡上的所有主機。
注意:這個地址在IP數據報中只能作爲目的地址。另外,直接廣播地址使一個網段中可分配給設備的地址數減少了1個。

環回地址
IP地址中不能以十進制“127”作爲開頭,該類地址中數字127.0.0.1到127.255.255.255用於本機迴環地址,主要用於迴環測試。在傳輸介質上永遠不應該出現目的地址爲“ 127.0.0.1”的 數據包。
如:127.0.0.1可以代表本機IP地址,使用ping127.0.0.1就可以測試本地TCP/IP協議是否已正確安裝。另外一個用途是當客戶進程用環回地址發送報文給位於同一臺機器上的服務器進程,比如在瀏覽器裏輸入127.1.2.3,這樣可以在排除網絡路由的情況下用來測試IIS是否正常啓動。
Loopbask迴環網卡

組播地址
224.0.0.0到239.255.255.255
在IP地址空間中,有的IP地址不能爲設備分配的,有的IP地址不能用在公網,有的IP地址只能在本機使用,諸如此類的特殊IP地址衆多:
注意它和廣播的區別。從224.0.0.0到239.255.255.255都是這樣的地址。224.0.0.1特指所有主機, 224.0.0.2特指所有路由器。這樣的地址多用於一些特定的程序以及多媒體程序。如果你的主機開啓了IRDP(Internet路由發現協議,使用組播功能)功能,那麼你的主機路由表中應該有這樣一條路由。
224.0.0.5指OSPF路由器,地址多用於一些特定的程序以及多媒體程序

IP地址中凡是以“11110”開頭的E類IP地址都保留用於將來和實驗使用。

網絡ID的第一個8位組也不能全置爲“0”,全“0”表示本地網絡。
NetID爲0的
當某個主機向同一網段上的其他主機發送報文時就可以使用這樣的地址,分組也不會被路由器轉發。比如12.12.12.0/24這個網絡中的一臺主機12.12.12.2/24在與同一網絡中的另一臺主機12.12.12.8/24通信時,目的地址可以是0.0.0.8。

169.254.x.x
如果你的主機使用了DHCP功能自動獲得一個IP地址,那麼當你的DHCP服務器發生故障,或響應時間太長而超出了一個系統規定的時間,Windows系統會爲你分配這樣一個地址。如果你發現你的主機IP地址是一個諸如此類的地址,很不幸,十有八九是你的網絡不能正常運行了

局域網的IP
在一個局域網中,有兩個IP地址比較特殊,一個是網絡號,一個是廣播地址。網絡號是用於三層尋址的地址,它代表了整個網絡本身;另一個是廣播地址,它代表了網絡全部的主機。網絡號是網段中的第一個地址,廣播地址是網段中的最後一個地址,這兩個地址是不能配置在計算機主機上的。
例如在192.168.0.0,255.255.255.0這樣的網段中,網絡號是192.168.0.0,廣播地址是192.168.0.255。因此,在一個局域網中,能配置在計算機中的地址比網段內的地址要少兩個(網絡號、廣播地址),這些地址稱之爲主機地址。在上面的例子中,主機地址就只有192.168.0.1至192.168.0.254可以配置在計算機上了。

MAC地址與IP地址區別
IP地址和MAC地址相同點是它們都唯一,不同的特點主要有:
1、對於網絡上的某一設備,如一臺計算機或一臺路由器,其IP地址是基於網絡拓撲設計出的,同一臺設備或計算機上,改動IP地址是很容易的(但必須唯一),而MAC則是生產廠商燒錄好的,一般不能改動。我們可以根據需要給一臺主機指定任意的IP地址,如我們可以給局域網上的某臺計算機分配IP地址爲192.168.0.112 ,也可以將它改成192.168.0.200。而任一網絡設備(如網卡,路由器)一旦生產出來以後,其MAC地址不可由本地連接內的配置進行修改。如果一個計算機的網卡壞了,在更換網卡之後,該計算機的MAC地址就變了。
2、長度不同。IP地址爲32位(IPv4),MAC地址爲48位。
3、分配依據不同。IP地址的分配是基於網絡拓撲,MAC地址的分配是基於製造商。
4、尋址協議層不同。IP地址應用於OSI第三層,即網絡層,而MAC地址應用在OSI第二層,即數據鏈路層。 數據鏈路層協議可以使數據從一個節點傳遞到相同鏈路的另一個節點上(通過MAC地址),而網絡層協議使數據可以從一個網絡傳遞到另一個網絡上(ARP根據目的IP地址,找到中間節點的MAC地址,通過中間節點傳送,從而最終到達目的網絡)。

Windows中有DHCP則獲取動態ip沒有則啓用備用配置的固定ip

TCP/IP:協議棧(實際使用協議)

Transmission Control Protocol/Internet Protocol的簡寫,中譯名爲傳輸控制協議/因特網互聯協議,又名網絡通訊協議,是Internet最基本的協議、Internet國際互聯網絡的基礎,由網絡層的IP協議和傳輸層的TCP協議組成。TCP/IP 定義了電子設備如何連入因特網,以及數據如何在它們之間傳輸的標準。協議採用了4層的層級結構,每一層都呼叫它的下一層所提供的協議來完成自己的需求。通俗而言:TCP負責發現傳輸的問題,一有問題就發出信號,要求重新傳輸,直到所有數據安全正確地傳輸到目的地。而IP是給因特網的每一臺聯網設備規定一個地址。

TCP
TCP(Transmission Control Protocol 傳輸控制協議)是一種面向連接的、可靠的、基於字節流的傳輸層通信協議。其中TCP提供IP環境下的數據可靠傳輸,它提供的服務包括數據流傳送、可靠性、有效流控、全雙工操作和多路複用。通過三次握手建立連接,面向連接、端到端和可靠的數據包發送。
TCP提供的是一種可靠的數據流服務,採用“帶重傳的肯定確認”技術來實現傳輸的可靠性。TCP還採用一種稱爲“滑動窗口”的方式進行流量控制,所謂窗口實際表示接收能力,用以限制發送方的發送速度。
網絡協議
功能
當應用層向TCP層發送用於網間傳輸的、用8位字節表示的數據流,TCP則把數據流分割成適當長度的報文段,最大傳輸段大小(MSS)通常受該計算機連接的網絡的數據鏈路層的最大傳送單元(MTU)限制。之後TCP把數據包傳給IP層,由它來通過網絡將包傳送給接收端實體的TCP層。
TCP爲了保證報文傳輸的可靠,就給每個包一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然後接收端實體對已成功收到的字節發回一個相應的確認(ACK);如果發送端實體在合理的往返時延(RTT)內未收到確認,那麼對應的數據(假設丟失了)將會被重傳。
在數據正確性與合法性上,TCP用一個校驗和函數來檢驗數據是否有錯誤,在發送和接收時都要計算校驗和;同時可以使用md5認證對數據進行加密。
在保證可靠性上,採用超時重傳和捎帶確認機制。
在流量控制上,採用滑動窗口協議,協議中規定,對於窗口內未經確認的分組需要重傳。TCP提供的是一種可靠的數據流服務,採用“帶重傳的肯定確認”技術來實現傳輸的可靠性。TCP採用稱爲“滑動窗口”的方式進行流量控制,所謂窗口實際表示接收能力,用以限制發送方的發送速度。
在擁塞控制上,採用廣受好評的TCP擁塞控制算法(也稱AIMD算法)。該算法主要包括三個主要部分:1)加性增、乘性減;2)慢啓動;3)對超時事件做出反應。

首部格式
TCP的首部格式下圖所示:

---Source Port是源端口,16位。
---Destination Port是目的端口,16位。
---Sequence Number是發送數據包中的第一個字節的序列號,32位。
---Acknowledgment Number是確認序列號,32位。
---Data Offset是數據偏移,4位,該字段的值是TCP首部(包括選項)長度除以4。
---標誌位: 6位,URG表示Urgent Pointer字段有意義:
ACK表示Acknowledgment Number字段有意義
PSH表示Push功能,RST表示復位TCP連接
SYN表示SYN報文(在建立TCP連接的時候使用)
FIN表示沒有數據需要發送了(在關閉TCP連接的時候使用)
Window表示接收緩衝區的空閒空間,16位,用來告訴TCP連接對端自己能夠接收的最大數據長度。
---Checksum是校驗和,16位。
---Urgent Pointers是緊急指針,16位,只有URG標誌位被設置時該字段纔有意義,表示緊急數據相對序列號(Sequence Number字段的值)的偏移。

連接建立

TCP是因特網中的傳輸層協議,使用三次握手協議建立連接。當主動方發出SYN連接請求後,等待對方回答SYN+ACK,並最終對對方的 SYN 執行 ACK 確認。這種建立連接的方法可以防止產生錯誤的連接,TCP使用的流量控制協議是可變大小的滑動窗口協議。

TCP三次握手的過程如下:
(1)客戶端發送SYN(SEQ=x)報文給服務器端,進入SYN_SEND狀態。
(2)服務器端收到SYN報文,迴應一個SYN (SEQ=y)ACK(ACK=x+1)報文,進入SYN_RECV狀態。
(3)客戶端收到服務器端的SYN報文,迴應一個ACK(ACK=y+1)報文,進入Established狀態。
三次握手完成,TCP客戶端和服務器端成功地建立連接,可以開始傳輸數據了。

連接終止
建立一個連接需要三次握手,而終止一個連接要經過四次握手,這是由TCP的半關閉(half-close)造成的。具體過程如下圖所示。

(1) 某個應用進程首先調用close,稱該端執行“主動關閉”(active close)。該端的TCP於是發送一個FIN分節,表示數據發送完畢。
(2) 接收到這個FIN的對端執行 “被動關閉”(passive close),這個FIN由TCP確認。
注意:FIN的接收也作爲一個文件結束符(end-of-file)傳遞給接收端應用進程,放在已排隊等候該應用進程接收的任何其他數據之後,因爲,FIN的接收意味着接收端應用進程在相應連接上再無額外數據可接收。
(3) 一段時間後,接收到這個文件結束符的應用進程將調用close關閉它的套接字。這導致它的TCP也發送一個FIN。
(4) 接收這個最終FIN的原發送端TCP(即執行主動關閉的那一端)確認這個FIN。
既然每個方向都需要一個FIN和一個ACK,因此通常需要4個分節。
注意:
(1) “通常”是指,某些情況下,步驟1的FIN隨數據一起發送,另外,步驟2和步驟3發送的分節都出自執行被動關閉那一端,有可能被合併成一個分節。
(2) 在步驟2與步驟3之間,從執行被動關閉一端到執行主動關閉一端流動數據是可能的,這稱爲“半關閉”(half-close)。
(3) 當一個Unix進程無論自願地(調用exit或從main函數返回)還是非自願地(收到一個終止本進程的信號)終止時,所有打開的描述符都被關閉,這也導致仍然打開的任何TCP連接上也發出一個FIN。
無論是客戶還是服務器,任何一端都可以執行主動關閉。通常情況是,客戶執行主動關閉,但是某些協議,例如,HTTP/1.0卻由服務器執行主動關閉。

可靠性實現
可靠性
 TCP提供一種面向連接的、可靠的字節流服務。面向連接意味着兩個使用TCP的應用(通常是一個客戶和一個服務器)在彼此交換數據包之前必須先建立一個TCP連接。這一過程與打電話很相似,先撥號振鈴,等待對方摘機說“喂”,然後才說明是誰。在一個TCP連接中,僅有兩方進行彼此通信。廣播和多播不能用於TCP。
TCP通過下列方式來提供可靠性:
1.應用數據被分割成TCP認爲最適合發送的數據塊。這和UDP完全不同,應用程序產生的數據長度將保持不變。由TCP傳遞給IP的信息單位稱爲報文段或段(segment)。
2.當TCP發出一個段後,它啓動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到一個確認,將重發這個報文段。當TCP收到發自TCP連接另一端的數據,它將發送一個確認。TCP有延遲確認的功能,在此功能沒有打開,則是立即確認。功能打開,則由定時器觸發確認時間點。
3.TCP將保持它首部和數據的檢驗和。這是一個端到端的檢驗和,目的是檢測數據在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,TCP將丟棄這個報文段和不確認收到此報文段(希望發端超時並重發)。
4.既然TCP報文段作爲IP數據報來傳輸,而IP數據報的到達可能會失序,因此TCP報文段的到達也可能會失序。如果必要,TCP將對收到的數據進行重新排序,將收到的數據以正確的順序交給應用層。
5.既然IP數據報會發生重複,TCP的接收端必須丟棄重複的數據。
6.TCP還能提供流量控制。TCP連接的每一方都有固定大小的緩衝空間。TCP的接收端只允許另一端發送接收端緩衝區所能接納的數據。這將防止較快主機致使較慢主機的緩衝區溢出。
兩個應用程序通過TCP連接交換8bit字節構成的字節流。TCP不在字節流中插入記錄標識符。我們將這稱爲字節流服務(bytestreamservice)。如果一方的應用程序先傳10字節,又傳20字節,再傳50字節,連接的另一方將無法瞭解發方每次發送了多少字節。只要自己的接收緩存沒有塞滿,TCP 接收方將有多少就收多少。一端將字節流放到TCP連接上,同樣的字節流將出現在TCP連接的另一端。
另外,TCP對字節流的內容不作任何解釋。TCP不知道傳輸的數據字節流是二進制數據,還是ASCⅡ字符、EBCDIC字符或者其他類型數據。對字節流的解釋由TCP連接雙方的應用層解釋。
這種對字節流的處理方式與Unix操作系統對文件的處理方式很相似。Unix的內核對一個應用讀或寫的內容不作任何解釋,而是交給應用程序處理。對Unix的內核來說,它無法區分一個二進制文件與一個文本文件。

重傳策略
TCP協議用於控制數據段是否需要重傳的依據是設立重發定時器。在發送一個數據段的同時啓動一個重傳,如果在重傳超時前收到確認(Acknowlegement)就關閉該重傳,如果重傳超時前沒有收到確認,則重傳該數據段。在選擇重發時間的過程中,TCP必須具有自適應性。它需要根據互聯網當時的通信情況,給出合適的重發時間。
這種重傳策略的關鍵是對定時器初值的設定。採用較多的算法是Jacobson於1988年提出的一種不斷調整超時時間間隔的動態算法。其工作原理是:對每條連接TCP都保持一個 變量RTT(Round Trip Time),用於存放當前到目的端往返所需要時間最接近的估計值。當發送一個數據段時,同時啓動連接的定時器,如果在定時器超時前確認到達,則記錄所需要的時間(M),並修正[2] RTT的值,如果定時器超時前沒有收到確認,則將RTT的值增加1倍。通過測量一系列的RTT(往返時間)值,TCP協議可以估算數據包重發前需要等待的時間。在估計該連接所需的當前延遲時通常利用一些統計學的原理和算法(如Karn算法),從而得到TCP重發之前需要等待的時間值。
窗口確認
TCP的一項功能就是確保每個數據段都能到達目的地。位於目的主機的TCP服務對接受到的數據進行確認,並向源應用程序發送確認信息。

使用數據報頭序列號以及確認號來確認已收到包含在數據段的相關的數據字節。
TCP在發回源設備的數據段中使用確認號,指示接收設備期待接收的下一字節。這個過程稱爲期待確認。
源主機在收到確認消息之前可以傳輸的數據的大小稱爲窗口大小。用於管理丟失數據和流量控制。這些變化如右圖所示。

TCP與UDP的差別

IP
網絡之間互連的協議(IP)是Internet Protocol的外語縮寫,中文縮寫爲“網協”.
網絡之間互連的協議也就是爲計算機網絡相互連接進行通信而設計的協議。在因特網中,它是能使連接到網上的所有計算機網絡實現相互通信的一套規則,規定了計算機在因特網上進行通信時應當遵守的規則。任何廠家生產的計算機系統,只要遵守IP協議就可以與因特網互連互通。

OSI協議棧(學習參考協議)
OSI(Open System Interconnect),即開放式系統互聯。 一般都叫OSI參考模型,是ISO(國際標準化組織)組織在1985年研究的網絡互聯模型。該體系結構標準定義了網絡互連的七層框架(物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層),即ISO開放系統互連參考模型。在這一框架下進一步詳細規定了每一層的功能,以實現開放系統環境中的互連性、互操作性和應用的可移植性。
ISO將整個通信功能劃分爲七個層次,劃分原則是:
(1)網路中各節點都有相同的層次;
(2)不同節點的同等層具有相同的功能;
(3)同一節點內相鄰層之間通過接口通信;
(4)每一層使用下層提供的服務,並向其上層提供服務;
(5)不同節點的同等層按照協議實現對等層之間的通信。
(6)根據功能需要進行分層,每層應當實現定義明確的功能。
(7)嚮應用程序提供服務

各層功能

(1)物理層(Physical Layer)
物理層是OSI參考模型的最低層,它利用傳輸介質爲數據鏈路層提供物理連接。它主要關心的是通過物理鏈路從一個節點向另一個節點傳送比特流,物理鏈路可能是銅線、衛星、微波或其他的通訊媒介。它關心的問題有:多少伏電壓代表1?多少伏電壓代表0?時鐘速率是多少?採用全雙工還是半雙工傳輸?總的來說物理層關心的是鏈路的機械、電氣、功能和規程特性。
(2)數據鏈路層(Data Link Layer)
數據鏈路層是爲網絡層提供服務的,解決兩個相鄰結點之間的通信問題,傳送的協議數據單元稱爲數據幀。
數據幀中包含物理地址(又稱MAC地址)、控制碼、數據及校驗碼等信息。該層的主要作用是通過校驗、確認和反饋重發等手段,將不可靠的物理鏈路轉換成對網絡層來說無差錯的數據鏈路。
此外,數據鏈路層還要協調收發雙方的數據傳輸速率,即進行流量控制,以防止接收方因來不及處理髮送方來的高速數據而導致緩衝器溢出及線路阻塞。
(3)網絡層(Network Layer)
網絡層是爲傳輸層提供服務的,傳送的協議數據單元稱爲數據包或分組。該層的主要作用是解決如何使數據包通過各結點傳送的問題,即通過路徑選擇算法(路由)將數據包送到目的地。另外,爲避免通信子網中出現過多的數據包而造成網絡阻塞,需要對流入的數據包數量進行控制(擁塞控制)。當數據包要跨越多個通信子網才能到達目的地時,還要解決網際互連的問題。
(4)傳輸層(Transport Layer)
傳輸層的作用是爲上層協議提供端到端的可靠和透明的數據傳輸服務,包括處理差錯控制和流量控制等問題。該層向高層屏蔽了下層數據通信的細節,使高層用戶看到的只是在兩個傳輸實體間的一條主機到主機的、可由用戶控制和設定的、可靠的數據通路。
傳輸層傳送的協議數據單元稱爲段或報文。
(5)會話層(Session Layer)
會話層主要功能是管理和協調不同主機上各種進程之間的通信(對話),即負責建立、管理和終止應用程序之間的會話。會話層得名的原因是它很類似於兩個實體間的會話概念。例如,一個交互的用戶會話以登錄到計算機開始,以註銷結束。
(6)表示層(Presentation Layer)
表示層處理流經結點的數據編碼的表示方式問題,以保證一個系統應用層發出的信息可被另一系統的應用層讀出。如果必要,該層可提供一種標準表示形式,用於將計算機內部的多種數據表示格式轉換成網絡通信中採用的標準表示形式。數據壓縮和加密也是表示層可提供的轉換功能之一。
(7)應用層(Application Layer)
應用層是OSI參考模型的最高層,是用戶與網絡的接口。該層通過應用程序來完成網絡用戶的應用需求,如文件傳輸、收發電子郵件等。

比喻
7 應用層:老闆
6 表示層:相當於公司中演示文稿、替老闆寫信的助理
5 會話層:相當於公司中收寄信、寫信封與拆信封的祕書
4 傳輸層:相當於公司中跑郵局的送信職員
3 網絡層:相當於郵局中的排序工人
2 數據鏈路層:相當於郵局中的裝拆箱工人
1 物理層:相當於郵局中的搬運工人

對等通信

比較TCP/IP
TCP/IP模型實際上是OSI模型的一個濃縮版本,它只有四個層次:
1.應用層,對應着OSI的應用層、表示層、會話層
2.傳輸層,對應着OSI的傳輸層
3.網絡層,對應着OSI的網絡層
4.網絡接口層,對應着OSI的數據鏈路層和物理層
OSI模型的網絡層同時支持面向連接和無連接的通信,但是傳輸層只支持面向連接的通信;TCP/IP模型的網絡層只提供無連接的服務,但是傳輸層上同時提供兩種通信模式。

計算機網絡的物理拓撲分類
總線拓撲
總線拓撲的網絡結構是將網絡中的各個節點設備用一根總線(如同軸電纜等)掛接起來,實現計算機網絡的功能。
任何連接在總線上的計算機都能在總線上發信號,並且所有計算機都能接收信號。

主要優點:
(1)網絡結構簡單,節點的插入、刪除比較方便,易於網絡擴展。
(2)設備少、電纜長度短、造價低,安裝和使用方便。
(3)具有較高的可靠性。因爲單個節點的故障不會涉及整個網絡。
缺點:
(1)總線傳輸距離有限,通信範圍受到限制。
(2)故障診斷和隔離比較困難。故障隔離困難。當節點發生故障,隔離起來還比較方便,一旦傳輸介質出現故障時,就需要將整個總線切斷。
(3)易於發生數據碰撞,線路爭用現象比較嚴重。分佈式協議不能保證信息的及時傳送,不具有實時功能,站點必須有介質訪問控制功能,從而增加了站點的硬件和軟件開銷。
(4)分佈式協議不能保證信息的及時傳送,不具有實時功能,站點必須有介質訪問控制功能,從而增加了站點的硬件和軟件開銷。

環狀拓撲
入網設備通過轉發器接入網絡,一個轉發器發出的數據只能被另一個轉發器接收並轉發,所有的轉發器及其物理線路構成的環狀網絡系統。信號繞環傳輸。

特點
1.實時性較好:也就是說,信息在網中傳輸的最大時間固定。
2.每個結點只與相鄰兩個結點有物理鏈路
3.傳輸控制機制比較簡單
4.某個結點的故障將導致物理癱瘓
5.單個環網的結點數有限
6.單向性:環形網的數據傳輸具有單向性,即每個轉發器僅與兩個相鄰的轉發器有直接的物理線路。
適用
局域網,實時性要求較高的環境
優點
1.電纜長度短。
2.增加或減少工作站時,僅需簡單的連接操作。
3.可使用光纖。
缺點
1.節點的故障會引起全網故障。
2.故障檢測困難。
3.環形拓撲結構的媒體訪問控制協議都採用令牌傳遞的方式,在負載很輕時,信道利用率相對來說就比較低
雙環拓撲

信號沿相反方向傳輸
比單環的復原能力更強

星型拓撲
在星型拓撲結構中,網絡中的各節點通過點到點的方式連接到一箇中央節點(又稱中央轉接站,一般是集線器或交換機)上,由該中央節點向目的節點傳送信息。中央節點執行集中式通信控制策略,因此中央節點相當複雜,負擔比各節點重得多。在星型網中任何兩個節點要進行通信都必須經過中央節點控制。
工作原理基於總線拓撲

星型網中任何兩個節點要進行通信都必須經過中央節點控制。因此,中央節點的主要功能有三項:當要求通信的站點發出通信請求後,控制器要檢查中央轉接站是否有空閒的通路,被叫設備是否空閒,從而決定是否能建立雙方的物理連接;在兩臺設備通信過程中要維持這一通路;當通信完成或者不成功要求拆線時,中央轉接站應能拆除上述通道。
由於中央節點要與多機連接,線路較多,爲便於集中連線,採用一種成爲集線器(HUB)或交換設備的硬件作爲中央節點。一般網絡環境都被設計成星型拓樸結構。星型網是廣泛而又首選使用的網絡拓撲設計之一。
優點缺點
優點:
(1)控制簡單。任何一站點只和中央節點相連接,因而介質訪問控制方法簡單,致使訪問協議也十分簡單。易於網絡監控和管理。
(2)故障診斷和隔離容易。中央節點對連接線路可以逐一隔離進行故障檢測和定位,單個連接點的故障隻影響一個設備,不會影響全網。
(3)方便服務。中央節點可以方便地對各個站點提供服務和網絡重新配置。
缺點:
(1)需要耗費大量的電纜,安裝、維護的工作量也驟增。
(2)中央節點負擔重,形成“瓶頸”,一旦發生故障,則全網受影響。
(3)各站點的分佈處理能力較低。
總的來說星型拓撲結構相對簡單,便於管理,建網容易,局域網普遍採用的一種拓撲結構。採用星型拓撲結構的局域網,一般使用雙絞線或光纖作爲傳輸介質,符合綜合佈線標準,能夠滿足多種寬帶需求。
擴展星型拓撲
如果星型網絡擴展到包含與主網絡設備相連的其它網絡設備,這種拓撲就稱爲擴展星型拓撲。
相比星型拓撲的復原能力更強。
純擴展星型拓撲的問題是:如果中心節點出現故障,網絡的大部分組件就會被斷開。

網狀拓撲結構
網狀拓撲結構,這種拓撲結構主要指各節點通過傳輸線互聯連接起來,並且每一個節點至少與其他兩個節點相連·網狀拓撲結構具有較高的可靠性,但其結構複雜,實現起來費用較高,不易管理和維護,不常用於局域網。

優點
(1) 網絡可靠性高,一般通信子網中任意兩個節點交換機之間,存在着兩條或兩條以上的通信路徑,這樣,當一條路徑發生故障時,還可以通過另一條路徑把信息送至節點交換機。
(2) 網絡可組建成各種形狀,採用多種通信信道,多種傳輸速率。
(3) 網內節點共享資源容易。
(4) 可改善線路的信息流量分配。
(5) 可選擇最佳路徑,傳輸延遲小。
缺點
(1) 控制複雜,軟件複雜。
(2) 線路費用高,不易擴充。
(3)在以太網中,如果設置不當,會造成廣播風暴,嚴重時可以使網絡完全癱瘓。
網狀拓撲結構一般用於Internet骨幹網上,使用路由算法來計算髮送數據的最佳路徑。

邏輯拓撲
邏輯拓撲描述的是設備之間是如何通過物理拓撲進行通信。物理拓撲與邏輯拓撲是各自獨立的。例如:所有類別的以太網在設備之間通信時使用的是邏輯總線型拓撲,無論線纜的物理佈局如何都是如此。
物理拓撲圖由於是根據網絡設備的實際物理地址進行掃描而得出,所以它更加適合的是網絡設備層管理,通過物理拓撲圖,一旦網絡中出現故障或者即將出現故障,物理拓撲圖可以及時詳細地告訴網絡管理者是哪一臺網絡設備出了問題,舉個簡單的例子,當網絡中某臺交換機出現了故障,通過物理拓撲圖,網管系統可以告訴管理者在網絡裏衆多的交換設備中是哪一臺交換機的那一個端口出現了問題,通過這個端口連接了那些的網絡設備,便於網管人員進行維護。
而對於邏輯拓撲來說,他更加註重的是應用系統的運行狀況,它反映的是實際應用的情況

跨網段通信:
mac地址是不斷變化的

反向ARP----->通過mac地址獲取ip地址

bc計算器
ibase=2 (以2進制輸入)
obase=8 (以8進制輸出)

[root@localhost ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
ibase=2
obase=8
1001
11
[root@localhost ~]# let i=2#1001
[root@localhost ~]# echo $i
9

跨網絡通信
跨網絡通信:路由
路由分類:
主機路由:精確到每臺機器IP和Mask
網絡路由:記錄網絡路徑(子網網段)
默認路由:0.0.0.0/0 (一般爲邊界路由器如互聯網;而且只能是一個出路的路由器纔可以)
優先級:精度越高,優先級越高
例如:

linux(Centos7.2)路由表

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway  Genmask         Flags   Metric  Ref Use Iface
0.0.0.0         10.1.0.1 0.0.0.0         UG      100      0   0  eno16777736
10.1.0.0        0.0.0.0  255.255.0.0     U       100      0   0  eno16777736
192.168.122.0   0.0.0.0  255.255.255.0   U       0        0   0  virbr0

A、B、C、D、E爲網段
1、2、3、4、5、6、7、8爲接口
從A開始訪問各個網絡
network/n interface gateway
A 1 IP1
B 2 IP2
C 2 IP3
D 2 IP3
E 2 IP3

DHCP
不能跨路由除非有(DHCP代理)
分配地址會有租賃時間
租賃時間到一半時續期重新計時
失敗則到臨近租賃時間再次續期
否則到期後重新獲取

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

網絡配置方式
靜態指定:
ifcfg: ifconfig, route, netstat
ip: object {link, addr, route}, ss, tc
純字符界面
system-config-network
system-config-network-tui
setup
配置文件
CentOS 7:網絡配置工具
nmcli, nmtui, nm-connection-editor
動態分配:
DHCP: Dynamic Host Configuration Protocol

配置網絡接口
接口命名方式: CentOS 6:
以太網: eth[0,1,2,...]
DELL服務器的網卡名有時不遵循上面規則
ppp: ppp[0,1,2,...]
ifconfig命令
ifconfig [interface]
# ifconfig -a
# ifconfig IFACE [up|down]
ifconfig interface [aftype] options | address ...
# ifconfig IFACE IP/mask [up]
# ifconfig IFACE IP netmask MASK
注意:立即生效;
啓用混雜模式: [-]promisc

vim /etc/udev/rules.d/70-persistent-net.rules

[root@centos6 ~]# chkconfig NetworkManager off
[root@centos6 ~]# service NetworkManager stop

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

配置動態路由
通過守護進程獲取動態路由
安裝quagga包,支持多種格式的RIP、 OSPF和BGP
命令vtysh配置


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章