1.應用程序處理網絡
(1)A用戶啓動郵件應用程序,填寫收件人郵箱和發送內容,點擊「發送」,開始TCP/IP通訊;
(2)應用程序對發送的內容進行編碼處理,這一過程至關於OSI的表示層功能;
(3)由A用戶所使用的郵件軟件決定什麼時候創建通訊鏈接、什麼時候發送數據的管理,這一過程至關於OSI的會話層功能;
(4)如今能夠發送了,就在發送的那一刻,創建鏈接,經過這個TCP鏈接發送數據。首先是將應用層數據發送給下一層的TCP,再作實際轉發處理。
2.TCP模塊的處理編碼
傳輸層TCP負責創建鏈接、發送數據以及斷開鏈接。TCP要將應用層發來的數據實現可靠傳輸至對端,須要在應用層數據前段加上TCP首部。(TCP首部包括源端口號和目標端口號,序列號,校驗和)。而後,就能夠將附加了TCP首部的包發送給IP。blog
3.IP模塊的處理接口
IP層將上層傳來的附加了TCP首部的包當作本身的數據,又在該數據前段加上本身的IP首部,生成IP包。而後參考路由控制表決定接受此IP包的路由或主機,以此發送到對應的路由器或主機的網絡接口的驅動程序,實現真正發送數據。接下來將MAC地址(若果位置,能夠利用ARP查找)和IP地址交給以太網的驅動程序,實現數據傳輸。路由
4.網絡接口(以太網驅動)的處理軟件
把上層傳來的IP包附加上以太網首部(該首部包括收、發端的MAC地址,以及標誌以太網類型的以太網數據的協議),生成以太網數據包,經過物理層傳輸給接收端。此外,還要對該太網數據包進行發送處理,生成FCS(frame check sequence),由硬件計算添加到包的後面,主要是爲了判斷數據包是否因爲噪聲而破壞。路由器
如今能夠經過物理層傳輸了
如今的數據包是這個樣子的(截圖於《圖解TCP/IP》) 硬件
如下就是包的接收處理了程序
5.網絡接口(以太網驅動)的處理im
對以太網數據包首部進行解析,若是發現是發給本身的包,則識別上一層爲IP,不然丟棄包。
6.IP模塊的處理
IP包首部的解析,若是發現是發給本身的包,則識別上一層爲TCP,不然丟棄包。
7.TCP模塊的處理
TCP包首部的解析。數據接收完畢後,接收端發送一個「確認回執」給發送端,若是該回執信息未能到達發送端,則發送端會認爲接收端沒有接收到數據則一直髮送。數據被完整接收後,傳遞給端口號識別的應用程序。
8.應用程序的處理
接收端應用程序接收發送端發來的數據,確認地址,若無此地址,則返回給發送端一個「無此收件地址」的報錯信息。如有此地址,則郵件被保存到本地硬盤,若保存也能正常進行,則發送一個「處理正常」給發送端,不然,如磁盤滿等異常致使未能保存成功,則發送一個「處理異常」給發送端。
如今,接收端就能夠閱讀郵件了
總結,整個流程如圖(截圖於《圖解TCP/IP》)