網路通訊名詞總結
阿新 • • 發佈:2018-11-10
名詞解釋
C\S架構,客戶端服務端架構
客戶端(client) : 享受服務端提供的服務
服務端(server) : 給客戶端提供服務
B\S 瀏覽器和服務端 B(browser)
路由器,的作用?
當路由器在內網時 起到的是管理區域網的左右
連結外網,(NAT;網路地址轉化,將你的內網ip轉換為公網ip,)
交換機的作用?
將所有的電腦連線起來,連到一塊
升級版集線器為交換機
簡述OSI七層協議
應用層: 乙太網+ip頭+tcp\udp+http協議+資料
表示層
會話層
傳輸層:乙太網+ip+tcp\udp協議+資料
網路層:乙太網協議頭+ip頭(目標ip+源ip地址)
資料鏈路層:目標mac地址+源mac地址+資料
物理層: 電訊號
mac地址:
網絡卡的唯一標識 全球唯一的相當於身份證.6位點分16進位制
ip地址:
劃分廣播域 IPv4 : 不能超過255
IPv6: 6個冒號分十六進位制 尋找路徑:
開啟網路和共享中心 找到更改介面卡 在開啟本地連線 詳細資訊
DHCP服務:自動分配IP地址
路由器:管理區域網,通過外網並由路由器轉發.
交換機:升級版集線器
閘道器:在路由器這 ,把關對外的請求,由NAT將你的IP地址轉換為公網的IP地址
外網又稱為公網,
子網掩碼:試計算目標IP地址是否和咱們是統一網段
DNS:表示的是伺服器,記錄著所有的域名和他網站對應的那臺伺服器的ip地址對應關係,理解為一個字典{"www.xx.com":192.168.x.x}
廣播:把資訊發給所有人
BS:瀏覽器和伺服器端進行通訊方式被稱為B\S架構
CS架構:分為硬體架構:印表機
軟體架構:QQ
服務端客戶端的進行溝通的方式簡稱cs架構
三次握手四次揮手的流程:
三次握手建立連線闡述:
第一次握手:客戶端要和服務端進行通訊,首先要告知服務端一聲,遂發出一個SYN=1的連線請求訊號,#”服務端哥哥,我想給你說說話”。
第二次握手:當服務端接收到客戶端的連線請求,時要給客戶端一個確認資訊,我知道了,#(ACK),我這邊已經準備好了,你現在能連嗎(SYN)”。
第三次握手:當客戶端收到了服務端的確認連線資訊後,要禮貌的告知一下服務端,#好的,咱們開始聯通吧(ACK)”。
到此整個建立連線的過程已經結束,接下來就是雙方你一句我一句甚至同時交流傳遞資訊的過程了.
四次揮手斷開連線闡述:
第一次揮手:雙方交流的差不多了,此時客戶端也已經結尾了,接下來要斷開通訊連線,所以告訴服務端#“我說完了(FIN)”,此時自身形成等待結束連線的狀態。
第二次揮手:服務端知道客戶端已經沒話說了,服務端此時還有兩句心裡話要給客戶端說,#“我知道你說完了(ACK),我再給你說兩句,&*……%¥”。
第三次揮手:此時客戶端洗耳恭聽繼續處於等待結束的狀態,伺服器端也說完了,自身此時處於等待關閉連線的狀態,並對告訴客戶端#“我說完了,咱們斷了吧(FIN)”。
第四次揮手:客戶端收知道服務端也說完了,也要告訴服務端一聲,#(ACK),因為連線和斷開要雙方都按下關閉操作才能斷開,客戶端同時又為自己定義一個定時器,因為不知道剛才說的這句話能不能準確到達服務端(網路不穩定或者其他因素引起的網路原因),預設時間定為兩個通訊的最大時間之和,超出這個時間就預設伺服器端已經接收到了自己的確認資訊,此時客戶端就關閉自身連線,伺服器端一旦接收到客戶端發來的確定通知就立刻關閉伺服器端的連線。
上圖為正確的,下圖為錯誤的
用大白話解釋三次握手四次揮手舉例:
首先是三次握手:
一次"喂,你聽的到麼?"
二次"我聽得到啊,你聽的到我麼?"
三次"我可以聽到你,"
四次握手:
一次"喂哥們在麼"
二次"在,,怎麼了"
三次"沒怎麼 看看你在不線上"
四次"哦"
什麼是socket ?簡述基於TCP協議的套接字通訊流程
socket:又稱為套接字,他是應用層與TCP/IP協議族通訊的中間軟體抽象層,他是一組介面,同時也是一個模組,我們通過呼叫模組中的已經實現的方法姬娜裡兩個程序之間的連線和通訊
面試題
簡述tcp和udp協議的區別
tcp協議;面向連線,訊息可靠需要通過連結,相對於udp來講,傳輸速度慢,訊息是面向流的無訊息保護邊界()
udp協議:面向無連線,訊息不可靠,傳輸速度快,小時是面向包的,有訊息保護邊界.
套接字socket的發展史及分類
套接字起源於 20 世紀 70 年代加利福尼亞大學伯克利分校版本的 Unix,即人們所說的 BSD Unix。 因此,有時人們也把套接字稱為“伯克利套接字”或“BSD 套接字”。一開始,套接字被設計用在同 一臺主機上多個應用程式之間的通訊。這也被稱程序間通訊,或 IPC。套接字有兩種(或者稱為有兩個種族),分別是基於檔案型的和基於網路型的。
基於檔案型別的套接字家族
套接字家族的名字:
AF_UNIX
unix一切皆檔案,基於檔案的套接字呼叫的就是底層的檔案系統來取資料,兩個套接字程序執行在同一機器,可以通過訪問同一個檔案系統間接完成通訊
基於網路型別的套接字家族
套接字家族的名字:
AF_INET
(還有AF_INET6被用於ipv6,還有一些其他的地址家族,不過,他們要麼是隻用於某個平臺,要麼就是已經被廢棄,或者是很少被使用,或者是根本沒有實現,所有地址家族中,AF_INET是使用最廣泛的一個,python支援很多種地址家族,但是由於我們只關心網路程式設計,所以大部分時候我們只使用AF_INET)