天天看點

24-網絡通信三要素

現“OSI/RM”是英文“Open Systems Interconnection Reference Model”的縮寫。

OSI模型:定義了不同計算機互聯的标準

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

OSI模型把網絡通信的工作分為七層:分别是實體層,資料連接配接層,網絡層,傳輸層,會話層,表示層和應用層。

24-網絡通信三要素

網絡通信要素:

1.IP位址  特殊的IP位址 127.0.0.1 本機IP位址

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。

轉載于:https://www.cnblogs.com/zhwforever/p/10717674.html

繼續閱讀