IP TCP和DNS與HTTP的密切關係

2021-08-21 07:24:21 字數 2642 閱讀 4582

這次先講講ip、tcp和dns與http的密切關係。

•ip協議的概念與作用

•tcp協議的概念與作用

•tcp協議的三次握手過程

•dns的概念與作用

•http與tcp、ip和dns的關係

ip的概念:

英文為internet protocol,翻譯成網際協議,位於網路層。

這個網際協議這個名字聽起來有點誇張,但事實就是這樣,因為幾乎所有使用網路的系統都會用到ip協議。tcp/ip協議族中的ip指的是網際協議,它在協議名稱中佔據了一半的位置,從這可以知道ip協議是多麼的重要。這裡我們需要注意兩個概念,ip和ip位址,可能有人會把它搞混。ip其實是一種協議的名稱,而ip位址是乙個位址。

ip的作用:

把各種資料報傳送給對方。如果要保證確定傳送到對方那裡,則需要滿足各類條件,其中最重要的兩個條件是ip位址和mac位址。

(3)區別:ip位址可變換,但mac位址基本上不會更改。

如果你想要保證資料報傳送到對方去,那就必須滿足各種條件,其中最重要的兩個條件是ip位址和mac位址。

什麼是ip位址呢?ip位址指明了節點被分配到的位址。而什麼又是mac位址呢? mac位址的網絡卡所屬的固定位址。形象一點來說,mac位址就像我們的身份證號,每乙個mac位址是唯一的,並且基本不會改變。這裡我為什麼說基本不會改變呢?因為目前我們可以通過軟體修改,也就是用軟體來修改mac位址。ip位址是可以和mac位址進行配對的。

我們來了解一下使用arp協議憑藉mac位址進行通訊

什麼是arp協議呢?arp協議它是一種用以解析位址的協議,我們只要知道通訊方的ip位址,就可以反查出對應的mac位址。也就是說ip間的通訊依賴於mac位址。

我們來看一下這個圖:

在網路上,通訊的雙方通常都是要經過多台計算機或者網路裝置中轉才能連線到對方。而在進行中轉時,會利用下一站中轉裝置的mac位址來搜尋下乙個中轉目標,這時我們就是靠arp協議來進行處理。

(1)tcp的概念:tcp英文為transmission control protocol ,翻譯成傳輸控制協議,位於傳輸層。

(2)tcp有什麼作用呢?它是提供可靠的 位元組流服務。

(3)什麼是位元組流服務?所謂的位元組流服務指的是,為了方便傳輸,將大塊資料分割成  以報文段為單位的資料報  進行管理

(4)為何強調可靠呢?因為它能夠把資料準確可靠地傳送給對方。總而言之,tcp協議就是為了 更容易傳送大資料 才把資料分割,而且tcp協議能夠確認資料  最終是否送達對方。

(5)tcp協議如何才能保證提供可靠的服務?它採用了三次握手策略。 也就是用tcp協議 把資料報送出去後,它不會對傳送後的情況置之不理,它一定會想對方確認  是否成功送達。

我們來看一下這個圖:

握手過程中使用了tcp的標誌-syn和ack。傳送端首先傳送乙個s帶syn標誌的資料報給對方。接收端接到後,就會回傳乙個帶有syn/ack標誌的資料報  以表示傳達確認資訊。最後,傳送端再回傳乙個帶ack標誌的資料報 給接收端, 此時代表「握手」結束。除了三次握手來保證通訊的可靠性,tcp協議還有其他各種手段來保證通訊的可靠性,這裡我就不過多講解了,大家可以自己翻閱相關資料去了解下。

(1)dns的概念:英文為domain name system ,翻譯成網域名稱系統,位於應用層。

(2)dns有什麼作用呢?  它是提供網域名稱到ip位址之間的解析服務。

我們平時訪問乙個**,通常都是使用主機名或網域名稱來訪問,而不是直接通過ip位址來訪問。為什麼我們不用ip位址去訪問呢?因為ip位址是一組純數字,比較難記。比如說,我們極客學院的ip位址為121.42.104.52,而網域名稱為www.itcen.cn。    如果我們用ip位址去訪問**,那是很難記得住的。而用網域名稱就比較容易記住了。但是呢,計算機和人不一樣,你要計算機去理解名稱,相對來說就比較困難了。計算機比較擅長處理一長串數字。為了解決這個問題,就有了dns服務。dns協議它是提供  通過網域名稱 來查詢ip位址,或者逆向 從ip位址反查網域名稱 的服務。

最後我們通過一張圖來了解一下http與tcp、ip和dns的關係,看看它們在通訊的過程中各種發揮了什麼作用。

首先是,我想訪問**,將網域名稱傳送給dns去解析,dns解析後將**的ip位址返回給客戶端,然後通過ip位址發起http請求。http此時的作用是 生成針對目標web伺服器(我們這裡指的是**的伺服器)的http請求報文,然後將請求報文傳送給傳輸層,此時為了方便通訊,tcp會將http請求報文  分割成報文段,這些報文段會有乙個序號,這裡的報文段哪乙個先傳送哪乙個先到達,它們是按序傳送的。只要建立起tcp連線,客戶端與伺服器之間的報文交換就不會丟失,不會被破壞,也不會在接收時出現錯序。接著到了網路層,此時ip協議的職責是,搜尋對方的位址,一邊中轉一邊傳送。然後找到了伺服器的位置,此時伺服器的傳輸層中 tcp的職責是  接收到對方傳送過來的報文段後,對其進行重組,這裡的重組是按序號進行重組的。然後到了伺服器的應用層,http會對客戶端請求的內容進行處理。處理完後,伺服器同樣會利用tcp/ip通訊協議向客戶端進行回傳響應。

最後客戶端收到響應後,將內容輸出頁面顯示。即完成了一次http事務。

HTTP劫持和DNS劫持 實際JS對抗

1 對於div注入的,可以初始化時檢查全部html 檢測是否被劫持比較簡單,但對抗就略麻煩,這個在說完第2點之後再解釋。2 對於js注入,可以在window監聽domnodeinserted事件。事件有srcelement,可以獲取到剛插入的dom節點。這裡開始簡單粗暴的做正則匹配,匹配所有url。...

HTTP劫持和DNS劫持 實際JS對抗

1 對於div注入的,可以初始化時檢查全部html 檢測是否被劫持比較簡單,但對抗就略麻煩,這個在說完第2點之後再解釋。2 對於js注入,可以在window監聽domnodeinserted事件。事件有srcelement,可以獲取到剛插入的dom節點。這裡開始簡單粗暴的做正則匹配,匹配所有url。...

HTTP劫持和DNS劫持 騰訊的實際業務分析

簡單介紹一下http劫持和dns劫持的概念,也就是運營商通過某些方式篡改了使用者正常訪問的網頁,插入廣告或者其他一些雜七雜八的東西。首先對運營商的劫持行為做一些分析,他們的目的無非就是賺錢,而賺錢的方式有兩種 1 對正常 加入額外的廣告,這包括網頁內浮層或彈出廣告視窗 在具體的做法上,一般分為dns...