IP----訪問服務器流程

這只是IP的其中一塊內容-訪問服務器流程,IP還有更多內容可以查看IP專欄,前一段學習內容為IA內容,還有更多內容可以查看IA專欄,可通過以下路徑查看IA-----配置NAT-CSDN博客CSDN,歡迎指正

1.訪問服務器流程

1.分層

1.更利于標準化

2.降低層次之間的關聯性---每一層都只完成自身層次所執行的功能--每一層都在下層的基礎上提供增值服務

1.應用層

抽象語言---編碼---提供人機交互的接口

2.表示層

編碼--二進制,壓縮解壓縮、格式轉換

3.會話層

建立維持主機應用到服務器之間的會話連接---------主機------服務器------另一臺主機----主機傳輸信息到服務器,服務器再轉發給另一臺主機

4.傳輸層

建立端到端的傳輸---應用到應用之間的傳輸---------四層封裝------封裝源端口號和目標端口號

端口號---16位二進制構成 65536 1-65535 1-1023--知名端口號:區分進程和服務------固定的,其他的都不可以用

主機的端口號一般都是隨機端口號,但是不可能會是1-1023。

HTTP:80 (超文本協議-----除了文本其他的圖片,也都可以)

HTTPS:443 SSL-TLS DNS:53 UDP TCP

DHCP:67 68 RIP :UDP 520 521

5.網絡層

通過IP地址進行邏輯尋址-------路由---------三層封裝----------封裝源IP和目標IP

獲取目標IP地址的方法:(服務器)

1.直接知道目標的IP地址

2.通過dns協議去獲取IP地址

3.通過APP或者一些應用去獲取IP

4.通過廣播去獲取目標IP---掃描

6.數據鏈路層

MAC地址(物理地址)---二進制---電信號:控制物理層----------二層封裝--------封裝源MAC地址和目標MAC地址

MAC地址是以太網所獨有的地址

7.物理層

處理電信號--CPU------一層不封裝,因為是處理電信號的一層

2.封裝和解封裝

封裝:數據來到每一層都會加入該層實現功能的協議報文(四層封裝)

解封裝:從二層開始往第四層依次解封裝,解封裝第二層看目標MAC地址是否是自己的,是則繼續進行解封裝第三層,如果不是給自己的就轉發或者丟棄;解封裝第三層,看目標IP如果不是給自己的就轉發或者丟棄,如果是給自己的就繼續解封裝第四層,然后看端口號,根據端口號將跟數據給相應端口號的應用層去處理。

協議頭部---------數據每一層封裝后都會加上協議頭部-------以便解封裝時知道解下一層封裝的

應用層-------數據

傳輸層---------四層封裝------封裝源端口號和目標端口號------協議頭部--------協議號------TCP,UDP

網絡層---------三層封裝----------封裝源IP和目標IP-------協議頭部--------數字類型--------IPV4,IPV6

數據鏈路層---------二層封裝--------封裝源MAC地址和目標MAC地址

物理層----------處理電信號(一層不封裝)

360截圖17860602123131109

跨層封裝---OSPF跨四層封裝的協議--------協議號:89

---STP-----如下圖

360截圖17571120669860

3.訪問服務器流程

主機獲取IP地址的方法:

靜態獲取

DHCP---動態主機配置協議----動態獲取

C/S

UDP :68---C 67---S

1.過程

訪問服務器需要自身端口號,服務器端口號,自身IP,服務器IP,自身MAC地址,網關MAC地址

要的是網關MAC地址原因是

自身MAC地址,服務器端口號,自身端口號(隨機端口號)服務器IP全部已知

自身IP,網關MAC地址全部不知道,所以需要獲取

首先獲取自身IP-------獲取過程中知道一個網關IP-----因為路由器給需要IP的設備發IP時,回包會有路由器網關IP

然后獲取網關MAC地址不知道-------通過ARP協議發送數據包獲取

------------二層封裝自身MAC地址,以及全f泛洪,三層封裝自身IP以及網關IP,用戶發送給交換機,交換機進行解封裝二層,發現是 全f,然后進行泛洪,泛洪后路由器接收到進行三層解封裝,發現是給自己的,就將MAC地址補全,最后進行回包。

然后再次進行發送,路由器接收到后進行解封裝,解封裝二層發現是給自己的,繼續解封裝,解封裝三層,發現不是給自己的,查看自身的路由表,是否有記錄,有或者有缺省路由就進行轉發,沒有就丟棄,如果轉發,就需要重新進行封裝二層,源MAC為路由器自身的,目標MAC地址為下一跳路由的MAC地址,然后不斷轉發查找最后訪問到

2.轉發和獲取

ARP:

地址解析協議:已知一種地址獲取另外一種地址的協議

正向ARP---通過IP地址獲取MAC地址會發送一個廣播的ARP數據包,所有這個廣播域中的設備均會收到,如果目標IP請求的是自身的MAC

則單播回復,若請求IP地址不是自身則僅記錄數據包中原IP地址和對應的MAC地址,后續轉發過程中將直接調用ARP表中的記錄,直接轉發。

反向ARP--通過MAC地址獲取IP地址

免費ARP---無故ARP--檢測地址沖突 ,自我介紹

交換機的轉發:

交換機收到一個數據幀,會查詢自身MAC地址表中的記錄信息,如果存在記錄則按照MAC地址表記錄單播轉發,如果沒有記錄則直接洪范:除了收到這個數據幀的接口外,向交換機其他所有接口復制轉發一次-------如果連接路由器,那么路由器也是收得到

路由表: 在路由器中接收到一個數據包,會進行解封裝,如果解封裝第二層是給自己的,就會繼續解封裝第三層,在路由表上查看是否有該IP記錄,如果沒有但是有缺省路由,就按缺省路由轉發,如果沒有記錄也沒有缺省路由就進行丟棄。

3.自動獲取IP流程

1.客戶端---服務端 DHCP discover包 ----廣播

SPORT :68 DPORT :67

SIP:0.0.0.0 DIP:255.255.255.255

--------沒有地址要寫0.0.0.0,不能不寫,因為STP頭部協議中有一個檢驗和,如果沒有寫就說明有缺,會丟棄

--------255.255.255.255 --- 受限廣播地址 --- 受路由器的限制 --- 只能作為目標IP地址使用(不知道目的地址使用)

SMAC:主機 DMAC:ff-ff-ff-ff…ff

-------全f--------強制主動洪范

------全球唯一格式統一MAC地址 --- 所有芯片出廠時,廠商燒錄的一個串號。48位二進制構成 ---- 前24位為廠商的 標識,后24位為廠商為產品分配的串號(物理地址)

2.服務器---客戶端 ---DHCP Offer包 (攜帶一個可用的臨時IP地址) 可以廣播/單播

SPORT:67 DPORT:68

SIP:服務器的IP地址 DIP:下發的IP地址

SMAC:服務器 DMAC:客戶端MAC

3.客戶端---服務端 DHCP request ---請求一個合法的IP地址 (廣播發送)

會選擇最先收到的Offer包中攜帶的IP地址

SPORT:68 DPORT 67

SIP : DIP:服務器的IP地址

SMAC:主機 DMAC:ff-ff..ff

4.服務端---客戶端 DHCP ACK(廣播發送/單播)

SPORT: 67 DPORT:68/

SIP:fwq DIP :

SMAC:FWQ DMAC :主機

4.域名

360截圖17981201154723

這只是IP的其中一塊內容-訪問服務器流程,IP還有更多內容可以查看IP專欄,后一章內容為網絡類型,可通過以下路徑查看IP---網絡類型-CSDN博客 ,歡迎指正

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/72087.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/72087.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/72087.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux報 “device or resource busy” 異常的原因以及解決辦法

首先,Linux報"device or resource busy"的原因是因為某個進程正在占用該設備或資源,導致其他進程無法訪問該設備或資源。 解決該問題的辦法有以下幾種: 查找占用該設備或資源的進程,然后將其停止或結束。可以使用以下…

和鯨科技推出人工智能通識課程解決方案,助力AI人才培養

2025年2月,教育部副部長吳巖應港澳特區政府邀請,率團赴港澳宣講《教育強國建設規劃綱要 (2024—2035 年)》。在港澳期間,吳巖闡釋了教育強國目標的任務,并與特區政府官員交流推進人工智能人才培養的辦法。這一系列行動體現出人工智…

java springboot 中調用 C++ 方法

以下是一個完整的 Spring Boot 調用 C 方法的 Demo,采用 JNI (Java Native Interface) 方式實現,包含詳細步驟說明: 1. 項目結構 demo-project/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/example/…

JSX基礎 —— 識別JS表達式

在JSX中可以通過 大括號語法 { } 識別JS中的表達式,比如常見的變量、函數調用、方法調用等等 1、使用引號傳遞字符串 2、使用JavaScript變量 3、函數調用和方法調用 (函數和方法本質沒有區別,這里默認: 函數是自己定義的,方法是…

git從零學起

從事了多年java開發,一直在用svn進行版本控制,如今更換了公司,使用的是git進行版本控制,所以打算記錄一下git學習的點滴,和大家一起分享。 百度百科: Git(讀音為/g?t/)是一個開源…

關于對async和await的初步理解

async 包裹著的函數中進程是堵塞的 ,是同步化的, await等待的是個promise對象,否則"await" 對此表達式的類型沒有影響 例1 async getDataDD(){await this.fun1()await this.fun2()// await Promise.all([this.fun1(),this.fun…

MySQL—Keepalived+MySQL雙主復制實現MySQL高可用

Keepalived原理: Keepalived 的原理主要基于虛擬路由冗余協議(VRRP,Virtual Router Redundancy Protocol)、健康檢查機制和負載均衡機制,以下為你詳細介紹: VRRP 協議實現高可用:VRRP 是 Keep…

SpringBoot AOP 源碼解析

文章目錄 一、AOP 代碼示例1. 準備注解和目標類2. 定義 Aspect3. 結論 二、源碼1. AOP 實現核心類2. 代理類的創建流程2.1 核心類 AbstractAutoProxyCreator2.2 AbstractAutoProxyCreator#postProcessBeforeInstantiation2.3 AspectJAwareAdvisorAutoProxyCreator#shouldSkip2.…

Linux:Shell環境變量與命令行參數

目錄 Shell的變量功能 什么是變量 變數的可變性與方便性 影響bash環境操作的變量 腳本程序設計(shell script)的好幫手 變量的使用:echo 變量的使用:HOME 環境變量相關命令 獲取環境變量 環境變量和本地變量 命令行…

MySQL數據庫入門到大蛇尚硅谷宋紅康老師筆記 高級篇 part 5

第05章_存儲引擎 為了管理方便,人們把連接管理、查詢緩存、語法解析、查詢優化這些并不涉及真實數據存儲的功能劃分為MySQLserver的功能,把真實存取數據的功能劃分為存儲引擎的功能。所t以在MySQLserver完成了查詢優化后,只需按照生成的執行…

JAVA面試_進階部分_23種設計模式總結

1. 單例模式:確保某一個類只有一個實例,而且自行實例化并向整個系統提供這 個實例。 (1)懶漢式 public class Singleton { /* 持有私有靜態實例,防止被引用,此處賦值為null,目的是實現延遲加載…

滲透測試(WAF過濾information_schema庫的繞過,sqllib-46關,海洋cms9版本的注入)

1.sqlin-lib 46關 打開網站配置文件發現 此網站的對ID進行了排序,我們可以知道,order by接不了union ,那我們可以通過測試sort,rond等函數,觀察網頁的反饋來判斷我們的盲注是否正確 我們發現 當參數有sort來排序時&…

AORO M6北斗短報文終端:將“太空黑科技”轉化為安全保障

在衛星導航領域,北斗系統作為我國自主研發的全球衛星導航系統,正以其獨特的短報文通信功能引發全球范圍內的廣泛關注。這一突破性技術不僅使北斗系統在全球四大導航系統中獨樹一幟,具備了雙向通信能力,更通過遨游通訊推出的AORO M…

ARCGIS國土超級工具集1.4更新說明

ARCGIS國土超級工具集V1.4版本,功能已增加至54 個。本次更新在V1.3版本的基礎上,新增了“拓撲問題修復工具”并同時調整了數據處理工具欄的布局、工具操作界面的選擇圖層下拉框新增可選擇位于圖層組內的要素圖層功能、數據保存路徑新增了可選擇數據庫內的…

Element Plus中el-select選擇器的下拉選項列表的樣式設置

el-select選擇器,默認樣式效果: 通過 * { margin: 0; padding: 0; } 去掉內外邊距后的樣式效果(樣式變丑了): 通過 popper-class 自定義類名修改下拉選項列表樣式 el-select 標簽設置 popper-class"custom-se…

基于Linux系統的物聯網智能終端

背景 產品研發和項目研發有什么區別?一個令人發指的問題,剛開始工作時項目開發居多,認為項目開發和產品開發區別不大,待后來隨著自身能力的提升,逐步感到要開發一個好產品還是比較難的,我認為項目開發的目的…

java excel xlsx 增加數據驗證

隱藏表下拉框 // 創建隱藏工作表存儲下拉框數據String hiddenSheetName "HiddenSheet"System.currentTimeMillis();Sheet hiddenSheet workbook.createSheet(hiddenSheetName);//設置隱藏sheetworkbook.setSheetHidden(workbook.getSheetIndex(hiddenSheetName), …

linux中安裝部署Jenkins,成功構建springboot項目詳細教程

參考別人配置Jenkins的git地址為https,無法連上github拉取項目,所以本章節介紹通過配置SSH地址來連github拉取項目 目錄: 1、springboot項目 1.1 創建名為springcloudproject的springboot項目工程 1.2 已將工程上傳到github中,g…

提升數據洞察力:五款報表軟件助力企業智能決策

概述 隨著數據量的激增和企業對決策支持需求的提升,報表軟件已經成為現代企業管理中不可或缺的工具。這些軟件能夠幫助企業高效處理數據、生成報告,并將數據可視化,從而推動更智能的決策過程。 1. 山海鯨報表 概述: 山海鯨報表…

MySQL中replace函數用法

語法:replace(field,search,replace) 說明:field - 數據庫表的列名 search - 需要替換的字符串 replace - 替換成的字符串 語義:將列名:field 中出現的search字符串,全部替換成replace字符串。 例子: …