網(wǎng)絡編程課程_第1頁
網(wǎng)絡編程課程_第2頁
網(wǎng)絡編程課程_第3頁
網(wǎng)絡編程課程_第4頁
網(wǎng)絡編程課程_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第1章網(wǎng)絡編程基礎

?本章介紹網(wǎng)絡編程相關的基本概念,包括

?進程通信的概念

?因特網(wǎng)中網(wǎng)間進程的標識方法

?網(wǎng)絡協(xié)議的特征

?TCP/IP中用戶數(shù)據(jù)報協(xié)議UDP和傳輸

控制協(xié)議TCP的特點

?目前的網(wǎng)絡編程現(xiàn)狀

?網(wǎng)絡應用程序的家戶/服務器交互模式

\7

1.1網(wǎng)絡編程相關的基本概念

?1.1.1網(wǎng)絡編程與進程通信

?1、進程與線程的基本概念

?進程是處于運行過程中的程序?qū)嵗?/p>

是操作系統(tǒng)調(diào)度和分配資源的基本單位。

?一個進程實體由程序代碼、數(shù)據(jù)和進

程控制塊三部分構成。

?各種計算機應用程序在運行時,都以

乂進程的形式存在。網(wǎng)絡應用程序也不例夕:)

Windows系統(tǒng)不但支持多進程,還支持多線程

當創(chuàng)建一個進程時,系統(tǒng)會自動創(chuàng)建它的第一個線

程,稱為主線程。然后,該線程可以創(chuàng)建其他的線程,

而這些線程又能創(chuàng)建更多的線程。

?線里I一譬程?

線程?

81.1單CPU分町地運行進程中的各個線程由線程

線程

?

MVT舁紿1平爾汕怕周艮木有絡

應用進程處于網(wǎng)絡層次結構的最上層。

從功能上,可以將網(wǎng)絡應用程序分為兩部

分,一部分是專門負責網(wǎng)絡通信的模塊,它們

與網(wǎng)絡協(xié)議棧相連接,借助網(wǎng)絡協(xié)議棧提供的

服務完成網(wǎng)絡上數(shù)據(jù)信息的交換。另一部分是

面向用戶或者作其他處理的模塊,它們接收用

戶的命令,或者對借助網(wǎng)絡傳輸過來的數(shù)據(jù)進

行加工,這兩部分模塊相互配合,來實現(xiàn)網(wǎng)絡

應用程序的功能^________________________/

圖1.2網(wǎng)絡應用程序在網(wǎng)絡體系結構中的位置

網(wǎng)絡應用程序最終要實現(xiàn)網(wǎng)絡資源的

共享,共享的基礎就是必須能夠通過網(wǎng)絡

輕松地傳遞各種信息。網(wǎng)絡編程首先要解

決網(wǎng)間進程通信的問題。然后才能在通信

的基礎上開發(fā)各種應用功能。

網(wǎng)間進程通信是指網(wǎng)絡中不同主機中的應

用進程之間的相互通信問題,網(wǎng)間進程通信必

須解決以下問題:

(1)網(wǎng)間進程的標識問題

(2)如何與網(wǎng)絡協(xié)議棧連接的問題

(3)多重協(xié)議的識別問題

(,)不同的通信服務的問題J

1.1.2因特網(wǎng)中網(wǎng)間進程的標識

1.傳輸層在網(wǎng)絡通信中的地住

圖工.3說明了基于TCP/IP協(xié)議棧的進程

之間的通信的情況。

按照OSI七層協(xié)議的描述,傳輸層與網(wǎng)絡

層在功能上的最大區(qū)別是傳輸層提供進程通信

的能力。TCP/IP協(xié)議提出了傳輸層協(xié)議端口

(protocolport,簡稱端口)的概念,成功

地解決了通信進程的標識問題。

傳輸層是計算機網(wǎng)絡中,通信主機內(nèi)部進

行獨立操作的第一層,是支持端到端的進程通

信的關鍵的一層。

端口是TCP/IP協(xié)議族中,應用層進

程與傳輸層協(xié)議實體間的通信接口

類似于文件描述符,每個端口都擁

有一個叫作端口號(portnumber)的整

數(shù)型標識符

源端口目標端口

UDP長度UDP校驗和

源端口目標端口

序號

確認號

數(shù)據(jù)保留

偏移保國JI窗口

校驗和緊急指針

選項填充

圖1.4UDP與TCP的報文格式

從實現(xiàn)的角度講,端口是一種抽象的軟

機制,包括一些數(shù)據(jù)結構和I/O緩沖區(qū)。

TCP/IP協(xié)議采用)

和本地分配(動態(tài)分配)相結合的分配方法。

對于TCP,或者UDP,將它們的全部65535

個端口號分為保留端口號和自由端口號兩部分

保留端口的范圍是0—1023,又稱為眾

所周知的端口或熟知端口(well-known

port),只占少數(shù),采用全局分配或集中控制

的方式,由一個公認的中央機構根據(jù)需要進行

統(tǒng)一分配,靜態(tài)地分配給因特網(wǎng)上著名的眾所

周知的服務器進程,并將結果公布于眾、「

表L1些典型的應用層協(xié)議分配到的保留端

TCP的保留端口UDP的保留端口

FTP21DNS53

HIIP80iriP69

SMTP25SNMP161

POP3110....

其余的端口號,1024-65535,稱為自

時口號,采用本地分配,又稱為動態(tài)分袁

總乙,IC噸UDP漏口的分配規(guī)則是:

>端口0:不使用,或者作為特殊的使用;

>端口1?255:保留給特定的服務,TCP和UDP我

規(guī)定,小于256的端口號才能分配給網(wǎng)上著名的服務;

>^□256-1023:保留給其他的服務,如路由;

>^□1024-4999:可以用作任意客戶的端口;

>^□5000-65535:可以用作用戶的服務器端口。

我們可以描述一下,在這樣的端口分

配機制下,客戶進程C與服務器進程S第

一次通信的情景。圖1.5表示了客戶與服

務器第一次通信的情況。

IP地址:202.5.7.8IP地址:178.7.8.9

在因特網(wǎng)絡中,用一個三元組可以在全局

中唯一地標識一個應用層進程:

應用層進程地址二(傳輸層協(xié)議,主機的

地址,傳輸層的端口號)

這樣一個三元組,叫做一個半相關

(half-association),它標識了因特網(wǎng)中,

進程間通信的一個端點,也把它稱為進程的網(wǎng)

絡地址。

一個完整的網(wǎng)間通信需要一個五元組在全

局中唯一地來標識:

(傳輸層協(xié)議,本地機IP地址,本地機傳輸局

端口,遠地機工P地址,遠地機傳輸層端口)

這個五元組稱為一個全相關

(association)o即兩個協(xié)議相同的半相關

才能組合成一個合適的全相關,或完全指定一

對網(wǎng)間通信的進程。

1.1.3網(wǎng)絡協(xié)議的特征

L面向消息的協(xié)議與基于流的協(xié)議

(1)面向消息的協(xié)議

面向消息的協(xié)議以消息為單位在網(wǎng)上傳送

數(shù)

據(jù),在發(fā)送端,消息一條一條地發(fā)送,在接

獨,也只能一條一條地接收,每一條消息是

的,消息之間存在著邊界。

W32平臺W32平

圖L6保護消息邊界的數(shù)據(jù)報傳輸服務

(2)基于流的協(xié)議

基于流的協(xié)議不保護消息邊界,將數(shù)據(jù)當

作字節(jié)流連續(xù)地傳輸,不管實際消息邊界是否

存在。

W32平臺W32平臺

網(wǎng)絡協(xié)議棧網(wǎng)絡協(xié)議棧

圖L7無消息邊界的流傳輸服務F

一個協(xié)議可以提供面向連接的服務,或

者提供無連接的服務。

面向連接服務是電話系統(tǒng)服務模式的抽

象,即每一次完整的數(shù)據(jù)傳輸都要經(jīng)過建立

連接,使用連接,終止連接的過程。

無連接服務是郵政系統(tǒng)服務的抽象,每

個分組都攜帶完整的目的地址,各分組在系

統(tǒng)中獨立傳送。

可靠性保證了發(fā)送端發(fā)出的每個字節(jié)都能

到達既定的接收端,不出錯,不丟失,不重耳,

保證數(shù)據(jù)的完整性,稱為保證投遞。

次序性是指對數(shù)據(jù)到達接收端的順序進行

處理。保護次序性的協(xié)議保證接收端收到數(shù)據(jù)

的順序就是數(shù)據(jù)的發(fā)送順序,稱為按序遞交。

1.1.4高效的用戶數(shù)據(jù)報協(xié)議UDP

傳輸層的用戶數(shù)據(jù)報協(xié)議(UserDatagram

Protocol,UDP)是一種盡力傳送的無連接的不保

障可靠的傳輸服務,是一種保護消息邊界的數(shù)據(jù)的傳

輸。

1.1.5可靠的傳輸控制協(xié)議TCP

?1.可靠性是很多應用的基礎

?2.TCP為應用層提供的服務

?傳輸控制協(xié)議(Transmission

ControlProtocol,TCP)應用層進程提

供一個面向連接的、端到端的、完全可靠

的(無差錯、無丟失、無重復或失序)全

雙工的流傳輸服務。

V7

TCP被稱作一種端對端fendtoend;

協(xié)議,這是因為它提供一個直接從一臺計算機

上的應用進程到另一遠程計算機上的應用進程

的連接。應用進程能請求TCP構造一個連接,

通過這個連接發(fā)送和接收數(shù)據(jù),以及關閉連接。

由TCP提供的連接叫做虛連接(virtual

connection;,虛連接是由軟件實現(xiàn)的。事

實上,底層的因特網(wǎng)條統(tǒng)并不對連接提供硬件

或軟件支持,只是兩臺機器上的TCP軟件模塊

通過交換消息來實現(xiàn)連接的幻象。

7

圖1.8TCP是一個端到端的傳輸協(xié)議

4、三次握手

為確保連接的建立和終止都是可靠的,TCP使用

三次握手C3-wayhandshake;的方式來建立連

接,主機甲主機乙

TCP實體TCP實體

SYN=1,序號=X

ACK=1,確認號二X+1

SYN=1,序號二Y

ACK=1,確認號=Y+1

圖L9TCP的三次握手過程

1.2三類網(wǎng)絡編程

1.2.1基于TCP/IP協(xié)議棧的網(wǎng)絡編程

基于TCP/工P協(xié)議棧的網(wǎng)絡編程是最基本的網(wǎng)

絡編程方式,主要是使用各種編程語言,利用操作

系統(tǒng)提供的套接字網(wǎng)絡編程接口,直接開發(fā)各種網(wǎng)

絡應用程序。本書主要講解這種網(wǎng)絡編程的相關技

術。

\/

122基于WWW應用的網(wǎng)絡編程

?WWW應用是因特網(wǎng)上最廣泛的應用,

稱為萬維網(wǎng)

?基于WWW應用的網(wǎng)絡編程技術,包

括所見即所得的網(wǎng)頁制作工具,和動態(tài)服

務器頁面的制作技術。

1.2.3基于.NEH王架的WebServices網(wǎng)絡編程

F\

微軟公司在2000年7月公布的.NET平臺是一人

全新的開發(fā)框架,集成了微軟二十世紀九十年代后期

的許多技術,I

(工).NET平臺有四組產(chǎn)品

①開發(fā)工具:

②專用服務器

pWeb服務。

-----------1

(2)MS.NET順應了軟件工業(yè)的趨勢,包括以下幾

個方面:

①分布式計算:

②組件化:

③企業(yè)級別的服務:

④WEB范型轉移:

?(3),NET平臺由三層軟件構成

?①頂層是全新的開發(fā)工具VS.NET,

?②中間層包括三部分:,NET服務

器、.NET服務構件和.NET框架。

?③底層是WINDOWS操作系統(tǒng)。

4).NET框架的設計要支持的目標

①簡化組件的使用:

②實現(xiàn)語言的集成:

③支持Internet的互操作:

④簡化軟件的開發(fā):

⑤簡化組件的部署:

⑥提高可靠性:

⑦提高安全性:

:2

什么是Web服務?Web服務是松散耦合的可

復用的軟件模塊,在工nternet上發(fā)布后,能通過

標準的Ditemet協(xié)議在程序中訪問,具有以下的

特點:

(1)可復用:

(2)松散耦合:

(3)封裝了離散:

|(4)Web服務可以在程序中訪問

Web服務在工nternet上發(fā)布

1.3客戶/服務器交互模式

本節(jié)著重于因特網(wǎng)上的高級服務,以及提供這

些服務的應用軟件。討論網(wǎng)絡應用軟件的客戶/服

務器交互模式,并說明網(wǎng)絡協(xié)議操作的方式為什么

需要這種模式。這是構筑所有網(wǎng)絡應用的基礎。

V/

1.3.1網(wǎng)絡應用軟件的地位和功能

?因特網(wǎng)僅僅提供一個通用的通信構架,

它只負責傳送信息,而對于信息傳過去干

什么用,利用因特網(wǎng)究竟提供什么服務,

由哪些計算機來運行這些服務,如何確定

服務的存在,如何使用這些服務等等問題,

都要由應用軟件和用戶解決。

\/

1.3.2客戶/服務器模式

_網(wǎng)絡應用進程通信時,普遍采用客戶/服務

器交互模式(client-serverparadigmof

interaction),簡稱C/S模式。這是因特網(wǎng)上

應用程序最常用的通信模式。

?C/S模式過程中服務器處于被動服務

的地位。首先服務器方要先啟動,并根據(jù)

客戶請求提供相應服務,服務器的工作過

程是:

?(1)打開一通信通道,并告知服務器所

在的主機,它愿意在某一公認的地址上

(熟知知端口,如FTP為21)接收客戶請

求。

?(2)等待客戶的請求到達該端口。

(3)服務器接收到服務請求,處理該請求

并發(fā)送應答信號。為了能并發(fā)地接收多個客

戶的服務請求,要激活一個新進程或新線程

來處理這個客戶請求(如UNIX系統(tǒng)中用

fork、exec)。服務完成后,關閉此新進

程與客戶的通信鏈路,并終止。

(4)返回第二步,等待并處理另一客戶請

£5)在特定的情況下,關閉服務器。

?客戶方采取的是主動請求方式,其工

作過程是:

?(1)打開一通信通道,并連接到服務器

所在主機的特定監(jiān)聽端口。

?(2)向服務器發(fā)送請求報文,等待并接

收應答;繼續(xù)提出請求,與服務器的會話

按照應用協(xié)議進行。

?(3)請求結束后,關閉通信通道并終止。

表1.2一些著名的網(wǎng)絡應用

網(wǎng)絡應用客戶端軟件服務器軟件應用層協(xié)議

電子郵件foxmail電子郵件服務器SMTP、Pop3

文件傳輸cutrIP文件傳輸服務器FTP

WWW瀏覽IE瀏覽器IIS服務器HTTP

1.3.3客戶與服務器的特性

客戶軟件和服務器軟件通常還具有以下

些主要特點:

1、家戶軟件

(1)在進行網(wǎng)絡通信時臨時成為客戶,但它

也可在本地進行其他的計算。

(2)被用戶調(diào)用,只為一個會話運行。在打

算通信時主動向遠地服務器發(fā)起通信。

\)

?(3)能訪問所需的多種服務,但在某一

時刻只能與一個遠程服務器進行主動通信。

?(4)主動地啟動與服務器的通信。

?(5)在用戶的計算機上運行,不需要特

殊的硬件和很復雜的操作系統(tǒng)。

(1)是一種專門用來提快桀潸哪嘮1物陌序r序時

處理多個遠地客戶的請求。

(2)當系統(tǒng)啟動時即自動調(diào)用,并且連續(xù)運行著,

不斷地為多個會話服務。

(3)接受來自任何客戶的通信請求,但只提供一本n

I服務。

(4)被動地等待并接受來自多個遠端客戶的通信請

求。

(5)在共享計算機上運行,一般需要強大的硬件

高級的操作系統(tǒng)支持。

(1)客戶和服務器都是軟件進程,C/S模式

是網(wǎng)絡上通過進程通信建立分布式應用的常用

,莫型。

(2)非對稱性:服務器通過網(wǎng)絡提供服務,

客戶通過網(wǎng)絡使用服務,這種不對稱性體現(xiàn)在

軟件結構和工作過程上。

(3)對等性:客戶和服務器必有一套共識

的約定,必與以某種應用層協(xié)議相聯(lián),并

且協(xié)議必須在通信的兩端實現(xiàn)。比如瀏覽

器和3W服務器就都基于HTTP超文本傳輸

協(xié)議。

?(4)服務器的被動性:服務器必須先行

啟動,時刻監(jiān)聽,日夜值守,及時服務,

只要有客戶請求,就立即處理并響應,回

傳信息。但決不主動提供服務。

(5)客戶機的主動性:客戶機可以隨時提出請求,

通過網(wǎng)絡得到服務,也可以關機走人,一次請求與

服務的過程是由客戶機首先激發(fā)的。

(6)一對多:一個服務器可以為多個客戶機服務,

客戶機也可以打開多個窗口,連接多個服務器。

(7)分布性與共享性:資源在服務器端組織與存儲,

通過網(wǎng)絡分散在多個客戶端使用。

1.3.4容易混淆的術語

L服務器程序與服務器類計算機

服務器(server)這個術語來指那些運行著的服

務程序。

月艮務器類計算機(server-classcomputer)

這一術語來稱呼那些運行服務器軟件的強大的計算機

\7

?2、家戶與用戶

?“客戶”何ient)和服務器都指的是應

用進程,即計算機軟件。

?“用戶”(user)指的是使用計算機的

人。

V/

圖L10用戶、客戶、服務器、服務器類計算機

1.3.5客戶與服務器的通信過程

客戶與服務器的通信過程一般是這樣的:

(1)通信之前,服務器應先行啟動,并通

知它的下層協(xié)議棧做好接收客戶請求的準備,

然后被動地等待客戶的通信請求,稱服務器

處于監(jiān)聽狀態(tài)。

?(2)一般是先由客戶向服務器發(fā)送請求,服務

器向客戶返回應答。客戶隨時可以主動啟動通

信,向服務器發(fā)出連接請求,服務器接收這個

請求,建立了二者的通信關系。

?(3)客戶與服務器的通信關系一旦建立,客戶

和服務器都可發(fā)送和接收信息。信息在客戶與

服務器之間可以沿任一方向或兩個方向傳遞。

在某些情況下,客戶向服務器發(fā)送一系列請求,

服務器相應地返回一系列應答。

1.3.6網(wǎng)絡協(xié)議與C/S模式的關系

客戶與服務器作為兩個軟件實體,它們之間的通

信是虛擬的,是概念上的,實際的通信要借

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論