OSI七層網絡模型
OSI(Open System Interconnection)開放系統互連參考模型是國際標准化組織(ISO)制定的一個用於計算機或通信系統間互聯的標准體系。
| OSI七層模型 |
功能 |
對應的網絡協議 |
| 應用層 |
應用層是網絡體系中最高的一層,也是唯一面向用戶的一層,也可視為為用戶提供常用的應用程序,每個網絡應用都對應着不同的協議 |
HTTP、TFTP, FTP, NFS, WAIS、SMTP |
| 表示層 |
主要負責數據格式的轉換,確保一個系統的應用層發送的消息可以被另一個系統的應用層讀取,編碼轉換,數據解析,管理數據的解密和加密,同時也對應用層的協議進行翻譯 |
Telnet, Rlogin, SNMP, Gopher |
| 會話層 |
負責網絡中兩節點的建立,在數據傳輸中維護計算機網絡中兩台計算機之間的通信連接,並決定何時終止通信 |
SMTP, DNS |
| 傳輸層 |
是整個網絡關鍵的部分,是實現兩個用戶進程間端到端的可靠通信,處理數據包的錯誤等傳輸問題。是向下通信服務最高層,向上用戶功能最底層。即向網絡層提供服務,向會話層提供獨立於網絡層的傳送服務和可靠的透明數據傳輸。 |
TCP, UDP |
| 網絡層
|
進行邏輯地址尋址,實現不同網絡之間的路徑選擇,IP就在網絡層 |
IP, ICMP, ARP, RARP, AKP, UUCP |
| 數據鏈路層 |
物理地址(MAC地址),網絡設備的唯一身份標識。建立邏輯連接、進行硬件地址尋址,相鄰的兩個設備間的互相通信 |
FDDI, Ethernet, Arpanet, PDN, SLIP, PPP,STP。HDLC,SDLC,幀中繼 |
| 物理層 |
七層模型中的最底層,主要是物理介質傳輸媒介(網線或者是無線),在不同設備中傳輸比特,將0/1信號與電信號或者光信號互相轉化 |
IEEE 802.1A, IEEE 802.2到IEEE 802 |
數據發送時從上至下封裝,收到數據包后從下至上解包。
TCP/IP四層模型
TCP/IP四層模型:TCP/IP參考模型是計算機網絡的祖父ARPANET和其后繼的因特網使用的參考模型。

常見的網絡相關的協議
DNS:域名解析協議 www.baidu.com
SNMP(Simple Network Management Protocol)網絡管理協議
DHCP(Dynamic Host Configuration Protocol)動態主機配置協議,它是在TCP/IP網絡上使客戶機獲得配置信息的協議
FTP(File Transfer Protocol)文件傳輸協議,它是一個標准協議,是在計算機和網絡之間交換文件的最簡單的方法。
TFTP(Trivial File Transfer Protocol):小文件傳輸協議
HTTP(Hypertext Transfer Protocol ):超文本傳輸協議
HTTPS(Secure Hypertext Transfer Protocol):安全超文本傳輸協議,它是由Netscape開發並內置於其瀏覽器中,用於對數據進行壓縮和解壓操作.
ICMP(Internet Control Message Protocol):Internet控制信息協議,互聯網控制報文協議
ping ip定義消息類型有:TTL超時、地址的請求與應答、信息的請求與應答、目的地不可到達
SMTP(Simple Mail Transfer Protocol):簡單郵件傳送協議
TELNET Protocol:虛擬終端協議
UDP(User Datagram Protocol):用戶數據報協議,它是定義用來在互連網絡環境中提供包交換的計算機通信的協議
TCP(Transmission Control Protocol):傳輸控制協議,是一種面向連接的、可靠的、基於字節流的傳輸層通信協議 log轉發:開啟一個協議:tcp(三次握手和四次揮手)
TCP三次握手協議

TCP的連接建立是一個三次握手過程,目的是為了通信雙方確認開始序號,以便后續
通信的有序進行。主要步驟如下:
1. 連接開始時,連接建立方(Client)發送SYN包,並包含了自己的初始序號a;——連接請求
2. 連接接受方(Server)收到SYN包以后會回復一個SYN包,其中包含了對上一個a包
的回應信息ACK,回應的序號為下一個希望收到包的序號,即a+1,然后還包含
了自己的初始序號b;——請求確認
3. 連接建立方(Client)收到回應的SYN包以后,回復一個ACK包做響應,其中包含了
下一個希望收到包的序號即b+1。——連接確認
TCP四次揮手

TCP終止連接的四次握手過程如下:
1. 首先進行關閉的一方(即發送第一個FIN)將執行主動關閉,而另一方(收到這
個FIN)執行被動關閉。
2. 當服務器收到這個FIN,它發回一個ACK,確認序號為收到的序號加1。和SYN一
樣,一個FIN將占用一個序號。
3. 同時TCP服務器還向應用程序(即丟棄服務器)傳送一個文件結束符。接着這個
服務器程序就關閉它的連接,導致它的TCP端發送一個FIN。
4. 客戶必須發回一個確認,並將確認序號設置為收到序號加1。
總結
TCP(Transmission Control Protocol,傳輸控制協議)是基於連接的協議,也就是說,在正式收發數據前,必須和對方建立可靠的連接。
一個TCP連接必須要經過三次“對話”才能建立起來,其中的過程非常復雜,我們這里只做簡單、形象的介紹,你只要做到能夠理解這個過程即可。
我們來看看這三次對話的簡單過程:主機A向主機B發出連接請求數據包:“我想給你發數據,可以嗎?”,這是第一次對話;主機B向主機A發送同意連接
和要求同步(同步就是兩台主機一個在發送,一個在接收,協調工作)的數據包:“可以,你什么時候發?”,這是第二次對話;主機A再發出一個數據包
確認主機B的要求同步:“我現在就發,你接着吧!”,這是第三次對話。三次“對話”的目的是使數據包的發送和接收同步,經過三次“對話”之后,主機A
才向主機B正式發送數據。 UDP(User Data Protocol,用戶數據報協議)是與TCP相對應的協議。它是面向非連接的協議,它不與對方建立連接,
而是直接就把數據包發送過去!
UDP適用於一次只傳送少量數據、對可靠性要求不高的應用環境。比如,我們經常使用“ping”命令來測試兩台主機之間TCP/IP通信是否正常,
其實“ping”命令的原理就是向對方主機發送UDP數據包,然后對方主機確認收到數據包,如果數據包是否到達的消息及時反饋回來,那么網絡就是通的。
例如,在默認狀態下,一次“ping”操作發送4個數據包(如圖2所示)。大家可以看到,發送的數據包數量是4包,收到的也是4包(因為對方主機收到
后會發回一個確認收到的數據包)。這充分說明了UDP協議是面向非連接的協議,沒有建立連接的過程。正因為UDP協議沒有連接的過程,所以它的通信
效果高;但也正因為如此,它的可靠性不如TCP協議高。QQ就使用UDP發消息,因此有時會出現收不到消息的情況。 tcp協議和udp協議的差
TCP |
UDP |
|
是否連接 |
面向連接 |
面向非連接 |
傳輸可靠性 |
可靠 |
不可靠 |
應用場合 |
傳輸大量數據 |
少量數據 |
速度 |
慢 |
快 |
對系統資源 |
較多 |
較少 |
| 結構
|
信息包有20個字節 | UDP信息包的標題很短,只有8個字節 |
TCP和UDP常用端口號名稱
可以查詢 vim /etc/services 此文件中,包含所有常見端口號及服務名稱
| 21 |
ftp |
文件傳輸服務 |
| 22 |
ssh |
安全遠程連接服務 |
| 23 |
telnet |
遠程連接服務 |
| 25 |
smtp |
電子郵件服務 |
| 53 |
DNS |
域名解析服務,有tcp53也有用udp53端口傳輸 |
| 80 |
http |
web服務 |
| 443 |
https |
安全web服務 |
