OSI七層模型的簡單介紹
OSI是Open System Interconnection的縮寫轧苫,意為開放式系統(tǒng)互聯(lián)油吭。是設(shè)計和描述計算機(jī)網(wǎng)絡(luò)通信的基本框架苛茂。OSI模型把網(wǎng)絡(luò)通信的工作分為7層
應(yīng)用層(Application):提供網(wǎng)絡(luò)與用戶應(yīng)用軟件之間的接口服務(wù)
表示層(Presentation):提供格式化的表示和轉(zhuǎn)換數(shù)據(jù)服務(wù)筛谚,如加密和壓縮
會話層(Session):提供包括訪問驗證和會話管理在內(nèi)的建立和維護(hù)應(yīng)用之間通信的機(jī)制
傳輸層(Transimission):?提供建立、維護(hù)和取消傳輸連接功能锐峭,負(fù)責(zé)可靠地傳輸數(shù)據(jù)(PC)
網(wǎng)絡(luò)層(Network):處理網(wǎng)絡(luò)間路由,確保數(shù)據(jù)及時傳送(路由器)
數(shù)據(jù)鏈路層(DataLink) :負(fù)責(zé)無錯傳輸數(shù)據(jù)可婶,確認(rèn)幀沿癞、發(fā)錯重傳等(交換機(jī))
物理層(Physics) : 提供機(jī)械、電氣矛渴、功能和過程特性(網(wǎng)卡椎扬、網(wǎng)線惫搏、雙絞線、同軸電纜蚕涤、中繼器)
TCP/IP協(xié)議簡單介紹
TCP(Transmission Control Protocol?傳輸控制協(xié)議)是一種面向連接的筐赔、可靠的、基于字節(jié)流的傳輸層通信協(xié)議揖铜,是互聯(lián)網(wǎng)的基礎(chǔ)茴丰,也是每個程序員必備的基本功。TCP/IP參考模型分為四層天吓,從上到下分別是:應(yīng)用層贿肩、傳輸層、網(wǎng)絡(luò)互連層龄寞、網(wǎng)絡(luò)接口層汰规。
TCP功能
將數(shù)據(jù)進(jìn)行分段打包傳輸
對每個數(shù)據(jù)包編號控制順序
運輸中丟失、重發(fā)和丟棄處理
流量控制避免擁塞
TCP/IP參考模型的層次結(jié)構(gòu)
層與層之間的合作和分工
數(shù)據(jù)從發(fā)送源傳輸?shù)浇邮斩艘M(jìn)行數(shù)據(jù)封裝和數(shù)據(jù)拆包的過程物邑。數(shù)據(jù)封裝的傳輸過程中溜哮,在每一層要加入首部信息,有時還要增加尾部信息色解。數(shù)據(jù)單元在傳輸層被稱為段(segment)茂嗓,在網(wǎng)絡(luò)層被稱為包(package),在鏈路層被稱為幀(frame)冒签。數(shù)據(jù)封裝完畢傳輸?shù)浇邮辗胶笤谂祝瑢?shù)據(jù)要進(jìn)行解封裝。解封裝是把增加的首部信息拆掉萧恕,最后把數(shù)據(jù)傳給接收端刚梭。如下圖:
TCP協(xié)議的三次握手和四次分手
TCP是面向連接的協(xié)議,它在源點和終點之間建立虛擬連接票唆,而不是物理連接
在數(shù)據(jù)通信之前朴读,發(fā)送端與接收端要先建立連接,等數(shù)據(jù)發(fā)送結(jié)束后走趋,雙方再斷開連接
TCP連接的每一方都是由一個IP地址和一個端口組成
ACK: 此標(biāo)志表示應(yīng)答域有效衅金,就是說前面所說的TCP應(yīng)答號將會包含在TCP數(shù)據(jù)包中。有兩個取值: 0和1簿煌,為1的時候表示應(yīng)答域有效氮唯,反之為0。
FIN: 表示發(fā)送端已經(jīng)達(dá)到數(shù)據(jù)末尾姨伟,也就是說雙方的數(shù)據(jù)傳送完成惩琉,沒有數(shù)據(jù)可以傳送了,發(fā)送FIN標(biāo)志位的TCP數(shù)據(jù)包后夺荒,連接將被斷開瞒渠。這個標(biāo)志的數(shù)據(jù)包也經(jīng)常被用于進(jìn)行端口掃描良蒸。
三次握手
第一次握手主機(jī)A通過一個標(biāo)識為SYN標(biāo)識位的數(shù)據(jù)段發(fā)送給主機(jī)B請求連接,通過該數(shù)據(jù)段告訴主機(jī)B希望建立連接伍玖,需要B應(yīng)答嫩痰,并告訴主機(jī)B傳輸?shù)钠鹗夹蛄刑?/p>
第二次握手是主機(jī)B用一個確認(rèn)應(yīng)答ACK和同步序列號SYNC標(biāo)志位的數(shù)據(jù)段來響應(yīng)主機(jī)A,一是發(fā)送ACK告訴主機(jī)A收到了數(shù)據(jù)段窍箍,二是通知主機(jī)A從哪個序列號做標(biāo)記串纺。
第三次握手是主機(jī)A確認(rèn)收到了主機(jī)B的數(shù)據(jù)段并可以開始傳輸實際數(shù)據(jù)。
為什么要三次握手?
為了防止已失效的連接請求報文段突然又傳送到了服務(wù)端仔燕,因而產(chǎn)生錯誤造垛。
比如:一個人和另一個人說話,其中一個人說你能聽到嗎晰搀,另一人不回答五辽,兩個人交流失敗,或者 一個人說中文外恕,另個人說英文杆逗,兩個人交流還是失敗,為了保證客戶端能夠接收到服務(wù)端的信息并能做出正確的應(yīng)答鳞疲,所以才三次握手罪郊。
四次斷開
主機(jī)A發(fā)送FIN控制位發(fā)出斷開連接的請求
主機(jī)B進(jìn)行響應(yīng),確認(rèn)收到斷開連接請求
主機(jī)B提出反方向的關(guān)閉要求
主機(jī)A確認(rèn)收到的主機(jī)B的關(guān)閉連接請求
為什么四次斷開?
四次斷開和上面的例子一樣尚洽,如果沒有溝通不好悔橄,就會導(dǎo)致鏈接失敗,不安全腺毫。
TCP是全雙工模式癣疟,這就意味著,當(dāng)主機(jī)1發(fā)出FIN報文段時潮酒,只是表示主機(jī)1已經(jīng)沒有數(shù)據(jù)要發(fā)送了睛挚,主機(jī)1告訴主機(jī)2,它的數(shù)據(jù)已經(jīng)全部發(fā)送完畢了急黎;但是扎狱,這個時候主機(jī)1還是可以接受來自主機(jī)2的數(shù)據(jù);當(dāng)主機(jī)2返回ACK報文段時勃教,表示它已經(jīng)知道主機(jī)1沒有數(shù)據(jù)發(fā)送了淤击,但是主機(jī)2還是可以發(fā)送數(shù)據(jù)到主機(jī)1的;當(dāng)主機(jī)2也發(fā)送了FIN報文段時故源,這個時候就表示主機(jī)2也沒有數(shù)據(jù)要發(fā)送了遭贸,就會告訴主機(jī)1,我也沒有數(shù)據(jù)要發(fā)送了心软,之后彼此就會愉快的中斷這次TCP連接壕吹。
?OSI七層和TCP/IP四層的關(guān)系
1.?OSI引入了服務(wù)、接口删铃、協(xié)議耳贬、分層的概念,TCP/IP借鑒了OSI的這些概念建立TCP/IP模型猎唁。
2.?OSI先有模型咒劲,后有協(xié)議,先有標(biāo)準(zhǔn)诫隅,后進(jìn)行實踐腐魂;而TCP/IP則相反,先有協(xié)議和應(yīng)用再提出了模型逐纬,且是參照的OSI模型蛔屹。
3.?OSI是一種理論下的模型,而TCP/IP已被廣泛使用豁生,成為網(wǎng)絡(luò)互聯(lián)事實上的標(biāo)準(zhǔn)兔毒。
OSI和TCP/IP模型就簡單介紹完了,如果有理解錯誤的地方甸箱,歡迎指正育叁!