應用的實作-資料
資料的產生
在計算機領域、資料是各種資訊的載體
資料傳輸
大部分應用程式所產生的資料需要在不同的設備之間傳遞,
OSI七層模型
| 應用層 | 對應用程式提供服務 |
| 表示層 | 進行資料格式的轉換,以確保一個系統生成的應 用層能夠被另一個系統的應用層所識別和理解 |
| 會話層 | 在通信雙方之間的建立、管理和終止會話 |
| 傳輸層 | 建立、維護和取消一次端到端的資料傳輸程序, 控制傳輸節奏的快慢,調整資料的排序等等, |
| 網路層 | 定義邏輯地址:實作資料從源到目的的轉發, |
| 資料鏈路層 | 將分組資料封裝成幀:在資料鏈路上實作資料的 點到點、或點到多點方式的直接通信;差錯檢測 |
| 物理層 | 在媒介上傳輸位元流;提供機械的和電氣的規約 |
TCP/IP參考模型
- 標準TCP/IP協議是用于計算機通信的一組協議,通常被稱為TCP/IP協議堆疊,以它為基礎組建的互聯網是目前國際上規模最大的計算機網路,正因為互聯網的廣泛應用,使得TCP/IP成為了事實上的網路標準,
- 因為OSI協議堆疊比較復雜,且TCP和IP兩大協議在業界被廣泛使用,所以TCP/IP參考模型成為了互聯網的主流參考模型,

TCP/IP常見協議

應用層
- 應用層為應用軟體提供介面,使應用程式能夠使用的網路服務,應用層協議會指定使用相應的傳輸層協議,以及傳輸層所使用的埠號等,
- 應用層的PDU被稱為Data(資料),
- HTTP 80 (TCP)
超文本傳輸協議,提供瀏覽網頁服務
- Tenlnet 23 (TCP)
遠程登錄協議,提供遠程管理服務
- FTP 20、21(TCP)
檔案傳輸協議,提供互聯網檔案資源共享服務
- SMTP 25 (TCP)
簡單郵件傳輸協議,提供互聯網電子郵件服務
- TFTP 69(UDP)
簡單檔案傳輸協議,提供簡單的檔案傳輸服務
常見應用層協議-FTP
FTP是一個用于從一臺主機傳送檔案到另一臺主機的協議,用于檔案的”下載“和”上傳“,它采用C/S結構,

常見的應用層協議-Telnet
Telnet是資料網路中提供遠程登錄服務的標準協議,Telnet為用戶提供了在本地計算機上完成遠程設備作業的能力,

常見的應用層協議-HTTP
HTTP是互聯網上應用最為廣泛的一種網路協議,設計HTTP最初的目的是為了提供一種發布和接收HTML頁面的方法,

傳輸層
- 傳輸層協議接收來著應用層協議的資料,封裝上相應的資料層頭部,幫助其建立”端到端“的鏈接,
- 傳輸層的PDU被稱為Segment(段),
TCP和UDP-報文格式

TCP和UDP-埠號

- 客戶端使用的源埠一般隨機分配,目標埠則由服務器應用指定;
- 源埠號一般為系統中未使用的,且大于1023;
- 目的埠號為服務端開啟的應用(服務)所偵聽的埠,如HTTP預設使用的80,
TCPUDP的區別及應用場景
區別
是否面向連接
- TCP是面向連接的,即發送資料前需要與目標主機建立連接,
- UDP面向無連接的,發送資料前不需要建立連接,
是否提供可靠交付
- TCP在傳輸資料之前,需要三次握手來建立連接,并且通過資料校驗、擁塞控制、重傳控制、滑動視窗和確認應答等機制來實作可靠交付,資料傳輸程序中,資料無丟失,無重復,無亂序,
- UDP不提供可靠交付,只有通過檢驗和去丟棄那些不完整的報文,盡最大努力來保證交付的可靠性,
作業效率
- 前面提到TCP傳輸資料的控制非常多,這也導致了TCP網路開銷大,作業效率相對低下,對系統的資源要求也比較高,
- UDP傳輸控制簡單,因此作業效率相對高,對系統資源的要求偏低,
實時性
- TCP傳輸資料的控制程式較多,大幅度降低了資料傳輸的實時性,
- UDP協議簡單,資料實時性較高,
安全性
- TCP傳輸機制多,容易被利用,例如DOS、DDOS攻擊,因此在安全性上,不如UDP,
- UDP沒有TCP這么多機制,被利用的機會就會少很多,但UDP不是絕對安全,也會被攻擊,
應用場景
TCP
對資料傳輸的質量有較高要求,但對實時性要求不高,比如HTTP,HTTPS,FTP等傳輸檔案的協議以及POP,SMTP等郵件傳輸的協議,應選用TCP協議,
UDP
只對資料傳輸的實時性要求較高,但不對傳輸質量有要求,比如視頻傳輸、實時通信等,應選用UDP協議,
TCP的建立-三次握手
任何基于TCP的應用,在發送資料之前,都需要由TCP進行”三次握手“建立鏈接,

三次握手的報文互動

第一次握手: 客戶端向服務器發送連接請求包,標志位SYN(同步序號)置為1,序號為X=0

第二次握手: 服務器收到客戶端發過來報文,由SYN=1知道客戶端要求建立聯機,向客戶端發送一個SYN和ACK都置為1的TCP報文,設定初始序號Y=0,將確認序號(Acknowledgement Number)設定為客戶的序列號加1,即X+1 = 0+1=1

第三次握手: 客戶端收到服務器發來的包后檢查確認序號(Acknowledgement Number)是否正確,即第一次發送的序號加1(X+1=1),以及標志位ACK是否為1,若正確,客戶端再次發送確認包,ACK標志位為1,SYN標志位為0,確認序號(Acknowledgement Number)=Y+1=0+1=1,發送序號為X+1=1,服務器收到后確認序號值與ACK=1則連接建立成功,可以傳送資料了,

TCP序列號與確認序列號
TCP使用序列號和確認序列號欄位實作資料的可靠和有序傳輸,

TCP的視窗滑動機制
TCP通過滑動視窗機制來控制資料的傳輸速率,

TCP的關閉-四次揮手
當資料傳輸完成,TCP需要通過”四次揮手“機制斷開TCP鏈接,釋放系統資源,

TCP四次揮手的報文互動

第一次揮手: 客戶端給服務器發送TCP包,用來關閉客戶端到服務器的資料傳送,將標志位FIN和ACK置為1,序號為X=158,確認序號為Z=308,

第二次揮手:服務器收到FIN后,發回一個ACK(標志位ACK=1),確認序號為收到的序號加1,即X=X+1=159,序號為收到的確認序號=Z,

第三次揮手:服務器關閉與客戶端的連接,發送一個FIN,標志位FIN和ACK置為1,序號為Y=308,確認序號為X=159,

第四次揮手:客戶端收到服務器發送的FIN之后,發回ACK確認(標志位ACK=1),確認序號為收到的序號加1,即Y+1=309,序號為收到的確認序號X=159,

網路層
- 傳輸層負責建立主機之間行程與行程之間的鏈接,而網路層則負責資料從一臺主機到另一臺主機之間的傳遞
- 網路層的PDU被稱為Packet(包),

網路層協議作業程序

資料鏈路層
資料鏈路層位于網路層和物理層之間,可以向網路層的IP、IPv6等協議提供服務,資料鏈路層的PDU被稱為Frame(幀),
以太網(Ethernet)是最常見的資料鏈路層協議,

以太網與MAC地址

地址決議協議(ARP)
根據已知的IP地址決議獲得對應的MAC地址,

作業原理





物理層
- 資料到達物理層之后,物理層會更具物理介質的不同,將數字信號轉換為光信號、電信號或者是電磁波信號,
- 物理層的PDU被稱為位元流

常見的傳輸介質

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/389116.html
標籤:其他
