24-網絡通訊三要素

現「OSI/RM」是英文「Open Systems Interconnection Reference Model」的縮寫。安全

OSI模型:定義了不一樣計算機互聯的標準服務器

是設計和描述計算機網絡通訊的基本框架。網絡

OSI模型把網絡通訊的工做分爲七層:分別是物理層,數據鏈接層,網絡層,傳輸層,會話層,表示層和應用層。框架

網絡通訊要素:socket

1.IP地址  特殊的IP地址 127.0.0.1 本機IP地址spa

2.端口號  用於標識進程的邏輯地址計算機網絡

經過以上就能夠找到某個電腦上的某個程序翻譯

3.傳輸協議   通信的規則  TCP  UDP  協議設計

 

UDP:User Datagram Protocol用戶數據報協議 特色:視頻

  • 面向無鏈接:傳輸數據以前源端和目的端不須要創建鏈接。
  • 每一個數據報的大小都限制在64K(8個字節)之內。
  • 面向報文的不可靠協議。(即:發送出去的數據不必定會接收穫得)
  • 傳輸速率快,效率高。
  • 現實生活實例:郵局寄件、實時在線聊天、視頻會議…等。

 TCP:Transmission Control Protocol傳輸控制協議 特色:

  • 面向鏈接:傳輸數據以前須要創建鏈接。
  • 在鏈接過程當中進行大量數據傳輸。
  • 經過「三次握手」的方式完成鏈接,是安全可靠協議。
  • 傳輸速度慢,效率低。

三次過程:

三次握手(three times handshake;three-way handshake)所謂的「三次握手」即對每次發送的數據量是怎樣跟蹤進行協商使數據段的發送和接收同步,根據所接收到的數據量而肯定的數據確認數及數據發送、接收完畢後什麼時候撤消聯繫,並創建虛鏈接。

第一次握手:創建鏈接時, 客戶端發送 syn包(syn=j)到 服務器,並進入 SYN_SENT狀態,等待服務器確認;SYN:同步序列編號( Synchronize Sequence Numbers)。
第二次握手服務器收到 syn包,必須確認客戶的SYN( ack=j+1),同時本身也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入 SYN_RECV狀態;
第三次握手: 客戶端收到 服務器的SYN+ACK包,向 服務器發送確認包ACK( ack=k+1),此包發送完畢,客戶端和服務器進入 ESTABLISHED(TCP鏈接成功)狀態,完成三次握手。
 
四次揮手:
因爲TCP鏈接是全雙工的,所以每一個方向都必須單獨進行關閉。這原則是當一方完成它的數據發送任務後就能發送一個FIN來終止這個方向的鏈接。收到一個 FIN只意味着這一方向上沒有數據流動,一個TCP鏈接在收到一個FIN後仍能發送數據。首先進行關閉的一方將執行主動關閉,而另外一方執行被動關閉。
(1) TCP客戶端發送一個FIN,用來關閉客戶到服務器的 數據傳送
(2) 服務器收到這個FIN,它發回一個ACK,確認序號爲收到的序號加1。和SYN同樣,一個FIN將佔用一個序號。
(3) 服務器關閉客戶端的鏈接,發送一個FIN給客戶端。
(4) 客戶端發回ACK 報文確認,並將確認序號設置爲收到序號加1。
 
通信網絡步驟:
1肯定對端IP地址     2肯定應用程序端口   3肯定通訊協議
 
 

 要想理解socket,就要先來理解TCP,UDP協議

     TCP/IP(Transmission Control Protocol/Internet Protocol)即傳輸控制協議/網間協議,定義了主機如何連入因特網及數據如何再它們之間傳輸的標準,

從字面意思來看TCP/IP是TCP和IP協議的合稱,但實際上TCP/IP協議是指因特網整個TCP/IP協議族。不一樣於ISO模型的七個分層,TCP/IP協議參考模型把全部的TCP/IP系列協議歸類到四個抽象層中

應用層:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等

傳輸層:TCP,UDP

網絡層:IP,ICMP,OSPF,EIGRP,IGMP

數據鏈路層:SLIP,CSLIP,PPP,MTU

每一抽象層創建在低一層提供的服務上,而且爲高一層提供服務,看起來大概是這樣子的

    咱們能夠利用ip地址+協議+端口號惟一標示網絡中的一個進程。可以惟一標示網絡中的進程後,它們就能夠利用socket進行通訊了,咱們常常把socket翻譯爲套接字,socket是在應用層和傳輸層(TCP/IP協議族通訊)之間的一個抽象層,是一組接口,它把TCP/IP層複雜的操做抽象爲幾個簡單的接口供應用層調用已實現進程在網絡中通訊。

    應用程序兩端經過「套接字」向網絡發出請求或者應答網絡請求。能夠把socket理解爲通訊的把手(hand)

    socket起源於UNIX,在Unix一切皆文件哲學的思想下,socket是一種"打開—讀/寫—關閉"模式的實現,服務器和客戶端各自維護一個"文件",在創建鏈接打開後,能夠向本身文件寫入內容供對方讀取或者讀取對方內容,通信結束時關閉文件。socket的英文原義是「插槽」或「插座」,就像咱們家裏座機同樣,若是沒有網線的那個插口,電話是沒法通訊的。Socket是實現TCP,UDP協議的接口,便於使用TCP,UDP。

相關文章
相關標籤/搜索