python 網路程式設計(一) 基礎

2022-03-27 17:57:15 字數 1176 閱讀 2674

1.理解tcp

1.1 定址

首先任何基於tcp/ip的網路,每台機器都有唯一的ip位址,只需要知道接受者機器的ip位址,資訊就可以傳送過去。

其次,tcp通過使用埠號來知道機器究竟是哪個程式應該接收傳來過來的資料,每個程式都使用唯一乙個埠號,有時候這些埠號是事先知道的,有時候是隨機指定的。

再次,讓使用者記住一串諸如65.215.22.125的數字是非常困難的,於是使用了dns。當我們想要和乙個遠端機器建立連線的時候,就可以申請連線該機器ip位址相對應的dns,例如 www.baidu,.com dns會給我們提供乙個ip位址,接下來就可以建立連線了。

1.2 tcp的可靠性

1) 為了防止資料在傳輸的過程中被損壞,每個資訊包都包含乙個校驗碼。來保證傳輸過程中信心包沒有被更改。

2)為了防止資訊包丟失,tcp的重傳機制來保證。

3)為了防止資訊包重複或者順序錯誤,tcp每傳送乙個資訊包都會傳送乙個序號。接收方會檢查這個序號,確保收到該資訊包,並吧全部資訊包按照順序重新合併。同時如果接收方看到了乙個已經看過的序號,該資訊包就會被丟棄。

1.3 路由

為了保證資訊包可以從您的機器到達全球任何乙個地方,我們採用路由,並使用traceroutr來查詢經過的路由。

1.4 安全

不希望被陌生人看到你訪問的**或者傳輸的資料。

有可能您的鏈結會被攔截轉向另一台機器。

2.使用客戶/伺服器模式

2.1 伺服器端埠

在客戶/伺服器模式中,伺服器通常是偵聽乙個大家都知道的埠。國際網際網路位址分配委員會維護著官方已分配的埠列表。如果您編寫了乙個伺服器,它的服務不在這個列表,那麼就應該選擇乙個比1024大而且在您的機器上沒有被占用的埠號,埠號最大為65535。

2.1 客戶端埠號

客戶端埠號不是很重要,一般情況下是由作業系統隨機選擇乙個沒有被使用的埠號,當伺服器收到乙個連線請求的時候,請求中帶有客戶端的埠號,資料會被傳輸到該埠號上。因此伺服器可以喝客戶端挑選任意的埠號很好的工作。

2.3 理解udp

它被用來從乙個系統向其他系統傳送非常短的訊息,它只提供乙個保證:您收到的資料時完整的。

通常udp會用在客戶端向伺服器申請乙個位元的資訊,如果沒有收到答覆會繼續申請。

python網路程式設計基礎

客戶 伺服器架構 伺服器 是乙個軟體或硬體,用於提供客戶需要的 服務 伺服器存在的唯一目的就是等待客戶的請求,給這些客戶服務,然後再等待其他的請求.常見的服務型別 硬體的客戶 伺服器架構 印表機,檔案伺服器 軟體客戶 伺服器架構 web伺服器,資料庫伺服器,視窗伺服器 gui 套接字 用於程序間通訊...

python 網路程式設計基礎

python實在是太方便,太易用了,三方庫的支援又全,語法又簡單,對開發人員來說,實在是居家旅行,x的必備利器。週末研究了下python的網路支援,做一下記錄,以備隨後翻閱。python支援bsd的socket進行網路程式設計,其api跟c中的大同小異,先看看tcp方式的,說到網路程式設計,肯定會設...

python網路程式設計基礎

目錄 標籤 空格分隔 網路程式設計 目錄tcp和udp tcp的使用是面向連線的,即資料的傳輸必須基於虛鏈路的完整建立。虛鏈路的建立提供了很多優秀的功能,比如確認重傳以保證資料的完整性,滑動視窗以保證資料傳輸的高效性,各類選項字段提供不同的可選功能。tcp的缺點是報頭大,因為需要包含比udp更多的功...