主頁 > 軟體設計 > 小白的學習路程

小白的學習路程

2020-11-16 14:48:55 軟體設計

計算機基礎知識

IP地址規劃
現在常用的是IPV4,公網已經耗盡,中國有2.77億個公網地址,IPV6還在實驗室階段,未落地,
較大型IP地址規劃分有業務地址、物理地址和管理地址,

  1. 業務地址
    需要知道有多少臺無線(WiFi)與有線(網卡)設備終端接入,分別分有內部和訪客使用的兩類地址,
    需服務端接入,分有網管設備、業務系統的網段和監控系統的網段,
    結構:
    內網網路,有服務端和終端,
    外網網路,服務端較少,終端較多,終端分有無線和有線,還有有內部和訪客兩類,
    監控網路,服務端有資料庫、運用端、流媒體;終端分有攝像頭、打卡報警之類的,
    網管網路,認證服務器有portal、dotlx ;網管系統有代理服務器、WSUS、堡壘機、ad域控,

  2. 物理地址
    背對背,VRRP HA HSRP,網路設備分布各個地域

  3. 管理地址
    有設備遠程,路由器協議router-id、網管到設備,

區域結構整體有各個地方的各個網點,

較小型IP地址規劃如學校
可分為宿舍區,辦公區,教學區幾部分,都包含用戶IP,設備管理IP,設備互聯IP,然后核心設備有設備管理IP和設備互聯IP,

TCP/IP協議
在這里插入圖片描述

IP或ICMP(Internet Control Message Protocol,因特網控制報文協議)、TCP或UDP、TELNET或FTP、以及HTTP等都屬于TCP/IP的協議,也稱TCP/IP為網際協議族,
互聯網的協議就是TCP/IP,TCP/IP就是互聯網的協議,
TCP/IP是現在Internet主流協議,是一個分層、多協議的通信體系,
IP地址即為機器的物理地址
協議分有應用層(用戶空間)、傳輸層、網路層(內核空間)、資料鏈路層,

資料鏈路層
網卡介面的網路驅動程式,處理資料在物理傳輸媒介上的傳輸
有ARP協議(Address Resolve Protocol,地址決議協議),RARP協議(Reverse Address Resolve Protocol,逆地址決議協議)
網路層通過IP地址鏈接主機,首先將IP地址從ARP來廣播,資料鏈路層通過物理地址連接主機
WAN(Wide Area Network,廣域網) 通過路由器連接主機,
IP協議(Internet Protocol,因特網協議):根據資料包的目的IP地址決定如何投遞資訊,使用逐跳(hop by hop)的方式確定通訊路徑,

ICMP協議
檢測網路連接,區分報文型別:報文差錯,回應網路錯誤;查詢報文,查詢網路資訊,報文進行冗余校驗(CRC)以檢驗報文在傳輸中是否損壞,

傳輸層
為兩臺主機上的應用程式提供端到端(end to end)的通信,
TCP協議(Transmission Control Protocol,傳輸控制協議):為應用層提供可靠的、面向連接的、基于流(stream)的服務,
UDP協議(User Control Transmission Protocol,用戶資料報協議):為應用層提供不可靠、無連接、基于資料報的服務,雖然可以確保發送訊息的大小,卻不能保證訊息一定會到達,
SCTP協議(Stream Control Transmission Protocol,流控制傳輸協議):為在因特網上傳輸電話信號而設計的服務,

應用層
瀏覽器與服務端之間通信所用的協議是HTTP(HuperText Transfer Protocol),所傳輸資料主要格式是HTML(HyperText Markup Language),WWW(萬維網)中的HTTP屬于OSI應用層的協議,而HTTP屬于表示層的協議,

應用層協議
Ping應用程式,利用ICMP報文檢測網路連接,
Telnet遠程登陸協議,在本地完成遠程任務,
OSPF(Open Shortest Path Fist,開放最短路徑優先)動態路由更新協議,用于路由器之間的通信,
DNS(Domain Name Service,域名服務)協議,提供機器域名到IP地址的轉換功能,
封裝,
每一層協議都在上層資料的基礎上加上自己的頭部資訊(尾部資訊),實作該層功能
是一套分布式的域名服務系統,每個DNS服務器是存在大量機器域名和IP地址的映射,并且是動態更新的,
域名服務,將機器域名轉換陳IP地址,

在這里插入圖片描述

TCP協議
為通信雙方維持一個連接,并且在內核中存盤相關資料,這部分資料中的TCP頭部資訊和TCP內核緩沖資料一槍構成TCP報文段,
(frame):經過資料鏈路層封裝的資料,
分用:使在幀到達目的主機沿著自底向上依次處理幀中本層負責頭部資料,獲取所需資訊,并最終將處理后的幀交給目標應用程式,

ARP協議
實作任意網路層地址到任意物理層地址的轉換,
主機向所在網路廣播一個ARP請求,請求包含目標機器網路地址,這個網路是其他機器都會接收到,但只有被請求的目標機器會應答一個ARP請求,其中包含自己的物理地址,

IP服務
IP協議是TCP/IP協議族的動力,它為上層協議提供無狀態、無連接、不可靠的服務,
無狀態(stateless):無法處理亂序、重復的IP資料報,但是簡單、高效,
無連接(connectionless):IP通信雙方都不長久地維持對方的任何資訊,每次發送資料是都必須指定對方的IP地址,
不可靠:不能保證IP資料報準確地到達接收端,只是盡最大可能,
IP服務的上層協議需要自己實作資料確認、超時重傳等機制以達到可靠傳輸目的,

IP頭部結構
IP頭部資訊出現在每個IP資料報中,用于指定IP通信的源端IP地址、目的端IP地址,指導IP分片和重組,以及指定部分通信行為,

IPv4頭部結構

在這里插入圖片描述

IPv6頭部結構

在這里插入圖片描述

IPv6使得地球上每一粒沙子都有一個IP地址,

IP分片
當IP資料報的長度超過幀的MTU時,將被分片傳輸,在最終的目標機器上才會重新組裝,

在這里插入圖片描述

IP路由
決定發送資料報到目標機器的路途,

IP模塊作業流程

在這里插入圖片描述

路由機制
查找路由表中和資料報的目標IP地址完全匹配的主機IP地址,如果找到,就用該路由項,沒有則轉2,
查找路由表中和資料報的目標IP地址具有相同網路ID的網路IP地址,如果找到,就使用該路由項,沒有則轉3,
選擇默認路由項,通常意味著資料報的下一跳是網關,

IP轉發
將不是發送給本機的IP資料交由資料報轉發子模塊進行轉發,
對于允許IP資料報轉發的檔案系統(主機/路由器),資料報轉發子模塊將對期望轉發的資料報執行以下操作:

  1. 檢查資料報頭部的TTL值,如果TTL為0,則丟棄該資料報,
  2. 查看資料報頭部的嚴格源路由器選擇選項,如果該選項被設定,則檢測資料報的目標IP地址是否是本機的某個IP地址,如果不是則回傳一個ICMP源站選路失敗報文,
  3. 給源端發送一個ICMP重定報文,一告訴它一個更合適的下一跳路由器,
  4. 將TTL值減1,
  5. 處理IP頭部選項,
  6. 執行IP分片操作

網頁常見狀態碼
1開頭 - 資訊提示
這些狀態代碼表示臨時的回應,客戶端在收到常規回應之前,應準備接收一個或多個 1xx 回應,
100 - Continue 初始的請求已經接受,客戶應當繼續發送請求的其余部分,(HTTP 1.1新)
101 - Switching Protocols 服務器將遵從客戶的請求轉換到另外一種協議(HTTP 1.1新)

2開頭 (請求成功)表示成功處理了請求的狀態代碼,
200 (成功) 服務器已成功處理了請求, 通常,這表示服務器提供了請求的網頁,
201 (已創建) 請求成功并且服務器創建了新的資源,
202 (已接受) 服務器已接受請求,但尚未處理,
203 (非授權資訊) 服務器已成功處理了請求,但回傳的資訊可能來自另一來源,
204 (無內容) 服務器成功處理了請求,但沒有回傳任何內容,
205 (重置內容) 服務器成功處理了請求,但沒有回傳任何內容,
206 (部分內容) 服務器成功處理了部分 GET 請求,

3開頭 (請求被重定向)表示要完成請求,需要進一步操作, 通常,這些狀態代碼用來重定向,
300 (多種選擇) 針對請求,服務器可執行多種操作, 服務器可根據請求者 (user agent) 選擇一項操作,或提供操作串列供請求者選擇,
301 (永久移動) 請求的網頁已永久移動到新位置, 服務器回傳此回應(對 GET 或 HEAD 請求的回應)時,會自動將請求者轉到新位置,
302 (臨時移動) 服務器目前從不同位置的網頁回應請求,但請求者應繼續使用原有位置來進行以后的請求,
303 (查看其他位置) 請求者應當對不同的位置使用單獨的 GET 請求來檢索回應時,服務器回傳此代碼,
304 (未修改) 自從上次請求后,請求的網頁未修改過, 服務器回傳此回應時,不會回傳網頁內容,
305 (使用代理) 請求者只能使用代理訪問請求的網頁, 如果服務器回傳此回應,還表示請求者應使用代理,
307 (臨時重定向) 服務器目前從不同位置的網頁回應請求,但請求者應繼續使用原有位置來進行以后的請求,

4開頭 (請求錯誤)這些狀態代碼表示請求可能出錯,妨礙了服務器的處理,
400 (錯誤請求) 服務器不理解請求的語法,
401 (未授權) 請求要求身份驗證, 對于需要登錄的網頁,服務器可能回傳此回應,
403 (禁止) 服務器拒絕請求,
404 (未找到) 服務器找不到請求的網頁,
405 (方法禁用) 禁用請求中指定的方法,
406 (不接受) 無法使用請求的內容特性回應請求的網頁,
407 (需要代理授權) 此狀態代碼與 401(未授權)類似,但指定請求者應當授權使用代理,
408 (請求超時) 服務器等候請求時發生超時,
409 (沖突) 服務器在完成請求時發生沖突, 服務器必須在回應中包含有關沖突的資訊,
410 (已洗掉) 如果請求的資源已永久洗掉,服務器就會回傳此回應,
411 (需要有效長度) 服務器不接受不含有效內容長度標頭欄位的請求,
412 (未滿足前提條件) 服務器未滿足請求者在請求中設定的其中一個前提條件,
413 (請求物體過大) 服務器無法處理請求,因為請求物體過大,超出服務器的處理能力,
414 (請求的 URI 過長) 請求的 URI(通常為網址)過長,服務器無法處理,
415 (不支持的媒體型別) 請求的格式不受請求頁面的支持,
416 (請求范圍不符合要求) 如果頁面無法提供請求的范圍,則服務器會回傳此狀態代碼,
417 (未滿足期望值) 服務器未滿足"期望"請求標頭欄位的要求,

5開頭(服務器錯誤)這些狀態代碼表示服務器在嘗試處理請求時發生內部錯誤, 這些錯誤可能是服務器本身的錯誤,而不是請求出錯,
500 (服務器內部錯誤) 服務器遇到錯誤,無法完成請求,
501 (尚未實施) 服務器不具備完成請求的功能, 例如,服務器無法識別請求方法時可能會回傳此代碼,
502 (錯誤網關) 服務器作為網關或代理,從上游服務器收到無效回應,
503 (服務不可用) 服務器目前無法使用(由于超載或停機維護), 通常,這只是暫時狀態,
504 (網關超時) 服務器作為網關或代理,但是沒有及時從上游服務器收到請求,
505 (HTTP 版本不受支持) 服務器不支持請求中所用的 HTTP 協議版本,

Get/Post兩種基本請求方法
GET和POST本質上就是TCP鏈接,并無差別,但是由于HTTP的規定和瀏覽器/服務器的限制,導致他們在應用程序中體現出一些不同,
GET產生一個TCP資料包;POST產生兩個TCP資料包(并不是所有瀏覽器都會在POST中發送兩次包,Firefox就只發送一次),發一次包的時間和發兩次包的時間差別基本可以無視,而在網路環境差的情況下,兩次包的TCP在驗證資料包完整性上,有非常大的優點,
對于GET方式的請求,瀏覽器會把http header和data一并發送出去,服務器回應200(回傳資料);
而對于POST,瀏覽器先發送header,服務器回應100 continue,瀏覽器再發送data,服務器回應200 ok(回傳資料),
萬維網中,用TCP運輸資料,HTTP設定了好幾個服務類別,有GET, POST, PUT, DELETE等,HTTP規定,當執行GET請求的時候,就會貼上GET的標簽(設定method為GET),而且要求把傳送的資料放在url中以方便記錄,如果是POST請求,就要貼上POST的標簽,HTTP只是個行為準則,而TCP才是GET和POST怎么實作的基本,
GET在瀏覽器回退時是無害的,而POST會再次提交請求,
GET產生的URL地址可以被Bookmark,而POST不可以,
GET請求會被瀏覽器主動cache,而POST不會,除非手動設定,
GET請求只能進行url編碼,而POST支持多種編碼方式,
GET請求引數會被完整保留在瀏覽器歷史記錄里,而POST中的引數不會被保留,
GET請求在URL中傳送的引數是有長度限制的,而POST么有,
對引數的資料型別,GET只接受ASCII字符,而POST沒有限制,
GET比POST更不安全,因為引數直接暴露在URL上,所以不能用來傳遞敏感資訊,
GET引數通過URL傳遞,POST放在Request body中,

HTML基礎語法
HTML(Hypertext Markup Language,超文本標記語言),使用HTML撰寫的檔案稱為網頁,HTML是網頁設計的基礎語言,目前最新版本是HTML5,使用最廣泛的是HTML4.1,
HTML是構成網頁檔案的主要語言,HTML標簽可以標識文字、圖形、影片、聲音、表格、超鏈接等網頁物件,

HTML檔案基本結構
HTML檔案一般都包含頭=頭部區域和主體區域,由、、三個標簽組成,每個標簽都是成對存在的,
在這里插入圖片描述

靜態網頁:檔案拓展名一般為.html或.htm,可直接在瀏覽器中瀏覽,
動態網頁:檔案拓展名為.asp、.aspx、.php或.jsp等,需服務器決議之后,瀏覽器才能瀏覽,
元素
我們把匹配的標簽對以及它們包圍的內容稱為元素,即(元素 = 開始標簽 + 內容 + 結束標簽),如:< a href=“http://hanzhaoxin.cnblogs.com/”>我的博客</ a>,
屬性
開始標簽中那些以名稱/值對的形式出現的內容,我們稱之為屬性,如上例中:href=“http://hanzhaoxin.cnblogs.com/”,
(href是屬性名稱,"http://hanzhaoxin.cnblogs.com/"是屬性值),

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/219895.html

標籤:其他

上一篇:Vue.js2+ArcGIS3二、繪制工具(標繪、空間測量、空間統計)

下一篇:C語言入門——《一維到多維陣列》

標籤雲
其他(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