UNIX 網路程式設計 chapter 2 傳輸層

2021-09-17 04:42:29 字數 882 閱讀 9884

udp : 全雙工、無連線、 不可靠的資料報協議

tcp : 全雙工、 面向連線、 可靠的位元組流協議

icmp : 網際控制訊息協議、處理在路由器和主機之間流通的錯誤和控制訊息(應用 : traceroute ping)

arp : 位址解析協議 將乙個ipv4位址對映成乙個乙太網位址(mac位址)

rtt(round-trip time): 客戶與伺服器之間的往返時間,tcp有動態估算rtt的演算法, 持續估算乙個給定連線的rtt

ttl ( time to live): ip包被路由器丟棄之前允許通過的最大網段數量

msl (maximum segment lifetime): 報文最大生存時間,他是任何報文在網路上存在的最長時間,超過這個時間報文將被丟棄。

q : 為什麼需要三路握手

a : 假設採用二路握手, 可能存在如下場景:

client發出的乙個連線請求報文在某個網路結點長時間的滯留了,以致延誤到連線釋放以後的某個時間才到達server。本來這是乙個早已失效的報文段,但server收到此失效的連線請求報文段後,誤認為是client再次發出的乙個新的連線請求。於是就向client發出確認報文段,同意建立連線。

mss選項 : 本選項通告對端它的最大分節大小(maximum segment size),tcp分節中願意接收的最大位元組數,出現在syn分節中

q : time_wait狀態存在的原因

a : 1. 可靠地實現tcp全雙工連線的終止

a : 2. 使得老的重複分節在網路中消失

有關time_wait的進一步分析,見tcp/ip詳解(卷一,第二版)page 442-445

UNIX 環境高階程式設計Chapter 1 2

第一條規則是 如果沒有出錯,則其值不會被乙個例程清除。因此,僅當函式的返回值指明出錯時,才檢驗其值。第二條是 任一函式都不會將 e r r n o值設定為0,在 e r r n o h 中定義的所有常數都不為 0。c標準定義了兩個函式,它們幫助列印出錯資訊。include c h a r s t r...

UNIX網路程式設計

在unix network programming 的 3.7 inet pton and inet ntop functions 中提到中有如下兩個巨集定義 define inet addrstrlen 16 for ipv4 dotted decimal define inet6 addrstr...

unix網路程式設計

任何tcp的實現都需要為msl選擇乙個合適的值,rfc的建議值是2分鐘。分組可能出現迷途,若迷途分組在msl中找到路,造成重複,tcp必須修復 time wait存在的理由 可靠的實現全雙工的連線和終止 考慮最終ack丟失的情況,允許老的重複分組在網路中消逝 tcp的化生身現象,因為time wai...