盛唐年間,天下安定,由於疆域太大傳遞信件不易,就有民間的能人異士向皇帝諫言,每個州縣都建立資訊司來養信鴿。由信鴿來傳遞信件。皇帝覺得可行遍開始施行。
一日皇帝命小吏從東都洛陽發一封信件到西京,這個小吏第一次去資訊司發信件,到了資訊司發現只有乙個人處理信件。小吏便把信件交給了資訊司的小哥,只見小哥嫻熟的拿出只信鴿告訴它去西京,就放飛了,然後將信件謄抄了乙份,將信件撕成了三份,並標上了序號。過了不一會小哥剛剛放走信鴿飛回來了,只見小哥又將信鴿放飛了。然後拿出三個信鴿分別將三份信件綁到信鴿的腿上,然後將信鴿放飛了。這時候小吏就問了小哥一句:」為什麼剛剛只把信鴿放飛而不放信件啊!「。這時小哥不耐煩地說:」我要試試,我們州縣附近有沒有獵人,看看信鴿能不能飛出去。如果飛不出去就要找縣衙派兵沿途檢查一下路線了。「;小吏又問:」既然我們已經看到信鴿飛回來了,為什麼還要再次放出去。「。小哥繼續說:」西京那邊還不知道他能不能發信鴿。我需要告訴他一聲。「,談話間只看到傳遞 1,3 號信件的鴿子飛回來了。小哥說:」又有乙隻鴿子飛丟了。「,小吏急忙問道:」怎麼辦!如果出了差錯,我可是要被殺頭的。「。小哥說:」莫著急我們再等一柱香的時間,如果還不回來我們在把 2 號信件重新發一次就好了。「。一炷香過後,小哥又拿出乙隻信鴿把 2 號信件綁到鴿子的腿上。不一會傳遞 2 號信件的信鴿飛回來了。只見小哥又嫻熟的拿出乙隻信鴿放了出去,不一會飛回兩隻,然後小哥又放出去乙隻信鴿。小吏不解的問小哥:」你這個在幹什麼!「。小哥說:「我這是再告訴西京那邊我的資訊發完了。然後西京告訴我他知道了並讓我把備份的信件銷毀。我再告訴西京沒問題」。終於皇帝的信件發完了。
小吏回去後感覺比較有意思,東都西京中間隔著兩個州,信鴿是怎麼如何飛的呢?他又專程去問了資訊司的小哥。小哥說:」我也不知道信鴿會飛到那個州,如果信鴿飛到其他州,其他州的人會看到信鴿的目的地是西京,他會改變信鴿的飛行方向,直到信鴿飛到西京才算結束。「。
以上的小故事就是個簡單 tcp 傳輸。
小吏便算是應用層,皇帝讓他去發訊息。
資訊司的小哥身兼傳輸層和網路層。
信鴿便是鏈路層。
1. 應用層
應用層決定了向使用者提**用服務時通訊的活動。2. 傳輸層tcp/ip 協議族內預存了各類通用的應用服務。例如:http、ssh、ftp 等。
應用層的下一層就是傳輸層,提供處於網路連線中的兩台計算機之間的資料傳輸3. 網路層常見的傳輸層協議有 tcp、udp 等。
網路層又稱網路互連層。4. 鏈路層網路層用來處理在網路上流動的資料報,資料報是網路傳輸的最小資料單位。該層規定了通過怎樣的路徑到達對方的計算機,並把資料報傳送給對方。
網路層的作用就是在眾多選項內選擇一條合適的傳輸路徑。
鏈路層又稱資料鏈路層,網路介面層tcp 的全稱是傳輸控制協議(transmission control protocol)位於傳輸層,它是一種有連線的協議,提供可靠的位元組流服務[注1]。而可靠的傳輸服務是指,能夠將資料準確可靠的傳遞給對方。資料為何能準確無誤的送達目標處,就是因為 tcp 協議採用了三次握手策略,當然除了三次握手,tcp 協議還有其他手段來保證通訊的可靠性用來處理連線網路的硬體部分,控制作業系統、硬體的裝置驅動。
我們能夠看到的交換機、網線、光纖等也屬於物理層
tcp 三次握手
①傳送端首先傳送乙個帶 syn 標誌的資料報給對方
②接收端收到標有 syn 的資料報後回傳乙個帶有 syn/ack 標誌的資料報表示確認資訊
③傳送端在傳送乙個帶有 ack 標誌的資料報給接收端表示握手成功
更通俗的以物件舉例:
如果握手成功後連線斷開,再次連線還需要重新握手tcp 四次揮手
由於tcp連線時全雙工的,因此,每個方向都必須要單獨進行關閉,這一原則是當一方完成資料傳送任務後,傳送乙個fin來終止這一方向的連線,收到乙個fin只是意味著這一方向上沒有資料流動了,即不會再收到資料了,但是在這個tcp連線上仍然能夠傳送資料,直到這一方向也傳送了fin。首先進行關閉的一方將執行主動關閉,而另一方則執行被動關閉。
第一次揮手:
client傳送乙個fin,用來關閉client到server的資料傳送,client進入fin_wait_1狀態。
第二次揮手:
server收到fin後,傳送乙個ack給client,確認序號為收到序號+1(與syn相同,乙個fin占用乙個序號),server進入close_wait狀態。
第三次揮手:
server傳送乙個fin,用來關閉server到client的資料傳送,server進入last_ack狀態。
第四次揮手:
client收到fin後,client進入time_wait狀態,接著傳送乙個ack給server,確認序號為收到序號+1,server進入closed狀態,完成四次揮手。
udp 的全稱是使用者資料報協議(user datagram protocol)同樣位於傳輸層,它是一種無連線的協議,提供面向事務的簡單不可靠資訊傳送服
tcp 是有連線的而 udp 是無連線的
tcp 是可靠的連線而 udp 是不可靠的
udp 不需要各種可靠性策略所以相比 tcp 效能要高不少
因為 udp 的連線步驟少,報頭內容少所以相比 tcp 更加的省流量
tcp 只能一對一連線傳遞訊息而 udp 可以一對
一、一對多、多對一和多對多
參考資料
抓包軟體 wireshark
注1:位元組流服務是指,為了方便傳輸,將大塊資料分割成報文段為單位的資料報進行管理的服務
【tcp相關疑問】
Android開發需要了解的網路協議
1.應用層 應用層決定了向使用者提 用服務時通訊的活動。tcp ip 協議族內預存了各類通用的應用服務。例如 http ssh ftp 等。2.傳輸層應用層的下一層就是傳輸層,提供處於網路連線中的兩台計算機之間的資料傳輸 常見的傳輸層協議有 tcp udp 等。3.網路層網路層又稱網路互連層。網路層...
Web開發中需要了解的東西
下面的這些東西可能對於大多數人並不陌生,但是可能會有些東西你以前並沒有看過,或是沒有完全搞懂,甚至都沒有聽說過。陳皓注 我相信當你看完這個列表後,你會覺得對於我國的web開發有點弱了,還是那句話,表面上的東西永遠是膚淺的 介面和使用者體驗 最後,你可以使用一下這個工具 來看看你的網頁在不同的瀏覽器下...
Web開發中需要了解的東西
好了,下面是正文 我對原文做了一些批註,也許不對或有誤導,請大家指正 下面的這些東西可能對於大多數人並不陌生,但是可能會有些東西你以前並沒有看過,或是沒有完全搞懂,甚至都沒有聽說過。陳皓注 我相信當你看完這個列表後,你會覺得對於我國的web開發有點弱了,還是那句話,表面上的東西永遠是膚淺的 介面和使...