目錄
1 網絡分類
1.1 局域網
1.2 廣域網
2 常見網絡概念
2.1 交換機
2.2 路由器
2.3 集線器
2.4 IP地址
2.5 端口號
2.6 協議
3 網絡協議模型
3.1 OSI七層模型
3.2 TCP/IP五層模型
3.3 每層中常見的協議和作用
3.3.1 應用層
3.3.2 傳輸層
3.3.3 網絡層
3.3.4 數據鏈路層
1 網絡分類
1.1 局域網
????????局域網Local Area Network,簡稱LAN,是一種本地的私有網絡(內網),通過網線、交換機、路由器等設備組成的能讓主機間進行網絡通信的網絡結構。
1.2 廣域網
????????廣域網Wide Area Network,簡稱WAN,是通過路由器把多個局域網組建成大規模網絡范圍的網絡結構。
????????局域網和廣域網是一對相對的概念,沒有明顯的主機數量界限之分。即如果把各個城市組建的網絡看成局域網,那整個國家把各個城市互聯起來,就組成廣域網。同時國家組成的網絡看成局域網,那么整個世界組成的網絡就是廣域網(這種情況下就是我們所說的互聯網(Internet))。
2 常見網絡概念
2.1 交換機
????????交換機的出現解決了主機間僅通過網線互聯的復雜網絡結構和成本高昂的問題,主要用于主機間的數據幀的轉發問題。簡而言之就是交換機把多臺設備組建成局域網。
2.2 路由器
????????路由器相信大家都熟悉,有WAN口(一般藍色,一個口)和LAN口(一般黃色,多個口),WAN口接入外部公網,LAN口實現局域網的主機互聯。因此路由器主要是實現不同網絡的通信問題,即可以組建廣域網。
2.3 集線器
????????早期的局域網內主機互聯工具,但是功能非常有限,通信通道是獨占式,即兩個主機通信時,其他主機無法通信。
2.4 IP地址
????????網絡設備在網絡中的地址,因為網絡中設備繁多,傳輸的數據只有知道地址才知道傳給哪個設備。常見有IPv4版本(32位二進制數)和IPv6版本(128位二進制數)。
2.5 端口號
????????端口號主要用來定位進程,因為數據根據IP地址傳入到主機后,主機中的進程同時可能有多個,因此需要通過端口號(0-65535)綁定。不同進程不能同時綁定一個端口號,一個進程能同時綁定多個端口號(比如子進程)。
2.6 協議
????????如果說IP地址、端口號解決了通信設備和進程的定位問題,物理設備比如網線、無線設備等解決了通信設備的數據傳輸方式問題(光信號和電信號),那么協議解決的問題就是如何統一數據格式的規范問題(數據如何解析,如何建立傳輸數據的連接等等),即是一種約定,共同遵守這個約定才能通信。
????????協議三要素:語法、語義、時序。語法:數據與控制信息的結構或格式。語義:需要發出何種控制信息,完成何種動作以及做出何種響應。時序:事件實現順序的詳細說明。
????????比如在物理設備傳輸的信號中,如果是光信號,那就約定不同的頻率表示不用的信息,高頻1,低頻0。如果是電信號,那就約定高電平是1,低電平是0。通過這種協議就可以進行二進制編碼,從而可以讓主機進行識別。
3 網絡協議模型
????????由于協議種類太多,但是協議之間的作用很多都是相似的,因此對協議進行分層,就有了我們經常聽到的OSI七層模型和TCP/IP五層模型。
3.1 OSI七層模型
????????OSI七層模型實際上在會話層、表示層和應用層過于復雜,不實用,因此是僅存于理論層面的模型,實際上應用最廣泛的是TCP/IP五層模型。
3.2 TCP/IP五層模型
????????TCP/IP五層模型把OSI七層模型中的會話層、表示層和應用層統一為應用層。物理層和數據鏈路層是物理設備和驅動程序的范疇,網絡層和傳輸層是操作系統所負責的,應用層是應用程序所負責的,因此軟件開發人員的主要工作就是在應用層進行網絡編程。
????????封裝:像上圖一樣,數據發送方把數據從上層開始,層層包裝成數據包傳遞給下層的過程就是封裝。
????????分用:當數據接收方接收到數據后,從下層開始層層拆解其中對應部分的信息的過程就是分用。
????????注意:這里討論的交換機和路由器是傳統的2層交換機和3層路由器,隨著技術進步,現在已經出現了3層、4層交換機和4層路由器等等。即考慮交換機和路由器的工作場景:交換機工作在數據鏈路層(封裝分用到數據鏈路層),路由器工作在網絡層(封裝分用到網絡層)。
????????分層后,協議的使用方(上層)不需要知道協議是如何實現的,只需要使用協議提供的接口即可;而協議提供方(下層)不需要暴露所有實現細節,只需要提供接口即可。就好像發送方在某層直接把數據發送給接收方對應的層,即實現了封裝的特性。
3.3 每層中常見的協議和作用
3.3.1 應用層
????????HTTP和HTTPS:采用TCP協議傳輸,用于在客戶端和服務器之間傳輸超文本數據,通常用于Web瀏覽器和Web服務器之間的通信,HTTP協議引入加密機制(SSL/TLS)就變成了HTTPS。
????????DNS:通常采用UDP傳輸,地址解析協議,將域名解析為對應的IP地址。
????????DHCP:動態主機配置協議,采用UDP作為傳輸協議,允許服務器向客戶端動態分配IP地址和配置信息。
????????FTP:采用TCP協議作為傳輸協議,用于在客戶端和服務器之間傳輸文件,支持上傳和下載文件的功能。
????????SMTP:采用TCP協議作為傳輸協議,用于在郵件服務器之間傳輸電子郵件,負責發送郵件。
????????POP3:采用TCP協議作為傳輸協議,用于從郵件服務器上下載郵件到本地計算機,負責接收郵件。
????????SSH:基于TCP,用于遠程登錄和執行命令,提供了加密的網絡連接,保證了通信的安全性。
3.3.2 傳輸層
????????TCP:提供可靠的、面向字節流、有連接的數據傳輸服務,確保數據的可靠性、順序性和完整性。TCP適用于對數據傳輸質量要求較高的場景,如文件傳輸、網頁瀏覽等。
????????UDP:提供無連接的數據傳輸服務,面向數據報,不保證數據的可靠性,也不保證數據的順序性和完整性。UDP適用于實時性要求較高、對數據傳輸質量要求不那么嚴格的場景,比如音視頻傳輸、在線游戲(地圖實時加載出現不完整)等。
3.3.3 網絡層
????????IP:是互聯網中最基本的協議,用于在網絡中傳輸數據包。IP協議定義了數據包的格式、尋址方式和路由選擇等信息,是整個互聯網的基礎。
????????RIP:路由信息協議,是基于距離矢量算法的路由協議,利用跳數來作為計量標準。
????????OSPF:開放式最短路徑優先協議,是一個內部網關協議(自治系統AS)內決策路由,隸屬內部網關協議(IGP),故運作于自治系統內部。Dijkstra算法被用來計算最短路徑樹。兩個相鄰的路由器通過發報文的形式成為鄰居關系,鄰居再相互發送鏈路狀態信息形成鄰接關系,之后各自根據最短路徑算法算出路由,放在OSPF路由表,OSPF路由與其他路由比較后優的加入全局路由表。
????????ICMP:網際控制報文協議,用于在IP網絡中傳遞控制消息和錯誤信息。ICMP通常用于網絡設備之間的通信,如路由器和主機之間的通信,以及用于檢測網絡連通性和故障診斷。
????????BGP:邊界網關協議,是一種外部網關協議,與OSPF(計算AS內部最優路由)不同,主要功能是和其他的 BGP 系統交換網絡可達信息。網絡可達信息包括列出的自治系統(AS)的信息。
????????ARP:用于將IP地址映射為MAC地址(物理地址)。ARP協議在局域網內部使用,通過發送ARP請求獲取目標設備的MAC地址,從而實現數據包的傳輸。注意,ARP協議既不屬于網絡層,又不屬于數據鏈路層,介于兩層之間。
3.3.4 數據鏈路層
????????MAC:媒介訪問控制協議,負責控制設備如何訪問共享的通信介質(如以太網、無線電波等),確保在多臺設備共享同一傳輸媒介時能夠有效地進行數據傳輸,避免沖突、控制流量,并確保數據的有序傳遞。
????????CSMA/CD:載波偵聽多路訪問/碰撞檢測協議,用于以太網,載波偵聽:設備首先檢測共享信道是否空閑。如果信道是空閑的,設備就可以發送數據。多路訪問:所有設備共享同一個傳輸介質,因此必須協調訪問。碰撞檢測:在數據發送過程中,設備會繼續監聽信道。如果發生碰撞(即兩個設備同時發送數據),它們會停止傳輸,并在隨機延時后重新嘗試發送。
????????CSMA/CA:載波偵聽多路訪問/碰撞避免,用于Wi-Fi(IEEE 802.11)。碰撞避免:如果信道空閑,設備會等待一段時間后再發送數據(稱為退避時間),以減少碰撞的概率。競爭和退避算法:使用隨機退避算法(如二進制指數退避)來避免設備同時發送數據。當發生碰撞時,設備會隨機等待一段時間再重試。
下篇文章:
網絡編程—Socket套接字(UDP)https://blog.csdn.net/sniper_fandc/article/details/146923670?fromshare=blogdetail&sharetype=blogdetail&sharerId=146923670&sharerefer=PC&sharesource=sniper_fandc&sharefrom=from_link