OSI/RM------開放式系統(tǒng)互聯(lián)參考模型
數(shù)據(jù)鏈路層:介質(zhì)訪問控制層MAC+邏輯鏈路控制層LLC
邏輯鏈路控制層LLC:對數(shù)據(jù)驚醒校驗,只保障數(shù)據(jù)完整性;同時增加FCS(校驗核),校驗數(shù)據(jù)完整性。
應(yīng)用層:抽象語言----編碼
表示層:編碼---二進(jìn)制
網(wǎng)絡(luò)層:IP 互聯(lián)網(wǎng)協(xié)議 ?
數(shù)據(jù)鏈路層:介質(zhì)訪問控制層MAC+邏輯鏈路控制層LLC
物理層:物理硬件
應(yīng)用層 表示層 ?會話層:都是對數(shù)據(jù)進(jìn)行加工處理的
傳輸層 網(wǎng)絡(luò)層 數(shù)據(jù)鏈路層 物理層 :對數(shù)據(jù)的運(yùn)輸 到達(dá)對端做出工作
會話層:提供會話號,同軟件不同進(jìn)程的程序在同時接收發(fā)消息時,他們會擁有相同的IP地址MAC地址,此時,就需要會話層分別給予不同的會話號去區(qū)分。
傳輸層:TCP/UDP ?1.分段(受到MTU限制)2.端口號
- MTU:最大傳輸單元 默認(rèn)1500字節(jié)
分段:當(dāng)數(shù)據(jù)包過大時,連續(xù)發(fā)送可能會使數(shù)據(jù)在傳輸途中插入別的數(shù)據(jù)造成損壞,所以需要對數(shù)據(jù)包進(jìn)行分段處理,從而保證數(shù)據(jù)包的完整性。
- 端口號:使用電腦可能會同時訪問多個服務(wù)器,這多個服務(wù)器在進(jìn)行回復(fù)的時候,回復(fù)目標(biāo)都是相同IP/MAC,為了不分配錯誤,所以在該程序啟動時,電腦會在1024-65535隨機(jī)分配端口號給這個程序,在服務(wù)器回包時也會帶著這個端口號,這樣電腦就能做出正確的數(shù)據(jù)分配。
???端口號:0-65535 ?1-1023 注明端口 ?1024-65535高端口/動態(tài)端口 ??
TCP/IP 協(xié)議簇
1.分層不均
??2.分層太多 ?
PDU:協(xié)議數(shù)據(jù)單元 ?對不同層封裝的數(shù)據(jù)單元標(biāo)識
應(yīng)用層-----數(shù)據(jù)報文
傳輸層-----數(shù)據(jù)段
網(wǎng)絡(luò)層-----數(shù)據(jù)包
數(shù)據(jù)鏈路層------數(shù)據(jù)幀
物理層------比特流
TTL:生存周期
最大255 ?推薦64 ??常見128 ?
以太網(wǎng)II型幀
- 封裝
- 解封裝
HTTP ?tcp ?80 ?超文本傳輸協(xié)議 ?
HTTPS ?TCP ?443 ?(HTTP+SSL(TLC)) 安全傳輸協(xié)議
FTP ?tcp ?20/21 ?文件傳輸協(xié)議
TFTP ?udp 69 ?簡單文件傳輸協(xié)議
Telnet ??tcp ?23 ?遠(yuǎn)程登錄標(biāo)準(zhǔn)協(xié)議 ?
SSH ?tcp ?22 ?安全外殼
DNS ?UDP/TCP ?53 ??域名解析協(xié)議
DHCP ?UDP ?67/68 ??動態(tài)主機(jī)配置協(xié)議
TCP----傳輸控制協(xié)議----面向連接的可靠協(xié)議
在完成了傳輸層的基本工作的同時,還需要保證傳輸?shù)目煽啃浴?/p>
面向連接---3次握手 ??4次揮手 ?建立端到端的虛鏈路
SYN:發(fā)起一次連接,并告知自身狀態(tài) ?ACK:標(biāo)識確認(rèn)
特殊情況:RST重連 ? TCP 嚴(yán)重錯誤并重連 ?FIN 斷開
PSH 緊急加收 ?URG緊急指針
三次握手:
1)第一次握手
客戶端發(fā)送SYN包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn)。
2)第二次握手
服務(wù)器確認(rèn)客戶的SYN包,同時發(fā)送ACK包(ack = j+1)作為回應(yīng);
自己也發(fā)送一個SYN包(syn=k),共兩個包,此時服務(wù)器進(jìn)入SYN_RECV狀態(tài);
(3)第三次握手
客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手。
四次揮手
四次揮手即終止TCP連接,就是指斷開一個TCP連接時,需要客戶端和服務(wù)端總共發(fā)送4個包以確認(rèn)連接的斷開。在socket編程中,這一過程由客戶端或服務(wù)端任一方執(zhí)行close來觸發(fā)。
(1)第一次揮手
客戶端發(fā)送一個FIN=M,用來關(guān)閉客戶端到服務(wù)器端的數(shù)據(jù)傳送,客戶端進(jìn)入FIN_WAIT_1狀態(tài)。
意思是說"我客戶端沒有數(shù)據(jù)要發(fā)給你了",但是如果你服務(wù)器端還有數(shù)據(jù)沒有發(fā)送完成,則不必急著關(guān)閉連接,可以繼續(xù)發(fā)送數(shù)據(jù)。
(2)第二次揮手(半連接)
服務(wù)器端收到FIN后,先發(fā)送ack=M+1,告訴客戶端,你的請求我收到了,但是我還沒準(zhǔn)備好,請繼續(xù)你等我的消息。這個時候客戶端就進(jìn)入FIN_WAIT_2 狀態(tài)(半連接狀態(tài)),繼續(xù)等待服務(wù)器端的FIN報文。
(3)第三次揮手
當(dāng)服務(wù)器端確定數(shù)據(jù)已發(fā)送完成,則向客戶端發(fā)送FIN=N報文,告訴客戶端,好了,我這邊數(shù)據(jù)發(fā)完了,準(zhǔn)備好關(guān)閉連接了。服務(wù)器端進(jìn)入LAST_ACK狀態(tài)。
(4)第四次揮手
客戶端收到FIN=N報文后,就知道可以關(guān)閉連接了。
但是他還是不相信網(wǎng)絡(luò),怕服務(wù)器端不知道要關(guān)閉,所以發(fā)送ack=N+1后進(jìn)入TIME_WAIT狀態(tài),如果Server端沒有收到ACK則可以重傳。服務(wù)器端收到ACK后,就知道可以斷開連接了。
客戶端等待了2MSL后依然沒有收到回復(fù),則證明服務(wù)器端已正常關(guān)閉,那好,我客戶端也可以關(guān)閉連接了。
可靠性----4種可靠性機(jī)制-------確認(rèn) ?排序 ?重傳 ??流控(滑動窗口)
UDP-----用戶數(shù)據(jù)報文協(xié)議------非面向連接的不可靠協(xié)議 ??僅完成傳輸?shù)幕竟ぷ?-分段 端口號
TCP與UDP的區(qū)別
IP的包頭
TCP的分段和IP的分片
IP分片的原因:受到二層 ?數(shù)據(jù)鏈路層 MTU的限制,最大傳輸單元不能超過1500字節(jié)文章來源:http://www.zghlxwxcb.cn/news/detail-826940.html
數(shù)據(jù)到達(dá)網(wǎng)絡(luò)層大于MTU則會分片,為了提高傳輸效率減少分片,TCP在裝載數(shù)據(jù)時如果能做到封裝后的數(shù)據(jù)不引起三層分片則是一種最佳選擇,MSS值的目的就是基于雙方的MTU協(xié)商出一個最大傳輸承載長度。文章來源地址http://www.zghlxwxcb.cn/news/detail-826940.html
到了這里,關(guān)于網(wǎng)絡(luò)基礎(chǔ) 二 OSI七層模型與網(wǎng)絡(luò)協(xié)議的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!