協議地址結構_TCP/IP 協議 講解

17bb90acd421ec12489c189bc94d6e0d.png

374926f2d090402f0b341576d9e82b1b.png

計算機網絡體系結構分層

afedc09287396d2753615267350ba684.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

計算機網絡體系結構分層

不難看出,TCP/IP 與 OSI 在分層模塊上稍有區別。OSI 參考模型注重“通信協議必要的功能是什么”,而 TCP/IP 則更強調“在計算機上實現協議應該開發哪種程序”。

1. TCP/IP 的具體含義

從字面意義上講,有人可能會認為 TCP/IP 是指 TCP 和 IP 兩種協議。實際生活當中有時也確實就是指這兩種協議。然而在很多情況下,它只是利用 IP 進行通信時所必須用到的協議群的統稱。具體來說,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都屬于 TCP/IP 協議。他們與 TCP 或 IP 的關系緊密,是互聯網必不可少的組成部分。TCP/IP 一詞泛指這些協議,因此,有時也稱 TCP/IP 為網際協議群。

互聯網進行通信時,需要相應的網絡協議,TCP/IP 原本就是為使用互聯網而開發制定的協議族。因此,互聯網的協議就是 TCP/IP,TCP/IP 就是互聯網的協議。

733c16ca01de4111d01226e2a7a5f67c.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

網際協議群

2. 數據包

包、幀、數據包、段、消息

以上五個術語都用來表述數據的單位,大致區分如下:

每個分層中,都會對所發送的數據附加一個首部,在這個首部中包含了該層必要的信息,如發送的目標地址以及協議相關信息。通常,為協議提供的信息為包首部,所要發送的內容為數據。在下一層的角度看,從上一層收到的包全部都被認為是本層的數據。

ac87fe7d41e0b80172cd47c164dfac8f.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

數據包首部

網絡中傳輸的數據包由兩部分組成:一部分是協議所要用到的首部,另一部分是上一層傳過來的數據。首部的結構由協議的具體規范詳細定義。在數據包的首部,明確標明了協議應該如何讀取數據。反過來說,看到首部,也就能夠了解該協議必要的信息以及所要處理的數據。包首部就像協議的臉。

3. 數據處理流程

下圖以用戶 a 向用戶 b 發送郵件為例子:

a7cce6a27d9034d7ee012c5fc5d84fa2.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

數據處理流程

TCP/IP 中有兩個具有代表性的傳輸層協議,分別是 TCP 和 UDP。

1. 端口號

數據鏈路和 IP 中的地址,分別指的是 MAC 地址和 IP 地址。前者用來識別同一鏈路中不同的計算機,后者用來識別 TCP/IP 網絡中互連的主機和路由器。在傳輸層也有這種類似于地址的概念,那就是端口號。端口號用來識別同一臺計算機中進行通信的不同應用程序。因此,它也被稱為程序地址。

1.1 根據端口號識別應用

一臺計算機上同時可以運行多個程序。傳輸層協議正是利用這些端口號識別本機中正在進行通信的應用程序,并準確地將數據傳輸。

d91398a489139fb0a03d5086b265b603.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

通過端口號識別應用

1.2 通過 IP 地址、端口號、協議號進行通信識別

88a9bdd6d32534239d771d746ee676a9.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

75844682917fbfe8d53e8028a86e5b45.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

通過端口號、IP地址、協議號進行通信識別

1.3 端口號的確定

1.4 端口號與協議

2. UDP

3. TCP

3.1 三次握手(重點)

下面來看看三次握手的流程圖:

905ca6fabbba1c46e91e69d88c7b1ba7.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

三次握手

3.2 四次揮手(重點)

下面來看看四次揮手的流程圖:

c1f6f73f4d9f8842c51aa7bd1232ac9b.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

四次揮手

上面是一方主動關閉,另一方被動關閉的情況,實際中還會出現同時發起主動關閉的情況,

具體流程如下圖:

7f7382221fe9da0cbd31e79839fdfed1.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

同時揮手

3.3 通過序列號與確認應答提高可靠性

d8027c6bd5290f7e81510e99a1882b73.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

序列號和確認應答

3.4 重發超時的確定

3.5 以段為單位發送數據

3.6 利用窗口控制提高速度

9e7dff1bca2f4dbf7cbf7e8422b672bc.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

3.7 滑動窗口控制

094325200a67b80cc8795b2d7569c487.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

滑動窗口

3.8 窗口控制中的重發控制

在使用窗口控制中, 出現丟包一般分為兩種情況:

261f4cc23a5943488c9e3dce65f570aa.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

部分確認應答丟失

da24d8dd9d4ba4d63e0e9a40f08b4b38.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

高速重發控制

1. IP 地址

1.1 IP 地址概述

02e0b298ed8f454aa03e8bed732806d0.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

1.2 IP 地址由網絡和主機兩部分標識組成

5860f55d2de8cdaa0584dee644c70d26.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

IP地址的主機標識

6aad2056a3ce942e264d8b143ad782a0.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

IP地址的網絡標識

1.3 IP 地址的分類

1.4 廣播地址

1.5 IP 多播

55f1971a94f7b78a894923a696babf71.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

1.6 子網掩碼

1e7cc7c2a0e72597793605049601b6bf.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

a8cd51c87bee05bf030d5d326e256c9a.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

2. 路由

2.1 IP 地址與路由控制

c34017118ae368284807e6e0642531ff.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

路由控制表與 IP 包發送

3. IP 分包與組包

3.1 路徑 MTU 發現

4. IPv6

4.1 IPv6 的特點

4.2 IPv6 中 IP 地址的標記方法

4.3 IPv6 地址的結構

9e45dbbe9f681a6ac1a1cfab398552f0.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

4.4 全局單播地址

9f73586b93caccb57909109e61c378d9.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

全局單播地址

4.5 鏈路本地單播地址

ff3052cd2e86536ccb70410982b88c76.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

鏈路本地單播地址

4.6 唯一本地地址

c927296c5bf902be0efa4a6ee35d262c.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

唯一本地地址

4.7 IPv6 分段處理

4.8 IP 首部(暫略)

5. IP 協議相關技術

5.1 DNS

5.2 ARP

5.3 ICMP

5.4 DHCP

5.5 NAT

5.6 IP 隧道

3680cb313d71154bf94e89ba1da32fc9.png

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

夾著 IPv4 網絡的兩個 IPv6 網絡

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/379080.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379080.shtml
英文地址,請注明出處:http://en.pswp.cn/news/379080.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ffmpeg進行混音,將兩路音頻pcm數據合成一路輸出

ffmpeg進行混音&#xff0c;將兩路音頻pcm數據合成一路輸出 audiomixer.h #ifndef AUDIOMIXER_H #define AUDIOMIXER_H#include <map> #include <mutex> #include <cstdio> #include <cstdint> #include <string> #include <memory>exter…

python sep函數_Python中帶有print()函數的sep參數

python sep函數sep parameter stands for separator, it uses with the print() function to specify the separator between the arguments. sep參數代表分隔符&#xff0c;它與print()函數一起使用以指定參數之間的分隔符。 The default value is space i.e. if we dont us…

關于 MySQL 主從復制的配置(轉)

來源&#xff1a;http://www.oschina.net/bbs/thread/10388設置Mysql的主從設置很重要&#xff0c;有如下幾點用處&#xff1a;1 做備份機器&#xff0c;一旦主服務器崩潰&#xff0c;可以直接啟用從服務器作為主服務器2 可以直接鎖定從服務器的表只讀&#xff0c;然后做備份數…

Silverlight 同域WCF免跨域文件

在sl3使用wcf時常常會因為sl中調用了不同域的wcf服務而導至調用服務失敗&#xff0c;記得在很久以前sl當是只支持同域的訪問&#xff0c;那么讓我有一個想法&#xff0c;就是在sl引用時可以動態地取得當前sl所在的域&#xff0c;而wcf服務也必須同時部署到這個域下邊&#xff0…

使用ffmpeg 的 filter 給圖片添加水印

使用ffmpeg 的 filter 給圖片添加水印。 main.c #include <stdio.h>#include <libavfilter/avfilter.h> #include <libavfilter/buffersrc.h> #include <libavfilter/buffersink.h> #include <libavformat/avformat.h> #include <libavcodec…

程序崩潰 分析工具_程序分析工具| 軟件工程

程序崩潰 分析工具A program analysis tool implies an automatic tool that takes the source code or the executable code of a program as information and produces reports with respect to a few significant attributes of the program, for example, its size, multif…

28335接兩個spi設備_IIC和SPI如此流行,誰才是嵌入式工程師的必備工具?

IICvs SPI現今&#xff0c;在低端數字通信應用領域&#xff0c;我們隨處可見 IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是這兩種通信協議非常適合近距離低速芯片間通信。Philips(for IIC)和 Motorola(for SPI) 出于不同背景和市場需求…

線性表15|魔術師發牌問題和拉丁方陣 - 數據結構和算法20

線性表15 : 魔術師發牌問題和拉丁方陣 讓編程改變世界 Change the world by program 題外話 今天小甲魚看到到微博有朋友在問&#xff0c;這個《數據結構和算法》系列課程有木有JAVA版本的&#xff1f; 因為這個問題之前也有一些朋友問過&#xff0c;所以咱在這里統一說下哈…

[ZT]Three ways to tell if a .NET Assembly is Strongly Named (or has Strong Name)

Here are several convenient ways to tell whether a .NET assembly is strongly named. (English language note: I assume the form “strongly named” is preferred over “strong named” since that’s the form used in the output of the sn.exe tool shown immediat…

最佳頁面置換算法

在一個請求分頁系統中&#xff0c;采用最佳頁面置換算法時&#xff0c;假如一個作業的頁面走向為4、3、2、1、4、3、5、4、3、2、1、5&#xff0c;當分配給該作業的物理塊數M分別為3和4時&#xff0c;試計算在訪問過程中所發生的缺頁次數和缺頁率。請給出分析過程。 解析&…

網絡名稱 轉換 網絡地址_網絡地址轉換| 計算機網絡

網絡名稱 轉換 網絡地址At the time of classful addressing, the number of household users and small businesses that want to use the Internet kept increasing. In the beginning, a user was connected to the Internet with a dial-up line, for a specific period of…

rstudio 修改代碼間距_第一章 R和RStudio

R與RStudioR是一種統計學編程語言&#xff0c;在科學計算領域非常流行。它是由Ross Ihaka和Robert Gentleman開發的&#xff0c;是 "S "編程語言的開源實現。R也是使用這種語言進行統計計算的軟件的名字。它有一個龐大的在線支持社區和專門的軟件包&#xff0c;可以為…

ubuntu下最穩定的QQ

一、安裝好 Wine 1.2&#xff08;1.2 版安裝好就支持中文界面的了&#xff09; 當然得有WINE 了 當然我的有 如果沒有可以如下方法得到&#xff1a; 第一種方法&#xff1a;如果你已經安裝過 Wine 的老版本&#xff0c;那么只要添加 Wine 1.2 的軟件源&#xff0c;然后去新立得…

字體Times New Roman

Windows系統中的字體是Monotype公司為微軟公司制作的Times New Roman PS&#xff08;TrueType字體&#xff09;&#xff0c;視窗系統從3.1版本開始就一直附帶這個字體。而在蘋果電腦公司的麥金塔系統中使用的是Linotype公司的 Times Roman (在Macintosh系統中直接簡稱為‘Times…

最近最久未使用頁面置換算法

在一個請求分頁系統中&#xff0c;采用最近最久未使用頁面置換算法時&#xff0c;假如一個作業的頁面走向為4、3、2、1、4、3、5、4、3、2、1、5&#xff0c;當分配給該作業的物理塊數M分別為3和4時&#xff0c;試計算在訪問過程中所發生的缺頁次數和缺頁率。請給出分析過程。 …

ffplay的數據結構分析

《ffplay分析&#xff08;從啟動到讀取線程的操作&#xff09;》 《ffplay分析&#xff08;視頻解碼線程的操作&#xff09;》 《ffplay分析&#xff08;音頻解碼線程的操作&#xff09;》 《ffplay 分析&#xff08;音頻從Frame(解碼后)隊列取數據到SDL輸出&#xff09;》 《f…

tolowercase_Java String toLowerCase()方法與示例

tolowercase字符串toLowerCase()方法 (String toLowerCase() Method) toLowerCase() method is a String class method, it is used to convert given string into the lowercase. toLowerCase()方法是String類方法&#xff0c;用于將給定的字符串轉換為小寫。 Syntax: 句法&a…

python web 服務器實時監控 websocket_python websocket網頁實時顯示遠程服務器日志信息...

功能&#xff1a;用websocket技術&#xff0c;在運維工具的瀏覽器上實時顯示遠程服務器上的日志信息一般我們在運維工具部署環境的時候&#xff0c;需要實時展現部署過程中的信息&#xff0c;或者在瀏覽器中實時顯示程序日志給開發人員看。你還在用ajax每隔段時間去獲取服務器日…