请求发起过程,在tcp/ip四层网络模型中所做的事情
生活随笔
收集整理的這篇文章主要介紹了
请求发起过程,在tcp/ip四层网络模型中所做的事情
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當應用程序用T C P傳送數據時,數據被送入協議棧中,然后逐個通過每一層直到被當作一串比特流送入網絡。其中每一層對收到的數據都要增加一些首部信息(有時還要增加尾部信息)
客戶端如何找到目標服務
在客戶端發起請求的時候,我們會在數據鏈路層去組裝目標機器的MAC地址,目標機器的mac地址怎么得到呢??這里就涉及到一個ARP協議,這個協議簡單來說就是已知目標機器的ip,需要獲得目標機器的mac地址。(發送一個廣播消息,這個ip是誰的,請來認領。認領ip的機器會發送一個mac地址的響應)?
有了這個目標 MAC 地址,數據包在鏈路上廣播,MAC 的網卡才能發現,這個包是給它的。MAC 的網卡把包收進來,然后打開 IP 包,發現 IP 地址也是自己的,再打開?TCP 包,發現端口是自己,也就是80端口,而這個時候這臺機器上有一個nginx是監聽80端口。?
于是將請求提交給nginx,nginx 返回一個網頁。然后將網頁需要發回請求的機器。然后層層封裝,最后到 MAC 層。因為來的時候有源MAC 地址,返回的時候,源 MAC?就變成了目標 MAC,再返給請求的機器。?
為了避免每次都用 ARP 請求,機器本地也會進行 ARP 緩存。當然機器會不斷地上線下線,IP 也可能會變,所以 ARP 的 MAC 地址緩存過一段時間就會過期。
?
總結
以上是生活随笔為你收集整理的请求发起过程,在tcp/ip四层网络模型中所做的事情的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTTP协议通信原理
- 下一篇: 接收端收到数据包以后的处理过程