TCP/IP 筆記

rexmolo發表於2018-07-24

概述

  • TCP/IP分四層:鏈路層、網路層、運輸層、應用層
  • 傳輸協議:TCP(傳輸控制協議)、UDP(使用者資料包協議)
  • 各類IP地址範圍
型別 範圍
A 0.0.0 - 127.255.255.255
B 128.0.0 - 191.255.255.255
C 192.0.0 - 223.255.255.255
D 224.0.0 - 239.255.255.255
E 240.0.0 - 247.255.255.255
  • TCP和UDP採用16bit埠號識別應用程式
  • 知名 TCP/IP 埠1~1023之間:FTP(21)、Telnet(23)
  • 多數TCP/IP臨時埠分配 1024-5000之間
  • Unix下/etc/services包含了熟知的埠號
  • 網路層(IP)提供點到點的服務,運輸層(TCP/UDP)提供端到端的服務
  • 使用TCP/IP協議的應用程式通常採用兩種應用程式設計介面(API):socket和TLI(運輸層介面:Transport Layer Interface)。前者有時稱作“Berkeley socket”

鏈路層

乙太網和IEEE 802封裝
  • 鏈路層三個目的
  1. 為IP模組傳送和接收IP資料包
  2. 為ARP模組傳送ARP請求和接收ARP應答
  3. 為RARP傳送RARP請求和接收RARP應答
  • 當今TCP/IP採用的主要區域網技術為 乙太網,採用一種稱作CSMA/CD的媒體介入方法
  • 802.3針對整個CSMA/CD網路、802.4針對令牌匯流排網路、802.5針對令牌環網路

IP:網際協議

不可靠:不保證IP資料包能成功到達目的地。錯誤處理演算法:丟棄該資料包之後傳送ICMP訊息給信源端

無連線:IP不維護任何關於後續資料包的狀態資訊。

TTL(time-to-live)生存時間欄位設定了資料包可以經過的最多路由器數。通常由源主機設定(通常為32或64),經過一個路由,值減1,為0時,資料包唄丟棄,併傳送ICMP報文通知源主機

IP首部始終是32 bit 的整數倍

  • 為一個網路指定一個路由器,而不必為每個主機指定一個路由器,這是IP路由選擇機制的另一個基本特性
  • 子網定址,A類、B類分配容納主機數為2的24次方-2和2的16次方-2
  • 點對點連結始終會帶來問題,因為它一般在兩端都需要IP地址

ARP:地址解析協議

  • ARP為IP地址到對應的硬體地址之間提供動態對映。
  • 在ARP背後有一個基本概念,那就是網路介面有一個硬體地址(一個48 bit的值,標識不同的乙太網或令牌環網路介面)。
  • ARP的功能是在32 bit的IP地址和採用不同網路技術的硬體地址之間提供動態對映。
  • ARP高效執行的關鍵是由於每個主機上都有一個ARP快取記憶體,存放了最近Internet地址到硬體地址之間的對映記錄,每一項的生存時間一般為20分鐘
  • ARP請求或應答來說,幀型別的值為0x0806
  • 操作欄位指出四種操作型別,它們是ARP請求(值為1)、ARP應答(值為2)、RARP請求(值為3)和RARP應答(值為4)
  • 由於ARP請求或回答的資料幀長都是42位元組(28位元組的ARP資料,14位元組的乙太網幀頭,因此,每一幀都必須加入填充字元以達到乙太網的最小長度要求:60位元組。
  • 大多數的BSD實現把完成TCP連線請求的時間限制設定為75秒

RARP:逆地址解析協議

  • RARP協議是許多無盤系統在引導時用來獲取IP地址的
  • RARP請求或應答的幀型別程式碼為0x8035,而且RARP請求的操作程式碼為3,應答操作程式碼為4
  • RARP請求以廣播方式傳送,而RARP應答一般是單播(unicast)傳送的

ICMP:Internet 控制報文協議

  • ICMP經常被認為是IP層的一個組成部分。它傳遞差錯報文以及其他需要注意的資訊。ICMP報文通常被IP層或更高層協議(TCP或UDP)使用。一些ICMP報文把差錯報文返回給使用者程式。

  • ICMP報文是在IP資料包內部被傳輸的

Traceroute 程式

  1. 開發 Traceroute 程式的原因:
  • 在IP首部選項欄位中最多隻能存放9個IP地址,不能存放當前大多數的路徑
  • Traceroute程式只需要目的端執行一個UDP模組—其他不需要任何特殊的伺服器應用程式
  1. Traceroute 輸出
  • 輸出的第1個無標號行給出了目的主機名和其IP地址,指出traceroute程式最大的TTL欄位值為30。40位元組的資料包包含20位元組IP首部、8位元組的UDP首部和12位元組的使用者資料(12位元組的使用者資料包含每發一個資料包就加1的序列號,送出TTL的副本以及傳送資料包的時間)
  • 使用traceroute程式的-g選項,可以為寬鬆的源站選路指明一些中間路由器

IP選路

  • IP執行選路機制,而路由守護程式則一般提供選路策略。

netstat

對於一個給定的路由器,可以列印出五種不同的標誌(flag):

  1. U 該路由可以使用。
  2. G 該路由是到一個閘道器(路由器)。如果沒有設定該標誌,說明目的地是直接相連的。
  3. H 該路由是到一個主機,也就是說,目的地址是一個完整的主機地址。如果沒有設定該標誌,說明該路由是到一個網路,而目的地址是一個網路地址:一個網路號,或者網路號與子網號的組合。
  4. D 該路由是由重定向報文建立的(9.5節)。
  5. M 該路由已被重定向報文修改(9.5節)。
  • 對於點對點鏈路和環回介面來說,路由是到達主機(例如,設定H標誌)。對於廣播介面來說,如乙太網,路由是到達網路。
  • 路由表項的內容:
  1. 5bit標誌、
  2. 目的IP地址(主機、網路或預設)、
  3. 下一站路由器的IP地址(間接路由)或者本地介面的IP地址(直接路由)及指向本地介面的指標

動態路由協議

名詞解釋

IGP (Interior Gateway Protocol) 內部閘道器協議 或者叫 域內選路協議

OSPF(Open Shortest Path First) 開放最短路徑優先

EGP (Exterier Gateway Protocol) 外部閘道器協議

HELLO 1986年在原來NSFNET骨幹網上使用的較早的IGP協議

  • 選路資訊協議 (RIP)—最常用
  • Internet是以一組自治系統(AS,Autonomous System)的方式組織的,每個自治系統通常由單個實體管理
  • 常常將一個公司或大學校園定義為一個自治系統。
  • 每個自治系統可以選擇該自治系統中各個路由器之間的選路協議。這種協議我們稱之為內部閘道器協議IGP(Interior Gateway Protocol)或域內選路協議(intradomain routing protocol)
  • Unix系統上常常執行名為routed路由守護程式

UDP:使用者資料協議

  • UDP不提供可靠性:它把應用程式傳給IP層的資料傳送出去,但是並不保證它們能到達目的地
  • UDP檢驗和覆蓋UDP首部和UDP資料
  • UDP檢驗和(事實上,TCP/IP協議簇中所有的檢驗和)是簡單的16 bit和
  • 客戶程式使用ephemeral埠號一般在1024~5000之間
  • 儘管IP分片過程看起來是透明的,但有一點讓人不想使用它:即使只丟失一片資料也要重傳整個資料包,因為IP層本身沒有超時重傳的機制
  • TCP有超時和重傳機制,但UDP沒有。一些UDP應用程式本身也執行超時和重傳
  • IP資料包是指IP層端到端的傳輸單元(在分片之前和重新組裝之後)
  • 分組是指在IP層和鏈路層之間傳送的資料單元。一個分組可以是一個完整的IP資料包,也可以是IP資料包的一個分片
  • 理論上,IP資料包的最大長度是65535位元組,這是由IP首部16位元總長度欄位所限制的
  • 去除20位元組的IP首部和8個位元組的UDP首部,UDP資料包中使用者資料的最長長度為65507位元組

廣播和多播

  • 廣播和多播僅應用於UDP
  • 對於乙太網,當地址中最高位元組的最低位設定為1時表示該地址是一個多播地址,用十六進位制可表示為01:00:00:00:00:00(乙太網廣播地址ff:ff:ff:ff:ff:ff可看作是乙太網多播地址的特例)
  • D類IP地址被稱為多播組地址

TCP連結的建立與終止

標誌 3字元縮寫 描述
S SYN 同步序號
F FIN 傳送方完成資料傳送
R RST 復位連結
P PSH 儘可能快的將資料送往接收程式
. 以上四個標誌位元均置為0

未完待續... ...

相關文章