gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_TCP/IP协议知识总结...
總體
首先,展示下總體的思維導圖。接下來,按照每個點解釋。
OSI七層模型
開放式系統互聯模型(英語:Open System Interconnection Model,縮寫:OSI;簡稱為OSI模型)是一種概念模型,由國際標準化組織提出,一個試圖使各種計算機在世界范圍內互連為網絡的標準框架。
物理層(Physical Layer)在局部局域網上傳送數據幀(Data Frame),它負責管理電腦通信設備和網絡媒體之間的互通。包括了針腳、電壓、線纜規范、集線器、中繼器、網卡、主機接口卡等。
數據鏈路層(Data Link Layer)負責網絡尋址、錯誤偵測和改錯。當表頭和表尾被加至數據包時,會形成信息框(Data Frame)。數據鏈表頭(DLH)是包含了物理地址和錯誤偵測及改錯的方法。數據鏈表尾(DLT)是一串指示數據包末端的字符串。例如以太網、無線局域網(Wi-Fi)和通用分組無線服務(GPRS)等。
分為兩個子層:邏輯鏈路控制(logical link control,LLC)子層和介質訪問控制(Media access control,MAC)子層。
網絡層(Network Layer)決定數據的路徑選擇和轉寄,將網絡表頭(NH)加至數據包,以形成報文。網絡表頭包含了網絡資料。例如:互聯網協議(IP)等。
傳輸層(Transport Layer)把傳輸表頭(TH)加至數據以形成數據包。傳輸表頭包含了所使用的協議等發送信息。例如:傳輸控制協議(TCP)等。
會話層(Session Layer)負責在數據傳輸中設置和維護計算機網絡中兩臺計算機之間的通信連接。
表達層(Presentation Layer)把數據轉換為能與接收者的系統格式兼容并適合傳輸的格式。
應用層(Application Layer)提供為應用軟件而設計的接口,以設置與另一應用軟件之間的通信。例如:HTTP、HTTPS、FTP、Telnet、SSH、SMTP、POP3等。
TCP四層模型
TCP/IP協議族被稱作“全球互聯網”或“因特網(Internet)”的基礎。
TCP/IP通常是四層協議系統。
1)鏈路層。通常包括操作系統中的設備驅動程序和計算機中對應的網絡接口卡。
2)網絡層。處理分組在網絡中的活動。包括IP協議,ICMP協議,IGMP協議。
3)運輸層。為兩臺主機上的程序提供端到端的通信。有兩種不同的協議:TCP傳輸控制協議,UDP用戶數據報協議。TCP提供了高可靠性的端到端的通信。UDP并不保證數據報到達另一臺主機,可靠性由應用層提供。
在TCP/IP協議族中,網絡層IP提供的是一種不可靠的服務。也就是說,它只是盡可能快地把分組從源結點送到目的結點,但是并不提供任何可靠性保證。而另一方面,TCP在不可靠的IP層上提供了一個可靠的運輸層。為了提供這種可靠的服務,TCP用了超時重傳、發送和接收端到端的確認分組等機制。由此可見,運輸層和網絡層分別負責不同的功能。網橋是在鏈路層上對網絡進行互連,而路由器則是在網絡層上對網絡進行互連。TCP和UDP是兩種最為著名的運輸層協議,二者都使用IP作為網絡層協議。
4)應用層。負責特定的應用程序細節。
IP地址種類
IP地址分為五大類:A類、B類、C類、D類和E類。
A類IP地址是指, 在IP地址的四段號碼中,第一段號碼為網絡號碼,剩下的三段號碼為本地計算機的號碼。
B類IP地址是指,在IP地址的四段號碼中,前兩段號碼為網絡號碼。
C類IP地址是指,在IP地址的四段號碼中,前三段號碼為網絡號碼,剩下的一段號碼為本地計算機的號碼。
D類IP地址在歷史上被叫做多播地址(multicast address),即組播地址。
E類IP地址是保留地址。該類IP地址的最前面為“1111”。
域名系統(DNS)
域名系統(英文:Domain Name System,縮寫:DNS)是互聯網的一項服務。它作為將域名和IP地址相互映射的一個分布式數據庫,能夠使人更方便地訪問互聯網。
鏈路層
鏈路層存在的三個目的:
為IP模塊發送和接收數據報
為ARP模塊發送ARP請求和接收ARP應答
為RARP發送RARP和接收RARP應答
IP:網際協議
IP是TCP/IP協議族中最為核心的協議。所有的TCP、UDP、ICMP及IGMP數據都以IP數據報格式傳輸。
IP僅提供最好的傳輸服務。任何要求的可靠性必須由上層來提供(如TCP)。
無連接:IP并不維護任何關于后續數據報的狀態信息。
每個數據報的處理是相互獨立的。
IP首部
普通IP首部長為20個字節,除非含有選項字段。
目前協議版本號是4,所以IP也稱為IPv4。
每一份IP數據報都包含源IP地址和目的IP地址。
IP路由選擇
路由表中的每一項包含以下信息:
目的IP地址。
下一站路由器的IP地址,或者有直接連接的網絡IP地址。
標志。
為數據報的傳輸指定一個網絡接口。
子網掩碼
子網掩碼:值為1的比特留給網絡號和子網號,為0的留給主機號。
除了IP地址外,主機還需要知道有多少bit用于子網號及多少bit用于主機號。
IP地址一般以點分十進制方法表示,但是子網掩碼卻經常用十六進制來表示,特別是當界限不是一個字節時,因為子網掩碼是一個比特掩碼。
ifconfig 命令
ifconfig一般在引導的時候運行,以配置主機上的每個接口。
ifconfig -a // 所有接口
ifconfig eth0 // 某一接口
ARP:地址解析協議
ARP為IP地址到對應的硬件地址之間提供動態映射。 RARP是被那些沒有磁盤驅動器的系統使用,它需要系統管理員進行手工設置。
ARP會發送一份被稱作ARP請求的以太網數據幀給以太網上的每個主機。
TCP/IP有自己的地址:32bit的IP地址。知道主機的IP地址并不能讓內核發送一幀數據給主機。內核(如以太網驅動程序)必須知道目的端的硬件地址才能發送數據。ARP的功能是在32bit的IP地址和采用不同網絡技術的硬件地址之間提供動態映射。
ARP高速緩存
ARP高速緩存存放了最近Internet地址到硬件地址之間的映射記錄。
arp -a // 顯示ARP高速緩存中的所有內容
arp -d // 刪除ARP高速緩存中的某一項內容
arp -s // 增加高速緩存中的內容
RARP:逆地址解析協議
RARP協議是許多無盤系統在引導時用來獲取IP地址的。
無盤系統的RARP實現過程是從接口卡上讀取唯一的硬件地址,然后發送一份RARP請求(一幀在網絡上廣播的數據),請求某個主機響應該無盤系統的IP地址。
RARP分組格式基本上與 ARP分組一致。
一個RARP請求在網絡上進行廣播,它在分組中標明發送端的硬件地址,以請求相應IP地址的響應。應答通常是單播傳送的。
Ping程序
Ping程序用于測試另一臺主機是否可達。
IP記錄路由選項
大多數不同版本的 ping程 序都提供-R選項,以提供記錄路由的功能。它使得 ping程序在發送出去的IP數據報中設置IPR R選項(該 IP數據報包含ICMP回顯請求報文)。
TCP:傳輸控制協議
TCP提供一組面向連接的、可靠的字節流服務。 TCP對字節流的內容不作任何解釋。對字節流的解釋由TCP連接雙方的應用層解釋。
TCP的首部
TCP數據被封裝在一個IP數據報中。
TCP首部通常是20字節。
TCP的首部
IP首部的源端IP地址和目的端IP地址,以及TCP首部的源端口號和目的端端口號唯一確定一個TCP連接。
一個IP地址和一個端口號也稱為一個插口(socket)。
插口對(socket pair)(包含客戶IP地址、客戶端口號、服務器IP地址和服務器端口號的四元祖)可唯一確定互聯網絡中的每個TCP連接的雙方。
確認序號應當是上次已成功收到數據字節序號加1。
TCP為應用層提供全雙工服務。
TCP的流量控制由連接的每一端通過聲明的窗口來提供。 檢驗和覆蓋了整個的TCP報文段:TCP首部和TCP數據。這是一個強制性的字段,一定是由發端計算和存儲,并由收端進行驗證。 最常見的可選字段是最長報文大小,又稱為MSS(Maximum Segment Size)。
TCP連接的建立與終止
TCP是面向連接的協議。無論哪一方向另一方發送數據之前,都必須先在雙方之間建立一條連接。
TCP三次握手
step1:請求端發送一個SYN段指明客戶打算連接的服務器的端口,以及初始序號(ISN)。這個SYN段為報文段1。
step2:服務器發回包含服務器的初始序號的SYN報文段(報文段2)作為應答。同時,將確認序號設置為客戶的ISN加1以客戶的SYN報文段進行確認。
step3:客戶必須將確認序號設置為服務器的ISN加1以對服務器的SYN報文段進行確認(報文段3)。
TCP四次揮手
當服務器收到這個FIN,它發回一個ACK,確認序號為收到的序號加1。和SYN一樣,一個FIN將占用一個序號。
同時TCP服務器還向應用程序(即丟棄服務器)傳送一個文件結束符。
接著這個服務器程序就關閉它的連接,導致它的TCP端發送一個FIN,客戶必須發回一個確認,并將確認序號設置為收到序號加1。
TCP的狀態變遷圖
TCP的交互數據流
成塊數據的報文段基本上是滿長度的(通常為512字節)。 交互數據小得多(小于10個字節)。 TCP需要同時處理這兩類數據。
經受時延的確認
通常TCP在接收到數據時并不立即發送ACK;相反,它推遲發送,以便將 ACK與需要沿該方向發送的數據一起發送(有時稱這種現象為數據捎帶A CK)。絕大多數實現采用的時延為200 ms,也就是說,TCP將以最大200 ms 的時延等待是否有數據一起發送。
對于小的報文段,接收方使用經受時延的確認方法來判斷確認是否可被推遲發送,以便與回送數據一起發送。這樣會減少報文段的數目。
TCP的成塊數據流
進行成塊數據有效傳輸的最重要的方法是TCP的滑動窗口協議。
滑動窗口協議
該協議允許發送方在停止并等待確認前可以連續發送多個分組。
由于發送方不必每發一個分組就停下來等待確認,因此該協議可以加速數據的傳輸。
慢啟動
慢啟動 (slow start): 該算法通過觀察到新分組進入網絡的速率應該與另一端返回確認的速率相同而進行工作。
慢啟動為發送方的TCP增加了另一個窗口:擁塞窗口 (congestion window),記為cwnd。當與另一個網絡的主機建立 TCP連接時,擁塞窗口被初始化為 1個報文段(即另一端通告的報文段大小)。每收到一個 A C K,擁塞窗口就增加一個報文段(cwnd以字節為單位,但是慢啟動以報文段大小為單位進行增加)。
發送方取擁塞窗口與通告窗口中的最小值作為發送上限。擁塞窗口是發送方使用的流量控制,而通告窗口則是接收方使用的流量控制。
TCP的超時與重傳
TCP通過在發送時設置一個定時器來解決這種問題。如果當定時器溢出 時還沒有收到確認,它就重傳該數據。
擁塞避免算法
慢啟動算法是在一個連接上發起數據流的方法,但有時我們會達到中間 路由器的極限,此時分組將被丟棄。擁塞避免算法是一種處理丟失分組的方法。
擁塞避免算法和慢啟動算法需要對每個連接維持兩個變量:一個擁塞窗口 cwnd和一個慢啟動門限ssthresh。
快速重傳與快速恢復算法
1、當收到第3個重復的ACK時,將ssthresh設置為當前擁塞窗口cwnd的一半。重傳丟失的 報文段。設置cwnd為ssthresh加上3倍的報文段大小。
2、每次收到另一個重復的 ACK時, cwnd增加1個報文段大小并發送 1個分組(如果新的cwnd允許發送)。
3、當下一個確認新數據的 ACK到達時,設置cwnd為ssthresh(在第1步中設置的值)。這個ACK應該是在進行重傳后的一個往返時間內對步驟 1中重傳的確認。另外,這個 ACK也應該是對丟失的分組和收到的第 1個重復的ACK之間的所有中間報文段的確認。這一步采用的是擁塞避免,因為當分組丟失時我們將當前的速率減半。
重新分組
當TCP超時并重傳時,它不一定要重傳同樣的報文段。相反,TCP允許進行重新分組而發送一個較大的報文段,這將有助于提高性能。
相關的閱讀筆記:
Jacenhu:TCP/IP詳解卷一 Chapter1概述?zhuanlan.zhihu.comJacenhu:TCP/IP詳解卷一 Chapter2 鏈路層?zhuanlan.zhihu.comJacenhu:TCP/IP詳解卷一 Chapter3 IP:網際協議?zhuanlan.zhihu.comJacenhu:TCP/IP詳解卷一 Chapter4 ARP:地址解析協議?zhuanlan.zhihu.comJacenhu:TCP/IP詳解卷一 Chapter5 RARP:逆地址解析協議?zhuanlan.zhihu.comJacenhu:TCP/IP詳解卷一 Chapter7 Ping程序?zhuanlan.zhihu.comJacenhu:TCP/IP詳解卷一 Chapter17 TCP:傳輸控制協議?zhuanlan.zhihu.comJacenhu:TCP/IP詳解卷一 Chapter18 TCP連接的建立與終止?zhuanlan.zhihu.comJacenhu:TCP/IP詳解卷一 Chapter19 TCP的交互數據流?zhuanlan.zhihu.comJacenhu:TCP/IP詳解卷一 Chapter20 TCP的成塊數據流?zhuanlan.zhihu.comJacenhu:TCP/IP詳解卷一 Chapter21 TCP的超時與重傳?zhuanlan.zhihu.com總結
以上是生活随笔為你收集整理的gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_TCP/IP协议知识总结...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lvdt 运放全波整流接线方式_常见的几
- 下一篇: 深度优先遍历和广度优先遍历_利用广度优先