400-650-7353
您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎(chǔ)知識】TCP/IP協(xié)議詳解

【Python基礎(chǔ)知識】TCP/IP協(xié)議詳解

  • 來源:
  • 2021-08-30 16:36:31
  • 閱讀()
  • 分享
  • 手機(jī)端入口

如今,互聯(lián)網(wǎng)一詞已被人們所熟知,它廣泛應(yīng)用于人類生活的各個方面。但是究其歷史,互聯(lián)網(wǎng)是由1971年的ARPANET發(fā)展而來的。ARPANET是一個計算機(jī)網(wǎng)絡(luò),它的出現(xiàn)比互聯(lián)網(wǎng)要早得多。

網(wǎng)絡(luò)中的計算機(jī)為了彼此之間進(jìn)行通信形成一個通信網(wǎng)絡(luò),就必須首先制定網(wǎng)絡(luò)協(xié)議。早期的計算機(jī)網(wǎng)絡(luò),根據(jù)廠商的不同有著自己規(guī)定的一套協(xié)議,Microsoft、IBM和Apple等公司都有各自的互不兼容的一套網(wǎng)絡(luò)協(xié)議。這就像一群人有的說中文,有的說英語,有的說德語,說同一種語言的人之間可以交流,而說不同語言的人之間就難以交流了。

網(wǎng)絡(luò)協(xié)議的不兼容阻礙了互聯(lián)網(wǎng)的發(fā)展。而隨著網(wǎng)絡(luò)的發(fā)展,規(guī)模和覆蓋面越來越大,從而形成了統(tǒng)一的標(biāo)準(zhǔn)OSI(開放系統(tǒng)互連)。OSI模型從上到下具有7層結(jié)構(gòu),分別是應(yīng)用層、表示層、會話層、運輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層。其中,應(yīng)用層定義了應(yīng)用程序之間通信的協(xié)議,運輸層主要用來確保端到端的數(shù)據(jù)通信正常,網(wǎng)絡(luò)層負(fù)責(zé)在各個主機(jī)之間傳輸數(shù)據(jù)。

在互聯(lián)網(wǎng)所使用的各種網(wǎng)絡(luò)協(xié)議中,最重要的是TCP和IP協(xié)議。如今人們常說的TCP/IP協(xié)議并不一定單指TCP和IP這兩個具體的協(xié)議,而通常是表示互聯(lián)網(wǎng)所使用的整個TCP/IP協(xié)議族。

下面介紹一下TCP/IP協(xié)議。

計算機(jī)進(jìn)行通信時,類似于現(xiàn)實中的郵政通信,計算機(jī)通信的雙方必須知道對方的地址才行。在TCP/IP協(xié)議中,IP地址是互聯(lián)網(wǎng)上每臺計算機(jī)的唯一標(biāo)識。目前,最廣泛采用的是IPv4版本的IP地址,如192.168.100.179。IP地址是采用點分十進(jìn)制的一組數(shù)組成的。一般情況下,網(wǎng)絡(luò)上一臺設(shè)備只有一個IP地址,但路由器需要同時接入到兩個及以上的網(wǎng)絡(luò),因此,路由器就會有兩個或多個IP地址。通常計算機(jī)中負(fù)責(zé)IP數(shù)據(jù)包發(fā)送/接收的硬件設(shè)備是網(wǎng)卡,一個IP地址對應(yīng)一張網(wǎng)卡,網(wǎng)卡就是計算機(jī)的網(wǎng)絡(luò)接口。

一臺計算機(jī)通過計算機(jī)網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送到另一臺計算機(jī),數(shù)據(jù)是逐層封裝的。在IP層,IP協(xié)議負(fù)責(zé)將數(shù)據(jù)從一個IP地址發(fā)送到另一個IP地址。首先數(shù)據(jù)需要按照IP協(xié)議分割成多個小數(shù)據(jù)塊,塊長度一般為1024字節(jié),這個小數(shù)據(jù)塊稱為IP數(shù)據(jù)報。發(fā)送出去的IP包,由于整個互聯(lián)網(wǎng)的架構(gòu)非常復(fù)雜,兩臺計算機(jī)之間經(jīng)常有多條線路,因此,中間的路由器就負(fù)責(zé)轉(zhuǎn)發(fā)一個IP包。IP包的特點是按塊發(fā)送,途經(jīng)多個路由,但由于路由器的承載能力有限,當(dāng)大批IP包同時到達(dá)時,就會因路由器處理不過來而丟包。另外,IP包經(jīng)過多個路由器的轉(zhuǎn)發(fā),在路由器中的排隊時間也不同,因此,到達(dá)接收端的順序也不會完全按照發(fā)送時的順序。一個IP包除了包含要傳輸?shù)臄?shù)據(jù)外,還包含源IP地址和目標(biāo)IP地址。

IP協(xié)議之上的是TCP協(xié)議,TCP稱為傳輸控制協(xié)議。TCP協(xié)議在兩臺計算機(jī)之間建立的是可靠的連接,因此,TCP報文是按順序處理的。形象地說,TCP協(xié)議是通過握手建立連接的,再確保按順序收到下層的每個IP包,如果IP包丟失了,就向發(fā)送端請求重發(fā)。

應(yīng)用層上許多常用的應(yīng)用都是建立在TCP協(xié)議上的,例如,萬維網(wǎng)瀏覽器上使用的HTTP協(xié)議,發(fā)送電子郵件的SMTP協(xié)議等。

TCP協(xié)議中設(shè)定了端口號,用來區(qū)分主機(jī)上的不同通信進(jìn)程。例如,根據(jù)IP地址找到目的主機(jī)后,IP包需要上傳到TCP層進(jìn)行處理,TCP可以根據(jù)端口號來區(qū)分出當(dāng)前通信的是網(wǎng)頁瀏覽器還是QQ應(yīng)用程序,這樣就實現(xiàn)了進(jìn)程間通信。

對于TCP協(xié)議,要了解它的三次握手和四次揮手。

三次握手過程如下:

①客戶端發(fā)送連接請求報文。

②服務(wù)器端接收連接請求后,回復(fù)ACK報文。

③客戶端接收到ACK報文后,也向服務(wù)器端發(fā)送ACK報文。

這樣TCP連接就建立了。

TCP連接的拆除需要發(fā)送四個包,故稱為四次揮手。

四次揮手過程如下:

①客戶端發(fā)送一個FIN,用來關(guān)閉客戶端到服務(wù)器端的數(shù)據(jù)傳送。

②服務(wù)器端收到這個FIN,它發(fā)回一個ACK,確認(rèn)序號為收到的序號加1。與SYN一樣,一個FIN將占用一個序號。

③服務(wù)器端關(guān)閉與客戶端的連接,發(fā)送一個FIN給客戶端。

④客戶端發(fā)回ACK報文確認(rèn),并將確認(rèn)序號設(shè)置為收到序號加1。

運輸層協(xié)議除了TCP外,還有UDP。UDP適用于對效率要求相對較高而對準(zhǔn)確性要求相對較低的場合,例如,視頻在線點播、網(wǎng)絡(luò)語音通話等。

了解了TCP/IP協(xié)議的基本概念后,就可以開始進(jìn)行網(wǎng)絡(luò)編程了。

文章“【Python基礎(chǔ)知識】TCP/IP協(xié)議詳解”已幫助

更多內(nèi)容

>>本文地址:http://hqfphsz.com/zhuanye/2021/69824.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個方向的工作?

獲取測試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營銷互聯(lián)網(wǎng)營銷
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運營全域電商運營
  • 軟件測試軟件測試
  • 室內(nèi)設(shè)計室內(nèi)設(shè)計
  • 平面設(shè)計平面設(shè)計
  • 電商設(shè)計電商設(shè)計
  • 網(wǎng)頁設(shè)計網(wǎng)頁設(shè)計
  • 全鏈路UI/UE設(shè)計UI設(shè)計
  • VR/AR游戲開發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運營新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開發(fā)智能機(jī)器人
 

快速通道fast track

近期開班時間TIME