OSI是一個開放性的通信系統(tǒng)互連參考模型,他是一個定義得非常好的協(xié)議規(guī)范。OSI模型有7層結(jié)構(gòu),每層都可以有幾個子層。
示例:TELNET,HTTP,F(xiàn)TP,NFS,SMTP等。
示例:加密,ASCII等。
示例:RPC,SQL等。
示例:TCP,UDP,SPX。
示例:IP,IPX等。
示例:ATM,F(xiàn)DDI等。
示例:Rj45,802.3等。
簡單了解OSI之后我們來看一下我們手機與電腦通信,所能夠使用的兩種數(shù)據(jù)通信,一種是HTTP請求,一種是Socket通信,HTTP是屬于短連接,適合新聞,訂票信息等客戶端發(fā)起請求,每一次請求結(jié)束,自動斷開連接。而Socket是屬于長連接,適合游戲,聊天等實時數(shù)據(jù)。
手機能夠聯(lián)網(wǎng)都是需要基于OSI協(xié)議模型,同時手機底層實現(xiàn)了TCP/IP協(xié)議。下面簡單介紹一下TCP/IP協(xié)議
建立起一個TCP連接需要經(jīng)過“三次握手”:
第一次握手:客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進入SYN_SEND狀態(tài),等待服務(wù)器確認;
第二次握手:服務(wù)器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務(wù)器進入SYN_RECV狀態(tài);
第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進入ESTABLISHED狀態(tài),完成三次握手。
握 手過程中傳送的包里不包含數(shù)據(jù),三次握手完畢后,客戶端與服務(wù)器才正式開始傳送數(shù)據(jù)。理想狀態(tài)下,TCP連接一旦建立,在通信雙方中的任何一方主動關(guān)閉連 接之前,TCP 連接都將被一直保持下去。斷開連接時服務(wù)器和客戶端均可以主動發(fā)起斷開TCP連接的請求,斷開過程需要經(jīng)過“四次握手”(過程就不細寫 了,就是服務(wù)器和客戶端交互,最終確定斷開)
同時Socket可以支持不同的傳輸層協(xié)議(UDP),那我們平時為什么不使用UDP呢,我們現(xiàn)在來看一下UDP與TCP的區(qū)別
TCP UDP
是否連接 面向連接 面向非連接
傳輸可靠性 可靠 不可靠
應(yīng)用場合 傳輸大量數(shù)據(jù) 少量數(shù)據(jù)
速度 慢 快
順便在片尾糾正一下我對于這些協(xié)議的理解。
1.我一直以為Http和Tcp是兩種不同的,但是地位對等的協(xié)議,雖然知道TCP是傳輸層,而http是應(yīng)用層今天學(xué)習(xí)了下,知道了 http是要基于TCP連接基礎(chǔ)上的,簡單的說,TCP就是單純建立連接,不涉及任何我們需要請求的實際數(shù)據(jù),簡單的傳輸。http是用來收發(fā)數(shù)據(jù),即實際應(yīng)用上來的。
2.TCP是底層通訊協(xié)議,定義的是數(shù)據(jù)傳輸和連接方式的規(guī)范 HTTP是應(yīng)用層協(xié)議,定義的是傳輸數(shù)據(jù)的內(nèi)容的規(guī)范 HTTP協(xié)議中的數(shù)據(jù)是利用TCP協(xié)議傳輸?shù)?,所以支持HTTP也就一定支持TCP
3.HTTP支持的是www服務(wù)而TCP/IP是協(xié)議它是Internet國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ)。TCP/IP是網(wǎng)絡(luò)中使用的基本的通信協(xié)議。TCP/IP實際上是一組協(xié)議,它包括上百個各種功能的協(xié)議,如:遠程登錄、文件傳輸和電子郵件等,而TCP協(xié)議和IP協(xié)議是保證數(shù)據(jù)完整傳輸?shù)膬蓚€基本的重要協(xié)議。通常說TCP/IP是Internet協(xié)議族,而不單單是TCP和IP。
聯(lián)系客服