自考計(jì)算機(jī)網(wǎng)絡(luò)原理(四)
第二章:網(wǎng)絡(luò)應(yīng)用?
五、Internet電子郵件
(一)郵件系統(tǒng)結(jié)構(gòu)
結(jié)構(gòu):主要包括郵件服務(wù)器、簡單郵件傳輸協(xié)議(SMTP)、用戶代理和郵讀取協(xié)議等。
應(yīng)用:
郵件服務(wù)器:功能是發(fā)送和接收郵件,是電子郵件體系結(jié)構(gòu)的核心。
SMTP:是簡單郵件傳輸協(xié)議。
用戶代理:客戶端軟件。
郵件讀取協(xié)議:POP3、IMAP、HTTP。
(二)SMTP簡單郵件傳輸協(xié)議
定義:SMTP是Internet電子郵件中核過應(yīng)用層協(xié)議,實(shí)現(xiàn)郵件服務(wù)器之間或用戶代理到郵件服務(wù)器之間的郵件傳輸。
過程:
握手階段
郵件傳輸階段
關(guān)閉階段
應(yīng)用:
SMTP使用傳輸層TCP實(shí)現(xiàn)可靠數(shù)據(jù)傳輸,發(fā)送郵件時(shí),SMTP客戶端首先請求與服務(wù)器端的25號端口建立TCP連接。
特點(diǎn):
SMTP只能傳送7位ASCⅡ碼文本內(nèi)容,包括SMTP命令、答應(yīng)消息以及郵件內(nèi)容
SMTP傳送的郵件內(nèi)容中不能包含“CRLF.CRLF”,因?yàn)樵撔畔⒂糜诒硎距]件內(nèi)容的結(jié)束
SMTP是”推動”協(xié)議(HTTP是”拉動“協(xié)議)
TCP鏈接是持久的
(三)電子郵件格式與MIME?

MIME定義了將非7位ASCl1碼內(nèi)容轉(zhuǎn)換為7位ASCl1碼的編碼規(guī)則。
(四)郵件讀取協(xié)議
SMTP是“推動”協(xié)議,不能使用戶從自己郵箱中讀取郵件,而POP3(第三版郵件協(xié)議)和IMAP(互聯(lián)網(wǎng)郵件訪問協(xié)議)可作為郵件讀取協(xié)議。
在Web郵件系統(tǒng)中,HTTP是郵件讀取協(xié)議。POP3接收郵件協(xié)議使用的默認(rèn)端口號是110。
六、FTP
(一)FTP文件傳輸協(xié)議
文件傳送協(xié)議FTP:互聯(lián)網(wǎng)的兩個(gè)主機(jī)間實(shí)現(xiàn)文件互傳的網(wǎng)絡(luò)應(yīng)用的應(yīng)用層協(xié)。
FTP的服務(wù)器進(jìn)程組成:主進(jìn)程與從進(jìn)程。
FTP專門使用的獨(dú)立的控制鏈接傳輸控制信息,與傳輸文件信息進(jìn)行分離,所以將FTP這種控制信息的傳送方式稱為帶外控制。
FTP是有狀態(tài)的協(xié)議。
(二)FTP應(yīng)用
FTP使用兩個(gè)“并行”的TCP連接:控制連接和數(shù)據(jù)連接。

FTP客戶發(fā)出的傳送請求通過控制連接發(fā)送給服務(wù)器端的控制進(jìn)程的熟知端口(21),但控制連接不用來傳輸文件,用于傳輸文件的是數(shù)據(jù)連接,其對應(yīng)FTP服務(wù)器熟知端口(20)。
FTP這種使用兩條TCP連接分別傳輸控制命令與數(shù)據(jù)的方式,稱為帶外控制協(xié)議。
FTP客戶與服務(wù)器(21號端口)建立一條TCP連接,稱為控制連接,用于傳輸命令。控制連接是持久的。
在傳輸文件等數(shù)據(jù)時(shí),客戶與服務(wù)器的20號端口之間建立一條臨時(shí)的TCP連接,用于傳輸數(shù)據(jù),數(shù)據(jù)傳輸結(jié)束便斷開連接,該連接稱為數(shù)據(jù)連接。
七.P2P應(yīng)用
概念:通信雙方?jīng)]有傳統(tǒng)意義上的客戶服務(wù)器之分,地位對等,通信雙方都具備客戶端與服務(wù)器的特征。

特點(diǎn):
應(yīng)用的對等方式用戶的計(jì)算機(jī)
很強(qiáng)的應(yīng)用規(guī)模伸縮性
應(yīng)用在對等方之間進(jìn)行、
應(yīng)用充分利用了端系統(tǒng)的計(jì)算能力以及網(wǎng)絡(luò)傳輸寬帶
八、Socket編程基礎(chǔ)

(一)概念:目前在Internet中應(yīng)用最廣泛的網(wǎng)絡(luò)應(yīng)用編程接口是SocketAPl。無論是客戶進(jìn)程還是服務(wù)器進(jìn)程,都需要創(chuàng)建Socket,實(shí)現(xiàn)與底層協(xié)議接口,從而可以通過Socket將數(shù)據(jù)發(fā)送出去或接收進(jìn)來。
創(chuàng)建套接字:socket()
(二)創(chuàng)建Socket套接字
網(wǎng)絡(luò)應(yīng)用進(jìn)程可以創(chuàng)建3種類型的Socket:

數(shù)據(jù)報(bào)類型套接字SOCK_DGRAM(面向傳輸層UDP接口)
流式套接字SOCK_STREAM(面向傳輸層TCP接口)
原始套接字SOCK_RAW(面向網(wǎng)絡(luò)層協(xié)議接口如IP、ICMP等)
客戶程序和服務(wù)器程序創(chuàng)建套接字后,需要進(jìn)一步調(diào)用其他Socket APl函數(shù),完成端點(diǎn)地址綁定,發(fā)送數(shù)據(jù)和接收數(shù)據(jù)等功能。

用于服務(wù)器端和客戶端的函數(shù):
只用于服務(wù)器端函數(shù):listen()函數(shù)、accept()等。
只用于客戶端函數(shù):如connect()函數(shù)等。

TCP提供面向連接、可靠的字節(jié)流傳輸服務(wù)?;赥CP客戶與服務(wù)器的典型Socket API函數(shù)調(diào)用過程。
UDP提供無連接、不可靠的數(shù)據(jù)報(bào)傳輸服務(wù)?;赨DP客戶與服務(wù)器的典型Socket APl函數(shù)調(diào)用過程。