基本概念
乙太網幀格式
型別:0800是ipv4,86DD是ipv6,0806是ARP幀,8100是IEEE 802.1Q幀
ip報文格式
首部長度單位是4位元組。
標誌中:第一位未使用,值為0;第二位稱為DF(不分片),值為1時不允許分片;第三位稱為MF(更多分片),值為1時表示有更多分片需要傳送。
協議:6是tcp協議、17(0x11)是udp協議、1是icmp協議、2是igmp協議。
tcp報文格式
161埠是snmp
知名埠(Well-Known Ports)的範圍是0到1023。通常情況下,客戶端會使用一個大於知名埠的臨時埠與伺服器建立連線,而伺服器則使用一個知名埠監聽客戶端的連線請求。
udp報文格式
網路傳輸技術:廣播和單播,其中廣播中一種特殊情況是組播(一部分接收)。
網路分為多個層次。
層次之間的上傳下達透過介面來完成,透過介面,下一層可以向上一層提供相應的服務。
協議是通訊雙方在同一個層次裡面,針對同一個資料處理的時候,需要遵循的標準。協議的三要素:語法、語義、時序。語法定義協議的結構是怎麼樣的;語義表達在資料處理中間需要採取的方法或操作,也可以說語義是一種命令;時序是指在資料處理時所要遵循的順序。
協議的封裝。是指上層的協議資料被整個封裝在下層協議的一部分。
OSI七層參考模型:應用層、表示層、會話層、傳輸層、網路層、資料鏈路層、物理層。
其中物理層、資料鏈路層、網路層構成了整個通訊子網;上面的三層是與應用關聯的,也被稱為資源子網;傳輸層則是介於這上下層之間,可以說是資源子網的最底層,或通訊子網的最高層。
物理層用於完成物理bit流的傳輸,所以單位是bit。
資料鏈路層用於解決一條鏈路上,兩個端點之間的可靠傳輸。確保可靠性主要從兩個方面進行解決,一個是從資料處理上確保可靠,一個是在通道傳輸的過程中確保可靠。資料鏈路層是一個個資料塊進行處理的,這裡稱為資料幀,所以資料鏈路層的單位是幀。
網路層用於從區域網的環境裡面,走向廣域網的環境。需要解決的問題是從眾多路徑中,找出最優的路徑進行轉發,因此網路層的作用就是路由選擇。單位是資料分組,或稱為資料包。
傳輸層也是用於提供端到端的可靠傳輸,不過它是完成廣域網環境下的可靠傳輸。單位是一個報文段。
會話層用於完成一個節點的會話管理。
表示層用於進行資料結構的規範化。
應用層則是根據不同的應用選擇不同的協議,來滿足使用者不同的需求。
TCP/IP四層模型,應用層、傳輸層、網路層(網路互聯層)、資料鏈路層(主機到網路層)。
主機到網路層是將OSI模型中的物理層和資料鏈路層合在一起。這樣就可以不用管區域網是怎麼組建的,只提供介面,讓底層自己構建,然後接入到網路互聯層即可,使得相容性很
強。
TCP/IP模型去掉了表示層和會話層。
應用層同樣提供了很強的相容性,讓其自己構建,然後透過介面接入到傳輸層即可。
所以TCP/IP模型主要的核心就在於傳輸層和網路層。
物理層
頻寬:訊號佔據的頻率範圍。
訊號傳輸速率:單位時間裡傳送訊號波形的個數,單位為波特。
資料傳輸率:位元率,單位時間裡傳送二進位制資料的位數,單位b/s、Kb/s、Mb/s,簡寫為bps、Kbps、Mbps。
通道容量:一個通道傳輸數字訊號的能力,以資料傳輸率為指標,即通道所能支援的最大資料傳輸率。
Nyquist定理中,離散級數N通常以N級數字訊號給出,如使用4級數字訊號。
資料傳輸率的計算,在理想通道(無噪聲通道)的情況下,使用Nyquist定理計算,在有噪聲情況下,使用夏農定理計算。
資料鏈路層
資料成幀(組幀)是為了提高傳輸效率和差錯控制等。
成幀方法有字元計數法、字元填充的首位定界符法、零位元填充的首位定界符法、違規編碼法。
字元計數法:在幀頭部用一個欄位表明幀內字元數。
字元填充的首位定界符法:用特定字元來標識幀的開始和結束,控制字元SOH放在幀前面,控制字元EOT放在幀後面,資訊位中的特殊字元在前面新增一個跳脫字元ESC來區分。
零位元填充的首位定界符法:用01111110來標識幀的開始和結束,編碼時在資訊位中每遇到5個1就加上一個0,從而防止資訊位中出現01111110,解碼時遇到5個1就刪去後面的一個0.
物理層違規編碼法:如用"高-高"電平或"低-低"電平來定界幀的起始和終止。
CRC迴圈冗餘校驗碼,在原始碼串(資料幀)後面加上CRC,用來校驗傳輸中是否出錯。
用生成多項式確定位串,在原始碼流後面補r個的0,其中r是生成多項式最高次數。
用補0後碼流的高位異或位串,重複進行,直到得到餘數長度小於位串(一般是位串長度-1),這個餘數就是CRC。
例如生成多項式是G(x)=x4+x2+x+1,最高次數是4,則需要在原始碼流後補4個0。位串的確定方法,看有x的幾次方,有0次方、一次方、二次方、四次方,沒有三次方,用二進位制表示,存在的位都為1,所以應該是10111。
在流量控制裡,主要有3個協議:停等協議、連續ARQ(自動請求重發)協議、滑動視窗協議
停等協議:傳送方每發一幀,接收方都回復一個應答,然後傳送方才發下一幀。顯然這樣效率很低,但是確實解決了傳送和接收方通訊能力的平衡問題。如果資料幀丟失了,接收方不給應答,傳送方就要超時重發;如果應答幀丟失了,傳送方也要超時重發。因為每傳送一個幀就停止並等待,因此用1bit編號就夠了。
連續ARQ協議:連續傳送資料幀,不停下來等待,當一個幀的超時時間到了,仍然沒有收到它的應答,則重新從這個幀開始發起(回退N)。接收端收到壞幀時,直接丟棄它和之後的幀,讓傳送方超時並且從這個幀開始重發。
滑動視窗協議:是一個停等和連續ARQ的折中,傳送者和接收者都有一個視窗。
傳送視窗:傳送方發出一個幀後設定一個計時器,如果收到確認幀則傳送視窗向後滑動一個位置,如果超時則重新傳送該幀。
接收視窗:每收到一個幀後,接收視窗就向後滑動一個位置並返回確認幀。
根據接收視窗的大小,又可以分為兩個協議:
接收視窗大小為1時,是回退N協議。一旦接收到錯誤幀時,就丟棄該幀和後續幀,讓傳送方超時並且從該幀開始重發。
接收視窗大於1時,是選擇重傳協議。繼續接收錯誤幀的後續幀,但不提交給網路層,直到收到該幀後再按順序提交。傳送方在一個幀超時後也只重發該幀。
通道利用率是傳送方的傳送時間除以整個傳送週期。
停等協議一次只發一幀,所以是傳送一幀的時間除以傳送週期。
回退N協議一次發視窗大小個幀,所以是傳送這些幀的時間除以傳送週期。一般給出幀的序號為n位,則視窗大小=2^n-1
選擇重傳協議也一次傳送視窗大小個幀,幀的序號為n位時,視窗大小=2^(n-1)
CSMA載波監聽多路訪問協議,在傳送之前先監聽通道上是否有別人在傳輸,如果有就等待一段時間後再傳送。
CSMA分為三種形式:
CSMA中因為大家都等到通道空閒就立刻傳輸,所以很有可能會衝突。
CSMA/CD帶衝突檢測的CSMA,是實際使用的協議。在傳送之前先監聽通道。如果介質空閒,則馬上傳輸。如果介質正在忙,則一直監聽到通道空閒,立刻傳輸。如果檢測到衝突,那麼立刻停止傳輸,等待一個隨機的時間,之後再重複上面的步驟。
曼徹斯特編碼和差分曼徹斯特編碼,在一個bit中間的時刻做一個跳變,會使得傳送和接收雙發的同步變得非常容易,而且在識別的時候也不容易出錯。
注意曼徹斯特編碼的規則是:1前高後低,0前低後高。
而差分曼徹斯特編碼的規則是:0變1不變。
乙太網協議,目的MAC、源MAC、型別、資料段。注意乙太網協議中目的地址在前,而IP和TCP中都是源地址(埠)在前。
源地址後兩個位元組中如果是大於0600H的話,則是指型別,是乙太網格式。小於0600H的話是IEEE802.3格式。
資料幀大小最小是64位元組,必須要限制資料幀的大小,因為如果太小的話,資料傳送時間小於往返傳播時延,傳送方就可能會監聽不到衝突。
網路裝置
網路層
資料包子網,每一個分組獨立地進行路由選擇,不需要連線。
虛電路子網,需要建立連線,然後在連線上進行資料的傳輸
Ip地址劃分,網路號和主機號
A類地址:從1到127,以0起始
B類地址:從128到191,以10起始
C類地址:從192到223,以110起始
D類地址:從224到239,以1110起始
E類地址:從240到255,以1111起始
子網劃分
通常主機地址夠用的話,對子網號的全0和全1也保留。
所以下面例子中,B類地址的網路號有16位,子網掩碼共22位,則子網號有6位,有26-2個子網可用。
計算主機地址數時,因為網路號(全0)與廣播地址(全1)不能作為主機地址使用,因此最多可容納的主機數量就要減去
2。
問幾個ip地址使用同一條出境線路時能否被聚合,聚合到哪個地址,就是看它們相同bit的最大位。
Ip報文格式
協議部分,如果十進位制是6則上層是TCP協議,十進位制是17則上層是UDP協議。
分段標識DF,DF=0可以分段,DF=1不可以分段。
傳輸層
Ip資料包的總長度部分是16位,所以最大位元組數是2^16-1=65535。
Ip資料包有20位元組的固定頭部,tcp資料包有20位元組的固定頭部,因此tcp的payload欄位的最大大小為65535-40=65495位元組
Udp格式
TCP協議是面向位元組的協議
注意TCP頭部長度欄位的單位是4位元組。
三次握手建立連線
四次握手釋放連線
流量控制,擁塞控制