TCP 、 UDP、三次握手、四次揮手

bok發表於2018-08-07

TCP 、 UDP、三次握手、四次揮手

  • 運輸層為應用層提供端到端的的通訊服務

  • UDP:無連線、不可靠的協議。DNS DHCP 都是使用的udp協議

  • TCP:TCP協議是面向連線的、可靠傳輸、有流量控制,擁塞控制,面向位元組流傳輸等很多優點的協議。其最終功能和UDP一樣,在端和端之間進行通訊,但是和UDP的區別還是很大的。

  • 三次握手:C SYN S —— S ACK C —— C ACK S

  • 為什麼需要三次握手:假設沒有第三次握手,客戶端傳送一個連線請求報文過去,但是因為網路延遲,在等待了一個超時時間後,客戶端就會在重新發一個請求連線報文過去,然後正常的進行,伺服器端發回一個確認連線報文,然後就開始通訊,通訊結束後,那個第一次因為網路延遲的請求連線報文到了伺服器端,伺服器端不知道這個報文已經失效,也發回了一個確認連線報文,客戶端接收後,發現自己並沒有傳送連線請求(因為超時了,所以就認為自己沒有發),所以對這個確認連線請求就什麼也不做,但是此時服務端不這麼認為,他認為i連線已經建立了,就一直開啟著等待客戶端傳資料過來,這就造成了極大的浪費。如果有了第三次握手,那麼客戶端就可以通知伺服器了。所以第三次握手也很重要。

    如果沒有第三次握手,服務端返回ACK 就開始等待客戶端的資料,但是沒有管客戶端有沒有收到或者承認,這樣會造成浪費

  • 四次揮手:C FIN S —— S ACK C —— S FIN C —— C ACK S

  • 為什麼需要四次揮手:

計算機網路結構

應用層 HTTP

與其它計算機進行通訊的一個應用,它是對應應用程式的通訊服務的。例如,一個沒有通訊功能的字處理程式就不能執行通訊的程式碼,從事字處理工作的程式設計師也不關心OSI的第7層。但是,如果新增了一個傳輸檔案的選項,那麼字處理器的程式設計師就需要實現OSI的第7層。示例:TELNET,HTTP,FTP,NFS,SMTP等。

表示層

這一層的主要功能是定義資料格式及加密。例如,FTP允許你選擇以二進位制或ASCII格式傳輸。如果選擇二進位制,那麼傳送方和接收方不改變檔案的內容。如果選擇ASCII格式,傳送方將把文字從傳送方的字符集轉換成標準的ASCII後傳送資料。在接收方將標準的ASCII轉換成接收方計算機的字符集。示例:加密,ASCII等。

會話層

它定義瞭如何開始、控制和結束一個會話,包括對多個雙向訊息的控制和管理,以便在只完成連續訊息的一部分時可以通知應用,從而使表示層看到的資料是連續的,在某些情況下,如果表示層收到了所有的資料,則用資料代表表示層。示例:RPC,SQL等。

傳輸層 TCP/UDP

這層的功能包括是否選擇差錯恢復協議還是無差錯恢復協議,及在同一主機上對不同應用的資料流的輸入進行復用,還包括對收到的順序不對的資料包的重新排序功能。示例:TCP,UDP,SPX。

網路層 IP

這層對端到端的包傳輸進行定義,它定義了能夠標識所有結點的邏輯地址,還定義了路由實現的方式和學習的方式。為了適應最大傳輸單元長度小於包長度的傳輸介質,網路層還定義瞭如何將一個包分解成更小的包的分段方法。示例:IP,IPX等。

資料鏈路層

它定義了在單個鏈路上如何傳輸資料。這些協議與被討論的各種介質有關。示例:ATM,FDDI等。

物理層

OSI的物理層規範是有關傳輸介質的特這些規範通常也參考了其他組織制定的標準。連線頭、幀、幀的使用、電流、編碼及光調製等都屬於各種物理層規範中的內容。物理層常用多個規範完成對所有細節的定義。示例:Rj45,802.3等。

相關文章