計算機網(wǎng)絡(luò)高頻(二)TCP/IP基礎(chǔ)
1.什么是TCP/IP??
TCP/IP是一種網(wǎng)絡(luò)通信協(xié)議,它是互聯(lián)網(wǎng)中最常用的協(xié)議之一。TCP/IP有兩個基本的協(xié)議:TCP(傳輸控制協(xié)議)和IP(互聯(lián)網(wǎng)協(xié)議)。
- TCP(Transmission Control Protocol,傳輸控制協(xié)議)是一種可靠的、面向連接的協(xié)議。它負責(zé)在網(wǎng)絡(luò)上將數(shù)據(jù)分割成小的數(shù)據(jù)包,并且確保這些數(shù)據(jù)包按照正確的順序傳輸?shù)侥繕?biāo)設(shè)備。TCP還提供了丟包重傳、擁塞控制和流量控制等功能,以保證數(shù)據(jù)的可靠傳輸。
- IP(Internet Protocol,互聯(lián)網(wǎng)協(xié)議)是一種網(wǎng)絡(luò)層協(xié)議,它負責(zé)在網(wǎng)絡(luò)上將數(shù)據(jù)包從源設(shè)備路由到目標(biāo)設(shè)備。IP使用唯一的IP地址標(biāo)識設(shè)備,并且通過路由器將數(shù)據(jù)包從一個網(wǎng)絡(luò)傳遞到另一個網(wǎng)絡(luò)。IP還負責(zé)處理分組的分片和重組,以適應(yīng)不同網(wǎng)絡(luò)的最大傳輸單元(MTU)。
TCP/IP將這兩個協(xié)議結(jié)合在一起,提供了可靠的、端到端的數(shù)據(jù)傳輸。它是互聯(lián)網(wǎng)通信的基礎(chǔ),支持各種應(yīng)用程序(如Web瀏覽器、電子郵件、文件傳輸?shù)龋┻M行網(wǎng)絡(luò)通信。TCP/IP還支持多種其他協(xié)議,如UDP(用戶數(shù)據(jù)報協(xié)議)、FTP(文件傳輸協(xié)議)、SMTP(簡單郵件傳輸協(xié)議)等等。
TCP報文格式
- 源端口(Source Port):16位字段,表示發(fā)送端口號,用于標(biāo)識發(fā)送方的應(yīng)用程序或服務(wù)。
- 目標(biāo)端口(Destination Port):16位字段,表示接收端口號,用于標(biāo)識接收方的應(yīng)用程序或服務(wù)。
- 序列號(Sequence Number):32位字段,用于按順序組裝數(shù)據(jù)報文,保證數(shù)據(jù)可靠傳輸。
- 確認(rèn)號(Acknowledgment Number):32位字段,表示期望接收的下一個字節(jié)的序列號,用于確認(rèn)接收到的數(shù)據(jù)。
- 數(shù)據(jù)偏移(Data Offset):4位字段,表示TCP頭部的長度,用于指示TCP報文中數(shù)據(jù)區(qū)的起始位置。
- 保留位(Reserved):6位字段,保留供將來使用,目前保持為0。
- 控制位(Flags):6位字段,用于標(biāo)識TCP報文的控制信息,包括:URG(Urgent):表示緊急指針字段是否有效。ACK(Acknowledgment):表示確認(rèn)號字段是否有效。PSH(Push):表示接收方應(yīng)盡快將數(shù)據(jù)交給應(yīng)用程序。RST(Reset):表示重置連接。SYN(Synchronize):用于建立連接。FIN(Finish):用于關(guān)閉連接。
- 窗口大?。╓indow Size):16位字段,表示發(fā)送方期望接收的字節(jié)量,用于流量控制。
- 校驗和(Checksum):16位字段,用于檢測TCP頭部和數(shù)據(jù)的完整性。
10.緊急指針(Urgent Pointer):16位字段,僅在URG標(biāo)志為1時有效,表示緊急數(shù)據(jù)的末尾位置。
11.選項(Options):可選字段,用于提供額外的功能,如選擇確認(rèn)、最大段大小等。
2.說說TCP的可靠機制。???
序列號和確認(rèn)機制:
- TCP報文使用序列號和確認(rèn)號字段來實現(xiàn)數(shù)據(jù)的可靠傳輸。發(fā)送方的TCP將每個字節(jié)的數(shù)據(jù)進行編號,并按序發(fā)送。接收方根據(jù)接收到的字節(jié)進行確認(rèn),并回復(fù)確認(rèn)號,表示期望接收的下一個字節(jié)的序列號。如果發(fā)送方未收到確認(rèn),或者收到的數(shù)據(jù)有丟失、重復(fù)或損壞,發(fā)送方將重傳數(shù)據(jù)。
超時重傳機制:
- TCP使用超時重傳機制來處理丟失的數(shù)據(jù)或確認(rèn)。發(fā)送方設(shè)置一個定時器,在發(fā)送數(shù)據(jù)后等待一段時間,如果在該時間內(nèi)未收到確認(rèn),發(fā)送方會假設(shè)數(shù)據(jù)丟失,并重傳數(shù)據(jù)。接收方通過確認(rèn)號來判斷是否有丟失的數(shù)據(jù),如果接收到重復(fù)的數(shù)據(jù),將丟棄并發(fā)送確認(rèn)。
滑動窗口:
- TCP使用滑動窗口機制來進行流量控制。每個TCP報文中包含一個窗口大小字段,發(fā)送方根據(jù)接收方的窗口大小來控制發(fā)送的數(shù)據(jù)量。接收方根據(jù)自身處理能力和可用緩沖區(qū)大小來設(shè)置窗口大小,發(fā)送方根據(jù)接收方窗口大小來調(diào)整發(fā)送速率,以避免數(shù)據(jù)的擁塞和丟失。
擁塞控制機制:
- TCP使用擁塞控制機制來適應(yīng)網(wǎng)絡(luò)擁塞情況。通過動態(tài)調(diào)整發(fā)送速率和窗口大小,TCP可以避免網(wǎng)絡(luò)擁塞并提供公平共享帶寬。TCP使用擁塞窗口和慢啟動、擁塞避免、快速重傳、快速恢復(fù)等算法來控制擁塞,并根據(jù)網(wǎng)絡(luò)狀況進行自適應(yīng)調(diào)整。
數(shù)據(jù)校驗和錯誤檢測:
- TCP使用校驗和字段來檢測數(shù)據(jù)在傳輸過程中的錯誤。接收方在接收到TCP報文后計算校驗和,如果校驗和不匹配,則認(rèn)為數(shù)據(jù)出現(xiàn)錯誤,并請求發(fā)送方重新發(fā)送數(shù)據(jù)
3.說說TCP三次握手的過程。????
TCP三次握手是建立TCP連接的過程,步驟如下:
- 第一次握手(SYN):客戶端向服務(wù)器發(fā)送一個包含SYN(同步序列號)標(biāo)志的報文段。這表示客戶端請求建立連接,并指定初始序列號(初始的隨機值)。
剩余60%內(nèi)容,訂閱專欄后可繼續(xù)查看/也可單篇購買
BG雙9,目前在某外企。打算把之前校招時做的筆記通過專欄發(fā)出來,本專欄適合于C/C++、嵌入式方向就業(yè)的同學(xué),本篇面經(jīng)總結(jié)數(shù)千篇面經(jīng)的知識集合,實時更新全網(wǎng)最新的嵌入式/C++最新內(nèi)容,囊括了C語言、C++、操作系統(tǒng)、計算機網(wǎng)絡(luò)、嵌入式、算法與數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫等一系列知識點,在我看來這些是求職者在面試中必須掌握的知識點。最后呢祝各位能找到自己合適的工作。