數據鏈路層基本概念及基本問題linux
基本概念算法
三個基本問題windows
首部和尾部的一個重要做用就是進行幀定界(即肯定幀的界限)。此外,首部和尾部還包括許多必要的控制信息。緩存
爲了提升幀的傳輸效率,應當使幀的數據部分長度儘可能大於首部和尾部的長度。最大傳輸單元MTU(Maximum Transfer Unit):幀數據部分長度上限。網絡
MTU:工具
透明傳輸是指無論所傳數據是什麼樣的比特組合,都應當可以在鏈路上傳送。學習
發送端的數據鏈路層若是在數據中出現控制字符SOH (start of heading)或EOT,那麼會在前面插入一個轉義字符ESC(ascii編碼是1B),若是數據中出現了轉義字符,那麼會在轉義字符前面插入一個轉義字符測試
字節填充或字符填充---接收端的數據鏈路層在將數據送往網絡層以前刪除插入的轉義字符。大數據
比較經常使用的是循環冗餘檢測(CRC)網站
經過模2運算來計算。模2運算是一種二進制算法,也包括模2加法,減乘除,與四則運算不一樣的是模2運算不考慮進位與借位。
CRC採用模2除法來計算,實際上就是異或(相同爲0,不一樣爲1)。
如圖,要傳的數據是101001,加上三個0,,除以一個數,這個數是4位,除數的位數是加上0的個數再多一位,餘數就做爲FCS(添加到數據後面的冗餘碼)
接收方收到後,將數據和FCS拼起來,這裏即101001001,一樣對1101作模2除法,若是餘數不是0,那麼數據就錯誤,丟掉。
發送方和接收方會提早商議出一個多項式,這個多項式做爲CRC的除數。
特色:
1. 這種檢測方法並不能肯定究竟哪些比特出現了差錯
2. 只有通過嚴格的挑選,並使用位數足夠多的除數P,檢測的準確度纔會很高。
目的地址和源地址是MAC地址,類型用來指明上層所使用的協議,IPV4( 0x0800 ),ARP:0x0806,IPV6: 0x86DD等
以太網幀最短是64個字節,除數據報的字節外,其他佔了18個字節,因此數據報至少46個字節。若是小於46字節,則應在數據字段後面加入整數字節的填充字段,以保證MAC幀大於或等於64字節
MAC地址的是48位二進制,其中前24位是IEEE的註冊管理機構RA向廠家分配的地址字段,後24位廠家自行指派。CMD命令查看: ipconfig /all
出現如下狀況會丟棄MAC幀
1. 幀的長度不是整數個字節
2. 用收到的幀檢驗序列FCS查出有差錯
3. 數據字段的長度不在46到1500字節之間
4. 受限的MAC幀長度爲64到1518字節之間
幀間最小間隔爲9.6us,這是爲了使剛剛接收的數據幀的接受緩存來得及清理,作好接收下一幀的準備。
兩種狀況下的數據鏈路層
使用點對點信道的數據鏈路層 PPP
使用廣播信道的數據鏈路層 CSMA/CD
以太局域網
擴展以太網
高速以太網
以太網 集線器 網橋 交換機
負責在不一樣網絡之間 盡力轉發數據包,基於數據包的IP地址轉發
不負責丟失重傳,不負責順序。
網關通常使用第一個IP地址,
發送端
將IP地址經過廣播 目標MAC地址是FF-FF-FF-FF-FF-FF 解析目標IP地址的MAC地址。
交換機決定了下一條給誰,IP才決定了數據的起點和終點,路由器根據IP轉發
arp -a 查看arp的mac緩存, 若是是動態的就表示一會不用了就會刪除,arp只能解析本網段。
相關軟件:
局域網掃描器,能夠掃描mac地址。
arp欺騙:告訴發廣播的計算機,本身的mac就是對方但願請求的mac
網絡執法官: 控制本網段計算機之間的連通,告訴源目標假的mac地址
P2P終結者:控制本網段計算機訪問網絡的流量和網站,利用arp欺騙,告訴源目標地址網關是本身。
添加靜態mac命令: arp -a ip mac
在本地鏈接點修復,能夠清除arp靜態緩存
網際控制報文協議,用來測試網絡層是否暢通,檢測故障,如ping,pathping,tracert
ping命令
ttl: 生存週期,過一個路由器減小1,到0就不轉發了,防止出現數據包循環
不一樣的操做系統ttl的初始值也不一樣,能夠以此來猜想對方是什麼系統
linux: 64
windows:128
unix:255
經常使用參數:
ping ip -t 一直ping
ping ip -l 200 指定數據包大小
ping ip -i 1 指定ttl長度
更改數據包ttl時間,跟蹤數據包途徑的路由器
pathping 跟蹤數據包路徑,計算丟包的狀況
請求超時和目標主機不可到達
去的時候沒接受,出現目標主機不可到達
去的時候能接收,回來的時候找不到目標地址,會出現超時
tracert ip ,traceroute ip 在路由器上跟蹤數據包路徑的命令
tracert和traceroute雖然都是路由跟蹤,可是二者探測方法及探測的數據類型不一樣。默認狀況下,traceroute是向目的地址的某個端口(大於30000)發送UDP數據報,tracert是向目的地址發出ICMP請求回顯數據包。
共同點:都是經過設置發送包的TTL的值從1開始、逐次增1的方法來探測。
點到點
廣播:只能在同一網段
組播:也叫多播
IP數據包
一個IP數據包由首部和數據兩部分組成
- 首部的前一部分是固定長度,共20字節,是全部IP數據報必須有的
- 在首部的固定部分的後面是一些可選字段,其長度是可變的(大多數是沒有的 )
一行四個字節,固定部分五行,20個字節。
版本: 標識TCP/IP協議版本, IPV4, IPV6 ,4就是v4,6就是v6
首部長度:加上可變部分
區分服務:給數據包加標記,默認是0x00
總長度:用來表示整個數據包的長度最大是2的16次方減一,65536字節
網絡層 數據包 65535字節
數據鏈路層 數據最大1500字節 最大傳輸單元MTU,因此須要分片
數據包若是不分段,去掉首部,則最大隻能爲1480個字節
數據包分片:將大數據包分紅多個小數據包,每一個都寫上ip地址,單獨選擇路徑,接收端將多個數據包合併成一個而後給網絡層
淚滴攻擊:向目標計算機發送重疊或過大的數據包
標識:給每一個分片的數據包標號,標識一個完整的數據包,同一個號同一個包
標誌:標記數據包是分片的仍是完整的,佔三位,目前只有前兩位有意義,最低位是MF(More Fragment),爲1表示後面還有分片,爲0表示是最後一個分片,中間一位是DF(Don‘t Fragment),當DF=0時才容許分片,通常的數據包不分片
片偏移:每一個數據包的偏移量記錄了分片第一個字節佔整個數據包的第多少個字節
偏移單位是8的緣由:RFC的規定,IP的規定
它總長度(16bit)」和「偏移(13bit)」兩個字段所決定的,總長度定義了IP包的最大長度爲2^16=64KB,偏移說明了IP分片時它最多能表示2^13個偏移單位,這樣偏移單位就是2^16/2^13=2^3,即爲8B了,若是偏移單位不是8B,如選4B,則13bit的"偏移"就不能表示出IP的最大長度了
生存時間:TTL,應對環路
協議: 指出應將數據部分交給哪個進程,好比TCP交給運輸層,ICMP交給網絡層
協議號:
ICMP 1
IGMP 2
TCP 6
UDP 17
IPV6 41
OSPF 89
首部檢驗和:只檢驗首部
IPV6已取消可變部分
靜態路由:管理員告訴路由器全部沒有直連的網絡下一條給誰
缺點:適用於小規模網絡,不可以自動調整路由
動態路由:路由器本身學習路由表,RIP,OSPF協議
RIP: 週期性廣播路由表,跳數,30秒更新一下路由信息,最大跳數 15跳
wireshark抓包,查看有沒有廣播多播一直佔用網絡
frame整個幀ethernet 以太網幀 數據鏈路層internet 網絡層transmission 傳輸層smb裏面的數據