網絡基礎
一.網絡的基本概念
什么是網絡:
在定義上非常簡單網絡就是一群通過一定形式連接起來的計算機。
一個網絡可以由兩臺計算機組成,也可以擁有在同一大樓里面的上千臺計算機和使用者。我們通常指這樣的網絡為局域網(LAN, Local Area Network),由LAN再延伸出去更大的范圍,比如整個城市甚至整個國家,這樣的網絡我們稱為廣域網
(WAN, Wide Area Network),當然您如果要再仔細劃分的話,還可以有MAN(Metropolitan Area Network) 和 CAN(CitywideArea Network),這些網絡都需要有專門的管理人員進行維護。
資源共享的功能和優點:
數據和應用程序v
資源v
網絡存儲v
備份設備
常見的物理組件:路由器,交換機
VPN :虛擬的私有網絡
網絡的特性:速度,成本,安全性,可用性,可擴展性,可靠性,拓撲
物理拓撲的分類:
邏輯拓撲:邏輯拓撲描述了信息在網絡中流動的方式
總線拓撲:所有設備均可接受信號
星型拓撲:通過中心點傳輸
單一故障點
擴展星型拓撲:比星型拓撲的復原能力更強
環拓撲:信號繞環傳輸
單一故障點
雙環拓撲: 信號沿向反方向傳輸
比單環的復原能力更強
全網狀拓撲:容錯能力強
實施成本高
部分網狀拓撲:在容錯能力與成本之間尋求平衡
網絡應用程序v
Web 瀏覽器(Chrome、IE、Firefox等)v
即時消息(QQ、微信、釘釘等)v
電子郵件(Outlook、foxmail 等)v
協作(視頻會議、VNC、Netmeeting、WebEx 等)v
web網絡服務(apache,nginx,IIS)v
文件網絡服務(ftp,nfs,samba)v
數據庫服務( MySQL,MariaDB, MongoDB)v
中間件服務(Tomcat,JBoss)v
安全服務( Netfilter)
二.網絡的分層
網絡應用的分層:
1. 應用層 降低復雜度
2. 表示層 標準化接口
3. 會話層 簡化模塊化設計
4. 傳輸層 確保技術的互操作性
5. 網絡層 加快發展速度
6. 數據鏈路層 簡化教學
7. 物理層
OSI模型的七層結構
1. 應用層 網絡進程訪問應用層
2. 表示層 數據表示
3. 會話層 主機間通信
4. 傳輸層 端到端鏈接
5. 網絡層 數據傳輸
6. 數據鏈路層 訪問介質
7. 物理層
物理層: 二進制傳輸 為啟動,維護以及關閉物理鏈路定義了電氣規范 ,機械規范,過程規范和功能規范
數據鏈路層:定義如何格式化數據以便進行傳輸以及如何控制對網絡的訪問(也就是幀)
網絡層:數據傳輸,路由數據包,選擇傳遞數據的最佳路徑,支持邏輯尋址和路徑選擇
傳輸層:傳輸問題,確保數據傳輸的可靠性,建立 維護和終止虛擬電路,通過錯誤檢測和恢復,信息流控制來保障可靠性
表示層: 數據表示 確保接收系統可以讀出該數據,格式化數據,構建數據, 協商用于應用層的數據傳輸語法
應用層:網絡進程訪問應用層 為應用程序進程提供網絡服務,提供用戶身份驗證
名稱 |
功能 |
實例 |
|||
應用層 |
用戶接口 |
HTTP TELNET |
|||
表示層 |
數據的表現形式,特定功能的實現如-加密 |
ASCLL EBCDIC JPEG |
|||
會話層 |
對應用層會話的管理,同步 |
操作系統/應用系統 |
|||
傳輸層 |
可靠與不可靠的傳輸,傳輸前的錯誤檢測,流控 |
TCP , UDP |
|||
網絡層 |
提供邏輯地址,選擇 |
IP |
|||
數據鏈路層 |
成幀,用MAC地址訪問媒介,錯誤檢測與修正 |
802.3/802.2 HDLC |
|||
物理層 |
設備之間的比特的傳輸,物理接口,電氣特性等 |
EIA/TIA-232 V.35 |
數據的封裝:
數據的解封:
PDU
v PDU: Protocol Data Unit,協議數據單元是指對等層次之間傳遞的數據單位v
物理層的 PDU是數據位 bitv
數據鏈路層的 PDU是數據幀 framev
網絡層的PDU是數據包 packetv
傳輸層的 PDU是數據段 segmentv
其他更高層次的PDU是消息 message
三種通信模式:單播,廣播,組播
三種通信方式:單工,半雙工,全雙工
WAN:廣域網
LAN:局域網
幀的結構:
數據鏈路層:
MAC地址:
Hub集線器:
Hub:多端口中繼器v
Hub并不記憶該信息包是由哪個MAC地址發出,哪個MAC地址在Hub的哪個端口
Hub的特點:共享帶寬
半雙工
以太網橋:
交換式以太網的優勢:
擴展了網絡帶寬
分割了網絡沖突域,使網絡沖突被限制在最小的范圍內
交換機作為更加智能的交換設備,能夠提供更多用戶所要求的功能:優先級、虛擬網、遠程檢測…
以太網的工作原理:
以太網橋監聽數據幀中源MAC地址,學習MAC,建立MAC表v
對于未知MAC地址,網橋將轉發到除接收該幀的端口之外的所有端口
當網橋接到一個數據幀時,如果該幀的目的位于接收端口所在網段上,它就過濾掉該數據幀;如果目的MAC地址在 位于另外一個端口,網橋就將該幀轉發到該端口v
當網橋接到廣播幀時候,它立即轉發到除接收端口之外的所有其他端口
Hub和交換機比較:
集線器屬于OSI的第一層物理層設備,而網橋屬于OSI的第二層數據鏈路層設備n
從工作方式來看,集線器是一種廣播模式,所有端口在一個沖突域里面。網橋的可以通過端口隔離沖突
n Hub是所有共享總線和共享帶寬。網橋每個端口占一個帶寬
路由器:
為了實現路由,路由器需要做下列事情:v
分隔廣播域v
選擇路由表中到達目標最好的路徑v
維護和檢查路由信息v
連接廣域網
路由:把一個數據包從一個設備發送到不同網絡里的另一個設備上去。
這些工作依靠路由器來完成。路由器只關心網絡的狀態和決定網絡中的最佳路徑。
路由的實現依靠路由器中的路由表來完成
VLAN: 分隔廣播域
安全
靈活管理
中繼器又叫信號放大
交換機與路由器直通線 交換機與電腦直通線 交換機與服務器直通線
集線器與電腦直通線 集線器與服務器直通線
路由器與路由器交叉線 交換機與交換機交叉線 電腦與電腦交叉線
LAN :局域網(用于以太網技術)
1.TCP協議
TCP協議屬于傳輸層 (netstat -n 查看端口信息 /etc/services 文件存放的都是常見應用的端口號)
協議 http https ftp ssh smtp pop3 telnet dns tcp udp
端口號 80 443 21 22 25 110 23 53 53 53
TCP包頭: URG 表示緊急數據 ACK 確認標記位 PHS 等待 PST 重新建立連接 SYN 請求位 FIN 分手位 seq 序號位 ack 確認號
窗口大?。罕硎粳F在允許對方發送的數據量,也就是告訴對方,從本報文的確定號開始允 許對方發送的數據量
校驗和: 提供額外的可靠性
緊急指針: 標記緊急數據在數據字段中的位置
選項部分: 其最大長度可根據TCP首部長度進行推算
源端口、目標端口:計算機上的進程要和其他進程通信是要通過計算機端口的,而一個計算機端口某個時刻只能被一個進程占用,所以通過指定源端口和目標端口,就可以知道是哪兩個進程需要通信。源端口、目標端口是用16位表示的,可推算計算機的端口個數為2^16個v
序列號:表示本報文段所發送數據的第一個字節的編號。在TCP連接中所傳送的字節流的每一個字節都會按順序編號。由于序列號由32位表示,所以每2^32個字節,就會出現序列號回繞,再次從 0 開始v
確認號:表示接收方期望收到發送方下一個報文段的第一個字節數據的編號。也就是告訴發送發:我希望你(指發送方)下次發送的數據的第一個字節數據的編號是這個確認號v
數據偏移:表示TCP報文段的首部長度,共4位,由于TCP首部包含一個長度可變的選項部分,需要指定這個TCP報文段到底有多長。它指出 TCP 報文段的數據起始處距離 TCP 報文段的起始處有多遠。該字段的單位是32位(即4個字節為計算單位),4位二進制最大表示15,所以數據偏移也就是TCP首部最大60字節
URG:表示本報文段中發送的數據是否包含緊急數據。后面的緊急指針字段(urgent pointer)只有當URG=1時才有效v
ACK:表示是否前面的確認號字段是否有效。ACK=1,表示有效。只有當ACK=1時,前面的確認號字段才有效。TCP規定,連接建立后,ACK必須為1,帶ACK標志的TCP報文段稱為確認報文段v
PSH:提示接收端應用程序應該立即從TCP接收緩沖區中讀走數據,為接收后續數據騰出空間。如果為1,則表示對方應當立即把數據提交給上層應用,而不是緩存起來,如果應用程序不將接收到的數據讀走,就會一直停留在TCP接收緩沖區中v
RST:如果收到一個RST=1的報文,說明與主機的連接出現了嚴重錯誤(如主機崩潰),必須釋放連接,然后再重新建立連接?;蛘哒f明上次發送給主機的數據有問題,主機拒絕響應,帶RST標志的TCP報文段稱為復位報文段v
SYN:在建立連接時使用,用來同步序號。當SYN=1,ACK=0時,表示這是一個請求建立連接的報文段;當SYN=1,ACK=1時,表示對方同意建立連接。SYN=1,說明這是一個請求建立連接或同意建立連接的報文。只有在前兩次握手中SYN才置為1,帶SYN標志的TCP報文段稱為同步報文段v
FIN:表示通知對方本端要關閉連接了,標記數據是否發送完畢。如果FIN=1,即告訴對方:“我的數據已經發送完畢,你可以釋放連接了”,帶FIN標志的TCP報文段稱為結束報文段
TCP協議分層 : 應用層 傳輸層 Interbet層 網絡訪問層
TCP的特性: 工作在傳輸層面向連接協議
全雙工協議
半關閉
錯誤檢查
將數據打包成段,排序
確認機制
數據恢復,重傳
流量控制,滑動窗口
用塞控制,慢啟動和擁塞避免算法
TCP協議PORT:傳輸層通過port號,確定應用層協議
PORT number:
tcp:傳輸控制協議,面向鏈接的協議,通信前需要建立虛擬鏈路,結束后拆除鏈路
拆除鏈路;
0-65535
udp: 無鏈接的協議 0-65535
IANA:互聯網數字分配機構 0-1023系統端口或特權端口 1024-49151 用戶端口或注冊端口
49152-65535動態端口或私有端口,客戶端程序 隨機試用的端口
TCP三次握手: 客戶 服務器
主動打開 closed closed 被動打開
SYN-SENT同步已發送 LISTEN收聽
SYN-RCVD同步收到
ESTAB-LISHED 已建立鏈接 數據傳送 ESTAB-LISHED 已建立鏈接
TCP四次揮手: 客戶 服務器
主動關閉 ESTAB-LISHED 數據傳送 ESTAB-LISHED通知應用進程
FIN-WAIT-2終止等待1 CLOSE-WAIT關閉等待 (被動關閉)
FIN-WAIT-2終止等待2 LAST-ACK最后確認
TIME-WAIT時間等待 CLOSED
CLOSE
有限狀態機:
CLOSED:沒有任何鏈接狀態
LISTEN:偵聽狀態,等待來自遠方TCP端口的鏈接請求
SYN-SENT:在發送鏈接請求后,等待對方確認
SYN-RECEIVED:在收到和發送一個鏈接 請求后等待對方確認
ESTABLISHED:代表傳輸鏈接建立,雙方進入數據傳送狀態
FIN-WAIT-1:主動關閉,主機已發送鏈接請求,等待對方確認
FIN-WAIT-2: 主動關閉,主機已收到對方關閉傳輸鏈接確認,等待對方發送關閉傳輸鏈接請求
TIME-WAIT:完成雙向傳輸鏈接關閉,等待所有分組消失
CLOSE-WAIT:被動關閉,收到對方發來的關閉鏈接請求,并以確認
LAST-ACK:被動關閉,等待最后一個關閉鏈接確認,并等待所有分組消失
CLOSING:雙方同時嘗試關閉傳輸鏈接,等待對方確認
TCP協議中的三次握手四次揮手:
客戶端的三次握手和四次揮手:
服務器端的三次握手和四次揮手:
Linux為了防止孤兒鏈接長時間存留在內核中定義了內核參數:
/proc/sys/net/ipv4/tcp_max_orphans指定內核能接管的孤兒鏈接數目
/proc/sys/net/ipv4/tcp_fin_timeout指定孤兒鏈接在內核中生存的時間
TCP擁塞控制:TCP為提高網絡利用率,降低丟包率,并保證網絡資源對每條數據流的公平性。 即所謂的擁塞控制流
擁塞控制包括四個部分:慢啟動,擁塞避免,快速重傳,快速回復。
當前所使用的擁塞控制算法:/proc/sys/net/ipv4/tcp_congestion_ control
本機獲取的地址由dhcp udp 67 68 獲取
2.UDP
UDP的特性:
工作在傳輸層v
提供不可靠的網絡訪問v
非面向連接協議v
有限的錯誤檢查v
傳輸性能高v
無數據恢復特性
反向ARP: MAP Ethernet-IP
Internet協議特性:
運行于 OSI 網絡層
面向無連接的協議v
獨立處理數據包v
分層編址v
盡力而為傳輸v
無數據恢復功能
IP UDP 包頭:
3.IP
IP地址: 它們可唯一標識 IP 網絡中的每臺設備v
每臺主機(計算機、網絡設備、外圍設備)必須具有唯一的地 IP地址由兩部分組成:
網絡ID:標識網絡
每個網段分配一個網絡ID
主機 ID: 標識單個主機
由組織分配給各設備
IP地址的分類:
A類:1-126
v 0 000 0000 – 0 111 1111: 1-127
網絡數:126, 127
每個網絡中的主機數:2^24-2
默認子網掩碼:255.0.0.0私網地址:10.0.0.0
B類:128-191
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類:192-223
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類:224-239
組播1110 0000 – 1110 1111: 224-239
E類:240-255
私有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.0
特殊地址:
0.0.0.0
0.0.0.0不是一個真正意義上的IP地址。它表示一個集合:所有不清楚的主機和目的網絡。v
255.255.255.255限制廣播地址。對本機來說,這個地址指本網段內(同一廣播域)的所有主機v
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 路由器,地址多用于一些特定的程序以及多媒體程序v
169.254.x.x如果Windows主機使用了DHCP自動分配IP地址,而又無法從DHCP服務器獲取地址,系統會為主機分配這樣地址
子網掩碼:
優化IP地址分配:
跨網絡通信v
跨網絡通信:路由v
路由分類:主機路由
網絡路由
默認路由v
優先級:精度越高,優先級越高
動態主機配置協議DHCP:
三.網絡配置
基本的網絡配置:將Linux主機接入到網絡,需要配置網絡相關設置。v
一般包括如下內容:
主機名
IP/netmask
路由:默認網關
DNS服務器
主DNS服務器
次DNS服務器
第三DNS服務器
網絡配置方式:v
靜態指定:
ifcfg: ifconfig, route, netstat
ip: object {link, addr, route}, ss, tc
system-config-network-tui (setup)
配置文件
CentOS 7:網絡配置工具
nmcli, nmtui, nm-connection-editor v
動態分配:DHCP: Dynamic Host Configuration Protocol
CentOS 6網卡名稱:v
網絡接口識別并命名相關的udev配置文件:/etc/udev/rules.d/70-persistent-net.rulesv
查看網卡:dmesg |grep –i ethethtool -i eth0
卸載網卡驅動:modprobe -r e1000rmmod e1000v
裝載網卡驅動:modprobe e1000
配置網絡接口v
接口命名方式:CentOS 6:
以太網:eth[0,1,2,…]
ppp:ppp[0,1,2,…]v
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
劃分子網:將一個大網絡(主機ID位多)劃分多個小的網絡(主機ID位少),網絡ID向主機ID借位,網絡ID變多,主機ID變少
劃分超網:將多個小網合并一個大網,主機ID向網絡ID借位
子網掩碼:共32位,對應網絡ID位為1,對應主機ID為0
無類域間路由
CIDR表示法:ip/網絡ID位數=ip/(32-主機ID位數)
00000000 0
10000000 128
11000000 192
11100000 224
11110000 240
11111000 248
11111100 252
11111110 254
11111111 255
公式
1 主機數=2^主機ID位-2
2 網絡數=2^可變的網絡ID位
3 網絡ID=IP和netmask 相與
4 劃分子網數=2^網絡ID向主機ID借的位數
5 損失IP=2*(劃分子網數-1)
路由表構成:
多個路由記錄組成
每個路由記錄由4項組成部分
1目標
(1) 主機
(2)網絡 網絡ID
(3) 未知 0.0.0.0
2 netmask
3 接口interface ,發往目標,從哪個接口發出去
4 網關gateway:下一個路由器的鄰近本路由器的接口的IP
原創文章,作者:MOMO,如若轉載,請注明出處:http://www.www58058.com/86003