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位址是網...