主頁 > 軟體設計 > Security+ 學習筆記38 TCP/IP網路

Security+ 學習筆記38 TCP/IP網路

2021-10-02 09:19:33 軟體設計

一、介紹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資料包包括特殊的標志,用于識別這個握手程序中的資料包:

  1. SYN標志用于識別要求建立新連接的資料包;
  2. FIN標志用于識別要求關閉現有連接的資料包;
  3. ACK標志是用來確認SYN或FIN請求的,

三次向握手程序:在這里插入圖片描述

  1. 在第一步,發起連接的系統發送一個設定有SYN標志的資料包,這表明該系統想打開一個與目標系統的連接,
  2. 目的地系統收到這個資料包,并回復另一個資料包,做兩件事,它承認最初的連接請求,然后要求在另一個方向打開一個對等的連接,這個資料包同時設定了SYN和ACK標志,
  3. 最后,開始連接的原始系統收到SYN/ACK資料包,并向目的系統發送最后的ACK資料包,完成對等的連接,

一旦這個三包序列完成,連接就被打開了,各系統可以開始交換資料,另一方面,UDP是一個更輕量級的協議,不使用三次握手,因為它不是面向連接的,系統基本上是直接地發送資料給對方,希望另一端能收到,UDP不執行確認,因此不能保證交付,它通常用于語音和視頻等應用,在這些應用中,保證每個資料包的交付并不重要,

3.OSI
網路專業人員使用一個被稱為開放系統互連(Open Systems Interconnection)或OSI模型的模型來描述這些協議,該模型將網路描述為有七個不同的層次,

  1. 第一層是物理層(Physcial Layer),負責使用電線、無線電波、光纖和其他手段在網路上發送位元;
  2. 第二層,資料鏈路層(Data Link Layer),在連接到同一物理網路的兩個節點之間傳輸資料;
  3. 第三層,網路層(Network Layer),將網路擴展到許多不同的節點,互聯網協議在此層作業;
  4. 第四層,傳輸層(Transport Layer),在系統之間建立連接,并以可靠的方式傳輸資料,TCP和UDP是傳輸層協議;
  5. 在它們之上,第五層被稱為會話層(Session Layer),這一層管理著系統之間的通信交流;
  6. 第六層,即表現層(Presentation Layer),對資料進行翻譯,以便在網路上進行傳輸,這一層描述了如何用位元來表示一個字符,并進行加密和解密;
  7. 最后,第七層,即應用層(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,不同范圍的埠有不同的使用方法:

  1. 0到1023之間的埠被稱為知名埠(Well-known ports),這些埠被保留給由互聯網當局分配的普通應用程式,使用眾所周知的埠可以確保互聯網上的每個人都知道如何在一個系統上找到常見的服務,如Web服務器、電子郵件服務器和其他常用的應用程式,例如,Web服務器使用知名的80埠,而安全Web服務器使用443埠;
  2. 1024和49,151之間的埠被稱為注冊埠(Registered ports),應用程式供應商可以注冊他們的應用程式來使用這些埠,例如,微軟為SQL服務器資料庫連接保留了1433埠,而甲骨文則為其自己的資料庫注冊了1521埠;
  3. 超過49,151的埠被預留為動態埠(Dynamic ports),我們的應用程式可以臨時使用,

以下是我們需要知道的重要埠號:在這里插入圖片描述

  1. 檔案傳輸協議(File Transfer Protocol),即FTP使用埠21在系統之間傳輸資料;
  2. SSH使用埠22,用于與服務器的加密管理連接;
  3. 遠程桌面協議(Remote Desktop Protocol),即RDP使用3389埠,用于遠程連接;
  4. Windows系統使用NetBios協議,埠137、138和139進行網路通信;
  5. 所有系統都使用埠53進行DNS查詢,
  6. 簡單郵件傳輸協議(Simple Mail Transfer Protocol),即SMTP使用埠25在服務器之間交換電子郵件,
  7. Post Office Protocol,即POP允許客戶在埠110檢索郵件,
  8. 而Internet Message Access Protocol,即IMAP使用埠143來實作郵件相關的類似目的;
  9. 超文本傳輸協議(Hypertext Transfer Protocol),即HTTP使用80埠進行未加密的網路通信,
  10. 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

標籤:其他

上一篇:docker安裝nginx并資料掛載

下一篇:計算機網路易錯點筆記(不適合初學者使用)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more