網路知識點

2021-06-06 06:06:32 字數 2239 閱讀 1954

1.公有位址以及私有位址

a類 10.0.0.0--10.255.255.255

b類 172.16.0.0--172.31.255.255

c類 192.168.0.0--192.168.255.255

使用私有位址將網路連至internet,需要將私有位址轉換為公有位址。這個轉換過程稱為網路位址轉換(network address translation,nat),通常使用路由器來執行nat轉換。

2.time_wait

當關閉乙個 socket 連線時,主動關閉一端的 socket 將進入time_wait狀態,而被動關閉一方則轉入closed狀態。

假設最後乙個

ack丟失了,伺服器會重發它傳送的最後乙個

fin,所以客戶端必須維持乙個狀態資訊,以便能夠重發

ack;如果不維持這種狀態,客戶端在接收到

fin後將會響應乙個

rst,伺服器端接收到

rst後會認為這是乙個錯誤。如果

tcp協議能夠正常完成必要的操作而終止雙方的資料流傳輸,就必須完全正確的傳輸四次握手的四個節,不能有任何的丟失。這就是為什麼

socket

在關閉後,仍然處於

time_wait

狀態,因為他要等待以便重發

ack。

msl(

最大分段生存期)指明

tcp報文在

internet

上最長生存時間,每個具體的

tcp實現

都必須選擇乙個確定的

msl值。

rfc 1122

建議是2

分鐘,但

bsd傳統實現採用了

30秒。

time_wait

狀態最大保持時間是

2 * msl

,也就是

1-4分鐘。 ip

頭部有乙個

ttl,最大值

255。儘管

ttl的單位不是秒

(根本和時間無關

),我們仍需

假設,ttl

為255

的tcp

報文在internet

上生存時間不能超過

msl。

為什麼 time_wait 狀態需要保持 2msl 這麼長的時間?

如果time_wait

狀態保持時間不足夠長

(比如小於

2msl)

,第乙個連線就正常終止了。

第二個擁有相同相關五元組的連線出現,而第乙個連線的重複報文到達,干擾了第二

個連線。

tcp實現必須防止某個連線的重複報文在連線終止後出現,所以讓

time_wait

狀態保持時間足夠長

(2msl)

,連線相應方向上的

tcp報文要麼完全響應完畢,要麼被

丟棄。建立第二個連線的時候,不會混淆。

time_wait狀態對http影響

根據tcp

協議,主動發起關閉的一方,會進入

time_wait

狀態,持續

2*msl(max segmentlifetime)

,預設為

240秒,在這個

post

中簡潔的介紹了為什麼需要這個狀態。

值得一說的是,對於基於

tcp的

協議,關閉

tcp連線的是

server

端,這樣,

server

端會進入

time_wait

狀態,可想而知,對於訪問量大的

web server

,會存在大量的

time_wait

狀態,假如

server

一秒鐘接收

1000

個請求,那麼就會積壓

240*1000=240

,000

個time_wait

的記錄,維護這些狀態給

server

帶來負擔。當然現代作業系統都會用快速的查詢演算法來管理這些

time_wait

,所以對於新的

tcp連線請求,判斷是否

hit中乙個

time_wait

不會太費時間,但是有這麼多狀態要維護總是不好。

網路程式設計面試知識點

答 tcp和udp是osi模型中的運輸層中的協議。tcp提供可靠的通訊傳輸,而udp則長被用於讓廣播和細節控制交給應用的通訊傳輸。兩者區別大致如下 1 tcp面向連線,udp棉線非連線即傳送資料前不需要連線。2 tcp提供可靠的服務 資料傳輸 udp無法保證 3 tcp面向位元組流,udp面向報文 ...

網路原理知識點總結

計算機網路概觀 網路層次 裝置特點 演算法協議 裝置功能 物理層hub same collision domain csma cd 資料鏈路層 bridge same broadcast domain reliable flooding ppp,mac 隔離碰撞域 網路層router same au...

直播網路相關知識點

cdn的全稱是content delivery network,即內容分發網路。其目的是通過在現有的internet中增加一層新的網路架構,將 的內容發布到最接近使用者的網路 邊緣 使使用者可以就近取得所需的內容,提高使用者訪問 的響應速度。網域名稱解析就是網域名稱到ip位址的轉換過程。ip位址是網...