主機在應用層上的操作:
TCP/IP協議上tcp的端口對應的各種應用程序,客戶機要訪問某個應用程序就會要求打開主機的這個固定的端口。而客戶機自己會打開一個大於1024的隨機端口用來跟對方的主機進行通信。用戶使用應用程序編輯信息,一個單一的會話,實際上就是一個主機應用層之間的邏輯的軟件連接。
主機在傳輸層的操作:
對數據分段(Segment),添加TCP報頭(包含源端口,目的端口,順序號等)。
分段的原因:
(A):可同時多個應用程序發送數據。
(B):數據包過大產生錯誤時,還需重新傳送,即占帶快又占時間,小數據包對數據流影響就小很多。
(C):各種網絡傳輸介質有其最大的傳輸單元限制,不允許在網絡上出現巨大的數據包。
主機在網絡層的操作:
當傳輸層為數據分段添加了TCP頭之后,將數據下發給網絡層處理。網絡層會為傳輸層傳來的數據包添加IP報頭(包含源IP地址,目的IP地址)封裝成數據包。
主機在數鏈路層的操作:
數據鏈路層在數據包的前面封裝上數據幀頭,在數據包的后面封裝上校驗位,從而把數據包封裝成數據幀。(添加源MAC地址和目的MAC地址,如果主機不知道目標MAC地址則想交換機發送ARP廣播從而得到目標MAC地址)。
主機對物理層的操作:
將從邏輯鏈路層發送過來數據幀轉換成能在物理線路上傳輸的電子信號,傳遞給網絡上的轉發設備交換機,由交換機進行處理。
數據封裝:
發送端,封裝流程:
1.用戶信息被轉換為數據,以便通過網絡進行傳輸;(上三層)
2.數據被轉換為數據段,發送主機和接收主機之間建立一條可靠的連接(TCP三次握手);(傳輸層)
3.數據段被轉換為分組或數據包,邏輯地址被添加在報頭中,以便能夠在互聯網中進行路由分組;(網絡層)
4.分組或數據報被轉換為幀,以便在本地網絡中傳輸,數據鏈路層每1次用1比特的方式把幀傳遞給物理層;(數據鏈路層)
5.物理層接收到后根據比特定時規則將數據編碼成電信號,通過物理層介質傳輸出去。(物理層)
封裝過程:數據->數據分段->數據報->數據幀->比特。
對應OSI層:應用層->傳輸層->網絡層->數據鏈路層->物理層
解封裝和封裝流程相反,是最終呈現給用戶看的過程。封裝是給網絡看的。
交換機對數據幀的處理:
交換機接收到數據流后根據發送過來的數據幀的MAC地址查找目的主機,將數據發送給目的主機。轉發過程不改變數據幀結構。
目的主機接收到數據幀的操作:
當目的主機接收到數據幀后對比目的MAC,如是發送給自己的,則拆去數據幀頭,發往網絡層,網絡層對比目的IP,如相同則拆包發往傳輸層,傳輸層再對比目的端口,確認相同則拆去數據段交給應用程進行數據組裝。
首先主機A與主機B要實現相互通信,主機A在應用層產生數據交互給表示層;表示層進行封裝,傳輸給會話層;會話層進行管理、分區應用,因為運用不同的程序有不同的session建立和終止應用程序之間的會話,通過會話層的處理將數據交互給傳輸層;傳輸層會選擇使用什么樣的協議,例如TCP,TCP需要三次握手,那么數據會先放入緩存,建立連接時的第一次握手,將數據交互給網絡層;網絡層則會打上目的IP與源IP在報頭上,用來確定數據發送至目的地,同時會把數據交互給數據鏈路層;數據鏈路層會宣告網關以獲得目的網關地址,把MAC打在報頭上,交互給物理層,以bit的形式傳輸;物理層查看發送的目的地址,然后再一次封裝。,但是源MAC將改為R1的MAC,目的MAC將改為R2G0/1的MAC,到達R2時重復R1的過程,在到達主機B時進行二次握手,到達主機B后,是由主機A與主機B的傳輸,模式與上相仿,而后進行三次握手,主機A與主機B開始傳輸數據。