OSI七層模型中,每一層的數據包都是誰生成和解包的?

以在瀏覽器中輸入網址,到展示網頁的過程為例,客戶端中間經過應用程序(忽略表示層和會話層)-&>傳輸層-&>網路層-&>數據鏈路層-&>物理層的層層數據包封裝,最後到達伺服器端再經過相反的解包過程。

那麼請問在這過程中每層數據包都是由誰生成的?

在網路層的路由器能處理IP包,是因為路由器將數據鏈路層的幀解包以後才得到的IP包嗎?

貌似記得幀是由網卡處理的啊?

望大神們指教!


假定你輸入的網址已經DNS解析成:1.1.1.1,你本地主機IP:2.2.2.2

Step 1: HTTP 層把client 的數據組織好,稱為data,調用TCP socket 的連接函數:TCP_connect(1.1.1.1,80)

Step 2: TCP client 觸發三次同步握手,協商各自的sequence number,即各自數據第一個位元組對應的序列號,這樣就可以對發送的每一個位元組數據進行編號,方便對方確認;同時還協商window size,告知對方自己最大的接收緩衝區大小,可以用來進行流量控制,免得對方發送太快而本地沒有足夠緩衝區而丟棄;在TCP option 里告知彼此的MSS,以免引起不必要的IP分片,同時還可能協商SACK,NACK,window scaling ,authentication,分別的作用是減少數據丟包而引起的重傳數目,加大window size,對TCP Data 進行完整性保護,完成進入 step 2.1。

Step 2.1 調用TCP socket 的發送函數:TCP_send(1.1.1.1,80,data)

Step 3: TCP完成TCP頭、TCP payload 所有欄位的封裝,稱之為segment,調用IP介面函數:IP_send(1.1.1.1,segment )

Step 4: IP層檢查路由表,決定出口,決定下一跳,通過ARP查詢下一跳的MAC,假定為MAC2;然後IP層判定包是否需要分片,如果分片,需要把TCP segment 做切割成小片處理,假定這裡不需要分片,於是IP層完成了IP packet 的所有封裝,調用 Ethernet_send ( MAC2, packet)。

Step 5: 網路介面、網卡完成所有的封裝,加上Ethernet header ,所有信息都知道了,source MAC,這個是自己的MAC,Destination MAC,這個是MAC2,Ether Protocol:0x0800,然後把計算的校驗碼CRC放入FCS,形成了Ethernet Frame。

Step 6: 發連續7個位元組preamble:10101010,再發一個位元組的SFD:10101011,然後發送Ethernet frame。 the end!


我來補充下個人看法
http應該是類似apache、tomcat、nginx等web伺服器負責實現的
tcp/ip應該是有操作系統的tcp/ip協議棧實現的,這操作系統的一部分
鏈路層是由網卡驅動+網卡實現
物理層由網卡+網線實現
題主說的路由器提取IP數據,路由器實現了下三層,介面就是鏈路層和物理層的集合。介面上配了IP就開啟了該介面的三層功能。


這個好像是我一開始學網路時候的迷惑。 像樓上說的,樓主先要搞明白現在在用的都是TCP/IP協議,而不是OSI模型。
樓主的疑惑其實是網路設備的分層吧?這麼來講:
交換機是二層設備,就是說他可以處理二層的數據幀,為了處理二層的數據它得能接受數據,也就是說他必須能處理物理層。
同理,路由器是三層設備,可以處理IP數據包,但是為了能處理IP數據包,它首先得接受到數據(物理層),然後解析出乙太網幀(數據鏈路層),再從幀中提出三層數據包,所以說它必須實現三層及以下的各層。路由器中也有類似網卡的東西,做的就是處理數據鏈路層的工作;而路由器軟體實現的就是網路層的功能。
再說客戶機(PC或伺服器),它是可以處理應用層的數據,同樣它也得實現物理層、數據鏈路層、網路層、傳輸層的邏輯,才能得到應用層的數據。具體來說,客戶機有網卡,實現的是物理層層和數據鏈路層的工程,網路層一般是在系統中實現的(系統都可以配置ip),當然在上面的傳輸層和應用層也都是軟體實現的

總的來說呢,每一個物理的網路設備都是從物理層開始解析的,功能實現到哪一層,這一層下面的所有層相關的數據包都會被解析


估計你不理解的是網卡+驅動層在解析


一樓說的對,OSI只是個模型,模型是什麼,是對現有具有共同特徵事物的概括和總結,而不是一個實體。


推薦閱讀:

計算機網路中信息傳輸的安全是如何保障的?
HTTPS可以防止中間人篡改內容嗎?
被運營商劫持了怎麼辦,應該是HTTP劫持?
360發布首款支持國密演算法的瀏覽器對網路安全有哪些影響?
自動更換ip地址的刷票軟體是如何實現的?

TAG:網路安全 | 計算機網路 | TCPIP | 網路工程 | 計算機網路安全 |