(目錄占位)
網絡間通信,本質是不同的兩個用戶通信;本質是兩個不同主機上的兩個進程間通信。
因為物理距離的提升,就衍生出了很多問題。TCP/IP協議棧 / OSI七層模型,將協議分層,每一層都是為了解決不同的因為物理距離的提升的產生的問題。
1. 通信過程
在應用層,將數據序列化,轉化成字符串數據,拷貝到TCP的發送緩沖區中,到TCP的發送緩沖區,發送數據就與用戶無關了,由操作系統自行決定,結合它的滑動窗口,流量控制,擁塞控制,超時重傳,快重傳各種策略,把我們的數據包,將用戶認為的完整的數據包拆分成多個數據段,添加TCP報頭,再交給IP,添加源IP,目的IP,再封裝成mac幀進行路由。局域網通信,路由表查找,arp過程。
到達目標主機,再自底向上根據每一層協議解包和分用,向上交付到對方TCP接收緩沖區,TCP面向字節流也能保證按序到達,(將數據去掉mac幀報頭,去掉IP報頭,去掉TCP報頭,然后將數據數據放到對方TCP接收緩沖區),然后在應用層,采用read或者recv,將收到的數據以流式的方式拷貝到應用層,然后在對方的應用層,解決報文完整性,粘包問題,然后做反序列化得到結構化數據,然后處理,處理過后按照反向同樣的方式,發回對方。
2. 淺談TCP四層結構每層的作用
應用層:序列化、反序列化、TCP粘包問題...
傳輸層:TCP、UDP,提供端口...
網絡層:借助路由器,跨網絡傳輸數據,提供IP地址...
數據鏈路層:借助交換機,局域網通信,提供MAC地址,幀沖突,幀檢測...
物理層:確定光電信號、傳輸介質...