IP數據包(報)的結構
- 版本==ipv4 ipv6 ;首部長度 == 首部的長度 ;區分服務 == 視頻聊天/迅雷下載 加急否;總長度 == 數據包總共長度
- 標識 == 編號 1 2 3 4 ; 標誌 == 太大傳不了,按照MTU最大傳輸單元分成片 (快遞 大包裹 變小包裹);片偏移 == bit序列/8
- 生存時間TTL == 過一個路由器 TTL--,防止在互聯網上一直打轉;協議 == 數據部分的上層協議(告訴裏面是什麼東西);首部檢驗和 == 檢查首部出錯否 被改否
- 原地址 :ip
- 目的地址:ip
- 可變部分:用於排錯、安全等,內容豐富
網絡層幹什麼,五層協議都幹了什麼?
網絡層:在不同網絡之間,盡力轉發數據包,基於數據包的IP地址轉發
(若丟失,不管,可靠交付不是由網絡層保證,不負責順序)
應用層:整塊
傳輸層:分成3個 編號1 2 3
網絡層: 頭部(源ip地址 目標ip地址 ……) + 數據部分
數據鏈路層: 源MAC地址 目標MAC地址 + 【源ip地址 目標ip地址 + 數據部分】 (幀頭 幀尾 FCS)
傳輸層:~~~~~~010101
幾個設備
- 集線器:物理層設備,延長信號的傳輸距離
- 交換機:數據鏈路層設備,根據MAC地址轉發數據!!看目標mac地址,決定從哪個接口出去,給目標mac地址的主機/路由器 發過去
- 路由器:網絡層設備,拆分幀,看目標ip地址,選擇路線
IP地址與MAC地址
子網掩碼的作用
由子網掩碼,看目標ip地址是否跟自己在同一個網段,
如果在同一個網段,(需要把數據包給目標主機)由ARP協議,廣播得到計算機mac地址,給目標計算機。
如果不在同一個網段,(需要把數據包給網關)由ARP協議,廣播得到路由器mac地址,給路由器。
這就決定了數據鏈路層,目標mac地址 是本網段的目標計算機,還是路由器的mac地址。
(ip地址決定了起點終點,mac地址決定了下一跳給誰)
(不設置網關,只能訪問本網段,不能其他網段)(網關可以任意,約定是 本網段第一個地址 10.12.0.1)
(若全球PC都在同一個網段,則不需要ip地址,但是衝突、病毒傳播會增加)
網絡層向運輸層提供什麼服務
虛電路服務(指定好了怎麼走)
數據包服務(數據包裏面寫着目的地址,由路由器選擇中間過程怎麼走)
網絡通暢的條件
數據包 有去有回
沿途的路由器必須知道到目標網絡下一跳給哪個接口
沿途的路由器必須知道到源網絡下一跳給哪個接口
網絡層有哪些協議
ARP
IP協議(RIP / OSPF / BGP)
ICMP
IGMP
ARP協議
10.0.0.1想給10.0.0.3發消息
10.0.0.1先發廣播(目標mac地址全FFF),問問目標ip地址的MAC地址是多少,得到10.0.0.3的回覆。
記錄之後,以後再發消息,直接發給他。
ARP欺騙的例子:
P2P終結者:當A、B要解析網關的mac地址,PC1告訴A、B是自己的mac,
然後自己設置規則,再轉發給網關路由器,控制流量。
ICMP協議(網際控制報文協議)
用來ping,測試網絡暢通否
TTL 每過一個路由器 就--,若==0,則丟棄
IGMP協議(互聯網組管理協議)(組播)
點到點
廣播
組播==多播
IP協議
RIP OSPF
靜態路由協議(管理員告訴你怎麼走)
CMD就可以配置了,指定告訴你 靜態的 下一跳怎麼走
動態路由協議(自己學習、自己探索)
RIP協議
最早 30s週期性廣播 選擇跳數最小
E保存個最佳路徑
A宕機後,3個30s沒廣播了,B告訴C,去1網段別找我了,A不行了。
OSPF協議(open shortest path first)
特點:帶寬優先(rip是跳數優先) 支持多區域 觸發式更新
3個表:
鄰居表: 每隔10s (局域網是2s) 發個hello包 看看還在不
鏈路狀態表
計算路由表:與鄰居交換一下鄰居表,算出來路由表,優先走帶寬高的(最短路徑優先算法?)
分區域:如果全國都交換路由表,那就表很大!
BGP協議
自治系統之間,用BGP協議
VPN
NAT網絡地址轉換
我學校內100臺主機,我的PC,連接到外網的BBS去發帖,結果BBS記錄的ip 不是我的內網IP,而是學校的公網IP。
因爲返回的數據包,如果是內網IP,內網路由器怎麼找? 所以只能是公網IP。
端口映射
外面的人 通過111這個公網IP,訪問到10.0.02這個內網ip
可以用111的3389端口,映射內網PC1的3389端口,to 遠程桌面連接
可以用111的4000端口,映射內網PC2的3389端口