比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads

TCP:小明學習筆記 | 一文看懂互聯網TCP/IP協議

Author:

Time:1900/1/1 0:00:00

編者按:區塊鏈涉及到的技術很多,從互聯網底層到不明覺厲的密碼學,可是往往關注幣價者多而研究技術的人少。牛市的時候,大家為了炒幣也會努力學習,熊市的時候,反正也沒啥事,我覺得可以更加努力學習。作為一個文科生,我當然會有很多理科生看起來覺得很白癡的問題。作為一個記者,我不難找到業內懂的人用人話給我解釋,而且他們往往不會當面嫌棄我。這是小明學習筆記第三期,學習的是TCP/IP協議,第一期學習的是虛擬機,第二期是跨鏈,之后想學習的有VRF、開源歷史和文化、網絡體系結構與區塊鏈分層體系對比、“假如把幣圈看成一個國家這個國家的貨幣在經歷什么”。如果有其他有趣問題,歡迎投稿和提問。

在接觸區塊鏈的時候,你可能會發現經常有人會說到協議,偶爾還會有人說到TCP/IP協議。乍聽之下不明覺厲,但轉念一想這似乎真的已經是最普遍而且我們每天都在用的“協議”了。還會有人拿區塊鏈跟互聯網相比,而互聯網的底層是TCP/IP協議;還聽到過徐明星說過區塊鏈是將會是金融的TCP/IP協議;加上以太坊的架構中網絡層的資料也非常少。所以我想了解一下。這次的學習筆記主要是依靠網上公開資料的整理,很多段落可能是copy自不同的解釋文章,真的是所謂的“筆記”了。

圖片來自CSDN博客什么是TCP/IP協議

首先,協議,可以理解為是一套統一的規則,就像行業標準。由于互聯網主要的功能是傳輸信息,所以其協議一般是管理系統之間如何相互通信的規則。用郵政和物流等線下的“運輸協議”來理解,我們以前寫信的時候都需要寫郵編、寄信人、收信人和地址,在途中郵政也有自身的標準,比如不同地區的郵遞員收集特定地區的郵件,然后匯集分發;物流行業也有集裝箱、鐵軌等。在互聯網通信中,“如何探測到通信目標、由哪一邊先發起通信、使用哪種語言進行通信、怎樣結束通信等規則都需要事先確定。不同的硬件、操作系統之間的通信,所有的這一切都需要一種規則。”TCP/IP協議的全稱是TransmissionControlProtocolandInternetProtocol。TCP和IP分別是兩種協議;同時TCP/IP協議可以指互聯網傳輸過程中用到的一組協議族和互聯網模型,因為TCP和IP在其中比較重要,所以以它們來命名。由于通信中涉及到的步驟和用到的軟硬件很多,因此會被劃分成不同的層次。TCP/IP模型有四個抽象的層次,描述了總體的設計大綱,并實現了網絡通信的具體協議。這個模型中不同的協議有著不同的“分工”,掌握所需要的信息,并且根據特定信息完成它的工作,其實跟現實生活中工作流程差不多。再用上面郵政和寄快遞的例子,由于存在分工,你問收件的快遞員你的快遞單到哪是他肯定是不知道的,他只負責把你的快件送到快遞集散點。對于用戶而言,可以把TCP/IP協議理解成快遞公司,用戶只需要寄件和簽收,怎么把快件從A運到B手上,就是快遞公司的事了。再次借用知乎哦吼的話:“TCP/IP也是網絡通信里的物流公司,應用程序只要把需要傳輸的數據提交給TCP/IP,TCP/IP就可以把數據打包發到目的地,至于里面的傳輸細節應用程序也可以不關心,這樣應用程序就可以從最底層的傳輸細節里解放出來,把更多的注意力放在應用程序數據本身的處理。”接下來我們可以開始來了解一下這家快遞公司內部的各個重要角色。TCP/IP各層協議的職能

ConsenSys推出新品牌標識,并將開啟Not Another Virtual Hackathon:6月27日消息,ConsenSys創始人Joseph Lubin在推特上宣布推出新的ConsenSys品牌標識,旨在點燃建設者(Builder)的火花。

此外,ConsenSys還發布了與YouGov一起進行的全球Web3認知調查報告。該調查就有關加密貨幣、區塊鏈和Web3的公眾輿論,對來自15個國家或地區的15,000多名受訪者進行了深入分析。其中,92% 的受訪者表示了解加密貨幣,但只有8%的人熟悉Web3的概念;82%的受訪者表示隱私對他們很重要,77%的受訪者希望更好地控制自己的在線身份,70%的受訪者希望擁有自己的數據所有權。

ConsenSys還將開啟“Not Another Virtual Hackathon”,包含了各種類型的建設者,從7月6日持續到9月6日,全程開放報名。[2023/6/27 22:03:45]

這家公司大概可以分成四個部門,也就是TCP/IP協議族按層次分別分為應用層、傳輸層、網絡層和網絡接口層。

先來個英文版

再來個萌萌噠中文版上面這幅圖其實很形象地表現了整個數據傳輸的過程,我們在微信上發一句話看似很簡單,其實每一步都經過了從上層到底層,再從底層到上層應用的過程。比如小熊在微信上給小明發了一句消息,直到小明收到這個消息,其實就經過了上述過程。微信所在的是應用層,它按照特定格式把數據打包好,加上收寄件人和雙方地址、自己的“記號”等等,給到傳輸層;傳輸層的TCP協議會把文件切成更小的碎片,確保數據包都被安全傳輸;網絡層的IP協議會找到最佳路徑;這個消息會通過光纖、WiFi等網絡發過去。到達目的地之后,被打散的數據會經過重組,傳輸層也會從記號知道這是給微信的。上面這個過程其實已經聊到TCP協議和IP協議的主要作用,這兩個分別是傳輸層和網絡互連層最主要的協議,因此這個模型以它們來命名。具體過程中會有很多其他協議,傳不同的數據時,應用層會有不同的協議處理。感興趣的寶寶可以繼續跟我一起了解細節。每一層都有自身的職能和常見的協議,整理CSDN上極光推送的博客、MarchOn博主,知乎網友哦吼、Drake、小明的文章,還有《圖解HTTP》一書,總結如下。

數據:以太坊域名服務ENS主域名注冊量突破42萬:金色財經報道,據Dune Analytics最新數據顯示,以太坊域名服務ENS主域名注冊量已突破42萬,本文撰寫時為421,047個,創歷史新高。此外,ENS參與地址總數量為589,172個,迄今已創立的ENS域名總量達到2,753,725個。[2022/10/26 16:39:33]

圖片來自CSDN互聯網中信息以數據包的單位傳輸,不同的協議層對數據包有不同的稱謂,在傳輸層叫做段(segment),在網絡層叫做數據報(datagram),在鏈路層叫做幀(frame)。

圖文來自《圖解HTTP》發送端在層與層之間傳輸數據時,每經過一層時必定會被打上一個該層所屬的首部信息,這種把數據信息包裝起來的做法稱為封裝。數據封裝成幀后發到傳輸介質上,到達目的主機后每層協議再剝掉相應的首部,最后將應用層數據交給應用程序處理。我會從最底層開始講起。網絡接口層

常見協議:Ethernet802.3、TokenRing802.5、X.25、Framerelay、HDLC、PPPATM等。又叫網絡訪問層,負責從上層接收IP數據包并通過網絡發送,或者從網絡上接收物理幀,抽出IP數據包,交給IP層。這層包括主機連接到物理網絡所需要的硬件以及傳送數據的協議。比如路由、NIC,及光纖等物理可見部分;這層的協議取決于所使用的物理網絡。如果物理網絡是LAN,那么通常使用的是以太網協議以及它的變體,如果使用的是WAN,常用的則是點對點協議以及幀中繼等協議。其中比較出名的是以太網協議。“兩臺電腦之間是通過網卡來進行發送和接收數據的。每個網卡都有一個獨特的地址,也就是MAC地址。以太網數據以幀為單位,包括標頭和數據部分。以太網在子網內以廣播的形式發送數據。光有MAC地址并不能讓兩臺主機之間相互通信,如果兩臺主機不在同一個子網,以太網協議就沒轍了。這就要通過網絡層來區分每臺主機所在的網絡是哪個子網。如果在同一個子網,就用廣播發送數據,否則就用路由發送。這就導致了網絡層的誕生。”網絡訪問層

常見協議:IP(InternetProtocol)、ICMP、ARP(AddressResolutionProtocol)、RARP(ReverseARP)。IP是網絡層的核心,通過路由選擇將下一條IP封裝后交給接口層。ICMP是網絡層的補充,可以回送報文。用來檢測網絡是否通暢。網絡層的主要任務簡而言之就是“給每個數據包確定路線”。這個主機可能在同一個網絡或者外部網絡,因此需要先區分主機是不是在同一個子網。這層就是IP協議所在的地方。就像我們寫信的時候需要有一個地址,在網絡世界中也需要一個地址,這個網絡地址就是IP地址。IP地址是門牌號,而IP協議負責計算并找到指定門牌,快遞小哥每天出門前要做的事就是IP協議的天職:分揀包裹、規劃路徑。其實,三五個節點的小型網絡內部通信完全不必使用IP協議,因為這些節點之間本來就能兩兩互通,但會有個問題:節點數變多后,網速就會癱瘓,因為帶寬耗盡。因此,后來一片網絡拆分成很多子網絡,每片子網絡交給一臺路由器統管。子網絡中的節點間可以單獨通信,不需要IP協議,但由于帶寬限制,如果你想和本網絡外的節點溝通時,就得使用一個設備:路由器。世界上大多數的路由器被幾家大運營商掌管。

三大指數集體收跌,標普500指數跌0.4%:金色財經報道,美股高開低走,三大指數集體收跌。納指跌0.74%,道指跌0.54%,標普500指數跌0.4%。[2022/9/7 13:12:37]

如上圖,節點1和2同屬一個子網,可基于內部通信協議溝通,而1和5間的聯絡必須基于IP協議,通過路由器1和2之間的路徑交流。把IP協議的邏輯推廣到整個互聯網,最終,連接我們手機客戶端和騰訊服務器的是無數個路由器。

把大網絡切小的好處顯而易見:節約帶寬、抬高網速,同時一只路由器掛了不影響其他節點間的通信,這就是IP協議的作用。這層還有一些“協助”IP協議工作的協議,比如ARP和RARP。要保證數據確實傳送到對方主機,除了IP地址之外還需要MAC地址。Mac地址又稱物理地址,跟網卡一一對應,對于一臺主機來說是唯一且不可變的。IP地址則是會根據你所在網絡的不同改變的。上述兩個協議的作用簡單而言就是:用IP地址找Mac地址;以及用Mac地址找IP地址。具體的作用請看下面兩段:“ARP基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。以太網中的數據幀從一個主機到達網內的另一臺主機是根據48位的以太網地址來確定接口的,而不是根據32位的IP地址。內核必須知道目的端的硬件地址才能發送數據。P2P的連接是不需要ARP的。RARP允許局域網的物理機器從網關服務器的ARP表或者緩存上請求其IP地址。局域網網關路由器中存有一個表以映射MAC和與其對應的IP地址。當設置一臺新的機器時,其RARP客戶機程序需要向路由器上的RARP服務器請求相應的IP地址。假設在路由表中已經設置了一個記錄,RARP服務器將會返回IP地址給機器。”看完之后你可能跟我有一樣的疑惑,既然都是靠物理地址找主機,為啥還需要IP地址?51CTO和CSDN這兩篇文章可以解答這個問題:MAC地址結構是醬紫的:一共有48bit,分為兩部分,前24bit是廠商代碼,后24bit是廠家自己分配的。假如我們認為MAC地址可以區分不同的網絡的話,那只能是使用廠商代碼來區分不同的網絡,顯然同品牌網卡不代表在同一個網絡。最早這個世界上的電腦沒這么多的時候,是沒有路由這個東西存在的,主機都在一張網里,所以確實是直接通過mac地址通信的。最初的鏈路層協議是和ip地址無關的,沒有網絡層方面的設定,只有物理層和鏈路層,最初也只有集線器,沒有交換機路由器,服務器之間傳輸數據全靠mac地址。在沒有ip地址之前,mac地址已經在使用了。現在到處都在用的二層交換機,就是根據mac地址轉發數據。mac地址的設計不攜帶設備在網絡中的位置信息,想要通過mac地址通信,我們得在所有的設備上維護一張很大的表,記錄所有mac地址路由在當前位置的的下一跳,這顯然是不合理的。再次用《圖解HTTP》里面萌萌噠圖解釋一下這個過程:

Blockworks:Immutable X 的 NFT 日銷售額超越 Solana,僅次于以太坊:金色財經消息,據Blockworks Research分析,NFT Layer2 解決方案 Immutable X 的NFT 美元日銷售額超越 Solana,僅次于以太坊。銷量增長由 Gods Unchained、DC Comics 和 Illuvium Land 引領。[2022/8/23 12:42:38]

MAC地址就像電腦的個人身份證,IP地址就像電腦所在的屋子,屋子里可以住著很多人,局域網關路由就像登記人口的街道辦公室。傳輸層

有了IP協議,就可以在兩個主機之間發送數據了,接下來的問題在于每臺主機都有不同的應用,如何區分哪個數據包屬于哪個程序?這就是傳輸層的作用。傳輸層的主要任務是確保分割的單元在另一端正確地到達,它建立端口到端口的連接。網絡層建立主機到主機的連接,只要有主機和端口,就能確定數據包屬于哪個程序的。同時它也負責接收應用層的數據,然后把它們分成更小的單元,傳輸到網絡層。這里提到的端口不是硬件端口,而是軟件端口,端口有點向外界信息進入電腦的門,不同的信息通過這些門傳給不同應用程序。更形象的解釋可以參考《為什么要有端口,怎么來規劃端口,看下邊。》:“ip能鎖定一臺物理機器,對應著一張網卡,外界發來的數據包網卡都會接收。但是問題來了,網卡給程序提供了接口,你監聽一下我,要是有消息來了,我就轉發給你。這樣應用程序就能收到數據了。但是問題來了,程序A和程序B都需要監聽網卡接發數據,網卡說那我把接到的數據都發給你兩,你們自己看著辦吧。好,小A小B都接受了。但是又來了CDEF......,不行了,每個包都被發到了所有應用程序,每個應用程序都累得不行,最終垮了。好,那網卡說我給你們加個表示吧,我們之間可以用一個號碼來作為標識,我和小A之間就用1來標識,如果外界發給1號標識的數據我就轉發給你,你監聽我的時候得告訴我你監聽的時1,我就轉發1的數據包給你。好了其他的BCD...都自己弄一個標識號,只要不重復就行。這樣大家都省事了。最后設計到安全,一個標識號只能被一個應用程序監聽,因為如果小A程序和小B同時監聽一個標識號號,那就壞了,我傳的數據都被AB接到,這樣數據安全性就沒辦法保證了。”這一層主要有兩個協議:TCP和UDP。TCP是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。UDP是一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。這兩句話雖然看起來也是讓人懵逼,但大概能讓人get到一個可靠一個沒那么可靠。沒錯這就是兩者的區別。TCP協議提到的所謂字節流服務是指,為了方便傳輸,將大塊數據分割成以報文段為單位的數據包進行管理。而可靠的傳輸服務是指,能夠把數據準確可靠地傳給對方。簡單來說就是,它把數據切成一個個數據包,從第一只數據包開始傳,傳送成功就翻倍,發現失敗就地爬起來,從絆倒的那只數據包重新開始,周而復始。:

Footprint Analytics完成265萬美元種子輪+ 輪融資,經緯創投領投:5月26日消息,Footprint Analytics完成265萬美元種子輪+ 輪融資,經緯創投領投,紅點、A&T Capital、Hash Global、水滴資本、Lancer Capital等機構跟投。Footprint Analytics種子輪融資增至 415 萬美元。

據悉Footprint Analytics是一個一體化的分析平臺,用于可視化區塊鏈數據并發現洞察力。[2022/5/26 3:42:51]

圖片來自《圖解HTTP》為了準確無誤地將數據送達目標處,在收發數據前,必須和對方建立可靠的連接。TCP協議采用了三次握手策略。握手過程中使用了TCP的標志——SYN和ACK:第一次握手:客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。注意:握手過程中傳送的包里不包含數據,三次握手完畢后,客戶端與服務器才正式開始傳送數據。除了上述三次握手,TCP協議還有其他各種手段來保證通信的可靠性。理想狀態下,TCP連接一旦建立,在通信雙方中的任何一方主動關閉連接之前,TCP連接都將被一直保持下去。斷開連接時服務器和客戶端均可以主動發起斷開TCP連接的請求,斷開過程需要經過“四次握手”。至于UDP協議,傳送數據前并不與對方建立連接,對接收到的數據也不發送確認信號,發送端不知道數據是否會正確接收,當然也不用重發,所以說UDP是無連接的、不可靠的一種數據傳輸協議。具體據知乎用戶陳寶佳的帖子,UDP傳輸的信息包最小只有8個字節,TCP則是20個字節。這樣的好處是,UDP對系統資源要求更低,開銷更小,數據傳輸速率更高,因為不必進行收發數據的確認,所以UDP的實時性更好。他還表示MSN采用TCP傳輸協議傳文件,QQ傳輸文件采用UDP,所以后者更快。

我在學校的時候,有師兄教過我用“ping”命令來測試兩臺主機之間TCP/IP通信是否正常。依然是據上面那個知乎大神解釋,“其實ping命令的原理就是向對方主機發送UDP數據包,然后對方主機確認收到數據包,如果數據包是否到達的消息及時反饋回來,那么網絡就是通的。ping命令是使用IP和網絡控制信息協議(ICMP),因而沒有涉及到任何傳輸協議(UDP/TCP)和應用程序。它發送icmp回送請求消息給目的主機。ICMP協議規定:目的主機必須返回ICMP回送應答消息給源主機。如果源主機在一定時間內收到應答,則認為主機可達。”

應用層

應用層是互聯網程序與其他程序通信所使用的層,也是離用戶“最近”的一層。比如說訪問網頁,肯定要用到HTTP,前面肯定會有"HTTP://",這就是HTTP協議。1982年春,美國國防部宣布TCP/IP作為軍用網絡的通信標準。1989年,TimothyBerners-Lee研發出了超文本傳輸協議HTTP,之后,互聯網上可以傳輸的不僅只有文字,還有包括圖片等各種多媒體的網頁。我們通常訪問一個網頁的的時候更習慣打域名,比如http://www.badidu.com,而不會直接打IP,因為這樣更好記,可是電腦就不是這么想的,所以就需要DNS。DNS用于通過域名查找IP地址,或逆向從IP地址反查域名的服務。如果要發郵件,就要用到SMTP;還有FTP,用于Internet上的控制文件的雙向傳輸,同時也是一個應用程序;還有Telnet,Internet遠程登陸服務的標準協議和主要方式,能用戶可以在一臺電腦上遠程控制另一臺電腦。

這一層的主要任務是將接收到的數據包按照協議解讀成各種類型的數據,并將要發送的數據打包進傳輸層。主要協議有:HTTP、FTP、SMTP、Telnet、NFS、RIP等等。我是Odaily星球日報編輯盧曉明,探索真實區塊鏈,爆料、交流請加微信lohiuming,煩請備注姓名、單位、職務和事由。

相關閱讀:TCP/IP協議是什么?現在有哪些問題?為什么說區塊鏈是TCP/IP解決方案?一分鐘了解TCP/IP模型TCP/IP模型及OSI七層參考模型各層的功能和主要協議TCP/IP協議是什么?我們10分鐘搞定小白如何理解TCP/IP網絡協議族計算機網絡結構模型TCP/IP詳解TCP/IP協議到底在講什么?TCP和UDP的區別OSI參考模型如何理解TCP端口BlockChain-以太坊架構以太坊入門分享從概念到底層技術,一文看懂區塊鏈架構設計

Tags:TCPMACARPSYNBTCP幣GRIMACE幣HarpoonSynergy

芝麻開門交易所
BTC:行情 | 比特幣低位震蕩,震蕩行情接近尾聲

編者按:本文來自比特易,作者:比特易,星球日報經授權發布。一、市場行情回顧市場市值在昨日下午開始出現小幅度下跌,交易量方面小幅回升.

1900/1/1 0:00:00
區塊鏈:鏈與制作人 | 信任需求就像網絡安全需求,不出事故不被發現

“入華”數年,區塊鏈經歷了不少起落。最初比特幣從業者受人側目,到今天被貼上“高大上”和“一夜暴富”的標簽。縱使爭議不斷,但總算是是可以“抬起頭買幣”了.

1900/1/1 0:00:00
區塊鏈:Chaindigg CEO 葉茂:從區塊鏈數據分析中挖掘非法資金流向,可及時發現和預防風險 | 區塊鏈P.O.D大會

9月5日,由Odaily星球日報主辦、36Kr集團戰略協辦的P.O.D大會在北京舉行。在大會的安全論壇上,區塊鏈大數據服務商ChaindiggCEO葉茂從數據角度,與眾嘉賓共同探討區塊鏈的安全問.

1900/1/1 0:00:00
區塊鏈:星球日報 | 百度發布《區塊鏈白皮書 V1.0》;日本將對交易所資產被盜進行嚴格審查;火幣發布社交平臺 Huobi Chat

\"\u002F\\> 頭條 《百度區塊鏈白皮書V1.0》發布,百度已落地信息溯源等六大應用9月26日,百度區塊鏈實驗室發布《百度區塊鏈白皮書V1.0》.

1900/1/1 0:00:00
區塊鏈:阿聯酋創企推出符合伊斯蘭教法的數幣交易所,這個潛在市場有多大?

不少中東國家將區塊鏈技術視為經濟增長的發動機。比如迪拜制定2020年成為首個區塊鏈政府的目標,位于沙特東部的巴林也下了“在整個國家范圍內采用區塊鏈技術”的決心.

1900/1/1 0:00:00
區塊鏈:京東發布智臻鏈Baas平臺,在發票和物流領域幫助企業上鏈

京東今天發布了智臻鏈區塊鏈服務平臺,這一平臺兼容多種底層鏈、云服務,支持一鍵部署。BaaS是BlockchainasaService的縮寫,中文譯為“區塊鏈即服務”.

1900/1/1 0:00:00
ads