《圖解TCP/IP》讀書筆記


一、國際慣例:書托

TCP/IP

  這是一本圖文並茂的網絡管理技術書籍,旨在讓廣大讀者理解TCP/IP的基本知識、掌握TCP/IP的基本技能。
  書中講解了網絡基礎知識、TCP/IP基礎知識、數據鏈路、IP協議、IP協議相關技術、TCP與UDP、路由協議、應用協議、網絡安全等內容,引導讀者了解和掌握TCP/IP,營造一個安全的、使用放心的網絡環境。

  同時,這本書也是我的2016年度讀書計划中的一本,下面我將會把我看書中的重點內容總結和摘錄下來,所謂把書讀薄,就是把精華內容留下,以供以后隨時參考。

二、網絡基礎知識

  2.1 計算機使用模式的演變

  2.2 協議

協議就是計算機與計算機之間通過網絡實現通信事先達成的一種“約定”。這種“約定”使那些由不同廠商的設備、不同的CPU以及不同的操作系統組成的計算機之間,只要遵循相同的協議就能夠實現通信。反之,如果使用的協議不同,就無法通信。

  分組交換是將大數據分割為一個個叫做包(Packet)的較小單位進行傳輸的方法。這里所說的包,就如同我們平常在郵局里見到的郵包。分組交換就是將大數據分裝為一個個這樣的郵包交給對方。

  2.3 協議分層與OSI參考模型

  協議分層就如同計算機軟件中的模塊化開發,OSI參考模型的建議是比較理想化的。

  OSI參考模型中每個層的作用:

  7層通信實例:假設主機A的用戶A要給主機B的用戶B發送一封電子郵件:

  發送方從第7層、第6層到第1層由上至下按照順序傳輸數據,而接收端則從第1層、第2層到第7層由下至上向每個上一級分層傳輸數據。每個分層上,在處理由上一層傳過來的數據時可以附上當前分層的協議所必須的“首部”信息。然后接收端對收到的數據進行數據“首部”與“內容”的分離,再轉發給上一分層,並最終將發送端的數據恢復為原裝。

三、TCP/IP基礎知識

  TCP(Transmission Control Protocol)和IP(Internet Protocol)是互聯網的眾多通信協議中最為著名的。

  3.1 TCP/IP的背景及歷史

  3.2 TCP/IP標准化

  (1)具體含義

  很多人都會認為TCP/IP是指TCP與IP兩種協議,實際生活中有時也確實就是指這兩種協議。然后,很多情況下,它只是利用IP進行通信時所必須使用到的協議群的統稱。

  (2)標准化

  由於TCP/IP盡早地制定了可行性較強的協議,提出了應對技術快速革新的協議,並及時進行后期改良的方案,因此打敗了OSI模型,成為了事實上的標准。

  3.3 TCP/IP協議分層模型

  上圖列出了TCP/IP與OSI分層之間的大概關系,不難看出,TCP/IP與OSI在分層模塊上稍有區別。OSI參考模型注重“通信協議必要的功能是什么”,而TCP/IP則更強調“在計算機上實現協議應該開發哪種程序”。

  現在再來看看主機A向主機B發送一封電子郵件,在TCP/IP模型下的處理過程:

  分組數據包經過以太網的數據鏈路時的大致流程如下圖所示:

四、IP協議及相關技術

  4.1 IP的主要作用

如圖所示,IP的主要作用就是在復雜的網絡環境中將數據包發給最終的目標地址。

  4.2 IP的三大作用模塊

  (1)IP尋址

  在計算機通信中,為了識別通信段,必須要有一個類似於地址的識別碼進行標識。而在數據鏈路層,使用MAC地址來標識同一個鏈路中不同計算機的一種識別碼。在網絡層,則叫做IP地址。

  (2)路由(最終節點為止的轉發)

  路由控制(Routing)是指將分組數據發送到最終目標地址的功能。即使網絡非常復雜,也可以通過路由控制確定到達目標地址的通路。因此,一個數據包之所以能夠成功地到達最終的目標地址,全靠路由控制。

  Hop中文叫“跳”,它是指網絡中的一個區間,IP包正是在網絡中一個跳間被轉發。數據鏈路實現某一個區間(一跳)內的通信,而IP實現直至最終目標地址的通信(點對點)。

  為了將數據包發送給目標主機,所有主機都維護者一張路由控制表(Routing Table),該表記錄IP數據在下一步應該發給哪一個路由器。IP包將根據這個路由表在各個數據鏈路上傳輸。

  (3)IP分包與組包

  IP面向無連接,即在發包之前,不需要建立與對端目標地址之間的連接。上層如果遇到需要發送給IP的數據,該數據會被立即壓縮成IP包發送出去。

IP為什么面向無連接:

1.簡化:面向連接比起面向無連接處理相對復雜!

2.提速:每次通信之前都需要建立連接,會降低處理速度!

需要有連接時,可以委托上一層(傳輸層)提供此項服務,因此,IP為了實現簡單化與高速化采用面向無連接方式。

  4.3 相關技術

  1.DNS

  有效管理主機名和IP地址之間的對應關系->DNS系統,那么DNS查詢的機制是什么呢?

  2.ARP

  ARP是一種解決地址問題的協議,以目標地址為線索,用來定位下一個應該接收數據分包的網絡設備對應的MAC地址。不過,ARP只適用於IPv4,不適用於IPv6。

  RARP則是將ARP反過來,從MAC地址定位IP地址的一種協議。

  3.ICMP

  一個剛剛搭建好的網絡,需要驗證該網絡的設置是否正確。ICMP(Internet Control Message Protocol)這是提供這類功能的一種協議,其主要功能包括:確認IP包是否成功送達目標地址,通知在發送過程中IP包被廢棄的具體原因等等。例如我們經常使用ping命令,就是一個典型的ICMP的具體應用。

  4.DHCP

  如果逐一地為每一台主機設置IP地址會非常繁瑣,於是為了實現自動設置IP地址、統一管理IP地址分配,就產生了DHCP(Dynamic Host Configuration Protocol)協議。有了DHCP,計算機只要連接到網絡,就可以進行TCP/IP通信。

  5.NAT

  NAT(Network Address Translator)用於在本地網絡中使用私有地址,在連接互聯網時轉而使用全局IP地址的技術。

  6.IP隧道

  在一個網絡環境中,假如網絡A、B使用IPv6,中間位置的網絡C支持使用IPv4的話,網絡A與網絡B之間無法直接進行通信。為了讓他們之間正常通信,這時需要采用IP隧道的功能。

  IP隧道中可以將那些從網絡A發過來的IPv6的包統和為一個數據,再為之追加一個IPv4的首部以后轉發給網絡C,這種在網絡層的首部后面繼續追加網絡層首部的通信方法就叫做“IP隧道”。

五、TCP與UDP

  TCP(Transmission Control Protocol)與UDP(User Datagram Protocol)

  5.1 傳輸層的作用

  TCP -> 面向連接的、可靠的協議,提供可靠的通信傳輸。

所謂流,就是指不間斷的數據結構,你可以把它想象成排水管道中的水流。當應用程序采用TCP發送消息時,雖然可以保證發送的順序,但還是猶如沒有任何間隔的數據流發送給接收端。  

  UDP -> 面向無連接的,具有不可靠性的數據報協議。(讓廣播和細節控制交給應用的通信傳輸)

  TCP用於在傳輸層有必要實現可靠傳輸的情況,由於它是面向連接並具備順序控制、重發控制等機制的,所以它可以為應用提供可靠傳輸。而UDP則主要用於那些對高速傳輸和實時性有較高要求的通信或廣播通信。

  因此,TCP和UDP應該根據應用目的按需使用。另外,在日常使用TCP或UDP時,通常會用到操作系統提供的類庫,這種類庫一般被稱為API,對於TCP或UDP來說會廣泛使用到套接字(Socket)的API。應用程序使用套接字時,可以設置對端的IP地址、端口號,並實現數據的發送與接收。

  5.2 端口號

  MAC地址和IP地址分別用來識別同一鏈路中不同的計算機以及TCP/IP網絡中互連的主機和路由器。在傳輸層,則使用端口號來識別同一台計算機中進行通信的不同應用程序。

  一般知名端口號在0~1023之間,而我們經常使用的自定義/動態分配的端口號則一般在49152~65535之間。

  5.3 UDP

  UDP(User Datagram Protocol)不提供復雜的控制機制,利用IP提供面向無連接的通信服務。因此,它不會負責:流量控制、丟包重發等。

UDP廣泛應用於:

  • 包量較少的通信(DNS、SNMP登)
  • 視頻、音頻等多媒體通信(即時通信)
  • 限定於LAN等特定網絡中的應用通信
  • 廣播通信(廣播、多播)  

  5.4 TCP

  TCP作為一種面向有連接的協議,只有在確認通信對端存在時才會發送數據,從而可以控制通信流量的浪費。

  為了通過IP數據報實現可靠性傳輸,需要考慮很多事情,例如:數據的破壞、丟包、重復以及分片順序混亂等問題。

  TCP通過檢驗和、序列號、確認應答、重發控制、連接管理以及窗口控制等機制實現可靠性傳輸

  使用TCP的一個連接的建立與斷開,正常過程下至少需要來回發送7個包才能完成,也就是我們常常聽到的三次握手,兩次揮手。

六、路由協議

  在互聯網世界中,夾雜着復雜的局域網和廣域網,然后,再復雜的網絡結構中,也需要通過合理的路由將數據發送到目標主機。而決定這個路由的,正是路由控制模塊。

  6.1 靜態路由和動態路由

  靜態路由:事先設置好路由器和主機中並將路由信息固定的一種方法;

  eg.有100個IP網的時候,就需要手動設置近100個路由信息。並且,每增加一個新的網絡,就需要將這個新追加的網絡信息設置在所有的路由器上。因此,管理負擔很大。此外,一旦某個路由器發生故障,基本上無法自動繞過發生故障的節點,必須手工設置后才能恢復。

  動態路由:讓路由協議在運行過程中自動地設置路由控制信息的一種方法;

  eg.如果有一個新的網絡追加到原有網絡中,只要在新增加網絡的路由器上進行一個動態路由的設置即可。此外,網絡上一旦發生故障,路由器的設置也會自動重置。

  動態路由會給相鄰路由器發送自己已知的網絡連接信息,而這些信息又像接力一樣依次傳遞給其他路由器,直到整個網絡都了解時,路由控制表也就制作完成了,而此時也就可以正確轉發IP數據包了。

  6.2 路由算法

  最具代表性的路由算法是:距離向量(Distance-Vector)算法和鏈路狀態(Link-State)算法。

  (1)距離向量算法

  根據距離(代價)和方向決定目標網絡或者目標主機位置的一種方法。

  (2)鏈路狀態算法

  在了解網絡整體連接狀態的基礎上生成路由控制表的一種方法,該方法中,每個路由器必須保持同樣的信息才能進行正確的路由選擇。

  6.3 路由協議

  (1)RIP(Routing Information Protocol)

  RIP是距離向量型的一種路由協議,廣泛應用於LAN。

  廣播路由:RIP將路由控制信息定期(30秒)向全網廣播。

  確定路由:RIP基於距離向量算法決定路由,距離的單位被稱為“跳數”(經過的路由器的個數),RIP希望經過盡可能少的路由器將數據包發送到目標IP地址。

  (2)OSPF(Open Shortest Path First)

  OSPF是一種鏈路狀態型路由協議,即使網絡中有環路,也能夠進行穩定的路由控制。

七、應用協議

  7.1 遠程登錄

  Telnet利用TCP的一跳連接,通過這一條連接向主機發送文字命令並在主機上執行。但是Telnet中登錄時無需輸入密碼就可以發送,容易造成通信竊聽和非法侵入的危險。

  SSH是加密的遠程登錄系統,可以加密通信內容。即使信息被竊聽也無法破解所發送的密碼、具體命令以及命令返回結果是什么。

  7.2 文件傳輸

  FTP是在兩個計算機之間進行文件傳輸時使用的協議,它使用兩條TCP連接:一條用於控制,一條則用於數據的傳輸。

  (1)FTP控制使用的連接使用的是TCP21號端口

  (2)FTP用於數據傳輸的TCP連接通常使用20號端口

  7.3 電子郵件

  SMTP(Simple Mail Transfer Protocol)提供電子郵件服務協議,而一般接收端會使用POP3(Post Office Protocol)協議。

  (1)SMTP是發送電子郵件的協議,它使用TCP的25號端口。它在建立一個TCP連接以后,便在這個連接上進行控制和應答以及數據的發送。

  (2)POP是接收電子郵件的協議,它和SMTP一樣,也是在客戶端與服務端之間建立一個TCP連接完成相應操作。

  7.4 WWW

  HTTP(Hyper Text Transfer Protocol)默認使用TCP的80端口,首先是客戶端向服務器的80端口建立一個TCP連接,然后在這個TCP連接上進行請求和應答以及數據報文的發送。

  7.5 網絡管理

  SNMP(Simple Network Management Protocol)常用語TCP/IP的網絡管理。利用SNMP可以對連接到網絡的設備進行遠程管理,例如修改設置和確認是否運行正常等等。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM