1、互聯網協議:網絡
英語是世界全部人通訊的惟一標準,internet實際就是計算機之間一系列統一的標準。而這一些列標準就是互聯網協議。互聯網的本質就是一系列協議。socket
2、互聯網協議按照功能不一樣細分爲osi七層或tcp/ip五層,或tcp/ip四層,咱們須要掌握五層的原理就夠了。tcp
五層協議對應的物理設備:spa
。接口
3、五層模型及對應協議:進程
定義:計算機之間必須靠光纖等完成組網(即鏈接)ip
物理層功能:主要是經過物理層發送或接受高低電頻(電信號)原理
定義:單純的電信號是沒有意義的,必須對一串高低電頻進行分組,每組表明 什麼意思。互聯網
實現功能:定義了電信號的分組方式。數據類型
以太網協議:一個統一的分組標準。
一個數據報(幀)分爲:head(固定長度18個字節)、data(最短46個字節、 最長1500個字節,data部分是數據的具體內容。)
head 18個字節中包含:源地址6個字節、目標地址6個字節、數據類型6個 字節.
mac地址:即網卡地址(獨一無二),上面說的目標地址、源地址都是mac地址。
廣播:有了mac地址,同一局域網中的計算機就能實現通訊(有了數據鏈路層就 有了mac地址,就能實現局域網內通訊)
有了以太網協議:就能在同一個局域網內以廣播的方式進行通訊。
定義:因爲廣播風暴,因此必須劃分局域。
功能:引入一套新的地址來區分不一樣的廣播域/子網
IP協議:規定網絡地址的協議叫IP協議,它定義的地址稱IP地址。
1.32位(4個字節)二進制,範圍:0.0.0.0-255.255.255.255
一個IP地址一般攜程四段十進制數,如:172.168.10.1
2.IP地址分爲兩部分:
網絡部分:標識子網
主機部分:標識主機
注意一個單純的IP地址段只是標識了IP地址的種類,沒法肯定所屬的子網。
如:172.16.10.1與172.16.10.2並不能肯定兩者處於同一子網。
3.子網掩碼:它的網絡部分所有爲1,主機部分所有爲0
知道子網掩碼,咱們就能判斷任意兩個IP地址是否處於同一個子網絡,方法 是將兩個IP地址與子網掩碼分別進行AND運算(兩個對應數位都爲一,結果 爲1,不然爲0),若是運算結果相同,就代表在同一個子網。
4.IP數據包:(分head、data)
IP協議的做用:
ARP協議:廣播的方式發送數據包,獲取目標主機的mac地址。
通訊是基於mac地址的廣播方式實現的,可是 計算機在發包時,獲取本身的 mac地址是容易的,可是獲取對方的mac就須要用到ARP協議。
經過IP地址和子網掩碼區分本身所屬的子網, 若是在相同子網,經過ARP協議返回目標計算機mac地址,若是不在相同子網,經過ARP協議返回目標網關mac地址。
4.傳輸層:網絡層的IP協議的IP能幫咱們區分子網,數據鏈路層的以太網協議mac地址能幫咱們找到主機。可是須要定位傳輸層來定位主機上的應用程序。
端口即應用程序與網卡關聯的編號。
傳輸層的功能:創建端口到端口的通訊。
TCP協議:提供一種可靠的、確保數據不丟失不亂序的、端到端的傳輸。
TCP協議的三次握手與四次揮手:
5.應用層:
功能:固定應用程序的數據格式。
4、Socket
Socket是在應用層與傳輸層之間的一個抽象層,它把TCP/IP層複雜的操做抽象成幾個簡單的接口,封裝在一個類中,共應用層調用實現進程在網絡中的通訊。
咱們能夠經過ip地址+TCP協議+端口號(端口號是應用程序與mac地址關聯的編號)來惟一標識網絡中的一個進程。
而後咱們就可以利用socket進行通訊了。