簡單入門計算機網絡

      網友投稿 602 2025-04-01

      本篇文章將從 What(是什么)、Why(為什么)、How(怎么做)?三個部分簡單入門網絡通信。


      計算機網絡是什么?

      計算機網絡是指將地理位置不同的具有獨立功能的多臺計算機及其外部設備,通過通信線路連接起來,在網絡操作系統,網絡管理軟件及網絡通信協議的管理和協調下,實現資源共享和信息傳遞的計算機系統。

      簡單來說,網絡就是一種輔助雙方甚至更多方能連接在一起的工具(也就是系統)。

      為什么需要網絡通信?

      為了傳遞數據,當然數據的格式也是多種多樣。網絡通信就是為了聯通多方然后進行通信用的,即把數據從一方傳遞給另一方。

      如果現代社會沒有網絡,我們操作任何電腦或者手機都是單機模式,只能自己跟自己玩。

      網絡通信的本質:也即進程之間的通信

      表現形式:不同的電腦間的數據傳遞。

      如何連接網絡——套接字

      套接字是計算機網絡數據結構,它體現了上節中所描述的“通信端點”的概念。在任何類型的通信開始之前,網絡應用程序必須創建套接字。可以將它們比作電話插孔,沒有它將無法進行通信。

      兩種類型的套接字:基于文件的和面向網絡的。

      1. AF_UNIX(又名AF_LOCAL)

      UNIX 套接字是我們所講的套接字的第一個家族,并且擁有一個“家族名字”AF_UNIX (又名AF_LOCAL,在POSIX1.g標準中指定),它代表地址家族(address family):UNIX。因為兩個進程運行在同一臺計算機上,所以這些套接字都是基于文件的,這意味著文件 系統支持它們的底層基礎結構。這是能夠說得通的,因為文件系統是一個運行在同一主機上 的多個進程之間的共享常量。

      2. AF_INET(或者地址家族:因特網)

      基于網絡的,它也有自己的家族名字 AF_INET,或者地址家族: 因特網。另一個地址家族 AF_INET6 用于第 6 版因特網協議(IPv6)尋址。此外,還有其他的地址家族,這些要么是專業的、過時的、很少使用的,要么是仍未實現的。在所有的地址 家族之中,目前 AF_INET 是使用得最廣泛的。

      Python 只支持 AF_UNIX、AF_NETLINK、AF_TIPC 和 AF_INET 家族。

      如果套接字像一個電話插孔——允許通信的一些基礎設施,那么主機名和端口號就像區號和電話號碼??的組合。

      面向連接的套接字——TCP

      面向連接的,字面解釋——在進行通信之前必須先建立一個連接,例如,使用電話系統給一個朋友打電話。這種類型的通信也稱為虛擬電路或流套接字。

      實現這種連接類型的主要協議是傳輸控制協議(更為人熟知的是它的縮寫 TCP)。

      為了創建 TCP 套接字,必須使用 SOCK_STREAM 作為套接字類型。TCP 套接字的名字 SOCK_STREAM 基于流套接字的其中一種表示。

      因為這些套接字(AF_INET)的網絡版本使用因特網協議(IP)來搜尋網絡中的主機,所以整個系統通常結合這兩種協議(TCP 和 IP) 來進行(當然,也可以使用 TCP 和本地[非網絡的 AF_LOCAL/AF_UNIX]套接字,但是很明顯此時并沒有使用 IP)。

      無連接的套接字——UDP

      與虛擬電路形成鮮明對比的是數據報類型的套接字,它是一種無連接的套接字。這意味著,在通信開始之前并不需要建立連接。此時,在數據傳輸過程中并無法保證它的順序性、 可靠性或重復性。然而,數據報確實保存了記錄邊界,這就意味著消息是以整體發送的。

      實現這種連接類型的主要協議是用戶數據報協議(更為人熟知的是其縮寫 UDP)。為了創建 UDP 套接字,必須使用 SOCK_DGRAM 作為套接字類型。你可能知道,UDP 套接字的 SOCK_DGRAM 名字來自于單詞“datagram”(數據報)。因為這些套接字也使用因特網協議 來尋找網絡中的主機,所以這個系統也有一個更加普通的名字,即這兩種協議(UDP 和 IP) 的組合名字,或 UDP/IP。

      IP地址——“標記”

      就像現實生活中,收件地址就是標記一封信是給誰的;收貨地址標記快遞寄到哪。地址就是用來標記地點的。

      IP地址(Internet Protocol Address)是指互聯網協議地址,又譯為網際協議地址。

      IP地址的作用,就是用來標記網絡上的一個電腦的。(不允許重復)比如類似192.268.1.1這種格式。

      通過命令可以查看本機的網卡信息:

      Linux輸入:ifconfig

      Windows:ipconfig

      每一個IP地址包含兩個部分:網絡地址和主機地址

      A類:7位網絡號+主機24位

      B類:14位+16位

      C類:21位+主機號8位。192.168.1.1 ~255

      D類:用于多點廣播。1110開始

      E類:用來保留

      端口

      有效的端口號范圍為 0~65535(盡管小于 1024 的端口號預留給了系統)。

      知名端口:從0到1023

      例如:88端口分配給http、21分配給FTP

      動態端口:1024~65535

      簡單入門計算機網絡

      在Linux/Mac系統下,可以在/etc/services文件中找到系統預留端口號,包括服務器/協議和套接字類型。

      還可以通過這個網站查看一些眾所周知的端口列表。

      通俗來說,IP地址讓我們找到了要互相通信的這臺電腦,端口的作用就是告訴我該跟這臺電腦的哪一個程序進行連接(通信)?

      下一篇

      當我們知道了有關套接字和網絡方面的基礎知識,接下來就讓我們試著將這些概念應用到 Python 中,學習Python的socket模塊。

      站在巨人的肩膀上:Python核心編程(第3版)

      Python TCP/IP 網絡

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:飛利浦和華為攜手,推動醫療行業云化
      下一篇:關于excel四分位數的信息
      相關文章
      国产精品亚洲自在线播放页码 | 精品久久久久亚洲| 亚洲sss综合天堂久久久| 亚洲精品免费在线| 久久精品亚洲一区二区三区浴池 | 2019亚洲午夜无码天堂| 亚洲无砖砖区免费| 亚洲二区在线视频| 亚洲乱码在线播放| 亚洲最大无码中文字幕| 亚洲日韩精品无码专区加勒比 | 亚洲熟妇无码一区二区三区| 亚洲狠狠婷婷综合久久蜜芽| 亚洲AV无码国产剧情| 国产亚洲精品免费| 亚洲乱码国产一区网址| 亚洲中文字幕无码专区| 亚洲人色婷婷成人网站在线观看| 久久久久久A亚洲欧洲AV冫| 亚洲中文字幕无码日韩| 亚洲国产精品一区第二页| 亚洲av无码乱码国产精品| 亚洲另类激情综合偷自拍| 久久丫精品国产亚洲av不卡| 亚洲精品在线不卡| 亚洲videos| 亚洲高清一区二区三区电影| 日韩色视频一区二区三区亚洲| 亚洲福利中文字幕在线网址| 久久亚洲中文字幕精品一区| 亚洲成A人片在线观看无码不卡 | 亚洲AV乱码一区二区三区林ゆな| 亚洲性天天干天天摸| 亚洲国产精品xo在线观看| 国产精品久久亚洲不卡动漫 | 久久国产亚洲精品麻豆| 亚洲视频一区在线| 精品国产日韩久久亚洲| 亚洲GV天堂无码男同在线观看 | 亚洲视频免费在线播放| 亚洲中文无码亚洲人成影院|