以太坊價格 以太坊價格
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各層協議的職能

Web3域名聯盟宣布51個新成員,包括Blockchain.com、Rarible等:金色財經報道,Web3域名聯盟(Web3 Domain Alliance)宣布51個新成員,包括Blockchain.com、Rarible、Wyre、Bitdegree、WazirX和Klever。

據悉,Web3域名聯盟旨在為Web3域名服務提供標準化框架,為Web3域名服務的用戶改善技術和公共政策環境。隨著新成員的加入,該聯盟表示將專注于消費者保護、防止域名沖突、行業知識產權的公平和公開使用以及區塊鏈域名系統的互操作性等主題。(Cointelegraph)[2023/2/23 12:25:24]

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

先來個英文版

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

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

數據:昨日加密市場總交易量324.3億美元,單日漲幅9.11%:金色財經報道,1月5日消息,據CoinGecko數據顯示,1月4日加密市場總交易量為324.3億美元,相較于1月3日(297.2億美元)單日漲幅9.11%。[2023/1/5 9:54:12]

圖文來自《圖解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協議,但由于帶寬限制,如果你想和本網絡外的節點溝通時,就得使用一個設備:路由器。世界上大多數的路由器被幾家大運營商掌管。

VeChain 與 TruTrace 合作,將區塊鏈技術整合到制藥行業:金色財經報道,VeChain和TruTrace宣布他們將整合到區塊鏈平臺的行業列表。TruTrace是一家加拿大SaaS(軟件即服務)公司。根據公告,該平臺將覆蓋TruTrace的合法大麻、食品、服裝和制藥行業。[2022/9/27 22:31:21]

如上圖,節點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》里面萌萌噠圖解釋一下這個過程:

知情人士:美國財政部不會批準美國穩定幣法案:金色財經報道,知情人士稱,美國財政部不會批準美國穩定幣法案,除非它還確保行業交易所將客戶資金與公司資產分開,以便在公司倒閉時保護他們。

此前消息,美國眾議院金融服務委員會已將穩定幣法案推遲到9月。(Coindesk)[2022/7/29 2:44:33]

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

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

數據:第三大BTC鯨魚再次購買255 BTC,該地址本月已購買2,318 BTC。:6月24消息,根據Tokenview數據顯示,第三大BTC鯨魚又購買了255 BTC,該地址本月已購買2,318 BTC。[2022/6/24 1:29:20]

圖片來自《圖解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:TCPMACARPSYNBTCPEP幣Almace Shardsarpa幣項目進展Synth iTRX

歐易okex官網
ECO:星球日報 | 百度成立區塊鏈研發新公司“度鏈”;2018年全球區塊鏈專利百強發布,中國公司占半數以上

頭條 百度成立區塊鏈技術研發新公司“度鏈”近日百度旗下北京鼎鹿中原科技公司注資5000萬元,成立度鏈網絡科技有限公司,百度高級副總裁向海龍擔任董事長.

1900/1/1 0:00:00
區塊鏈:加強用戶數據協作,「Points」 想通過“安全計算”解決數據孤島與隱私安全問題

在大數據時代,數據孤島、數據泄露等問題仍然存在;目前而言,數據量、處理效率和數據安全形成了“數據協作不可能三角”.

1900/1/1 0:00:00
數字人:美團員工微博實名舉報公司內部員工進行區塊鏈項目詐騙

今日有微博用戶爆料,美團外賣4名員工實名舉報某設計師利用上班時間,進行KCI區塊鏈項目傳銷詐騙.

1900/1/1 0:00:00
數字貨幣:政策周報 | “代幣發行融資”被列入互聯網金融舉報范圍;香港地區將加快區塊鏈求職者的入境手續 (8.25—8.31)

本周,區塊鏈和數字貨幣利好政策持續,國內監管趨緊。國外方面,利好消息較多。澳大利亞國家區塊鏈推出智能合同系統,新加坡金融管理局和迪拜金融服務管理局簽署金融技術合作協議,英國政府宣布在區塊鏈平臺上.

1900/1/1 0:00:00
區塊鏈:交易所+錢包:火幣未來還是一家交易所嗎?

9月18日,火幣正式推出火幣錢包應用。Odaily星球日報在發布會上獲悉,該數字貨幣錢包主打簡單便捷,支持BTC、BCH、USDT、ETH、ETC、LTC以及全部ERC20代幣.

1900/1/1 0:00:00
EOS:繼Fomo3D之后的EOS Pixel Master,為何9天之內吸金80萬美元 ?

EOSPixelMaster這款被BM點贊的游戲,短短幾天就已沖到EOSDApps排行榜中的第三名.

1900/1/1 0:00:00
ads