什么是網絡編程?網絡編程指使用編程語言實現多臺計算機的通信,具有三大要素,其中包括IP地址、端口、協議,接下來我們看看具體的內容介紹。
一、IP地址
計算機分布在世界各地,要想和它們通信,必須要知道確切的位置。確定計算機位置的方式有多種,IP地址是最常用的,例如,114.114.114.114是國內第一個、全球第三個開放的DNS服務地址,127.0.0.1是本機地址。
其實,我們的計算機并不知道IP地址對應的地理位置,當要通信時,只是將IP地址封裝到要發送的數據包中,交給路由器去處理。路由器有非常智能和高效的算法,很快就會找到目標計算機,并將數據包傳遞給它,完成一次單向通信。
目前大部分軟件使用IPv4地址,但IPv6也正在被人們接受,尤其是在教育網中,已經大量使用。
二、端口
有了IP地址,雖然可以找到目標計算機,但仍然不能進行通信。一臺計算機可以同時提供多種網絡服務,例如Web服務、FTP服務、SMTP服務等,僅有IP地址,計算機雖然可以正確接收到數據包,但是卻不知道要將數據包交給哪個網絡程序來處理,所以通信失敗。
為了區分不同的網絡程序,計算機會為每個網絡程序分配一個獨一無二的端口號,例如,Web服務的端口號是80,FTP服務的端口號是21,SMTP服務的端口號是25。
端口(Port)是一個虛擬的、邏輯上的概念。可以將端口理解為一道門,數據通過這道門流入流出,每道門有不同的編號,就是端口號。
三、協議
協議(Protocol)就是網絡通信的約定,通信的雙方必須都遵守才能正常收發數據。協議有很多種,例如TCP、UDP、IP等,通信的雙方必須使用同一協議才能通信。協議是一種規范,由計算機組織制定,規定了很多細節,例如,如何建立連接,如何相互識別等。
協議僅僅是一種規范,必須由計算機軟件來實現。例如IP協議規定了如何找到目標計算機,那么各個開發商在開發自己的軟件時就必須遵守該協議,不能另起爐灶。
所謂協議族(ProtocolFamily),就是一組協議(多個協議)的統稱。最常用的是TCP/IP協議族,它包含了TCP、IP、UDP、Telnet、FTP、SMTP等上百個互為關聯的協議,由于TCP、IP是兩種常用的底層協議,所以把它們統稱為TCP/IP協議族。