TCP IP網路協議總結

2021-09-24 19:07:48 字數 1832 閱讀 7942

學習tcp-ip詳解一段時間,還有不少疑惑,總結記錄一番,說不定有新發現。

我們普遍網路使用乙太網,通過光纖或者網線連線,其資料封裝格式依據ieee 802規範,屬於鏈路層資料規範,基於rfc 894 定義乙太網封裝格式。

5g應該是在鏈路層有很大的改進,所以主幹網需要擴容,可以理解我們家的網線或者網絡卡都要換一換。也可以理解,以前的鄉村小道可能要擴容成高速公路,但是路上還是小汽車,而不是高鐵。5g wi-fi 標準802.11ac。

arp:位址解析協議,為i p位址到對應的硬體位址之間提供動態對映,mac位址與ip對應關係。

鏈路層資料格式:

目標mac位址(6位元組)

源mac位址(6位元組)

型別(2位元組)

資料(46~1500位元組)

crc(4位元組)

在資料傳輸過程中,資料報在鏈路層傳輸應該是無序的,只有達到傳輸層,tcp協議開始讓資料報變成有序,否則無法把資料報拼裝完整,更無法保證資料的可靠性。

涉及到乙個專有名詞:網際協議,我們口中的ip位址,有固定格式,最大長達65535位元組的ip資料報,它相當於我們的身份標識,2個裝置通訊就需要路由器來牽線搭橋,中間可能通過n多個路由器才能到達對方所在的交換機,把資訊傳送給對方。路由器裡存放都是一堆路由列表,可以通過cmd route 命令檢視,通過路由列表可以看到本機到達目標位址走的那條路。

2臺主機都在網際網路上都有公網ip位址,通過路由器中路由列表很快就能找到對方,但是木有那麼多公網ip位址,我們可能在乙個私網中,向另外乙個私網中的電腦傳送資訊,怎麼辦。還是路由器來幫忙,路由器會對映網際網路埠 = 區域網電腦ip+埠,當有資料到達路由器通過接受資料的埠號**給區域網電腦,nat (network address translators),網路位址轉換。

資料通過tcp/ip協議傳輸,如果中間某個裝置傳輸資料量過小,就需要進行拆包傳送資料。斷點續傳類似,http實現斷點續傳可以指定傳輸某個位元組範圍的資料;個人實現斷點續傳,首先是分割檔案,再實現部分傳輸。

當資料報很小情況,在接收到資料時並不立即傳送ack;相反,它推遲傳送,以便將ack與需要沿該方向傳送的資料一起傳送,稱為資料捎帶ack。

當資料很大,允許傳送方在停止並等待確認前可以連續傳送多個分組。由於傳送方不必每發乙個分組就停下來等待確認,因此該協議可以加速資料的傳輸。使用 tcp的滑動視窗協議時,接收方不必確認每乙個收到的分組。

當斷網再重傳過程,tcp包可以重新分組重傳。因為tcp是使用位元組序號而不是報文段序號來進行識別它所要傳送的資料和進行確認。

三次握手、四次揮手保證資料連線可靠性。

傳輸過程中,通過重傳定時器保證資料完整性。資料和確認都有可能會丟失,tcp通過在傳送時設定乙個定時器來解決這種問題。如果當定時器溢位時還沒有收到確認,它就重傳該資料。對任何實現而言,關鍵之處就在於超時和重傳的策略,即怎樣決定超時間隔和如何確定重傳的頻率。重傳時間倍數遵循指數退避規則。

如果乙個確認丟失了,則雙方就有可能因為等待對方而使連線終止:接收方等待接收資料(因為它已經向傳送方通告了乙個非0的視窗),而傳送方在等待允許它繼續傳送資料的視窗更新。為防止這種死鎖情況的發生,傳送方使用乙個堅持定時器(persisttimer)來周期性地向接收方查詢,以便發現視窗是否已增大。這些從傳送方發出的報文段稱為視窗探查(window probe)。

保活(keepalive)定時器可檢測到乙個空閒連線的另一端何時崩潰或重啟。

2msl定時器測量乙個連線處於time_wait狀態的時間。

在高速連線時,序號會發生迴繞,接收方將時間戳視為序列號的乙個32 bit的擴充套件。paws演算法不需要在傳送方和接收方之間進行任何形式的時間同步。接收方所需要的就是時間戳的值應該單調遞增,並且每個視窗至少增加1。

參考:udp打洞技術

tcp 的那些事兒(上)

TCP IP網路協議基礎TCP IP網路協議基礎

1.tcp ip網路協議基礎 tcp ip transmission control protocol internet protocol 是傳輸控制協議和網路協議,就是電子裝置如何連入網際網路,並且之間怎麼通訊。tcp ip 不是乙個協議,而是乙個協議族的統稱,裡面包括了 ip 協議 icmp 協...

TCP IP網路協議

tpc ip協議是傳輸層協議,主要解決資料如何在網路中傳輸,而http是應用層協議,主要解決如何包裝資料。關於tcp ip和http協議的關係,網路有一段比較容易理解的介紹 我們在傳輸資料時,可以只使用 傳輸層 tcp ip協議,但是那樣的話,如果沒有應用層,便無法識別資料內容,如果想要使傳輸的資料...

TCP IP網路協議

摘自 前段時間做了乙個開發,涉及到網路程式設計,開發過程比較順利,但任務完成後始終覺得有一些疑惑。主要是因為對網路協議不太熟悉,對一些概念也沒弄清楚。後來 我花了一些時間去了解這些網路協議,現在對tcp ip網路協議有了初步的認識,在這裡總結出來,可以梳理一下我對網路協議的理解,加深印象.話說兩台電...