TCP/IP不是一個協議,而是一個協議族的統稱。裏面包括IP協議、IMCP協議、TCP協議。跨越了多層模型的多層web
TCP/IP協議族按照層次由上到下,層層包裝。最上面的是應用層,這裏面有http,ftp,等等咱們熟悉的協議。而第二層則是傳輸層,著名的TCP和UDP協議就在這個層次。第三層是網絡層,IP協議就在這裏,它負責對數據加上IP地址和其餘的數據以肯定傳輸的目標。第四層是數據鏈路層,這個層次爲待傳送的數據加入一個以太網協議頭,並進行CRC編碼,爲最後的數據傳輸作準備。服務器
上圖清楚地表示了TCP/IP協議中每一個層的做用,而TCP/IP協議通訊的過程其實就對應着數據入棧與出棧的過程。入棧的過程,數據發送方每層不斷地封裝首部與尾部,添加一些傳輸的信息,確保能傳輸到目的地。出棧的過程,數據接收方每層不斷地拆除首部與尾部,獲得最終傳輸的數據。網絡
1.三、數據鏈路層tcp
物理層負責0、1比特流與物理設備電壓高低、光的閃滅之間的互換。 數據鏈路層負責將0、1序列劃分爲數據幀從一個節點傳輸到臨近的另外一個節點,這些節點是經過MAC來惟一標識的(MAC,物理地址,一個主機會有一個MAC地址)。編碼
1.四、若是發生網絡請求,如:get http://jd.com/auth/user/currentUser.如下敘述其過程url
一、DNS(53):blog
輸入的是一個URL須要轉化成IP地址。首先咱們知道咱們本地的機器上在配置網絡時都會填寫DNS,這樣本機就會把這個url發給這個配置的DNS服務器,若是可以找到相應的url則返回其ip,不然該DNS將繼續將該解析請求發送給上級DNS,整個DNS能夠看作是一個樹狀結構,該請求將一直髮送到根直到獲得結果。ip
二、http(80)路由
主要職責是生成針對目標web服務器的http請求報文(請求行、請求頭部)get
三、TCP
將http請求報文分割成報文段,按序號分爲多個報文段。(三次握手四次揮手)
四、ICMP
輔助IP協議的協議
五、IP
搜索目標的地址,一邊中轉一邊傳送。(路由)
六、ARP
由於最終都要在數據鏈路層上進行傳輸,而數據鏈路層並不認識IP地址,因此ARP的職責就是把IP地址轉換成數據鏈路層認識的MAC地址。
接下來到了數據鏈路層,把網絡層交下來的IP數據報添加首部和尾部,封裝爲MAC幀,如今根據目的mac開始創建TCP鏈接,三次握手,接收端在收到物理層上交的比特流後,根據首尾的標記,識別幀的開始和結束,將中間的數據部分上交給網絡層,而後層層向上傳遞到應用層;
經過數據鏈路層到達目標機器以後。
這實際上是ARP的逆過程,將MAC地址轉換成Ip地址
將接收到的報文段按序號進行重組。
HTTP協議對http請求進行解析處理。