一、介紹TCP/IP
TCP/IP是一個首字母縮寫,它代表著傳輸控制協議(Transmission Control Protocol),TCP,互聯網協議(Internet Protocol),IP,TCP和IP是構成所有現代網路的兩個主要協議,
1.IP
IP協議負責網路間的資訊路由,同時,它也用在我們家里和辦公室的網路上,IP協議的主要職責是提供一個被稱為IP地址的尋址方案,以唯一的方式識別網路上的計算機,并將資訊以資料包的形式從其源頭傳遞到正確的目的地,IP被稱為網路層協議(Network layer protocol),IP支持運輸層協議(Transport layer protocal),這些協議具有更高層次的職責,
2.TCP和UDP
兩個主要的傳輸層協議是傳輸控制協議(Transmission Control Protocol或TCP)和用戶資料報協議(User Datagram Protocol或UDP),
TCP負責大部分的網路流量,它是一個面向連接的協議,意味著它在資料傳輸之前在兩個系統之間建立連接,TCP也是一個可靠的協議,它通過讓目標系統確認收到每個資料包來保證交付,TCP的可靠性使它廣泛用于需要這種保證交付的應用,如電子郵件和網站,由于TCP是面向連接的,系統在傳輸資料之前要經過一個握手程序來建立連接,這個程序被稱為 “三次握手”,TCP資料包包括特殊的標志,用于識別這個握手程序中的資料包:
- SYN標志用于識別要求建立新連接的資料包;
- FIN標志用于識別要求關閉現有連接的資料包;
- ACK標志是用來確認SYN或FIN請求的,
三次向握手程序:
- 在第一步,發起連接的系統發送一個設定有SYN標志的資料包,這表明該系統想打開一個與目標系統的連接,
- 目的地系統收到這個資料包,并回復另一個資料包,做兩件事,它承認最初的連接請求,然后要求在另一個方向打開一個對等的連接,這個資料包同時設定了SYN和ACK標志,
- 最后,開始連接的原始系統收到SYN/ACK資料包,并向目的系統發送最后的ACK資料包,完成對等的連接,
一旦這個三包序列完成,連接就被打開了,各系統可以開始交換資料,另一方面,UDP是一個更輕量級的協議,不使用三次握手,因為它不是面向連接的,系統基本上是直接地發送資料給對方,希望另一端能收到,UDP不執行確認,因此不能保證交付,它通常用于語音和視頻等應用,在這些應用中,保證每個資料包的交付并不重要,
3.OSI
網路專業人員使用一個被稱為開放系統互連(Open Systems Interconnection)或OSI模型的模型來描述這些協議,該模型將網路描述為有七個不同的層次,
- 第一層是物理層(Physcial Layer),負責使用電線、無線電波、光纖和其他手段在網路上發送位元;
- 第二層,資料鏈路層(Data Link Layer),在連接到同一物理網路的兩個節點之間傳輸資料;
- 第三層,網路層(Network Layer),將網路擴展到許多不同的節點,互聯網協議在此層作業;
- 第四層,傳輸層(Transport Layer),在系統之間建立連接,并以可靠的方式傳輸資料,TCP和UDP是傳輸層協議;
- 在它們之上,第五層被稱為會話層(Session Layer),這一層管理著系統之間的通信交流;
- 第六層,即表現層(Presentation Layer),對資料進行翻譯,以便在網路上進行傳輸,這一層描述了如何用位元來表示一個字符,并進行加密和解密;
- 最后,第七層,即應用層(Application Layer),決定了用戶如何使用網路瀏覽器或其他客戶端應用程式與資料互動,

OSI模型是一個很好的參考,可以幫助我們了解網路的功能,
二、IP地址和DHCP
為了使互聯網協議能夠在網路上的任何兩個系統之間成功地傳遞資訊,它必須使用一個尋址方案(Addressing scheme),就像電話使用電話號碼,郵政使用街道地址一樣,互聯網需要一個尋址方案,
因為這些地址是由互聯網協議使用的,所以它們被稱為IP地址,IP地址是以所謂的點分十進制(Dotted Decimal Notation) 書寫的,這意味著,它們是由"."分隔的四個數字,每個數字的范圍在0到255之間,這是因為如果是2進制,那么IP地址一共有32位,4個數字分別對應了八個二進制位,二的八次方是256,但由于我們從零開始計算,我們的IP地址值只能上升到255,一個系統的IP地址在網路上是唯一的標識,如果系統直接連接到互聯網,它所使用的IP地址一定不會被世界上任何其他系統使用,就像我們的手機號碼不會被世界上其他地方使用,連接到私人網路的系統,如你家里或辦公室里的系統,可以使用私人IP地址,在其他網路中可以重復使用,

當我們在互聯網上通信時,我們的路由器或防火墻負責將這些私網地址轉換為公共IP地址,這需要使用一個被稱為網路地址轉換的協議(Network address translation),或稱NAT,
IP地址分為兩部分,地址的網路部分用于識別系統所連接的網路,你的公司可能有自己的網路地址(Network Address),地址的第二部分,即主機地址(Host Address),唯一標識該網路上的一個系統,在這個如下所示,網路地址是192.168,而主機地址是1.100,分界線在地址的正中間,但它不一定是這樣,這個分界線其實并不固定,通常使用了一個叫做子網(subnetting)的概念進行劃分,
在每一次網路通信中都有兩個IP地址參與,源地址表示發送資訊的系統,而目的地址表示接收資訊的系統,當兩個系統來回通信時,源地址和目的地址將互換位置,這取決于誰發送每個資料包,


使用點分十進制的IP地址是第四版IP的一部分,被稱為IPv4,但是,世界上的IPv4空間已經耗盡,所以我們正在轉向一個新的標準,即IPv6,與32位的IPv4地址不同,IPv6地址使用128位,允許有更多的地址,IPv6地址以十六進制符號書寫,使用八組四位十六進制數字,如這里的例子:

IP地址是計算機網路的核心概念之一,對許多安全任務至關重要,它們可以以兩種不同的方式分配,首先,我們可以靜態地分配一個IP地址,這意味著,我們需要進入系統的設定,手動指定其IP地址,然后,我們將負責確保選擇一個符合你的網路范圍的獨特地址,第二,我們可以使用動態主機配置協議(Dynamic Host Configuration Protocol),即DHCP,DHCP允許我們配置一個IP地址池,然后當系統加入網路時,DHCP會自動將這些地址分配給它們,通常情況下,服務器被配置為靜態IP地址,而終端用戶設備被配置為動態變化的IP地址,
三、域名系統(DNS)

計算機確實使用IP地址在網路上通信,但這些地址對人們來說可能非常難以記住,域名系統(Domain Name System),或稱DNS,允許人們使用容易識別的名字來代替這些IP地址,DNS服務器將你比較熟悉的名字,如www.linkedin.com,翻譯成計算機用來通信的IP地址,如108.174.11.1,
**DNS作為一項網路服務,通過UDP埠53運行,**每次我們連接到一個網路時,該網路為我們的計算機提供一個本地DNS服務器的IP地址,它可以用來查詢IP地址,然后,每當你在瀏覽器中輸入一個網站的域名時,我們的計算機就會向本地DNS服務器發送一個請求,要求它提供與該名稱相關的IP地址,如果服務器知道我們問題的答案,它就會用IP地址來回應請求,然后我們的網路瀏覽器就可以繼續使用該IP地址連接到網站,如果本地DNS服務器不知道我們問題的答案,它就會與其他DNS服務器聯系,以確定正確的答案,然后向你作出回應,
DNS是一個分層系統(Hierarchical system),擁有域名的組織指定的DNS服務器是有關其域名資訊的權威來源,當本地DNS服務器需要進行查詢時,它會提出一系列問題,最終讓它從對一個域名具有權威性的DNS服務器獲得明確的答案,大多數時候,DNS查詢發生在幕后,用戶永遠不會看到它們,然而,我們可以使用一個叫做DIG(Linux上)或nslookup(Windows上)的工具來手動執行DNS查詢,
一些內容過濾工具(DNS-based content filtering)改變了DNS查詢,以防止用戶訪問不好的網站,這些工具的作業原理是為那些不好的網站的DNS查詢提供不正確的答案,如果我們使用這種方法,需要確保我們也阻止對其他網路服務器的外向DNS請求,8.8.8.8的谷歌公共DNS服務器只是許多公共DNS服務器中的一個,如果我我們所在的網路使用基于DNS的內容過濾,但不阻止出站(Outbound)DNS,我們可以簡單地改變網路設定中的DNS服務器,完全避免過濾,網路通信依賴于域名決議,攻擊者可能試圖在中間的DNS服務器中插入虛假的DNS記錄,讓毫無戒心的客戶訪問虛假網站,這些攻擊被稱為DNS中毒攻擊(DNS poisoning attack),DNSSEC協議為DNS增加了數字簽名,允許客戶驗證他們收到的DNS記錄是否真實,
四、網路埠(Network ports)
IP地址可以唯一地識別網路上的每個系統,但這些系統可能負責運行許多不同的服務,這就是網路埠發揮作用的地方,網路埠是一個系統上與特定應用程式相關的特定位置,
我們可以想象一下,網路上的每臺計算機是一棟公寓樓,每個應用程式是一個獨立的公寓,計算機的IP地址就像公寓樓的街道地址,但是,一旦我們到達大樓,我們需要特定的指示來到達正確的公寓,網路埠就像公寓號碼,引導流量到正確的應用程式,

網路埠用一個16位的二進制數字表示,用十進制表示,有2到16次方或65,536個可能的值,正如我們從0開始計算IP地址一樣,因此,埠號的范圍可以從0到65,535,不同范圍的埠有不同的使用方法:
- 0到1023之間的埠被稱為知名埠(Well-known ports),這些埠被保留給由互聯網當局分配的普通應用程式,使用眾所周知的埠可以確保互聯網上的每個人都知道如何在一個系統上找到常見的服務,如Web服務器、電子郵件服務器和其他常用的應用程式,例如,Web服務器使用知名的80埠,而安全Web服務器使用443埠;
- 1024和49,151之間的埠被稱為注冊埠(Registered ports),應用程式供應商可以注冊他們的應用程式來使用這些埠,例如,微軟為SQL服務器資料庫連接保留了1433埠,而甲骨文則為其自己的資料庫注冊了1521埠;
- 超過49,151的埠被預留為動態埠(Dynamic ports),我們的應用程式可以臨時使用,
以下是我們需要知道的重要埠號:
- 檔案傳輸協議(File Transfer Protocol),即FTP使用埠21在系統之間傳輸資料;
- SSH使用埠22,用于與服務器的加密管理連接;
- 遠程桌面協議(Remote Desktop Protocol),即RDP使用3389埠,用于遠程連接;
- Windows系統使用NetBios協議,埠137、138和139進行網路通信;
- 所有系統都使用埠53進行DNS查詢,
- 簡單郵件傳輸協議(Simple Mail Transfer Protocol),即SMTP使用埠25在服務器之間交換電子郵件,
- Post Office Protocol,即POP允許客戶在埠110檢索郵件,
- 而Internet Message Access Protocol,即IMAP使用埠143來實作郵件相關的類似目的;
- 超文本傳輸協議(Hypertext Transfer Protocol),即HTTP使用80埠進行未加密的網路通信,
- HTTP的HTTPS則使用443埠進行加密連接,
五、ICMP
互聯網控制資訊協議(Internet Control Message Protocol),即ICMP,是互聯網的內務協議,ICMP執行各種重要的管理功能,其中ping命令是可用的最基本的網路故障排除命令之一,
1.ping
當一個系統在網路上發送ping命令時,接收系統會以確認的方式作出回應,這相當于一個系統問另一個系統,“你在嗎?” 而目標系統的回應是:“是的,我在,”

不過,ping命令使用ICMP協議,而不是用語言問這些問題, 發起方會首先向接收放被稱為ICMP echo request的資料包來詢問,然后對端收到后回復ICMP echo reply,
2.traceroute
ICMP還提供了traceroute命令,Traceroute執行更詳細的故障排除,不僅顯示一個系統在網路上是否活著,而且還顯示兩個系統之間的網路路徑,

我們還能注意到traceroute命令也會提供延遲,即在網路上每個節點之間來回移動的時間,這也是我們在排除故障時的有用資訊,
3.Others
ICMP還處理其他管理功能,由ICMP發送的這些管理資訊中的一些包括目的地不可達資訊、重定向資訊、時間超時資訊和地址掩碼請求和回復(Destination unreachable messages, Redirect messages, Time exceeded messages and Address mask requests and replies),通過這些功能,互聯網控制資訊協議在維護一個強大、健康的網路和排除網路連接問題方面發揮了重要作用,
整理資料來源:
https://www.linkedin.com/learning/paths/become-a-comptia-security-plus-certified-security-professional-sy0-601
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/304714.html
標籤:其他
