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