學習筆記知識點專項(計算機網路)

2021-09-24 13:16:43 字數 3779 閱讀 8836

整體過程分為五個部分:

1.dns網域名稱解析成ip位址;

主要考察五層協議棧的理解

1、應用層:dns解析網域名稱為目的ip,通過ip找到伺服器路徑,客戶端向伺服器發起http會話,然後通過運輸層tcp協議封裝資料報,在tcp協議基礎上進行傳輸

2、運輸層:http會話會被分成報文段,新增源、目的埠;tcp協議進行主要工作

3、網路層:為資料報選擇路由,ip協議進行主要工作

事件順序

(1) 瀏覽器獲取輸入的網域名稱www.baidu.com

(2) 瀏覽器向dns請求解析www.baidu.com的ip位址

(4) 瀏覽器與該伺服器建立tcp連線(預設埠號80)

(6) 伺服器通過http響應把首頁檔案傳送給瀏覽器

(7) tcp連線釋放

(8) 瀏覽器將首頁檔案進行解析,並將web頁顯示給使用者。

2.與目的主機進行tcp連線(三次握手);

3.傳送與接收資料(瀏覽器與目的主機開始http訪問過程);

4.瀏覽器解析html**並請求**中資源,瀏覽器對頁面渲染呈現頁面;

5.與目的主機斷開tcp連線(四次揮手)。

下面對每乙個過程進行分別說明:

dns網域名稱解析過程如下:

三次握手過程如下:

tcp首部:20位元組,全雙工,占用2個計算機之間的通訊線路,知道它被一方或雙方關閉為止

tcp協議+埠號:唯一標識主機中的乙個程序

先來介紹一下常用的標識:

seq:序號,tcp中傳送的位元組流中的每乙個位元組都要按順序去編號,例如一段報文的序號字段值為107,而帶有資料100欄位,下一段不出意外序號會從207開始。

ack:確認號,期望收到對方下乙個報文的第乙個資料位元組的序號。例如,b收到a收到的報文,序列號字段301,資料長度200位元組,b收到序號到500的位元組,所以b期望收到a下乙個傳送過來報文的ack為501,於是b傳送給a的ack=501。

offset:數偏移,由於頭部有可選字段,長度不固定,因此它指出tcp報文的資料距離tcp報文的起始處有多遠

reserve:保留,目前為止標位0

tcp控制位(重要的):

三次握手:

一開始client和server都處於closed狀態,假設client主動開啟連線(客戶端向伺服器端傳送tcp連線請求)

1.client將標誌位syn置為1,隨機產生乙個值seq=x(序號),並將該資料報傳送給server,client進入syn-sent狀態,等待server確認(這個過程中ack=0,不寫出);

2.之前server處於listen狀態,在收到資料報後由syn=1知道是client在請求建立連線,server將標誌位syn和ack都置為1,ack=x+1表示期望下次收到client發過來的序列號為x+1,並隨機生成乙個自己的seq=y,並將該資料報傳送給client以確認連線請求,然後server進入syn-rcvd狀態;

(兩步都要檢查ack  ack↓)

3.client收到確認後,檢查ack是否為x+1,ack是否為1,如果正確則將標誌位ack置為1,ack=y+1,並將該資料報傳送給server,server檢查ack是否為y+1,ack是否為1,如果正確則連線成功,client和server進入established狀態,完成三次握手,隨後client和server之間可以開始傳輸資料了。

傳送與接收資料(瀏覽器和目的主機開始http訪問過程)過程如下:

1.tcp連線建立成功後,客戶端向web伺服器傳送請求(get/post),get 路徑/檔名 http/1.0 ; 例如:get /mydir/index.html http/1.0

2.web伺服器收到請求並處理請求,將從它的子目錄中搜尋index.html檔案,如果找到該檔案,web伺服器把該檔案內容傳送給相應的web瀏覽器

3.為了告知瀏覽器,web伺服器首先傳送一些http頭資訊,然後傳送具體內容(應答碼/狀態碼)

瀏覽器解析html,並且請求html中需要的資料,然後渲染html頁面,渲染過程如下:

瀏覽器得到html**之後:

1.解析html**,構建dom樹(document)

2.將dom樹和css樣式進行附著構建呈現樹

3.布局:計算每個呈現樹節點的大小和位置資訊

四次揮手過程:

1.client將標誌位fin=1, 生成seq = u(u為前面傳輸的資料最後乙個序號+1),將報文傳送給server,client進入了fin-wait-1狀態;

2.server收到fin後,將ack置為1,ack=u+1,帶上序列號seq=v,將報文發給client,進入close-wait狀態;

3.client收到ack,進入fin-wait-2狀態,等待server傳送釋放連線報文並且將未傳送完的資料都傳送完

4.server將最後的資料傳送完,想client傳送乙個fin=1,ack=u+1,此時序列號假設為seq=w,傳送報文,server進入last-ack狀態,等待client確認;

5.client收到server的報文,必須發出確認,ack=1,ack=w+1,而自己的序列號是seq=u+1,此時client進入time-wait狀態,等待時間為2msl(最長報文壽命)

6.server收到client發出的確認,立即進入closed狀態。結束tcp連線

time-wait(2msl)為什麼?

①確保有足夠的時間讓對端收到ack,被動關閉那段未收到ack則觸發被動端重發fin,一來一去剛好是2msl

②防止新舊連線混淆

為什麼四次揮手?

因為tcp是全雙工,傳送方和接收方都需要finish報文和ack報告,所以傳送方和接收方各兩次即可,但一方是被動的,所以則需要四次。

以上,是客戶端訪問乙個頁面的全過程。

2.傳送長度:get引數有長度限制一般為1024byte,post無限制2m;

3.安全性:get方式的安全性低,post安全性高(如果包含機密資訊建議用post);

4.用途:get一般用於資料查詢,post一般用於資料新增、修改、刪除。

1.tcp有連線,可靠  //  udp無連線,不可靠

2.tcp面向位元組流,提供可靠的交付服務,資料無差錯、不丟失、不重複且有序  //  udp面向報文,無擁塞控制,無連線狀態,適用於**通訊

3.tcp只支援點對點通訊(一對一,全雙工) //  udp支援一對

一、一對多、多對多的通訊

4.tcp首部最低20位元組(重量級) //  udp首部開銷小(8位元組)輕量級

http:是網際網路上應用最為廣泛的一種網路協議,是乙個客戶端和伺服器端請求和應答的標準(tcp),用於從www伺服器傳輸超文字到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少。

https:是以安全為目標的http通道,簡單講是http的安全版,即http下加入ssl層,https的安全基礎是ssl,因此加密的詳細內容就需要ssl。

http 和 https的區別主要如下:

(1)https協議需要到ca申請證書,一般免費的證書比較少,因此需要一定的費用

(2)http是超文字傳輸協議,資訊是明文傳輸,https是具有安全性的ssl加密傳輸協議。

(3)http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443

(4)http的連線很簡單,是無狀態的;https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,比http協議要安全。

計算機網路知識點

internet protocol有7層。卡車運硬碟問題 相同時間內兩種方案要傳輸相同的資料量。tb gb,b means byte,1 byte 8 bits.what is a connection it consists of four values 1.source ip 2.source ...

計算機網路知識點

應用層 http 傳輸層 tcp,udp 網路層 ip 資料鏈路層 mac 物理層 網線 傳輸層中用tcp協議傳送資料 三次握手 syn 同步 ack 答覆 fin 結束 6.http的請求報文 請求行 request line 請求頭部 header 空行,請求資料 requesdata 請求行 ...

計算機網路知識點

udptcp 是否連線 無連線面向連線 是否可靠 不可靠可靠傳輸,使用流量控制和擁塞控制 傳輸方式 面向報文 面向位元組流 首部開銷 首部開銷小,僅8位元組 首部最小20位元組,最大60位元組 通訊方式 全雙工支援單播 多播和廣播 僅支援單播 流量控制 防止傳送方發的太快,耗盡接收方的資源,從而使接...