1. 程式人生 > >【前端】【計算機網路原理】網路基礎總結

【前端】【計算機網路原理】網路基礎總結

TCP/IP協議分層

協議

一、應用層
  • 協議:HTTP 提供了web文件的請求和傳送
    1. SMTP提供了電子郵件報文的傳輸
    2. FTP提供了兩個端系統之間的檔案傳輸
    3. POP3郵局協議
  • 功能:應用層是網路應用程式以及它們的應用層協議存留的地方。
  • 資訊分組:
二、運輸層
  • 協議:因特網的運輸層在應用程式端點之間傳輸應用層的報文。

    1. TCP協議:嚮應用程式提供面向連線的服務。這種服務包括了應用層報文向目的地確保傳遞和流量控制(即傳送方/接收方速率匹配)。TCP也將長報文分為短報文,並提供擁塞控制機制,因此當網路擁塞時,源抑制其傳輸速率。
    2. UDP協議向它的應用程式提供無連線服務。這是一種不提供不必要的服務的服務,沒有可靠性,沒有流量控制,沒有擁塞控制。
  • 傳輸層功能:為端到端連線提供傳輸服務,這種傳輸服務分為可靠和不可靠的,其中TCP是典型的可靠傳輸,而Udp則是不可靠傳輸。為端到端連線提供流量控制,差錯控制,服務質量(Quality of Service,QoS)等管理服務。

  • 資訊分組:報文段
三、網路層
  • 協議:IP協議 ICMP ARP
  • 功能:因特網的網路層負責將稱為資料報的網路層分組從一臺主機移到另一臺主機。在一臺源主機中的因特網運輸層協議(TCP或UDP)向網路層遞交運輸層報文段和目的地址。
  • 資訊分組:資料報
四、鏈路層
  • 協議:
  • 功能:因特網的網路層通過源和目的地之間的一系列路由器路由資料報。為了將分組從一個結點(主機或路由器)移動到路徑的下一個結點,網路層必須依靠鏈路層的服務。
  • 資訊分組:
五、物理層
  • 協議:
  • 功能:把幀的一個一個位元從一個結點移動到下一個結點
  • 資訊分組:位元

OSI協議分層

OSI協議
- 簡述ISO OSI/RM模型各層功能,說明哪些層次提供的是端到端的功能,哪些層次提供的是點到點的功能。幀、報文、位元和訊息分別是哪些層次的處理單元?

物理層:物理介質上透明的傳送位流。利用傳輸介質為資料鏈路層提供物理連線,實現位元流的透明傳輸

資料鏈路層:相鄰節點無差錯的傳送幀。負責建立和管理節點間的鏈路。

網路層:分組傳送,路由選擇,流量控制。通過路由演算法,為報文或分組通過通訊子網選擇最適當的路徑。該層控制資料鏈路層與物理層之間的資訊轉發,建立、維持與終止網路的連線。具體的說,資料鏈路層的資料在這一層被轉換為資料包,然後通過路徑選擇、分段組合、順序、進/出路由等控制,將資訊從一個網路裝置傳送到另一個網路裝置。

傳輸層:端到端的資料傳輸。(運輸層為執行在不同主機上的應用程序之間提供了邏輯通訊功能)

會話層:會話管理與資料傳輸同步。是OSI參考模型的第五層,是使用者應用程式和網路之間的介面。主要任務:向兩個實體的表示層提供建立和使用連線的方法。將不同實體之間的表示層的連線稱為會話。因此會話層的任務就是組織和協調兩個會話程序之間的通訊,並對資料交換進行管理。

表示層:資料格式轉換。表示層是OSI模型的第六層,它對來自應用層的命令和資料進行解釋,對各種語法賦予相應的含義,並按照一定的格式傳送給會話層。
  其主要功能是“處理使用者資訊的表示問題,如編碼、資料格式轉換和加密解密”等。
  
應用層:與使用者應用程序介面。應用層是OSI參考模型的最高層,它是計算機使用者,以及各種應用程式和網路之間的介面。

從傳輸層,會話層,表示層,應用層是端到端,物理層,資料鏈層,網路層都是點到點的功能
幀是資料鏈路層,報文是傳輸層,位元是物理層,訊息是應用層

TCP與UDP的區別:
  • 連線性:TCP面向連線;UDP是無連線的。(TCP需要三次握手,而UDP不需要握手)
  • 可靠性:TCP提供可靠的服務;UDP盡最大努力交付,即不保證可靠交付。(通過TCP連線傳送的資料,無差錯,不丟失,不重複,且按序到達;UDP則可能出現丟包,不保證順序到達)
  • 面向物件:TCP面向位元組流;UDP是面向報文的。( 面向報文的是指傳送方的UDP對應用層交下來的資料報文,不合並不拆分,只是在其上面加上首部後就交給了下面的網路層。)。
  • 差錯擁塞控制:UDP沒有差錯和擁塞控制,因此網路出現擁塞不會使源主機的傳送速率降低。(TCP擁塞控制,當另一端出現阻塞時,會降低傳送速率)。
  • 系統開銷:TCP首部開銷20位元組(具有報文段序號,應答序號,視窗大小等);UDP的首部開銷小,只有8個位元組(2個位元組的源埠,2個位元組的目的埠,2個位元組的報文長度,2個位元組的校驗和)。
  • 通道:TCP的邏輯通訊通道是全雙工的可靠通道,即可以流入也可以流出的通道;UDP則是不可靠通道。
  • 有序性:TCP是有序的位元組流;UDP則是無序的。(這是由於tcp頭部存在報文段的序號,而udp沒有)
  • 瀏覽器位址列輸入一個URL到螢幕顯示該網頁時都發生了什麼
    1. 如果輸入的是域名而不是IP首先要進行DNS定址。
    2. 瀏覽器與伺服器通過三次握手建立TCP連線後,瀏覽器向伺服器傳送http請求(Get和post,協議版本,是否快取,url,是否傳送cookies)
    3. 伺服器處理請求返回http響應。
    4. 瀏覽器根據資源型別,將資源組織成在螢幕上顯示的影象(網頁渲染)解析HTML,生成DOM樹;解析css檔案;生成渲染樹(受樣式影響,比如不可見元素和display:none的元素都不在樹中);繪製渲染樹
    5. TCP四次揮手關閉連線。(伺服器長期未接收到http請求報文時會關閉連線)
  • DNS定址過程
    假設一個客戶需要獲取www.amazon.com的IP地址。客戶首先與根伺服器之一聯絡,它將返回頂級域名com的頂級域伺服器的IP地址。該客戶與這些TLD伺服器之一聯絡,它將為Amazon.com返回權威伺服器的IP地址。最後,該客戶與Amazon.com的權威伺服器之一聯絡,它為主機名www.amazon.com返回其IP地址。
  • TCP三次握手
    TCP三次握手
  • TCP四次揮手
    TCP四次揮手
  • DNS快取。(瀏覽器、系統、ISP、路由器、DNS伺服器)
    在一個請求鏈中,當某DNS伺服器接收到一個DNS回答,它能將該回答中的資訊快取在本地儲存器中。如果在DNS伺服器中快取了一臺主機名/IP地址對,另一對相同主機名的查詢到達該DNS伺服器時,該DNS伺服器就能夠提供所需要的IP地址,即使它不是該主機名的權威伺服器。由於主機名與IP地址之間的對映不是永久的,DNS伺服器在一段時間之後將丟失快取的資訊。

HTTP協議

cookie,localstorage,sessionstorage的區別

特性 cookie sessionStorage localStorage
共同點 都是瀏覽器端的快取技術 都是同源的
儲存資料大小 4k 5M
與伺服器端通訊 每次發生http請求都要傳送給伺服器,如果使用cookie儲存過多資料會帶來效能問題。cookie資料始終在同源的http請求中攜帶(即使不需要),即cookie在瀏覽器和伺服器之間來回傳遞 僅在客戶端(即瀏覽器)中儲存,不參與和伺服器的通訊。僅在本地儲存
易用性 需要程式設計師自己封裝,原生的cookie介面不友好 源生介面可以接受,亦可再次封裝來對Object和Array有更好的支援
資料有效期 一般由伺服器生成,可設定失效時間。如果在瀏覽器端生成Cookie,預設是關閉瀏覽器後失效。 僅在當前瀏覽器視窗關閉前有效,自然也就不可能持久保持 始終有效,視窗或瀏覽器關閉也一直儲存,因此用作持久資料
作用域 在所有同源視窗都是共享的。 不在不同的瀏覽器視窗共享,即使是同源的 在所有同源視窗都是共享的。
  • 概述

1.雖然http協議不保留狀態,但是利用Cookie可以在客戶端保留一些鍵值對, 例如:使用者名稱和密碼。當再次訪問相同的網站,瀏覽器會自動把這些資料提 交給伺服器 。
2. cookie都是採用key-value方式儲存資訊。每個cookie包含很多專案:名(name)、 值(value)、域(domain)、路徑(path)、過期時間(expires)。
cookie的內容
- cookie的欄位

名稱: RAIL_DEVICEID
內容: EDA··············LkM0vMoKN4Ed1qFQv
域:  .12306.cn
路徑: /
傳送用途:   各種連線
指令碼可訪問:  是
已建立:    201828日星期四 下午4:08:45
過期時間:   20301231日星期二 上午8:00:00
session
  • 概述
    1. http協議是無狀態的,但是通過session可以在Web伺服器上臨時儲存 少量變數的狀態。一般用來儲存所有網頁都可以使用到的資料,例 如,儲存已登入的使用者名稱。
    2. 每次訪問設定了session變數的JSP網頁,瀏覽器都會與 伺服器建立一 個會話,伺服器會為這次會話生成一個會話id(session id)並用 cookie傳送給瀏覽器儲存起來。
    3. 在會話期間在伺服器上設定的所有session變數都與該會話的會話id關 聯,因此,在每次訪問該網站時要通過cookie把該會話id傳送給服務 器。
    4. 如果該瀏覽器長時間不訪問該網站,也就是長於超時時間,伺服器 會自動結束本次會話。結束會話的另一種方法是完全關閉該瀏覽器 及其副本。Tomcat的會話超時時間預設為三十分鐘
  • 如何在網頁之間傳遞引數

    如何在網頁之間傳遞引數

跨域問題

什麼是跨域

解決方法

一、jsonp

二、window.name

三、document.domain

四、使用HTML5中新引進的window.postMessage方法來跨域傳送資料