TCP、IP協(xié)議是計算機之間數(shù)據(jù)傳輸協(xié)議的統(tǒng)稱:
從物理數(shù)據(jù)傳輸?shù)綉?yīng)用程序之間的數(shù)據(jù)交易,按照數(shù)據(jù)流動很容易分層以下幾層:
數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。

1. 數(shù)據(jù)鏈路層,主要是以太網(wǎng)協(xié)議。以太網(wǎng)規(guī)定數(shù)據(jù)傳輸必須要有網(wǎng)卡。對一組的電信號傳輸做了一個規(guī)范,一組電信號被成為數(shù)據(jù)包,也叫幀。以太網(wǎng)數(shù)據(jù)包傳輸采供廣播的機制傳輸,對當(dāng)前局域網(wǎng)內(nèi)所有的機器發(fā)送數(shù)據(jù)包。
結(jié)構(gòu)為{[首部{當(dāng)前主機網(wǎng)卡+目標(biāo)主機網(wǎng)卡+2個表示位}][傳輸?shù)膬?nèi)容][校驗碼4字節(jié)]}
2. 網(wǎng)絡(luò)層,網(wǎng)絡(luò)層主要采用了IP協(xié)議、ARP協(xié)議(Address Resolution Proctol)和路由協(xié)議
IP協(xié)議: 是規(guī)定每臺機器含32位二進(jìn)制編碼(4*8)
ARP協(xié)議: 發(fā)送數(shù)據(jù)包時,采用以太網(wǎng)廣播機制對局域網(wǎng)內(nèi)所有機器發(fā)送數(shù)據(jù)包。接收數(shù)據(jù)包時,會拿數(shù)據(jù)包的頭IP和當(dāng)前主機比對,如果一直則返回MAC地址,否則丟棄數(shù)據(jù)包。
路由協(xié)議:ARP協(xié)議只負(fù)責(zé)局域網(wǎng)。路由協(xié)議的設(shè)備接收到數(shù)據(jù)包時,會先比對是否為當(dāng)前局域網(wǎng)內(nèi),如果在局域網(wǎng)內(nèi)則將數(shù)據(jù)包轉(zhuǎn)發(fā)局域網(wǎng)內(nèi)所有機器。否則轉(zhuǎn)發(fā)數(shù)據(jù)包。
3. 傳輸層,傳輸層協(xié)議主要是UDP協(xié)議和TCP協(xié)議(用來解決網(wǎng)絡(luò)層數(shù)據(jù)包被主機下那個應(yīng)用接收)
3.1 UDP協(xié)議是無狀態(tài)的協(xié)議。只負(fù)責(zé)發(fā)送不負(fù)責(zé)校驗數(shù)據(jù)包被接收。UDP協(xié)議數(shù)據(jù)包結(jié)構(gòu)為:
{[首部8字節(jié)][內(nèi)容65527]}? ?首部主要包含了當(dāng)前應(yīng)用的端口號+目標(biāo)機器端口號
3.2 TCP協(xié)議,是有狀態(tài)的UDP協(xié)議,傳輸數(shù)據(jù)包會進(jìn)行三次握手。
三次握手(可以使用Wireshark來監(jiān)測抓包SYN,SEQ來完成三次握手):
詢問目標(biāo)主機,是否可以發(fā)送數(shù)據(jù)包?
目標(biāo)主機,反饋可以發(fā)送。
立即發(fā)送
4. 應(yīng)用層 傳輸層傳輸?shù)臄?shù)據(jù)包為二進(jìn)制數(shù)據(jù)包,具體應(yīng)用需要確定數(shù)據(jù)接收的方式,應(yīng)用層才用HTTP,F(xiàn)TP,SMTP協(xié)議
HTTP協(xié)議最廣泛,請求的Content-type就是HTTP協(xié)議處理傳輸層數(shù)據(jù)包的處理方式