tcp協議
arp協議屬於網路層協議。
用途是根據ip位址計算出mac位址。主機傳送資訊時將包含目標ip位址的arp請求廣播到網路上的所有主機,並接收返回訊息,以此確定目標的實體地址;收到返回訊息後將該ip位址和實體地址存入本機arp快取中並保留一定時間,下次請求時直接查詢arp快取以節約資源。位址解析協議是建立在網路中各個主機互相信任的基礎上的,網路上的其他主機可以自主傳送arp應答訊息,本機收到應答報文時不會檢測該報文的真實性就會將其記入本機arp快取;由此攻擊者就可以向某一主機傳送偽arp應答報文,使其傳送的資訊無法到達預期的主機或到達錯誤的主機,這就構成了乙個arp欺騙。
p協議用於連線多個分組交換網,他提供在具有固定位址長度的主機之間傳送資料報,以及根據各個資料報大小的不同,在需要時進行分段和重組大資料報的功能。ip協議僅限於將資料從源端傳送到目的端,而不提供可靠的傳輸服務。在傳送出錯時,ip協議通過網際網路控制訊息協議(icmp, internet control message protocol)報告。ip協議屬於網路層協議。
定址:ip協議根據資料報頭中所包含的目的位址將資料報傳輸到目的端,傳送過程中對道路的選擇稱為路由
分段:當一些網路只能傳送小資料報時,ip協議將資料報分段並在報頭裡面註明。資料報也可以被標記為「不可分段」,如果乙個資料報被如此標記,那麼在任何情況下都不准對他進行分段,如果因此到不了目的地,那麼資料報就會在中途被丟棄。
tcp協議屬於傳輸層協議。
tcp報文由首部和資料兩部分組成。首部一般由20-60位元組(byte)構成,長度可變。其中前20b格式固定,後40b為可選。因為,tcp報文還得傳給下層網路層,封裝成ip包,而乙個ip包最大長度為65535,同時ip包首部也包含最少20b,所以乙個ip包或tcp包可以包含的資料部分最大長度為65535-20-20=65495b。
window:滑動視窗,用來進行流量控制。
第一次握手:建立連線。客戶端傳送連線請求報文段,將syn位置為1,sequence number為x;然後,客戶端進入syn_send狀態,等待伺服器的確認;
第二次握手:伺服器收到syn報文段。伺服器收到客戶端的syn報文段,需要對這個syn報文段進行確認,設定acknowledgment number為x+1(sequence number+1);同時,自己自己還要傳送syn請求資訊,將syn位置為1,sequence number為y;伺服器端將上述所有資訊放到乙個報文段(即syn+ack報文段)中,一併傳送給客戶端,此時伺服器進入syn_recv狀態;
第三次握手:客戶端收到伺服器的syn+ack報文段。然後將acknowledgment number設定為y+1,向伺服器傳送ack報文段,這個報文段傳送完畢以後,客戶端和伺服器端都進入established狀態,完成tcp三次握手。完成了三次握手,客戶端和伺服器端就可以開始傳送資料。
建立連線後,客戶端和伺服器都處於establised狀態。這時,主機1發起斷開連線的請求,
第一次揮手:主機1呼叫close()函式後,傳送fin報文段,主機1進入fin_wait_1狀態
第二次揮手:主機2接收到主機1傳送的fin報文段,傳送ack確認序列號,告訴主機1我收到了,主機2進入close_wait
狀態,主機1收到確認包後,進入進入fin_wait_2狀態。
第三次揮手:主機2傳送fin報文段,主機2進入last_ack
狀態。
第四次揮手:主機1收到主機2傳送的fin報文段,傳送ack報文段,主機1進入time_wait
狀態,告訴主機2我收到你的關閉請求了。主機2收到主機1的ack報文段後關閉連線,進入close
狀態。主機1等待2msl(報文最大生存時間,msl,maximum segment lifetime)後,關閉連線,進入close
狀態。
在謝希仁的《計算機網路》中是這樣說的:
為了防止已失效的連線請求報文段突然又傳送到了服務端,因而產生錯誤。
在書中同時舉了乙個例子,如下:
「已失效的連線請求報文段」的產生在這樣一種情況下:client發出的第乙個連線請求報文段並沒有丟失,而是在某個網路結點長時間的滯留了,以致延誤到連線釋放以後的某個時間才到達server。本來這是乙個早已失效的報文段。但server收到此失效的連線請求報文段後,就誤認為是client再次發出的乙個新的連線請求。於是就向client發出確認報文段,同意建立連線。假設不採用「三次握手」,那麼只要server發出確認,新的連線就建立了。由於現在client並沒有發出建立連線的請求,因此不會理睬server的確認,也不會向server傳送資料。但server卻以為新的運輸連線已經建立,並一直等待client發來資料。這樣,server的很多資源就白白浪費掉了。採用「三次握手」的辦法可以防止上述現象發生。例如剛才那種情況,client不會向server的確認發出確認。server由於收不到確認,就知道client並沒有要求建立連線。」
那四次分手又是為何呢?tcp協議是一種面向連線的、可靠的、基於位元組流的運輸層通訊協議。tcp是全雙工模式,這就意味著,當主機1發出fin報文段時,只是表示主機1已經沒有資料要傳送了,主機1告訴主機2,它的資料已經全部傳送完畢了;但是,這個時候主機1還是可以接受來自主機2的資料;當主機2返回ack報文段時,表示它已經知道主機1沒有資料傳送了,但是主機2還是可以傳送資料到主機1的;當主機2也傳送了fin報文段時,這個時候就表示主機2也沒有資料要傳送了,就會告訴主機1,我也沒有資料要傳送了,之後彼此就會愉快的中斷這次tcp連線。如果要正確的理解四次分手的原理,就需要了解四次分手過程中的狀態變化。
網際網路協議
常見的應用層協議使用的埠號 http tcp 80 http協議使用的tcp協議的80埠,下同 共享資料夾 tcp 445 smtp tcp 25 pop3 tcp 110 telnet tcp 23 sql tcp 1433 dns udp 53 服務和應用層協議之間的關係 通過目標埠識別計算機相...
網際網路協議
爭取做乙個懂點網路概念且有趣的程式設計師。tcp ip是網際網路採用的協議標準,它是乙個協議系列,包含了100多個協議,用來將各種計算機和資料通訊裝置組成計算機網路,tcp和ip是最基本 最重要的兩個核心協議,因此,通常用tcp ip協議來代表整個網際網路協議系列 即tcp ip的定義 tcp ip...
網際網路協議
網際網路的實現可以分為7層,4層,但是我更傾向於分為5層,它們自底向上分別為 物理層,鏈結層,網路層,傳輸層,應用層。其中,應用層是使用者所看到的,物理層把電腦連線起來的物理手段,作用是傳送0和1的電氣訊號。單是0和1的電氣訊號是沒有什麼用,它必須要有可以解讀這些電氣訊號的東西,那麼這時候就需要鏈結...