一、網絡分層
以上爲TCP/IP協議的四個分層
每層大概功能:
鏈路層 : 又叫數據鏈路層或網絡接口層,通常包括設備驅動和網絡接口,處理物理接口數據。包含:
- ARP協議,地址解析協議
- RARP協議,逆地址解析協議
網絡層:有時候又叫着互聯網層,處理網絡中的活動。包括:
- IP協議(網際協議),主要被TCP/IP使用
- ICMP協議(網絡控制報文協議),IP層用其與其他主機或路由器交換錯誤信息和其他重要信息
- IGMP協議(網絡組管理協議),它用來把一個 UDP 數據報多播到多個主機
運輸層: 主要爲兩臺主機上的應用程序提供端到端的通信服務。 主要包含
- TCP協議,提供高可靠性的通信傳輸。
- UDP協議,提供一種簡單的傳輸協議,不保證數據傳輸的準確性
應用層:負責處理特定的應用。包括:
- Telnet原程登陸服務, 對應端口:23
- FTP文件傳輸協議,對應端口:69
- SMTP,簡單郵件傳送協議
- SNMP,簡單網絡管理協議
二、數據報文
以太網數據幀的物理特性是其長度必須在 4 6 ~ 1 5 0 0 字節之間。
爲什麼呢?
- 8 0 2 . 3 規 定 數 據 部 分 必 須 至 少 爲 3 8字節,而對於以太網,則要求最少要有 4 6 字 節。
- 檢查衝突檢查時間要求不能大於了1500個字節。MTU默認值是1500,不過現在可以通過設置最大改爲9000了,得雙方兩端口都得設置爲9000,如果一方9000一方1500,那麼9000向1500發送數據就會出現丟包現象 。
這裏問題來了,什麼是MTU?
MTU :最大傳輸單元:
以太網和802.3 對數據幀的長度都有一個限制 ,其最大值分別是1500 和 1492字節
從上圖可以看出:以太網最大幀長度爲: 6(目的) + 6(源) +2 (類型)+ 1500 + 4(校驗) = 1518 字節
三、SLIP (SerialLineIP)
串行線路IP。其規則如下:
- 數據報以一個稱作END(0xC0)的特殊字符作爲結束,很多實現,也會傳這個字符
- 如果報文中存在0xC0這個字符,就連續傳 0xDB和0X=xDD來取代它,這兩個特殊字符又被叫做SPLIT和ESC字符(和ASCII中字符不想幹)
- 如果這個報文中有SPLIT和ESC字符,就連續傳兩個相同字節來替換它
存在的問題:
- 沒有CRC校驗
- 無法將自己的ip傳輸出去。
- 數據幀中沒有類型字段
改進協議:
CSLIP: 壓縮SLIP 將IP和TCP首部壓縮到3-5個字節 (細節去其他文獻查找)
PPP點對點協議:
每一幀都以標誌字符 0 x 7 e 開始和結束。緊接着是一個地址字節,值始終是 0 x ff ,然後是一 個值爲 0 x 0 3 的控制字節。
1) 當遇到字符 0 x 7 e 時,需連續傳送兩個字符: 0 x 7 d 和 0 x 5 e ,以實現標誌字符的轉義。
2) 當遇到轉義字符 0 x 7 d 時,需連續傳送兩個字符: 0 x 7 d 和 0 x 5 d ,以實現轉義字符的轉義。 3 ) 默 認 情 況 下 , 如 果 字 符 的 值 小 於 0 x 2 0 ( 比 如 , 一 個 A S C I I 控 制 字 符 ), 一 般 都 要 進 行 轉義。例如,遇到字符 0 x 0 1 時需連續傳送 0 x 7 d 和 0 x 2 1 兩個字符(這時,第 6 個比特取補碼後變爲 1,而前面兩種情況均把它變爲 0)。