目錄面試
不用聯網,好比咱們玩的單機遊戲瀏覽器
client: 客戶 server:服務服務器
客戶端-->服務端網絡
brower 瀏覽器 server 服務架構
客戶端嫁接在瀏覽器上-->服務端(bs爲cs的一種)tcp
1.邊緣部分: 客戶端或者服務端視頻
2.核心部分:路由器,基站server
1.硬件:一些硬件設備blog
2.軟件:經過一些OSI協議組織無序的電信號爲有序遊戲
電纜,光纜,能看得見的設備,鏈接計算機,傳輸電信號
把信號分組,數據只能在局域網內傳輸,局域網傳輸靠mac地址和交換機
head(以太網頭)
發送地址 6 個字節
目標地址 6個字節
數據類型 6個字節
data 有長短限制
mac地址纔是計算機的惟一編號
以廣播的形式傳輸
咱們想鏈接其餘局域網的電腦,好比美國的電腦,原則意義上咱們能夠經過交換機,網線把美國的電腦鏈接上,想一想這可能嗎?是否是想一想都很恐怖
那如何鏈接上其餘局域網的計算機呢?就是網絡層
IP地址,IP地址是靠路由器傳輸,而後就能夠跨局域網通訊
咱們能夠獲取本身的IP地址,在cmd中輸入ipconfig,就能夠看到本身的IP地址
IP地址+mac地址肯定世界獨一無二的計算機
傳輸層給了一個端口
IP地址+mac地+端口就能肯定世界上獨一無二的計算機上的應用程序
應用程序
數據從客戶端-->服務端的協議
若是你要去服務端下載視頻,客戶端和服務端之間必須得鏈接,鏈接就是三次握手:
在鏈接以前客戶端和服務端都是出於關閉狀態的
1.客戶端會像服務端發起一個請求,以下載視頻,會有一個syn報頭
2.服務端會接收到客戶端的請求,而後會響應客戶端,而且把syn報頭改裝好後又返回客戶端,會有ACK的報頭
3.客戶端開始進入創建鏈接狀態,再發一條請求,請求帶上ACK給服務器,讓服務器也進入鏈接狀態
爲何要三次呢?
1次能夠嗎?爲何
1.客戶端直接進入鏈接狀態,直接發送請求給服務端,直接進入鏈接狀態
弊端:假使這時客戶端發送一個僞IP,直接發給服務端,服務端就立馬進入鏈接,會致使服務端無效傳輸,浪費服務端的資源
2次能夠嗎?爲何
1.客戶端暫不進入鏈接狀態,發一條請求給服務端
2.服務端直接進入鏈接狀態,發送一條肯定請求給客戶端,客戶端收到直接進入鏈接狀態
弊端: 通常服務端不會出現故障,死機之類的,客戶端比較容易出現這種問題,假使在第2步的時候,客戶端死了,這時服務端知道嗎?並不知道,仍是照舊傳輸數據,也會形成服務端資源的浪費
綜上就是必須3次就能夠進行創建鏈接
1.客戶端會發送請求帶上FIN報頭給服務端說我夠了,要斷開鏈接
2.服務端接收到客戶端的請求後,返回一個帶有ACK報頭的請求說確認了,還有數據沒有傳完,等會吧
(1.FIN報頭並無返回 2.可是服務端此時還有可能傳輸數據)
3.服務端數據傳輸結束以後服務端又會發送一次帶報頭FIN的請求,告訴客戶端我全部數據都發完了,結束吧
(若是隻有三次鏈接,可是客戶端可能在第二次鏈接後死掉了,客戶端壓根沒有收到第2-3步之間的數據傳輸,服務端並無管你客戶端到底接收到了沒有,而後服務端是發送給了你確認關閉)
4.因此必須得有第四次,客戶端像服務端進行一次確認,我收到了你中途發的數據