1.TCP/IP不是協議,而是協議族的總稱。可分爲四層結構,分別爲:(1) 應用層:包含高層協議如FTP、HTTP、TELNET等
(2) 傳輸層:TCP、UDP處於該層
(3) 網絡層:IP協議位於該層,負責對數據加上IP地址和其他的數據,以確定傳輸的目標
(4) 數據鏈路層:爲數據加入一個以太網協議頭,並進行CRC編碼,爲最後的數據傳輸做準備
2. 發送協議的主機從上自下將數據按照協議封裝,而接收數據的主機則按照協議從得到的數據包解析,最後拿到需要的數據。
3. IP地址一般爲:網絡號+主機號,域名系統的作用是將主機名轉換爲IP地址的服務。RFC是TCP/IP的標準文檔,應用接口一般包括socket和TLI。
4. 數據鏈路層的目的:
(1) 爲IP模塊發送和接收IP數據
(2) 爲ARP模塊發送ARP請求和接收ARP應答
(3) 爲RARP模塊發送RARP請求和接收RARP應答
其中ARP爲地址解析協議,即將IP地址解析爲MAC地址
5. PPP是點對點協議,提供了了一種低速接入的解決方案。
6. MTU是最大傳輸單元,如果IP數據報過大,則要進行分片,使得每片都小於MTU。netstat -in命令可以打印MTU的結果。
7. 環回接口(LOOKBACK),即127.0.0.1嘗試自己的機器服務器好使不好使。
(1) 傳給環回地址的任何數據均作爲IP輸入
(2) 傳給廣播地址或多播地址的數據報復制一份到環回接口,然後送到以太網上
(3) 任何傳給主機IP地址的數據均送到環回接口
8. IP協議爲不可靠協議,其中的字段TTL,即8位的生存時間,數據包在穿過多少個路由後纔會被拋棄,每經過一個路由,TTL減一,當爲0時則被拋棄。
路由器和主機將會用如下的方式處理一個IP數據包
(1) TTL一到0,IP包自動拋棄
(2) 搜索路由表,優先搜索匹配主機,能找到和IP地址完全一致的目標主機,則向其發包
(3) 搜索路由表,如匹配主機失敗,則匹配同子網的路由器,如找到,將包發給路由器
(4) 搜索路由表,若匹配同子網路由器失敗,則匹配同網號路由器,若找到,將包發給路由器
(5) 搜索路由表,如果以上都失敗,則搜索默認路由,如存在,則發包
(6) 若都失敗,則丟包
9. 子網尋址:可將IP地址細分爲網絡號+子網號+主機號,如210.30.109.134中210.30爲網絡號,109爲子網號
134爲主機號,對應的子網掩碼爲255.255.255.0。
10. ICMP(Internet Control Message Protocol) 網絡控制報文協議,當IP數據傳送發生錯誤時,ICMP會將錯誤信息封包,然後傳送回主機。ICMP報文在特殊情況下,不產生錯誤報文,因爲要防止產生ICMP報文的無線傳播。
ICMP有以下兩種功能:
(1) 查詢報文:ping查詢,子網掩碼查詢,時間戳查詢
(2) 差錯報文:產生在數據傳送,發生錯誤時
ping利用ICMP協議包偵測另一個主機是否可達,給出了傳送的時間和TTL的數據,可查看主機到目的主機之間的路由信息,但不能完全記錄。
traceroute用來偵測主機到目的主機之間所經路由情況,原理之一是發送的端口號>30000,因此到達目的主機時,目的主機只能發送一個端口不可達的ICMP數據報給主機
11. 路由器的5個標誌(靜態IP選路):
U:可使用
G:路由到一個網關,無該標誌,說明目標是直接相連的
H:路由到一個主機,無該標識,說明目標是一個網絡
D:路由爲重定向報文創建的
M:路由已被重定向報文修改
靜態IP選路的方式:
(1) 首先用IP地址匹配帶H標誌的IP地址(H)
(2) 若(1)失敗,則匹配網絡地址(G)
(3) 若(2)失敗,則發送到默認網關
12. route add命令用於手動添加路由
當IP包在某路由器中發現沒有路由可走,則路由器會給源主機發送“主機/網絡不可傳”的ICMP包來報錯。
IP重定向報文:IP包在某地方轉向時,會給發送IP報的源主機一個ICMP重定向報文,源主機將更新自己的路由表,因此路由表將越來越完善,數據轉發速度也將越來越快。
注意:重定向報文只能由路由器發出,重定向報文爲主機所用,而非路由所用
13. 動態路由協議:只用於相鄰路由之間相互通信,動態選路在系統核心網外部進行,只是用一些選路的策略影響路由表,常用到的方法是RIP(選路信息協議)與OSPF(開放最短路徑優先協議)。
14. UDP協議
端口號:UDP協議必須通過某個標誌用以區分不同的程序所需要的數據包
檢驗和:發送端進行檢驗和
UDP長度:可以很長,但需要分片。
IP頭裏,16bit識別號唯一記錄了一個IP包的ID,具有同一個ID的IP片將會被重組,13bit片偏移則記錄了某IP片相對整個包的位置,中間的3bit標誌着該分片是否還有新的分片。
目標主機的處理速度趕不上數據接收的速度時,主機將發出“我受不了了”的ICMP報文。
15. UDP服務器的設計:
(1) 關於客戶端和IP地址:服務器必須有根據客戶IP地址和端口判斷數據包是否合法的能力
(2) 關於目的地址:服務器必須要有過濾廣播地址的能力
(3) 關於數據輸入:服務器的每一個端口號都會和一塊輸入緩衝區對應,進來的輸入根據先來後到的原則等待服務器處理,所以難免緩衝區溢出,UDP可能被丟棄,而應用服務器本身並不知道這個問題。
(4) 服務器應把自己綁定到某一網絡接口的某端口上
16. 單播、廣播域多播
單播:對特定主機進行數據傳送,數據鏈路層給出的數據頭裏是非常具體的地址
廣播:針對某一網絡上的所有主機發送數據包
多播:給一組特定的主機發送數據,多播租的IP地址244.0.0.0-239.255.255.255
17. TCP保證可靠性的原因:
(1) 應用數據被分割成TCP認爲最合適發送的數據塊
(2) 當TCP發出一個報文段後,會啓動一個定時器,等待目的端確認收到這個報文段,如果不及時收到一個確認,將重發這個報文段,即超時重傳
(3) 當TCP收到發自TCP連接另一端的數據,將發送一個確認
(4) TCP將保持它首部和尾部的檢驗和,目的是檢驗數據包在傳輸過程中的任何變化
(5) 提供流量監控
18. TCP發送數據過程:
(1) 雙方建立連接
(2) 發送方向接收方發送TCP數據包,然後等待對方確認TCP數據報,如果沒有就重新發,如果有,則發送下一個數據報。
(3) 接收方等待發送方的數據報,如果得到數據報並檢驗無誤,就發送ACK確認,並等待下一個數據報的到來
(4) 中止鏈接
19. TCP建立連接的三次握手:
(1) 客戶端先向服務器申請打開某一個端口
(2) 服務器發回一個ACK報文通知客戶端請求收到
(3) 客戶端收到報文後,再次向服務器端發送確認報文
20. 結束連接:
TCP的鏈接爲全雙工,因此,必須關閉穿和送兩個方向上的連接:
(1) 客戶端-->服務器,發送FIN爲1的TCP報文
(2) 服務器-->客戶端,返回確認ACK報文,併發送FIN報文
(3) 客戶端-->服務器端,回覆ACK報文
TCP/IP淺談
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.