1. 程式人生 > >謝煙客---------Linux之網絡基礎知識

謝煙客---------Linux之網絡基礎知識

linux

本地網絡通信

跨網絡通信

主機間通信

互聯網通信

ISO的OSI模型

網絡:是什麽,用什麽設備

IPV4 IPV6 是什麽

ipv4/ipv6首部格式

tcp首部/udp首部

通信的細節、擁塞控制、劃動窗口

tcp有限狀態機的轉換



網絡:將多個主機用通信線纜連接起來,實現通信、資源共享

硬盤與主板通信用基於工業標準的線纜和控制器即可完成

技術分享

網絡通信,同軸線纜

1)多個主機共用一個線纜,如何確定誰發和誰收:唯一的標識,IANA國際組織規範

2)硬件生產的規範


局域網: parc (鼠標、LAN,GUI)


以太網

網絡拓撲: 總線、環狀

多個主機共用一個底層通信信道,有沖突產生:解決方案CSMA/CD

1、CSMA/CD:解決對底層通信信道的爭用問題

沖突域:可能發生介質訪問沖突的節點範圍

原理:

發時,幀聽

邊發邊聽,沖突即停,退後在發

技術分享

解決沖突的方案:

1)IBM的令牌環網

2)協議:CSMA/CD,CSMA/CA,CSMA


2、網橋(brige)、交換機(switch):本地通信MAC

隔離沖突域:主機少時,CSMA/CD能保證每個主機能夠正常通信,主機多了,在任何時刻都有多臺主機通信的需求,就需要將一個沖突域劃分為多個沖突域。

技術分享

網橋:兩個端口,每個端口是一個網絡,每個網絡有多個主機,每個網絡是一個沖突域

技術分享

交換機:多個端口的網橋,每個端口接一個主機,沖突僅會和端口沖突(存儲轉發機制、雙工模式)

技術分享

原理:網橋、交換機中的MAC表(MAC及對應的端口)

1、MAC表有記錄對方MAC時,不廣播

2、MAC表沒有記錄對方MAC時,廣播至另一個網絡

MAC:Media Access Control 介質訪問控制 對同一個底層通信信道爭用,定制的MAC地址

48bits:前24位由IANA提供,後24位由廠商自定義(2^24=1600萬)

MAC地址固定在RAM中


廣播:MAC表中沒有記錄通信對方的MAC時,就向交換機、網橋的每個端口發報文,端口對應可能是一個網絡或一個主機。

廣播域:廣播所至之處


3、路由器:跨網絡通信IP

隔離廣播域:主機少時,網橋、交換機能保證多個網絡主機正常通信,一個交換機上有多個主機時,可能有許多主機都會給MAC表中未記錄的主機通信,廣播充滿了整個網絡,就需要將這個廣播域劃分成多個廣播域。

路由器:每個端口對應一個網絡,每個網絡有一個交換機

技術分享

原理:路由中的路由表(IP及對應的網絡)

IP:邏輯標識網絡及網絡中每一個主機

通信時:最終通信的是MAC地址

netmask子網掩碼:計算IP所在的網絡(每個主機都會提供一個IP、netmask,本機IP和MASK相與和另一個IP和MASK相與結果對比。相同則在同一個網絡,不同則在不同網絡)

默認網關:提供網絡轉發服務

ARP解析:用IP地址進行本地通信所用到協議。ARP欺騙:通常將自己偽裝成網關


4、廣域網:跨城市,在一個大的區域通信。

5、城域網:通信集中在城市內部,屬於不同的網絡,用城市內部的路由器


6、主機與主機間的通信: 進程間通信、套接字通信 IP+port

套接安:將IP和端口號套接起來,用來標識 哪個主機上的哪個進程

建立通信需要建立一組套接字,發送方和接收方需要各自建立一個套接字

端口號:標識當前主機每一個進程

發送方:隨機端口,訪問別人

接收方:被訪問,眾所周知的端口,便於訪問

發送方訪問之後,關閉套接字

接收方:被訪問完畢後,套接字不會釋放,便於二次訪問 “幀聽套接字/監聽套接字”


例如:發送方: 1.1.1.1:8999 接收方: 2.2.2.2:80

1.1.1.1/2.2.2.2 主機地址

: 分隔符

8999/80 標識主機上的哪個進程


7、主機間通信:應用層通信,應用層標識

URL 標識哪個主機哪個端口上所能支配的資源的哪個路徑

http://www.magedu.com/1/1.logo

www.magedu.com 主機的地址

/1/1.logo

/ 進程所能支配資源的起始路徑

/1/1.logo 進程所能支配的資源

8、ISO的OSI模型

資源子網: 會話層、表示層、應用層 實現資源共享的設備或軟件的集合

通信子網: 物理層、數據鏈路層、網絡層、傳輸層 實現網絡通信的設備或軟件的集合

1、在跨網絡通信中,物理層和數據鏈路層經過每一個網絡都會發生變化

2、原主機在每一層封裝對應層的首部(源、目標),目標主機拆封裝

技術分享

數據通信原理:發送方 把通信連接建立指令和用戶應用數據從上往下傳輸,逐層封裝,直到最底物理層。而接收端把通信連接建立指令和用戶應用數據從下往上傳輸,逐層拆封裝,直到發起通信的對等層


各層傳輸的數據格式:

物理層:比特流,PDU為比特

數據鏈路層:,一個幀有多個比特,幀為整數字節,不同協議對應不同大小的幀。

網絡層:包或分組,一個分組有多個幀,不同協議對應不同大小的分組。

傳輸層:在TCP/IP協議中,TCP數據為單位進行傳輸,UDP數據報為單位進行傳輸。

應用層:以具體的數據報文為單位進行傳輸。


協議封裝的原理

封裝應用層PDU

封裝傳輸層首部

封裝網絡層首部,成為分組

數據鏈路層首部和尾部,成為數據鏈路幀

轉換為比特流傳送到物理介質


通信子網的設備:通信的基礎

集線器、中繼器、交換機、通訊線纜、路由器、網關硬件設備

集線器:多端口,共享一條背板的總線。物理層設備

數據鏈路層:網橋、二層交換機 MAC表(動態學習,時效性。靜態指定,不更新,永久生效)


資源子網的設備:資源共享功能

用戶計算機、網絡存儲系統、網絡打印機


信息:數據交換的一切原始內容

數據:信息的具體表現形式

信號:數據傳輸過程中表現形式

信道:在物理鏈路上通過物理協議建立的數據傳輸通道


基帶:從信號源發出,不處理的信號

基帶傳輸:在信道中傳輸,不處理的信號


頻帶:從調制解調器發出,處理過的信號

頻帶傳輸:在信道中傳輸,處理過的信號


寬帶:有最低頻率和最高頻率的寬度


並行:IDE,SCSI 數據在多條並行的信道上傳輸

串行:SATA,SAS 數據以串行方式一位一位的傳輸


單工通信 只能單向通信(只能接或只能發)

半雙工通信 支持雙向通信,某時刻只能單向

全雙工通信 支持雙向通信,某時刻可發可收


信道復用

頻分復用:按頻帶寬度復用,把一條高帶寬的信道按照一定的頻帶寬度劃分成若幹個低帶寬的子頻帶(或稱子信道)

時分復用:將數據通信過程劃分成一段段等長的時間片,這些時間片又劃分成多個更小的時間間隙,每一個時間間隙可以用於一個用戶信號的傳輸。交替的傳輸過程


波分復用:光波信號中的頻分復用技術,



9、拆封裝的過程

1、數據鏈路層:檢查MAC,是本機拆封

2、網絡層:檢查IP,是本機拆封。不是轉發出去。

3、傳輸層:檢查PORT,本機上有此進程拆封。沒有此進程,返回錯誤

4、應用層:檢查資源,本機有此資源。沒有此資源,返回錯誤


10、物理層:構建數據通路,透明傳輸,數據編碼、傳輸管理

透明傳輸:不同介質不同形式的傳輸信號

數據編碼:傳輸介質多樣,比特流轉換為光信號

一位一位的傳送


11、數據鏈路層:構建邏輯通路,從數據鏈路觀察邏輯通路

一幀一幀的傳送


在OSI或TCP/IP中分為一層

在局域網中分為2層:邏輯鏈路控制子層(LLC),介質訪問控制子層(MAC)


差錯控制

數據在傳輸中可能會出現兩方面問題

有幀出現了錯誤

有幀丟失

差錯控制功能

差錯檢測

奇偶校驗

循環冗余校驗

差錯糾正

反饋檢測 接收方確認接收的內容是否同發送方所謂的結果,數據傳輸至少兩次

計時器超時 雙方都要確認是否超時

自動重發請求 前兩者基礎之上確認奇偶校驗碼

MAC幀也被通常認為就是數據鏈路層幀,是在MAC子層實體間交換的協議數據單元(PDU).可以把所有以太網MAC幀的格式統一表示為下圖所示


7 1 6 6 2 38~1500 4bytes

前導 幀起始 目的MAC地址 源MAC地址 長度/類型 數據 FCS


前導:實現幀的同步

幀起始:幀的開始、結束

目的MAC地址:

源MAC地址

長度/類型:以太網中幀的類型

數據:

FCS: 幀的校驗序列,計算兩次數據幀的


VLAN(Virtual Local Area Network,虛擬局域網)縮小廣播域,將一個大的交換機所在網絡劃分成多個小網絡

劃分方式:同一個交換機劃分。不同交換機劃分(跨越多個交換機,VLAN的中繼功能)

相互訪問:1、基於二層協議。2、彼此獨立,一個VLAN相當於一個獨立的二層網絡。3、跨VALN時,必須借助路由器。


12、網絡層:分組從源端沿著網絡路徑傳送到目標端

1、路徑選擇

2、數據包的封裝和解封裝

3、透明傳輸

4、擁塞控制


報文協議:

TCP/IP結構的網絡層:IP協議

IPv4:ARP,ICMP

IPv6:ND(Neighbor Discovery)

IP協議:尋址、數據報封裝、分段與重組(超過MTU分段,到達時,重組)


IPV4首部格式

版本: 4bit 協議的版本

首部的長度:4bit 固定20,可變40,最大數值15

區分服務:8bit

總長度(報頭+數據) 16bits

標識: 16bits,計數器,產生數據報的標識

標誌:3it,前2位有意義,最低位MF,MF=1時,後面還有分片,MF=0表示最後一個分片。標誌字段中間的一位是DF,DF=0時才允許分片。

片偏移:13位,現有分組在原分組中的相對位置。片偏移以8個字節為偏移單位

存活時間:TTL,8bit,數據報在網絡中可通過的路由器數的最大值。ttl=1丟棄

協議:8bit,數據報攜帶的數據使用何種協議,以便目的主機的IP層將數據部分上交給哪個處理

首部的校驗和:16位,只檢驗IP的首部,不包含數據部分

源地址和目的地址:各占4字節

IP:4個字節,32bit,點分十進制

可選字段:豐富IP首部

填充:補充首部為4字節的整數倍


ARP協議:向數據鏈路傳輸時不需經過IP協議的封裝,而是直接生成自己的報文

硬件類型 上層協議類型 MAC地址長度 操作類型 源MAC地址 源IP地址 目的MAC地址 目的IP地址

------------------------------------------

ARP報頭

ICMP Internet Control Messsage Protocol Internet 控制報文協議(主機是否可達,網絡延遲、控制:是否接收、響應)

請求:8,響應:0


ICMP首部


IPv4報頭 20字節

ICMP報頭:

類型:1

1-127

128+ 信息

代碼:1 控制響應/應答

校驗和:2 數據部分+報頭校驗

標識:2

序列號:2 IPv4的標示

選項:可有可無,長度可變


三層交換機

實現二層轉發

實現路由器IP路由功能

三層路由模塊:軟件路由,純硬件路由模塊

局域網中實用


三層交換機原理:

比對三層硬件轉發表-->目的轉發表項內容是否存在-->存在轉發,否則,路由表匹配,生成目的網絡三層硬件轉發表-->完成

比對三層硬件轉發表-->目的轉發表項內容是否存在-->存在轉發-->完成


三層交換機和路由器的主要區別

三層功能實現機制不同

硬件:三層交換機,三層硬件轉發表,一次路由多次轉發

軟件:路由器,每次都需要路由

適用環境不同:

局域網:三層交換機

廣域網:路由器

多協議支持能力

VPN:路由器

路由能力不同

三層交換機非常強

核心網絡中:軟件易於升級,


13、傳輸層:傳輸層與數據鏈路層的作用都是建立數據傳輸通道,兩者在功能上存在許多相似之處

同網段通信:二層交換機:數據鏈路層、物理層

不同網段通信:三層交換機:網絡層、數據鏈路層、物理層


IP:主機間邏輯通信

PORT: 進程間邏輯通信


TCP:面向連接的協議:數據傳輸前,必須建立傳輸層的邏輯鏈路

UDP:面向無連接的協議:數據傳輸前,不用建立傳輸層邏輯鏈路


可靠通信的具體實現:

每一端必須有兩個窗口--一個 發送窗口 和 接收窗口

窗口:告知對方所能接收數據的大小

TCP可靠傳輸機制:字節的序號進行控制,

所有的確認都是基於序號

窗口:動態變化(窗口的大小,流量控制)

TCP連接的往返時間RTT:動態的

時間:確定數據丟失


TCP報文首部格式

源端口

目的端口

傳輸層與應用層的服務接口


序號:本報文段數據的第一個字節的序號

確認號:4字節:確認下次接收數據的數據起始位

數據偏移: 首部的長度。TCP首部至數據首部的長度。單位 32位字,

保留:

URG:1,(緊急)緊急處理。否則不緊急

ACK: 1,(確認)確認號有效,否則沒用;確認下次接收數據的數據起始位

PSH: 1,(推送)盡快交付,不加入緩存隊列。

RST: 1,(重置)重新發起連接

SYN: 1,(同步) 連接接受

FIN: 1,(終止) 釋放已建立的連接

窗口:2字節

檢驗和:2字節,檢驗首部和數據

緊急指針:占16位,指出本報文段共有多少字節

選項:長度可變,

填充:能夠讓可變的部分為4字節的整數倍


TCP傳輸連接管理的三個階段

主動發起連接的應用進程 :Client

被支等待連接建立的應用進程:Server


傳輸連接三個階段:連接建立、數據傳送、連接釋放

傳輸連接的管理就是使運輸連接的建立和釋放都能正常地進行


建立過程中需要解決三個問題:

每一方能夠確認對方的存在。

允許對方協商一些參數(窗口,服務質量,最大報文段長度)

運輸實體資源(緩存大小,連接表中的項目)進行分配。


TCP傳輸信道連接的建立和釋放中的通信雙方主機的這些狀態稱之為"有限狀態機"

*CLOSED:關閉狀態,主機當前沒有活動連接或正在進行傳輸連接

*LISTEN:監聽狀態,正在等待新的傳輸連接進入

*SYNSENT:表示主機已發出一個傳輸連接請求,等待對方確認

*SYNRCVD:表示主機已發出一個確認請求,等待對方確認

*ESTABLISHED: 連接建立,可以傳輸數據了。


TCP3次連接:

seq為上次ack請求下次數據起始的序號。

ack為上次seq序號加一,下次數據起始的序號。

seq = ack

ack = seq + 1

客戶端:SYN=1 ,seq=x

SYNSENT

服務器:SYN=1,ACK=1,seq=y,ack=x+1

SYNRCVD

客戶端:ACK=1,seq=x+1,ack=y+1

ESTABLISHED


重傳超時:TCP協議保證數據可靠性。發送時,啟動一個超時計時器,時間內必須回應

擁塞控制:控制網絡擁塞的出現,網絡中各個部分輸入的流量大於輸出的流量時,出現網絡擁塞。

吞吐量:整個網絡有效處理負荷的能力

輸入負荷:網絡發送端輸入的負荷:理想情況吞吐量45度斜線上升。

擁塞控制方案

慢啟動:避免出現網絡擁塞而采取的一種TCP擁塞初期預防方案,逐漸增大,發送一定大小的字節,試探對方確定的速度,快的話,逐漸增加發送字節

擁塞避免:當擁塞窗口大小再次達到"閥值時",啟用擁塞避免方案。

快速重傳 接收端收到一個不是按序到達的數據段,TCP實體迅速發送一個重復上次ACK數據段,重復3次,而不用等到有數據需要發送時順帶發出確認。

快速恢復 連續收到3次重復的ACK號,即確認對應的數據段丟失,不在等待重傳計時器超時就重傳看來已經丟失的數據段。


UDP:用戶數據報協議,在IP協議之上加了極少的功能:端口,差錯檢測功能

優點:

無連接,不保證可靠交付,不會用擁塞控制,面向報文,適合多媒體。速度快。


UDP首部

16 16 16 16

源端口 目的端口 長度 檢驗和 數據


UDP應用

DNS主從復制,TCP

DNS解析:UDP

QQ:UDP

混雜模式:不管目的地是不是我,都可以竊聽到

本文出自 “Reading” 博客,請務必保留此出處http://sonlich.blog.51cto.com/12825953/1957674

謝煙客---------Linux之網絡基礎知識