1,通訊端:為了通過網路實現程式之間的相互連信,Java提供了許多抽象應用編程介面(application programming interface API),這類應用介面被稱為通訊端(socket)
2,電腦網路由一組通過通訊通道相互串連的機器組成,
這些機器包括主機和路由器
----主機:
主機上啟動並執行應用程式才是電腦網路的真正“使用者”
----路由器,
它的作用是將資訊從一個通訊通道傳遞或轉寄到另一個通訊通道。路由器可以運行一些程式,但一般不這樣做
----通訊通道,
它將位元組序列從一個主機傳輸到拎一個主機的一種手段,額可以是有線電纜,也可以是無線
-----資訊,
指程式建立和解釋的位元組序列,成為分組報文
-----TCP/IP
包括,IP協議,TCP協議,UDP協議
-----IP協議
TCP/IP協議族中屬於網路層的唯一協議時IP協議,(網路層完成將分組報文傳輸到它們的目的地址的工作,也就是路由器的功能),IP協議提供了資料報服務,處理和發送報文,
IP協議是“儘力而為”的,提供了資料報服務
-------------TCP協議和UDP協議
它們的共同特點:定址,它們使用的地址叫連接埠號碼,用來區分同一台主機的不同應用程式,UDP和TCP都在傳輸層
它們被稱呼為“端到端傳輸協議,因為它們將資料從一個應用程式傳輸到另一個應用程式
-----TCP
提供了可信賴位元組流通道,TCP協議是連線導向的
------UDP
UDP擴充了IP協議的”儘力而為“的資料報服務,使它能在應用程式之間工作,而不是主機之間工作
------地址
在TCP/IP協議中,有兩部分資訊用來定位一個指定的程式,1,互連網地址,2,連接埠號碼
IPv4,一共32位長,表示為4個十進位數,每一個為3位(範圍是0-255),4個數之間用圓點隔開(點分形式)
IPv6,一共128位長,16個位元組,分成8個十六進位數,每個16進位數佔兩個位元組,數字之間用分號隔開
------互連網地址
每個互連網地址代表一台主機與底層的通訊通道的串連,也就是一個網路介面
一個主機可以有多個介面(比如它同時串連乙太網路和無線網)
一個互連網地址能定位一台網路上的主機
一台主機並不對應一個互連網地址,因為每台主機可以有多個介面,每個介面可以有多個地址(可以同時又IPv4和IPv6)
--------迴環地址,
該地址總是被分配一個迴環介面,迴環介面是一種虛擬設備,發送出去的報文,回傳給了自己
IPv4的迴環地址是127.0.0.1
IPv6的迴環地址是0:0:0:0:0:0:0:1
-------名字
可以用主機的名字來指代一台主機,也可以用數字地址的方式指代一台主機
名字總是要被解析為地址的
用名字的好處,就是當伺服器換了地址,而名字沒改,依然可以找到伺服器
名字解析服務可以通過很多資訊源擷取資訊,兩個主要的資訊員是1,網域名稱系統(DNS)2,本地設定資料庫
-----用戶端和伺服器
用戶端是通訊的發起者
伺服器程式是被動等待用戶端發起通訊,並對其作出響應
用戶端和伺服器一起組成了應用程式。
用戶端需要知道伺服器的地址和連接埠號碼,而反之,則沒必要,頂多也是伺服器擷取用戶端的地址
--------通訊端
1,socket(通訊端)是一種抽象層,應用程式通過它來發送和接收資料。
2,TCP/IP協議族中的主要socket類型為流通訊端(scream socket)和資料通訊端(datagram socket)
流通訊端將TCP作為其端到端協議(底層使用IP協議),提供了一個可信賴的位元組流服務。一個tcp/ip流通訊端代表了TCP串連的一端。
資料通訊端使用UDP協議(底層同樣使用IP協議),提供了一個“儘力而為”(best-effor)的資料報服務,應用程式可以通過它發送最長65500位元組的個人資訊。
一個TCP/IPt通訊端由一個互連網地址,一個端對端協議(TCP或者UDP)以及一個連接埠號碼唯一確定
3,在一個主機中,一個通訊端抽象層可以被多個應用程式引用,每個使用了特定通訊端的程式都可以通過那個通訊端進行通訊。
每個連接埠都標識了一台主機的一個應用程式,其實,一個連接埠確定了一台主機上的一個通訊端????
(通訊端可以綁定到互連網????待學習實踐)