TCP/IP詳解(整理)

1.概述算法

路由器是在網絡層進行聯通,而網橋是在鏈路層聯通不一樣的網絡。網絡

IP層用ICMP來與其餘主機或路由器交換錯誤報文和其餘的重要信息。應用程序也能夠訪問ICMP,兩個診斷工具:Ping和Traceroutetcp

IGMP是組管理協議,用來把一個UDP數據報多播到多個主機;ICMP和IGMP的消息都是經過IP數據報來封裝的工具

IP的地址分類:5類:測試

A (0 網絡號7bit 主機號24bit);0.0.0.0 - 127.255.255.255指針

B(10 網絡號14bit 主機號16bit);128.0.0.0 - 191.255.255.255接口

D(1110 多播組號28位);隊列

還能夠分爲3類IP地址:單播、廣播和組播地址ip

以太網數據幀長度 46-1500字節路由

 

SLIP:串行線路IP 報文的封裝格式是以c0開頭和結尾的;而PPP協議是以7E來標誌的

環回接口:127.0.0.1 localhost;會將IP地址是環回地址或本地址的數據放入IP輸入隊列中,另外廣播/多播地址的數據也會複製一份給環回接口

以太網的MTU是1500字節,不一樣網絡的幀的MTU不一樣,IP層會依據MTU給數據進行分片。若是數據要通過不一樣的網絡,那麼路勁中最小的MTU

 

TTL(time-to-live)生存時間字段設置了數據報能夠通過的最多路由器數目,一般爲32或64

IP是能夠從TCP UDP ICMP IGMP接收數據報的

ip地址中若是沒有指定主機號,則指定網絡上的全部主機

路由表搜索的時候先匹配目的ip,不行則匹配目的網絡號表目,仍是不行則匹配默認表目,最後選擇主機不可達不能傳送。

爲每一個網絡指定1個路由器,縮小規模

主機號可能會分一部分用來劃分子網。例如B類地址16bit的主機號,用8bit來分子網,能夠有254個子網,每一個子網254個主機。子網對外部透明,可是對於內部的路由器是不透明的

給定IP地址和子網掩碼,就知道了是否是在同一個網絡,同一個子網了。AB類地址通常都會子網劃分

ifconfig和netstat命令查找網絡接口相關的信息,netstat還能夠查看路由表信息

IP主要有地址不夠用,路由表規模之後可能會比較大這些問題

 

ICMP能夠有查詢報文,還能夠有差錯報文,不可達時候發送,報文必須包括生成該差錯報文的數據報IP首部,還必須包括後面的前8個字節,這裏麪包含了TCP或UDP中的源和目的端口號

ping發送一份ICMP回顯請求報文給主機,等待返回ICMP回顯應答。是對兩個TCP/IP系統連通性進行測試的基本工具,集成在了內核裏。不通過傳輸層

traceroute程序能記錄路由的路徑,經過發送TTL爲1的UDP數據報,而後每次將TTL加1,,路由器會丟棄數據包返回ICMP超時報文,最終主機會產生一個ICMP端口不可達的報文

 

動態選路:內部網關協議IGP(選路信息協議 RIP,最短路徑優先 OSPF),外部網關協議 EGP(邊界網關協議 BFP)

UDP具備僞首部,是12字節,本身的首部是8字節,UDP和TCP都加入僞首部,是爲了計算校驗。UDP的校驗是對整個數據的校驗,端到端。

IP層的分片,每一個接口可能會是不一樣的網絡,MTU可能不一樣。數據報可能在中途進行分片,每一個片具備相同的標識flag,還有一個標識字段用來表示是否還有更多的片。若是某個分片丟失,是須要重傳整個數據報的。傳輸層的頭部信息只出如今第一個分片中。若是IP數據報須要被分片而標識中設置爲不分片DF,那麼會發送ICMP不可達差錯報文。

UDP與ARP的交互:當數據報被分片後,若是須要arp尋址,則有幾個分片就會發送幾個arp請求,當接收第一個arp請求後,只有最後一個報文會被髮送到特定的主機。

廣播和多播只應用於UDP,前提是不面向鏈接。大多數的網卡都能接受目的地址爲多播地址或某些子網多播地址的幀。

廣播增長了對於廣播數據不感興趣主機的處理負荷。由於這些數據仍是會上傳到UDP層才被丟棄。多播減小了部分負荷,主機可加入一個或多個多播組。

廣播地址也分爲全網和子網廣播地址,主機號必須全爲1.

多播組的地址實際上是D類地址,多播組id有28位。不限制組內主機的個數。多播地址的以太網地址首字節必須是01,ip地址的低位23bit映射到以太網地址

組管理協議IGMP就是讓物理網絡上的全部系統知道主機當前所在的多播組

 

tcp首部20字節中前4字節分別是兩個端口號;而後是4字節的序號和4字節的確認序號,以後4字節中包含6個特殊位和2字節的窗口大小(最大爲65535字節);

URG緊急指針,ACK,PSH接收方應該儘快將報文段發送給應用層,RST從新鏈接,SYN同步發起鏈接,FIN

MSS最大段長度,通常是1024,有些能夠協商

四次揮手是由於tcp是全雙工的,每一個方向須要單獨來關閉

time wait有2MSL等待時間,報文段最大生存時間,是爲了能接收可能的再次FIN,

半打開鏈接是由於一方可能忽然掉電關機,而後重啓後,啓動新的鏈接,以前的半鏈接就一直在。TCP處理原則是接收方以復位作爲應答

對於同時創建鏈接,雙方只創建一條鏈接,同時關閉也是差很少的,沒有太多區別,都是容許的

呼入鏈接請求隊列:該隊列中的鏈接已經握手完成可是尚未被應用層所接受,隊列的最大長度稱爲積壓值

使用nagle算法減小小報文的數目

四種定時器:重傳定時器、堅持、保活和2MSL定時器

擁塞窗口cwnd和慢啓動門限ssthresh,發送方能發送的大小爲cwnd和接收方通告的窗口的最小值

慢啓動(其實開始是指數增加cwnd,當到了門限後加1增加)和擁塞避免(快恢復)算法

相關文章
相關標籤/搜索