iT邦幫忙

0

筆記一下學習網路五層#2.3 - 2.4

File Transfer FTP

user 主要透過 FTP user agentFTP互動,為了辨認User,User會提供User identification and password給FTP辨認用,FTP同HTTP是以TCP protocol為基本運作,但不一樣的是,FTP使用了Two parallel TCP connections來傳遞檔案,control connection & data connection,前者主要用來傳遞hosts 的 control information & commands to put and get files,後者則為實際真的傳送檔案,特別注意到data connectionnon-persisent

FTP server是必須維持user state的,也就是server會觀察user在要求檔案或者抓取檔案時的行為,FTP同樣會回傳Response,帶有基本訊息包含成功或者失敗訊息等等

https://ithelp.ithome.com.tw/upload/images/20190110/20107670uh2FgUtOJn.png

Electronic Mail in the Internet

三個最主要的核心為,user agents、mail servers、SMTP,一封電郵的旅途會是這樣的,假使今天A寄了一封信到B,A透過user agent,也就是g-mail、apple mail...,讓使用者可以傳送回復編輯信件等等,完成後user agent會將信件送到user mail servers,接著從user mail server傳送到receiver mail server,接著B的user agent再從receiver mail server去抓取信件到B信箱裡面。

mail server提供了信件的基礎功能,包括若A的信件無法成功傳遞到B的mail server,則此封信件會排到message queue裡面,待三十分鐘(常見的頻率)後重試,若多天重試後仍無法成功則移除此message並由mail server發送通知給sender,mail server同時也記錄了憑證確認Sender & receiver

SMTP protocol主要為email的協定,套用了reliable data transfer service of TCP保證信件的傳遞,SMTP也擁有client & server side,前者主要作用於sender mail server,後者則為receive mail sender,廣義的定義而言,mail server 傳送信件到其他 mail server 視為 client side,負責接收的 mail server 則為 server side

SMTP

SMTP協定主要作用於傳送 message from sender mail server to receiver mail server,由於電郵是相當有歷史的,所以會有一些歷史上的限制,好比當初設計時,SMTP限定了所有message body7-bit ASCII,在以前的年代或許7-bit是足夠的,但對於今天而已這樣的設計是種折磨,以致於現今得再進入SMTP時做出轉碼以及解碼的過程。

值得注意的一點為,SMTP並不透過中繼server去傳達mail,也就是若今日sender在香港,receiver在澳洲,那麼兩台的連線也是直接從香港到澳洲的。

https://ithelp.ithome.com.tw/upload/images/20190110/20107670IyADlnZAB6.png

SMTP & HTTP

簡單比較一下SMTP以及HTTP協定的相似處以及相異處,如上線介紹的兩者同樣都是以TCP為底做為傳輸協定,同樣保證了資料的準確傳遞,而同時也都是persistent connections,也就是tcp connection維持暢通,message都可以透過同一條通道傳遞。

相異處在於HTTP is mainly a pull protocol,也就是TCP connection主要是因為sender side想要獲取檔案或資料而主動initiateSMTP 則是 push protocol,主要觸發點為想要發送資訊到receiver side
再來是SMTP對於message的限制為7-bit ASCIIHTTP並沒有此限制。

再來是message encapsulate的差異,Http是將個別的request file封裝於個別的response message,而email則是將所有message object 放在同一個response message裡面,也就是說,假使今天同樣要求含有文字與圖片的request,HTTP會將文字以及圖片分為兩個resonse message回傳,email則是包在同一個message回傳。

Mail Access Protocols

如上述所說的,email的傳遞是直接透過雙方的agen以及mail server做傳導,也代表著,若其中一方的host關機的話,另一方的信件不就會一直嘗試連接失敗,然後被放棄,為了因應這種狀況的不便之處,於是有了Access Protocols的產生,讓B方可以在想要的時候再從B mail server去接收信件。常見的有以下Post Office Protocol—Version 3 (POP3), Internet Mail Access Protocol (IMAP), and HTTP

POP3

相對簡易的access protocol,可使用的functionality相對少了點,主要進入點為當client 連接 tcp connection 到 mail server建立時,POP3主要有三個階段Authorization、transaction、update

Authorization - user agent會送出一組使用者名稱以及密碼用以認證user
Transaction - user agent 接收到messages,並在此階段,user agent擁有可以對message做上 deletion mark or remove deletion mark and obtain mail statistics,也可以issued command
update - 當client端發起 QUIT command,結束POP3 session,此時mail server 會刪除擁有 deletion mark的訊息

https://ithelp.ithome.com.tw/upload/images/20190110/20107670tW3PICkRWh.png

HTTP

當今主流都是透過瀏覽器傳遞郵件如google、yahoo,在此舉例中,user agent便是web browser,瀏覽器透過HTTP遠端的mailbox server連結,所以程序上會變成 A -> browser -> mail server -> B mail server -> B browser -> B,而在mail server傳遞之間注意到, message的傳送與接收仍然是透過SMTP協定提供服務


尚未有邦友留言

立即登入留言