網絡指針指向一塊內存,它的內容是所指內存的地址;引用是某塊內存的別名;可重入函數

1.OSI七層模型以及TCP/IP四層模型



層次名稱

功    能

協    議

網絡接口

(Host-to-Net Layer)

負責實際數據的傳輸,對應OSI參考模型的下兩層

HDLC(高級鏈路控制協議)

PPP(點對點協議)

SLIP(串行線路接口協議)

網際層

(Inter-network Layer)

負責網絡間的尋址

數據傳輸,對應OSI參考模型的第三層

IP(網際協議)

ICMP(網際控制消息協議)

ARP(地址解析協議)

RARP(反向地址解析協議)

傳輸層

(Transport Layer)

負責提供可靠的傳輸服務,對應OSI參考模型的第四層

TCP(控制傳輸協議)

UDP(用戶數據報協議)

應用層

(Application Layer)

負責實現一切與應用程序相關的功能,對應OSI參考模型的上三層

FTP(文件傳輸協議)

HTTP(超文本傳輸協議)

DNS(域名服務器協議)

SMTP(簡單郵件傳輸協議)

NFS(網絡文件系統

2.HTTP和HTTPS區別

http是超文本傳輸協議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協議

3.HTTP請求報文

一個HTTP請求報文由請求行(request line)、請求頭部(header)、空行和請求數據


3.HTTP協議的請求方法有GET、POST


GET 方法提交數據不安全,數據置於請求行,客戶端地址欄可見;
GET 方法提交的數據大小限制在255 個字符之內

POST 方法提交數據安全,數據置於消息主體內,客戶端不可見
POST 方法提交的數據大小沒有限制

4.表單提交中get和post方式的區別

get安全性非常低,post安全性較高。

.get傳送的數據量較小,不能大於2KB。post傳送的數據量較大

對於get方式,服務器端用Request.QueryString獲取變量的值,對於post方式,服務器端用Request.Form獲取提交的數據

.get是從服務器上獲取數據,post是向服務器傳送數據。 

5.TCP的三次握手和四次揮手



中斷連接端可以是Client端,也可以是Server端。

爲什麼連接的時候是三次握手,關閉的時候卻是四次握手?
答:因爲當Server端收到Client端的SYN連接請求報文後,可以直接發送SYN+ACK報文。其中ACK報文是用來應答的,SYN報文是用來同步的。但是關閉連接時,當Server端收到FIN報文時,很可能並不會立即關閉SOCKET,所以只能先回復一個ACK報文,告訴Client端,"你發的FIN報文我收到了"。只有等到我Server端所有的報文都發送完了,我才能發送FIN報文,因此不能一起發送。故需要四步握手。

3次握手”的目的是“爲了防止已失效的連接請求報文段突然又傳送到了服務端,因而產生錯誤

6.session和cookie的區別

cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。

考慮到安全應當使用session

考慮到減輕服務器性能方面,應當使用COOKIE。

cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在服務器端保持狀態的方案

ession機制是一種服務器端的機制,服務器使用一種類似於散列表的結構(也可能就是使用散列表)來保存信息

當你在瀏覽網站的時候,WEB 服務器會先送一小小資料放在你的計算機上,Cookie 會幫你在網站上所打的文字或是一些選擇,

都紀錄下來。當下次你再光臨同一個網站,WEB 服務器會先看看有沒有它上次留下的 Cookie 資料,有的話,就會依據 Cookie

裏的內容來判斷使用者,送出特定的網頁內容給你。

 當程序需要爲某個客戶端的請求創建一個session時,服務器首先檢查這個客戶端的請求裏是否已包含了一個session標識

(稱爲session id),如果已包含則說明以前已經爲此客戶端創建過session,服務器就按照session id把這個session檢索出來

使用(檢索不到,會新建一個),如果客戶端請求不包含session id,則爲此客戶端創建一個session並且生成一個與此session相

關聯的session id

這個session id將被在本次響應

中返回給客戶端保存

保存這個session id的方式可以採用cookie

常被使用的一種技術叫做URL重寫,就是把session id直接附加在URL路徑的後面。還有一種技術叫做表單隱藏字段。就是服務器

會自動修改表單,添加一個隱藏字段,以便在表單提交時能夠把session id傳遞迴服務器


7.redirect與forward區別

Redirect URL重新定向:可以是任意的URL 不能共享request裏面的數據 一般用於用戶註銷登錄時返回主頁面和跳轉到其它的網站等等
Forward 頁面的轉發:只能是同一個Web應用程序的其他Web組件 轉發頁面和轉發到的頁面可以共性request裏面的數據 一般用於用戶登錄的時候根據角色轉發到相應的模塊等等

8.小結TCP與UDP的區別:
1.基於連接與無連接;
2.對系統資源的要求(TCP較多,UDP少);
3.UDP程序結構較簡單;
4.流模式與數據報模式 ;
5.TCP保證數據正確性,UDP可能丟包,TCP保證數據順序,UDP不保證。

9.

應用層(Application layer) 提供應用程序間通信 FTP telnet 

表示層(Presentation layer) 處理數據格式,數據加密等. 加密 

會話層(Session layer) 建立,維護和管理會話 SQL

傳輸層(Transport layer) 建立主機端到端連接TCP UDP

網絡層(Network layer) 尋址和路由選擇 IP IPX

數據鏈路層(Data link layer) 提供介質訪問,鏈路管理等 ATM

物理層(Physical layer) 比特流傳輸 RJ45 802.3  

ISO/OSI 只是個參考模型在實際應用中大家都使用TCP/IP

TCP/IP

OSI

應用層

應用層

表示層

會話層

主機到主機層(TCP)(又稱傳輸層)

傳輸層

網絡層(IP)(又稱互聯層)

網絡層

網絡接口層(又稱鏈路層)

數據鏈路層

物理層

網絡層包括:IP(Internet Protocol)協議、ICMP(Internet Control Message Protocol)

控制報文協議、ARP(Address Resolution Protocol)地址轉換協議、RARP(Reverse ARP)反向地址轉換協議

IP是網絡層的核心通過路由選擇將下一條IP封裝後交給接口層IP數據報是無連接服務

ICMP是網絡層的補充可以回送報文用來檢測網絡是否通暢

Ping命令就是發送ICMP的echo包通過回送的echo relay進行網絡測試

ARP是正向地址解析協議通過已知的IP尋找對應主機的MAC地址

RARP是反向地址解析協議通過MAC地址確定IP地址

1.集線器:物理層設備,用於信號的放大和連接多個終端。

2.交換機:數據鏈路層設備,有多個衝突域和廣播域,有多個端口以用於連接各個主機,使用物理地址(MAC地址),轉發數據較快。

3.路由器:網絡層設備,阻止廣播,安全性高,使用邏輯地址(IP地址),轉發數據較慢。

10.

滑動窗口協議

1.概念

     滑動窗口協議,也稱爲回退N步協議(Go-Back-N,GBN)中,允許發送方發送多個分組(當有多個分組可用時)而不需等待確認,但它受限於在流水線 中爲未確認的分組數不能超過某個最大允許數N。滑動窗口協議是TCP使用的一種流量控制方法,此協議能夠加速數據的傳輸。

    只有在接收窗口向前滑動時(與此同時也發送了確認),發送窗口才有可能向前滑動。

    收發兩端的窗口按照以上規律不斷地向前滑動,因此這種協議又稱爲滑動窗口協議。

  當發送窗口和接收窗口的大小都等於1時,就是停止等待協議。

  當發送窗口大於1,接收窗口等於1時,就是回退N步協議。

  當發送窗口和接收窗口的大小均大於1時,就是選擇重發協議。

  協議中規定,對於窗口內未經確認的分組需要重傳。這種分組的數量最多可以等於發送窗口的大小,即滑動窗口的大小n減去1(因爲發送窗口不可能大於(n-1),起碼接收窗口要大於等於1)。

2.工作原理

       TCP滑動窗口用來暫存兩臺計算機間要傳送的數據分組。每臺運行TCP協議的計算機有兩個滑動窗口:一個用於數據發送,另一個用於數據接收。發送端待發數 據分組在緩衝區排隊等待送出。被滑動窗口框入的分組,是可以在未收到接收確認的情況下最多送出的部分。滑動窗口左端標誌X的分組,是已經被接收端確認收到 的分組。隨着新的確認到來,窗口不斷向右滑動。

       TCP 協議軟件依靠滑動窗口機制解決傳輸效率和流量控制問題。它可以在收到確認信息之前發送多個數據分組。這種機制使得網絡通信處於忙碌狀態,提高了整個網絡的 吞吐率,它還解決了端到端的通信流量控制問題,允許接收端在擁有容納足夠數據的緩衝之前對傳輸進行限制。在實際運行中,TCP滑動窗口的大小是可以隨時調 整的。收發端TCP協議軟件在進行分組確認通信時,還交換滑動窗口控制信息,使得雙方滑動窗口大小可以根據需要動態變化,達到在提高數據傳輸效率的同時, 防止擁塞的發生。

      稱窗口左邊沿向右邊沿靠近爲窗口合攏,這種現象發生在數據被髮送和確認時。當窗口右邊沿向右移動時將允許發送更多的數據,稱之爲窗口張開。這種現象發生在另一端的接收進程讀取已經確認的數據並釋放了TCP的接收緩存時。

      當右邊沿向左移動時,稱爲窗口收縮。Host Requirements RFC強烈建議不要使用這種方式。但TCP必須能夠在某一端產生這種情況時進行處理。 如果左邊沿到達右邊沿,則稱其爲一個零窗口。

3. 慢啓動算法

  每個發送方位維護兩個窗口:一個是接收方准許的窗口,第二個是擁塞窗口。最終允許發送的字節數以接受窗口和用死啊窗口的最小值爲準。因此有效窗口是發送方認爲沒有問題的窗口和接收方認爲沒有問題的窗口中最小的那個。

  事實上擁塞控制中還定義有第三個參數:閾值,初始值爲64KB。

  慢啓動過程:

  (1)當一個鏈接建立起來以後,發送方的擁塞窗口初始化爲該鏈接上當前使用的最大數據段值。然後發送一個最大數據段,如果該數據段在定時器過期之前確認,那麼擁塞窗口變成2。以後擁塞窗口按指數級別增長。

  (2)當擁塞窗口增長到閾值的時候,指數增長停滯,從這個點開始,每次成功的傳輸,都會使擁塞窗口線程增長,(即每次只增長一個最大數據段)。

  (3)當超時發生時,閾值被設置爲當前擁塞窗口的一半 ,而擁塞窗口被充值爲一個最大數據段,之後使用相同的慢啓動算法來決定網絡的處理能力。

4.名詞解釋

(1)停止等待協議

(2)回退N步協議 

(3)選擇重傳

    GBN協議(Go-Back-N,GBN)允許發送方用多個分組“填充流水線”,因此避免了停止等待協議中所提到的信道利用率的問題。然而,GBN協議也存在性能上的問題。尤其是當窗口的長度和帶寬時延積都很大,在流水線中會有很多分組時更是如此。一個單個分 組的差錯就引起GBN重傳大量分組,而其中的許多分組根本沒有必要重傳。隨着信道差錯率的增加,流水線可能會被這些沒有必要重傳的分組填滿。

  選擇重傳(SR)協議通過讓發送方近重傳那些換衣在接受方出錯(即分組丟失或受損)的分組,從而避免了不必要的重傳。這種個別的、按需的重傳要求接受方逐個地確認正確接受的分組。再次用窗口長度N來限制流水線中爲完成、未被確認的分組數。然而,與GBN不同的是,發送方已經接收到了對窗口中某些分組的ACK。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章