看到一篇大佬的博客,剛好前段時間也有簡單瞭解了一點計算機網絡的TCP/IP,就順便總結一下。
大佬文章鏈接:
https://blog.csdn.net/ThinkWon/article/details/104903925
計算機網絡的自己理解,儘量白話。理解不對,請指正
計算機網絡因爲很抽象,所以不是很好理解,用生活中舉例來說一個場景「你在家,用電腦、手機去請求一個網址或者發送一個微信消息」都會用到計算機網絡
你請求百度的網址,百度給你返回一些信息,那麼問題來了:
你請求中間發生了什麼?返回怎麼返回的?
這個時候就涉及到了計算機網絡
這個地方是有個圖的,可是感覺每次看完圖就過了,所以這次先寫,在放圖吧。
從上往下:
應用層
運輸層
網絡層
數據鏈路層
注意:部分會將數據鏈路層劃分爲數據層和物理層(可能也有不同的叫法),所以也就有了4層或者5層的說法,7層的是ISO模型,此處暫時不管
按照請求百度,百度返回值給主機這種行爲來大概說一下每層的功能以及部分協議吧。
這個地方最常見的協議是HTTP和HTTPS了(還有什麼email、FTP等等)。
延伸問題(職業測試,真的遇到過,順便記錄一下吧):
問題一:HTTP和HTTPS的端口號一般是多少?
問題二:HTTP和HTTPS請求的區別是什麼?
這個地方最常見的協議就是TCP和UDP了
延伸問題(下面這兩個真的是老生常談):
問題一:TCP和UDP的區別是什麼?
問題二:請描述一下三次握手和四次揮手。
這個地方常見的協議就是IP、ICMP、IGMP了。
延伸問題:
ping使用的協議是——?
這個地方用的比較多的是ARP和RARP協議了
好,下面是放圖了
第一張圖:
將四層、五層、七層進行了對照
(不用告訴我每層的名字和我說的存在不一樣,我知道)
第二張圖:
將通信過程與四層進行了對照
其實計算機底層都是二進制,大家都知道,這個地方需要了解一點東西:
二進制
8比特(bit)
1字節
簡單來說,一個二進制位,就是0或1,又稱1bit
8個0/1組成就是一個字節
好,講重點。
這個地方,先放圖,不然可能不好懂
最先放上從別人那邊複製來的圖:簡單明瞭
第二張圖:封裝
第三張圖:分發
這個地方出現2個概念:封裝和分用
封裝就是你要寄快遞,你把這個東西打包一下
分用就是別人要收你的快遞,就要拆包裹
我主要想寫一下4層,所以封裝,我們將上面兩個看做一層。
注意:這個時候我們已經不知不覺添加了好多個首部信息,後面這些首部信息中會有報文字段,後面再說。。。。。。。
迴歸正題:
分用就是「拆快遞」
1、首先要去掉以太網首部(撕掉快遞單)
2、再要去除IP首部(撕掉外包裝)
3、最後還要去掉TCP或者UDP首部信息(拆掉盒子)
4、拿到最終的用戶數據(收到你的寶貝)
先講這麼多吧,後面打算講一下下面內容,備註一下,怕忘了。 1、每層主要的協議,報文包含哪些字段,幹什麼用? 2、IP路由協議(此處要先講一下網絡號) 3、自己出的題,自己寫答案唄