A. tcp/ip協議的作用是什麼
TCP/IP 是網際網路的通信協議,TransmissionControlProtocol/InternetProtocol的簡寫,中譯名為傳輸控制協議/網際網路互聯協議,又名網路通訊協議,是Internet最基本的協議、Internet國際互聯網路的基礎,由網路層的IP協議和傳輸層的TCP協議組成。
TCP/IP協議,是一個網路通信模型,以及一整個網路傳輸協議家族,為互聯網的基礎通信架構。協議的作用就是,相互通信的計算機之間需要遵循的約定。
TCP/IP提供點對點的鏈接機制,將數據應該如何封裝、定址、傳輸、路由以及在目的地如何接收,都加以標准化。簡單的說,TCP/IP定義了全世界的計算機之間通信,傳輸數據的規則。TCP/IP通信模型分為4層,應用層,傳輸層,網路互聯層,網路介面層。
(1)ip協議解決網路中的哪個問題擴展閱讀:
tcp/ip協議家族的兩個核心協議:TCP(傳輸控制協議)和IP(網際協議)。
一、TCP協議全稱:傳輸控制協議,英文:Transmission Control Protocol,是基於節字流的傳輸層通信協議,它完成傳輸層所指定的功能。
TCP層是位於網路層(IP層)之上,應用層之下的中間層。不同主機的應用層之間經常需要可靠的、像管道一樣的連接,但是IP層完成不了。那麼TCP是工作過程如下:
1、首先應用層向TCP層發送用於網間傳輸的數據流;
2、然後TCP把數據流分區成適當長度的報文段;
3、最後TCP把結果包傳給IP層,由IP層來通過網路將包傳送給接收端實體的TCP層。
為了不發生丟包,TCP會給每一個包一個序號,一方面按序號傳輸,同時在TCP實體成功收到包之後還會給一個「回執」。這樣提高了傳輸的可靠性。
二、IP協議,全稱:網際協議或者互聯網協議,英文:Internet Protocol。IP是在TCP/IP協議族中網路層的主要協議(TCP協議是完成傳輸層的功能),任務是僅僅根據源主機和目的主機的地址傳送數據。
為此目的,IP定義了定址方法和數據報的封裝結構。經常聽到的,IPv4,IPv6就是常見的IP協議。 IP協議只關心如何使得數據能夠跨越本地網路邊界的問題,而不關心使用傳輸媒體的類型和數據傳輸的方式。
參考資料來源:網路——TCP/IP協議
B. 網路通信
我們要理解網路中進程如何通信,得解決兩個問題:
a、我們要如何標識一台主機,即怎樣確定我們將要通信的進程是在那一台主機上運行。
b、我們要如何標識唯一進程,本地通過pid標識,網路中應該怎樣標識?
解決辦法:
a、TCP/IP協議族已經幫我們解決了這個問題,網路層的「ip地址」可以唯一標識網路中的主機
b、傳輸層的「協議+埠」可以唯一標識主機中的應用程序(進程),因此,我們利用三元組(ip地址,協議,埠)就可以標識網路的進程了,網路中的進程通信就可以利用這個標志與其它進程進行交互
以UDP傳輸為例:
1、物理層:
解決兩個硬體之間怎麼通信的問題,常見的物理媒介有光纖、電纜、中繼器等。它主要定義物理設備標准,如網線的介面類型、光纖的介面類型、各種傳輸介質的傳輸速率等。
它的主要作用是傳輸比特流(就是由1、0轉化為電流強弱來進行傳輸,到達目的地後在轉化為1、0,也就是我們常說的數模轉換與模數轉換)。這一層的數據叫做比特。
2、數據鏈路層:
在計算機網路中由於各種干擾的存在,物理鏈路是不可靠的。該層的主要功能就是:通過各種控制協議,將有差錯的物理信道變為無差錯的、能可靠傳輸數據幀的數據鏈路。
它的具體工作是接收來自物理層的位流形式的數據,並封裝成幀,傳送到上一層;同樣,也將來自上層的數據幀,拆裝為位流形式的數據轉發到物理層。這一層的數據叫做幀。
3、網路層:
計算機網路中如果有多台計算機,怎麼找到要發的那台?如果中間有多個節點,怎麼選擇路徑?這就是路由要做的事。
該層的主要任務就是:通過路由選擇演算法,為報文(該層的數據單位,由上一層數據打包而來)通過通信子網選擇最適當的路徑。這一層定義的是IP地址,通過IP地址定址,所以產生了IP協議。
4、傳輸層:
當發送大量數據時,很可能會出現丟包的情況,另一台電腦要告訴是否完整接收到全部的包。如果缺了,就告訴丟了哪些包,然後再發一次,直至全部接收為止。
簡單來說,傳輸層的主要功能就是:監控數據傳輸服務的質量,保證報文的正確傳輸。
5、會話層:
雖然已經可以實現給正確的計算機,發送正確的封裝過後的信息了。但我們總不可能每次都要調用傳輸層協議去打包,然後再調用IP協議去找路由,所以我們要建立一個自動收發包,自動定址的功能。於是會話層出現了:它的作用就是建立和管理應用程序之間的通信。
6、表示層:
表示層負責數據格式的轉換,將應用處理的信息轉換為適合網路傳輸的格式,或者將來自下一層的數據轉換為上層能處理的格式。
7、應用層:
應用層是計算機用戶,以及各種應用程序和網路之間的介面,其功能是直接向用戶提供服務,完成用戶希望在網路上完成的各種工作。前端同學對應用層肯定是最熟悉的。
應用層(應用,表示,會話):TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等
傳輸層:TCP,UDP
網路層:IP,ICMP,OSPF,EIGRP,IGMP
數據鏈路層:SLIP,CSLIP,PPP,MTU
重要的 協議族介紹:
IP 定義了 TCP/IP 的地址,定址方法,以及路由規則。現在廣泛使用的 IP 協議有 IPv4 和 IPv6 兩種:IPv4 使用 32 位二進制整數做地址,一般使用點分十進制方式表示,比如 192.168.0.1。
IP 地址由兩部分組成,即網路號和主機號。故一個完整的 IPv4 地址往往表示 為 192.168.0.1/24 或192.168.0.1/255.255.255.0 這種形式。
IPv6 是為了解決 IPv4 地址耗盡和其它一些問題而研發的最新版本的 IP。使用 128 位 整數表示地址,通常使用冒號分隔的十六進制來表示,並且可以省略其中一串連續的 0,如:fe80::200:1ff:fe00:1。
目前使用並不多!
http協議對應於應用層,tcp協議對應於傳輸層,ip協議對應於網路層。
TPC/IP【TCP(傳輸控制協議)和IP(網際協議)】,主要解決數據如何在網路中傳輸,而HTTP是應用層協議,主要解決如何包裝數據。關於TCP/IP和HTTP協議的關系,網路有一段比較容易理解的介紹:「我們在傳輸數據時,可以只使用(傳輸層)TCP/IP協議,但是那樣的話,如果沒有應用層,便無法識別數據內容,如果想要使傳輸的數據有意義,則必須使用到應用層協議,應用層協議有很多,比如HTTP、FTP、TELNET等,也可以自己定義應用層協議。WEB使用HTTP協議作應用層協議,以封裝HTTP 文本信息,然後使用TCP/IP做傳輸層協議將它發到網路上。」
術語TCP/IP代表傳輸控制協議/網際協議,指的是一系列協議。「IP」代表網際協議,TCP和UDP使用該協議從一個網路傳送數據包到另一個網路。把IP想像成一種高速公路,它允許其它協議在上面行駛並找到到其它電腦的出口。TCP和UDP是高速公路上的「卡車」,它們攜帶的貨物就是像HTTP,文件傳輸協議FTP這樣的協議等。
你應該能理解,TCP和UDP是FTP,HTTP和SMTP之類使用的傳輸層協議。雖然TCP和UDP都是用來傳輸其他協議的,它們卻有一個顯著的不同:TCP提供有保證的數據傳輸,而UDP不提供。這意味著TCP有一個特殊的機制來確保數據安全的不出錯的從一個端點傳到另一個端點,而UDP不提供任何這樣的保證。
URL的全稱是Uniform Resource Locator(統一資源定位符)
通過1個URL,能找到互聯網上唯一的1個資源。
URL就是資源的地址、位置,互聯網上的每個資源都有一個唯一的URL。
URL的基本格式 =協議://主機地址/路徑
協議:不同的協議,代表著不同的資源查找方式、資源傳輸方式
主機地址:存放資源的主機(伺服器)的IP地址(域名)
資源在主機(伺服器)中的具體位置
1、HTTP協議的幾個重要概念
1.連接(Connection):一個傳輸層的實際環流,它是建立在兩個相互通訊的應用程序之間。
2.消息(Message):HTTP通訊的基本單位,包括一個結構化的八元組序列並通過連接傳輸。
3.請求(Request):一個從客戶端到伺服器的請求信息包括應用於資源的方法、資源的標識符和協議的版本號
4.響應(Response):一個從伺服器返回的信息包括HTTP協議的版本號、請求的狀態(例如「成功」或「沒找到」)和文檔的MIME類型。
5.資源(Resource):由URI標識的網路數據對象或服務。
6.實體(Entity):數據資源或來自服務資源的回映的一種特殊表示方法,它可能被包圍在一個請求或響應信息中。一個實體包括實體頭信息和實體的本身內容。
7.客戶機(Client):一個為發送請求目的而建立連接的應用程序。
8.用戶代理(Useragent):初始化一個請求的客戶機。它們是瀏覽器、編輯器或其它用戶工具。
9.伺服器(Server):一個接受連接並對請求返回信息的應用程序。
10.源伺服器(Originserver):是一個給定資源可以在其上駐留或被創建的伺服器。
11.代理(Proxy):一個中間程序,它可以充當一個伺服器,也可以充當一個客戶機,為其它客戶機建立請求。請求是通過可能的翻譯在內部或經過傳遞到其它的伺服器中。一個代理在發送請求信息之前,必須解釋並且如果可能重寫它。
代理經常作為通過防火牆的客戶機端的門戶,代理還可以作為一個幫助應用來通過協議處理沒有被用戶代理完成的請求。
12.網關(Gateway):一個作為其它伺服器中間媒介的伺服器。與代理不同的是,網關接受請求就好象對被請求的資源來說它就是源伺服器;發出請求的客戶機並沒有意識到它在同網關打交道。
網關經常作為通過防火牆的伺服器端的門戶,網關還可以作為一個協議翻譯器以便存取那些存儲在非HTTP系統中的資源。
13.通道(Tunnel):是作為兩個連接中繼的中介程序。一旦激活,通道便被認為不屬於HTTP通訊,盡管通道可能是被一個HTTP請求初始化的。當被中繼的連接兩端關閉時,通道便消失。當一個門戶(Portal)必須存在或中介(Intermediary)不能解釋中繼的通訊時通道被經常使用。
14.緩存(Cache):反應信息的局域存儲。
TCP(Transmission Control Protocol) 傳輸控制協議。TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務,採用三次握確認建立一個連接。位碼即tcp標志位,有6種 標示:SYN(synchronous建立聯機) ACK(acknowledgement 確認) PSH(push傳送) FIN(finish結束) RST(reset重置) URG(urgent緊急)Sequence number(順序號碼) Acknowledge number(確認號碼)。
手機能夠使用聯網功能是因為手機底層實現了TCP/IP協議,可以使手機終端通過無線網路建立TCP連接。TCP協議可以對上層網路提供介面,使上層網路數據的傳輸建立在「無差別」的網路之上。建立起一個TCP連接需要經過「三次握手」:
第一次握手:客戶端發送syn包(syn=j)到伺服器,並進入SYN_SEND狀態,等待伺服器確認;
第二次握手:伺服器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時伺服器進入SYN_RECV狀態;
第三次握手:客戶端收到伺服器的SYN+ACK包,向伺服器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和伺服器進入ESTABLISHED狀態,完成三次握手。握手完成後,兩台主機開始傳輸數據了。
為什麼要三次握手?
如果只有一次握手,Client不能確定與Server的單向連接,更加不能確定Server與Client的單向連接;
如果只有兩次握手,Client確定與Server的單向連接,但是Server不能確定與Client的單向連接;
只有三次握手,Client與Server才能相互確認雙向連接,實現雙工數據傳輸。
握手過程中傳送的包里不包含數據,三次握手完畢後,客戶端與伺服器才正式開始傳送數據。理想狀態下,TCP連接一旦建立,在通信雙方中的任何一方主動關閉連接之前,TCP 連接都將被一直保持下去。斷開連接時伺服器和客戶端均可以主動發起斷開TCP連接的請求,斷開過程需要經過「四次揮手」。
第一次揮手:
Client發送一個FIN,用來關閉Client到Server的數據傳送,Client進入FIN_WAIT_1狀態。
第二次揮手:
Server收到FIN後,發送一個ACK給Client,確認序號為收到序號+1(與SYN相同,一個FIN佔用一個序號),Server進入CLOSE_WAIT狀態。
第三次揮手:
Server發送一個FIN,用來關閉Server到Client的數據傳送,Server進入LAST_ACK狀態。
第四次揮手:
Client收到FIN後,Client進入TIME_WAIT狀態,接著發送一個ACK給Server,確認序號為收到序號+1,Server進入CLOSED狀態,完成四次揮手。
為什麼要四次揮手?
「三次握手」的第二次握手發送SYN+ACK回應第一次握手的SYN,但是「四次揮手」的第二次揮手只能發送ACK回應第一次揮手的FIN,因為此時Server可能還有數據傳輸給Client,所以Server傳輸數據完成後才能發起第三次揮手發送FIN給Client,等待Client的第四次揮手ACK。
http是超文本傳輸協議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協議。HTTPS其實是有兩部分組成:HTTP +SSL/ TLS,也就是在HTTP上又加了一層處理加密信息的模塊。採用HTTPS協議的伺服器必須要有一套數字證書,可以自己製作,也可以向組織申請。區別就是自己頒發的證書需要客戶端驗證通過,才可以繼續訪問,而使用受信任的公司申請的證書則不會彈出提示頁面(startssl就是個不錯的選擇,有1年的免費服務)。這套證書其實就是一對公鑰和私鑰。SSL介於應用層和TCP層之間。應用層數據不再直接傳遞給傳輸層,而是傳遞給SSL層,SSL層對從應用層收到的數據進行加密,並增加自己的SSL頭。
1.怎麼解決tcp拆包和黏包的問題
粘包、拆包發生原因
發生TCP粘包或拆包有很多原因,現列出常見的幾點,可能不全面,歡迎補充,
1、要發送的數據大於TCP發送緩沖區剩餘空間大小,將會發生拆包。
2、待發送數據大於MSS(最大報文長度),TCP在傳輸前將進行拆包。
3、要發送的數據小於TCP發送緩沖區的大小,TCP將多次寫入緩沖區的數據一次發送出去,將會發生粘包。
4、接收數據端的應用層沒有及時讀取接收緩沖區中的數據,將發生粘包。
等等。
粘包、拆包解決辦法
解決問題的關鍵在於如何給每個數據包添加邊界信息,常用的方法有如下幾個:
1、發送端給每個數據包添加包首部,首部中應該至少包含數據包的長度,這樣接收端在接收到數據後,通過讀取包首部的長度欄位,便知道每一個數據包的實際長度了。
2、發送端將每個數據包封裝為固定長度(不夠的可以通過補0填充),這樣接收端每次從接收緩沖區中讀取固定長度的數據就自然而然的把每個數據包拆分開來。
3、可以在數據包之間設置邊界,如添加特殊符號,這樣,接收端通過這個邊界就可以將不同的數據包拆分開。
等等。
2.upd丟包
1、接收端處理時間過長導致丟包:調用recv方法接收端收到數據後,處理數據花了一些時間,處理完後再次調用recv方法,在這二次調用間隔里,發過來的包可能丟失。對於這種情況可以修改接收端,將包接收後存入一個緩沖區,然後迅速返回繼續recv。
2、發送的包巨大丟包:雖然send方法會幫你做大包切割成小包發送的事情,但包太大也不行。例如超過50K的一個udp包,不切割直接通過send方法發送也會導致這個包丟失。這種情況需要切割成小包再逐個send。
3、發送的包較大,超過接受者緩存導致丟包:包超過mtu size數倍,幾個大的udp包可能會超過接收者的緩沖,導致丟包。這種情況可以設置socket接收緩沖。以前遇到過這種問題,我把接收緩沖設置成64K就解決了。
int nRecvBuf=32*1024;//設置為32K
setsockopt(s,SOL_SOCKET,SO_RCVBUF,(const char*)&nRecvBuf,sizeof(int));
4、發送的包頻率太快:雖然每個包的大小都小於mtu size 但是頻率太快,例如40多個mut size的包連續發送中間不sleep,也有可能導致丟包。這種情況也有時可以通過設置socket接收緩沖解決,但有時解決不了。所以在發送頻率過快的時候還是考慮sleep一下吧。
5、區域網內不丟包,公網上丟包。這個問題我也是通過切割小包並sleep發送解決的。如果流量太大,這個辦法也不靈了。總之udp丟包總是會有的,如果出現了用我的方法解決不了,還有這個幾個方法: 要麼減小流量,要麼換tcp協議傳輸,要麼做丟包重傳的工作。
一個是客戶端發送過快,網路狀況不好或者超過伺服器接收速度,就會丟包。
第二個原因是伺服器收到包後,還要進行一些處理,而這段時間客戶端發送的包沒有去收,造成丟包。
那麼需要做的是
客戶端降低發送速度,可以等待回包,或者加一些延遲。伺服器部分單獨開一個線程,去接收UDP數據,存放在一個緩沖區中,又另外的線程去處理收到的數據,盡量減少因為處理數據延時造成的丟包。
有兩種方法解決UDP 丟包的問題:
方法一:重新設計一下協議,增加接收確認超時重發。(推薦)
方法二:在接收方,將通信和處理分開,增加個應用緩沖區;如果有需要增加接收socket的系統緩沖區。(本方法不能從根本解決問題,只能改善)
https://jiahao..com/s?id=1654225744653405133&wfr=spider&for=pc
https://www.jianshu.com/p/066d99da7cbd
https://jiahao..com/s?id=1654225744653405133&wfr=spider&for=pc
https://blog.csdn.net/qq_31337311/article/details/80781273
https://www.cnblogs.com/jiangzhaowei/p/8996810.html
http://blog.sina.com.cn/s/blog_d2bb5eff0102wbq2.html
C. 計算機網路協議有哪些,具體作用什麼
目前網路協議有許多種,但是最基本的協議是TCP/IP協議,許多協議都是它的子協議。下面我們就對TCP/IP協議作一下簡單介紹。
1 TCP/IP協議基礎
TCP/IP協議包括兩個子協議:一個是TCP協議(Transmission Control Protocol,傳輸控制協議),另一個是IP協議(Internet Protocol,互聯網協議),它起源於20世紀60年代末。
在TCP/IP協議中,TCP協議和IP協議各有分工。TCP協議是IP協議的高層協議,TCP在IP之上提供了一個可靠的,連接方式的協議。TCP協議能保證數據包的傳輸以及正確的傳輸順序,並且它可以確認包頭和包內數據的准確性。如果在傳輸期間出現丟包或錯包的情況,TCP負責重新傳輸出錯的包,這樣的可靠性使得TCP/IP協議在會話式傳輸中得到充分應用。IP協議為TCP/IP協議集中的其它所有協議提供「包傳輸」功能,IP協議為計算機上的數據提供一個最有效的無連接傳輸系統,也就是說IP包不能保證到達目的地,接收方也不能保證按順序收到IP包,它僅能確認IP包頭的完整性。最終確認包是否到達目的地,還要依靠TCP協議,因為TCP協議是有連接服務。
在計算機服務中如果按連接方式來分的話,可分為「有連接服務」和「無連接服務」兩種。「有連接服務」必須先建立連接才能提供相應服務,而「無連接服務」則不需先建立連接。TCP協議是一種典型的有連接協議,而UDP協議則是典型的無連接服務。
TCP/IP協議所包括的協議和工具
TCP/IP協議是一組網路協議的集合,它主要包括以下幾方面的協議和工具。
·TCP/IP協議核心協議
這些核心協議除了自身外,還包括用戶數據報協議(UDP協議)、地址代理協議(ARP協議)以及網間控制協議(ICMP協議)。這組協議提供了一系列計算機互連和網路互連的標准協議。
·應用介面協議
這類協議主要包括Windows套接字(Socket,用於開發網路應用程序)、遠程調用、NetBIOS協議(用於建立邏輯名和網路上的會話)和網路動態數據交換(Network,用於通過網路共享嵌入在文本中的信息)。
·基本的TCP/IP協議互連應用協議
主要包括finger、ftp、rep、rsh、telnet、tftp等協議。這些工具協議使得Windows系統用戶使用非Microsoft系統計算機上(如UNIX系統計算機)的資源成為可能。
·TCP/IP協議診斷工具
這些工具包括arp、hostname、ipconfig、nbstat、netstat、ping和route,它們可用來檢測並恢復TCP/IP協議網路故障。
·有關服務和管理工具
這些服務和管理工具包括FTP伺服器服務(用於在兩個遠程計算機之間傳輸文件,這是遠程式控制制通信中的關鍵功能)、網際命名服務WINS(用於在一個網際上動態記錄和詢問計算機的名字)、動態計算機配置協議DHCP(用於在Windows NT計算機上自動配置TCP/IP協議)以及TCP/IP協議列印(主要用於遠程列印和網路列印)。
·簡單網路管理協議代理(SNMP)
這個工具允許通過使用管理工具(如「Sun Net Manages」 或「HP Open View」),從遠程管理Windows NT計算機。
(2)TCP/IP的主要協議簡述
為了使讀者能全面了解一些基本的網路通信協議和服務,本節就對TCP/IP協議所包括的幾種主要協議進行簡要說明。
·遠程登錄協議(Telnet)
Telnet協議是用來登錄到遠程計算機上,並進行信息訪問,通過它可以訪問所有的資料庫、聯機游戲、對話服務以及電子公告牌,如同與被訪問的計算機在同一房間中工作一樣,但只能進行些字元類操作和會話。
·文件傳輸協議(Ftp)
這是文件傳輸的基本協議,有了FTP協議就可以把的文件進行上傳,也可從網上得到許多應用程序和信息(下載),有許多軟體站點就是通過FTP協議來為用戶提供下載任務的,俗稱「FTP伺服器」。最初的FTP程序是工作在UNIX系統下的,而目前的許多FTP程序是工作在Windows系統下的。FTP程序除了完成文件的傳送之外,還允許用戶建立與遠程計算機的連接,登錄到遠程計算機上,並可在遠程計算機上的目錄間移動。
·電子郵件服務(Email)
電子郵件服務是目前最常見、應用最廣泛的一種到聯網服務。通過電子郵件,可以與Internet上的任何人交換信息。電子郵件的快速、高效、方便以及價廉,越來越得到了廣泛的應用,目前只要是上過網的網民就肯定用過電子郵件這種服務。目前,全球平均每天約有幾千萬份電子郵件在網上傳輸。
·WWW服務
WWW服務(3W服務)也是目前應用最廣的一種基本互聯網應用,我們每天上網都要用到這種服務。通過WWW服務,只要用滑鼠進行本地操作,就可以到達世界上的任何地方。由於WWW服務使用的是超文本鏈接(HTML),所以可以很方便的從一個信息頁轉換到另一個信息頁。它不僅能查看文字,還可以欣賞圖片、音樂、動畫。最流行的WWW服務的程序就是微軟的IE瀏覽器。
·簡單郵件傳輸協議(SMTP)
SMTP是TCP/IP協議族的一個成員,這種協議認為你的計算機是永久連接在Internet上的,而且認為你在網路上的計算機在任何時候是可以被訪問的。它適用於永久連接在Internet的計算機,但無法使用通過SLIP/PPP協議連接的用戶接收電子郵件。解決這個問題的辦法是在郵件計算機上同時運行SMTP和POP協議的程序,SMTP負責郵件的發送和在郵件計算機上的分揀和存儲,POP協議負責將郵件通過SLIP/PPP協議連接傳送到用戶計算機上。
·信息服務(Gopher)
Gopher最早出現在1991年,它是第一個操作簡便、使用廣泛的從Internet伺服器上獲取信息的客戶應用程序。除了操作簡便外,它的另一個特點是速度快。Gopher運行時,將顯示一個互動式的供用戶選擇的菜單,菜單中的選項由簡單的短句組成,每個短句通常指向另一個菜單,並最終指向有用的文件。Gopher是幫助用戶在Internet信息海洋中搜索有用信息的導航器。用戶只要關心瀏覽的內容,而不必關心具體的伺服器。
·文件檢索服務(Archie)
它是一個從整個Internet上匿名FTP伺服器獲取文件的服務。其完全依賴於匿名FTP系統的管理員,他們將站點在全世界的Archie伺服器進行了注冊,Archie僅通過文件名進行檢索。
2 IP協議
目前正在使用的IP協議是第4版的,稱之為「IPv4」,新版本的IP協議正在完善過程中,它就是經常可以在各大IT媒體中見到的IPv6。IPv6所要解決的主要是IPv4協議中IP地址遠遠不夠的現象。IPv4所採用的是32位,而IPv6則是128位,是原來的4倍。IPv6所提供的IP地址數已可算是天文數字了,據專家們分析,這個數字的IP地址可以使全球的每一個人都可擁有10以上的IP地址,這么多的IP地址相信再也不會出現IPv4那樣除了美國外,各國都出現IP地址短缺現象,為將來實現移動上網打下了堅實的基礎。但這屬於較新技術,在此就不作詳細介紹,本文仍以目前主流的IPv4協議為基礎進行介紹。
IP協議的功能是把數據報在互聯的網路上傳送,通過將數據報在一個個IP協議模塊間傳送,直到目的模塊。網路中每個計算機和網關上都有IP協議模塊。數據報在一個個模塊間通過路由處理網路地址傳送到目的地址,因此搜尋網路地址對於IP協議十分重要的功能。另外,因為各個網路上的數據報大小可能不同,所以數據報的分段也是IP協議的不可或缺的功能,不然對於一些網路帶寬較窄的網路,大的數據報就無法正確傳輸了。下面主要介紹我們初級學者所關心的現行方面問題。
(1)IP地址
在計算機定址中經常會遇到「名字」、「地址」和「路由」這三個術語,它們之間是有較大區別的。名字是要找的,就像的人名一樣;而地址是用來指出這個名字在什麼地方,就像人的住址一樣;路由是解決如何到達目的地址的問題,就像已經知道了某個人住在什麼地方,現在要考慮走什麼路線、採用什麼交通工具到達目的地方最為簡便。
這里所介紹的IP協議主要是解決地址的問題。名字和地址進行解析的工作是由其上層協議--TCP協議完成。IP協議模塊將地址和本地網路地址加以映射(就像寫信一樣,IP協議只負責把收、發信人的地址寫上,把信投進郵箱就可不管了),而將本地網路地址和路由進行映射則是低層協議(如路由協議)的任務,所以說IP協議是一個無連接的服務。
IP協議要尋找的「地址」是32位長(4個分段的16進制組成),由網路號(網路ID)和主機號(主機ID)兩部分構成,按照IP協議規定網際網路上的地址共有A、B、C、D、E五類.
按照IP協議規定網際網路上的地址共有A、B、C、D、E五類·A類IP地址:用前面8位來標識網路號,其中規定最前面一位為「0」,24位標識主機地址,即A類地址的第一段取值(也即網路號)可以是「00000001 ̄01111111」之間任一數字,轉換為十進制後即為1~128之間。主機號沒有做硬性規定,所以它的IP地址范圍為「1.0.0.0-128.255.255.255」。A類地址是為大型政府網路而提供,因為A地址中有10.0.0.0-10.255.255.254和127.0.0.0-127.255.255.254這兩段地址有專門用途,所以全世界總共只有126個可能的A類網路。每個A類網路最多可以連接16777214台計算機,這類地址數是最少的,但這類網路所允許連接的計算機是最多的。
·B類IP地址:用前面16位來標識網路號,其中最前面兩位規定為「10」,16位標識主機號,也就是說B類地址的第一段「10000000 ̄10111111」,轉換成十進制後即為128~191之間,第一段和第二段合在一起表示網路地址,它的地址范圍為「128.0.0.0-191.255.255.255」。B類地址適用於中等規模的網路,全世界大約有16000個B類網路,每個B類網路最多可以連接65534台計算機。這類IP地址通常為中等規模的網路提供。其中172.16.0.0-172.31.255.254地址段有專門用途。
·C類IP地址:用前面24位來標識網路號,其中最前面三位規定為「110」,8位標識主機號。這樣C類地址的第一段取值為「11000000 ̄11011111」之間,轉換成十進制後即為192~223。第一段、第二段、第三段合在一起表示網路號,最後一段標識網路上的主機號,它的地址范圍為「192.0.0.0-223.255.255.255」。C類地址適用於校園網等小型網路,每個C類網路最多可以有254台計算機。這類地址是所有的地址類型中地址數最多的,但這類網路所允許連接的計算機是最少的。這類IP地址可分配給任何有需要的人。其中192.168.0.0-192.168.255.255為企業區域網專用地址段。
·D類地址:它用於多重廣播組,一個多重廣播組可能包括1台或更多主機,或根本沒有。D類地址的最高位為1110,第一段八位體為「11100000 ̄11101111」,轉換成十進制即為224 ̄239,剩餘的位設計客戶機參加的特定組,它的地址范圍為「224.0.1.1-239.255.255.255」。在多重廣播操作中沒有網路或主機位,數據包將傳送到網路中選定的主機子集中,只有注冊了多重廣播地址的主機才能接收到數據包。Microsoft支持D類地址,用於應用程序將多重廣播數據發送到網路間的主機上,包括WINS和Microsoft NetShow。
·E類地址:這是一個通常不用的實驗性地址,保留作為以後使用。E類地址的最高位為11110,第一段八位體為「11110000 ̄11110111」,轉換成十進制即為240 ̄247。
IPv4協議中對首段位為248 ̄254 的地址段暫無規定。
其實還有一類IP地址,就是以「127」開頭的IP地址,這類IP地址也是屬於保留使用的,這類地址屬於環路測試類IP地址。這類IP地址不能作為計算機的IP地址用,也就不能在網路上使用這樣的IP地址來標識計算機的位置,更不能通過在瀏覽器或者其他搜索位置輸入這樣的IP地址,來搜索想要查找的計算機,因為它只能在本地計算機上用於測試使用。
其實還有一類IP地址,就是以「127」開頭的IP地址,這類IP地址也是屬於保留使用的,這類地址屬於環路測試類IP地址。這類IP地址不能作為計算機的IP地址用,也就不能在網路上使用這樣的IP地址來標識計算機的位置,更不能通過在瀏覽器或者其他搜索位置輸入這樣的IP地址,來搜索想要查找的計算機,因為它只能在本地計算機上用於測試使用。
其實還有一類IP地址,就是以「127」開頭的IP地址,這類IP地址也是屬於保留使用的,這類地址屬於環路測試類IP地址。這類IP地址不能作為計算機的IP地址用,也就不能在網路上使用這樣的IP地址來標識計算機的位置,更不能通過在瀏覽器或者其他搜索位置輸入這樣的IP地址,來搜索想要查找的計算機,因為它只能在本地計算機上用於測試使用。
(2) 子網掩碼和域名
以上介紹的是網路IP地址,但隨著網路的發展,IPv4標准中的IP地址遠不夠用,為了解決這一矛盾,於是又在IP地址加上子網掩碼來進一步識別。在TCP/IP協議中規定,A類網路的子網掩碼格式為「255.0.0.0」形式,後面的「0」可以為「0 ̄254」之間任一數字。B類網路的子網掩碼格式為「255.255.0.0」,C類網路的子網掩碼為格式為「255.255.255.0」,同樣其中的「0」可以是「0 ̄254」之間任一數字。如果沒有子網,可以為「0」,也可以不配置,如果有子網則一定要配置。
前面介紹的IP地址都是以數字形式表示計算機的地址,這種IP地址人們記憶起來是非常困難的。對非計算機和網路的專業人士來說,記住這種地址是很不現實的。因此,Internet還採用域名地址來表示每台計算機。通過為每台計算機建立IP地址與域名地址之間的映射關系,用戶可以在網上避開難以記憶的IP地址,而用域名地址來唯一標記網上的計算機。域名地址與IP地址的關系類似於一個人的姓名與身份證號碼之間的關系。
要把計算機連入Internet,必須獲得網上唯一的IP地址與對應的域名地址。域名地址由域名系統(DNS)管理。每個連到Internet的網路中都有至少一個DNS伺服器,其中存有該網路中所有計算機的域名和對應的IP地址,通過與其他網路的DNS伺服器相連就可以找到其他站點。這也是在TCP/IP協議屬性中要進行DNS配置的原因。
域名地址也是分段表示的,每段分別授權給不同的機構管理,各段之間用圓點(.)分隔。與IP地址相反,各段自左至右級別是越來越高。