TCP/IP網路協議基礎
TCP/IP 背景和介紹
上世紀 70 年代,隨著計算機技術的發展,計算機使用者意識到:要想發揮計算機更大的作用,就要將世界各地的計算機連線起來。但是簡單的連線是遠遠不夠的,因為計算機之間無法溝通。因此設計一種通用的“語言”來交流是必要可少的,這時 TCP/IP 協議就應運而生了。
TCP/IP(Transmission Control Protocol/Internet Protocol)是傳輸控制協議和網路協議的簡稱,它定義了電子裝置如何連入因特網,以及資料如何在它們之間傳輸的標準。
TCP/IP 不是一個協議,而是一個協議族的統稱,裡面包括了 IP 協議、ICMP 協議、TCP 協議、以及 http、ftp、pop3 協議等。網路中的計算機都採用這套協議族進行互聯。
網路協議棧架構
提到網路協議棧結構,最著名的當屬 OSI 七層模型,但是 TCP/IP 協議族的結構則稍有不同,它們之間的層次結構有如圖對應關係:
可見 TCP/IP 被分為 4 層,每層承擔的任務不一樣,各層的協議的工作方式也不一樣,每層封裝上層資料的方式也不一樣:
- (1)應用層:應用程式通過這一層訪問網路,常見 FTP、HTTP、DNS 和 TELNET 協議;
- (2)傳輸層:TCP 協議和 UDP 協議;
- (3)網路層:IP 協議,ARP、RARP 協議,ICMP 協議等;
- (4)網路介面層:是 TCP/IP 協議的基層,負責資料幀的傳送和接收。
基礎概念
1、IP 地址
網路上每一個節點都必須有一個獨立的 IP 地址,通常使用的 IP 地址是一個 32bit 的數字,被 . 分成 4 組,例如,255.255.255.255 就是一個 IP 地址。有了 IP 地址,使用者的計算機就可以發現並連線網際網路中的另外一臺計算機。
在 Linux 系統中,可以用這樣一條命令檢視自己的 IP 地址:
ifconfig -a
2、域名
用 12 位數字組成的 IP 地址很難記憶,在實際應用時,使用者一般不需要記住 IP 地址,網際網路給每個 IP 地址起了一個別名,習慣上稱作域名。
域名與計算機的 IP 地址相對應,並把這種對應關係儲存在域名服務系統 DNS(Domain Name System)中,這樣使用者只需記住域名就可以與指定的計算機進行通訊了。
常見的域名包括 com、net 和 org 三種頂級域名字尾,除此之外每個國家還有自己國家專屬的域名字尾(比如我國的域名字尾為 cn)。目前經常使用的域名諸如百度(www.baidu.com)、Linux 組織(www.lwn.net)等等。
我們可以使用命令”nslookup”或者“ping”來檢視與域名相對應的 IP 地址,由於實驗樓網路限制,我們可以使用ping git.shiyanlou.com
檢視。
例如:
關於域名與 IP 地址的對映關係,以及 IP 地址的路由和發現機制,將在後續章節進行詳細的說明。
3、MAC 地址
MAC(Media Access Control)地址,或稱為實體地址、硬體地址,用來定義網際網路中裝置的位置。
在 TCP/IP 層次模型中,網路層管理 IP 地址,鏈路層則負責 MAC 地址。因此每個網路位置會有一個專屬於它的 IP 地址,而每個主機會有一個專屬於它 MAC 地址。
4、埠號
IP 地址是用來發現和查詢網路中的地址的,但是不同程式如何互相通訊呢,這就需要埠號來識別了。如果把 IP 地址比作一間房子 ,埠就是出入這間房子的門。真正的房子只有幾個門,但是埠採用 16 位元的埠號標識,一個 IP 地址的埠可以有 65536(即:2^16)個之多!
伺服器的預設程式一般都是通過人們所熟知的埠號來識別的。例如,對於每個 TCP/IP 實現來說,SMTP(簡單郵件傳輸協議)伺服器的 TCP 埠號都是 25,FTP(檔案傳輸協議)伺服器的 TCP 埠號都是 21,TFTP(簡單檔案傳輸協議)伺服器的 UDP 埠號都是 69。任何 TCP/IP 實現所提供的服務都用眾所周知的 1-1023 之間的埠號。這些人們所熟知的埠號由 Internet 埠號分配機構(Internet Assigned Numbers Authority, IANA)來管理。
5、封裝和分用
封裝:當應用程式傳送資料的時候,資料在協議層次當中從頂向下通過每一層,每一層都會對資料增加一些首部或尾部資訊,這樣的資訊稱之為協議資料單元(Protocol Data Unit,縮寫為PDU),在分層協議系統裡,在指定的協議層上傳送的資料單元,包含了該層的協議控制資訊和使用者資訊。如下圖所示:
- 物理層(一層)PDU指資料位(Bit)
- 資料鏈路層(二層)PDU指資料幀(Frame)
- 網路層(三層)PDU指資料包(Packet)
- 傳輸層(四層)PDU指資料段(Segment)
- 第五層以上為資料(data)
分用:當主機收到一個資料幀時,資料就從協議層底向上升,通過每一層時,檢查並去掉對應層次的報文首部或尾部,與封裝過程正好相反。
6、RFC
RFC(Request for Comment)文件是所有乙太網協議的正式標準,並在其官網上面公佈,由 IETF 標準協會制定。大量的 RFC 並不是正式的標準,出版的目的只是為了提供資訊。RFC 的篇幅不一,從幾頁到幾百頁不等。每一種協議都用一個數字來標識,如 RFC 3720 是 iSCSI 協議的標準,數字越大說是 RFC 的內容越新或者是對應的協議(標準)出現的比較晚。
所有的 RFC 文件都可以從網路上找到,其官網為IETF。在網站上面可以通過分類以及搜尋快速找到目標協議的 RFC 文件。目前在 IETF 網站上面的 RFC 文件有數千個,但是我們不需要全部掌握,在工作或學習中如果遇到可以找到對應的解釋,理論與實際結合會有更好地效果,單純閱讀 RFC 的效果一般。
以上內容截選自實驗樓課程【TCP/IP網路協議基礎】第一節,更多TCP/IP網路協議基礎介紹,可以點選這裡,進行檢視,課程自頂向下分層介紹了TCP/IP網路協議基礎,非常適合對TCP/IP不太熟悉的小夥伴~
相關文章
- TCP/IP網路協議TCP協議
- TCP/IP協議 - 網路層TCP協議
- [面試∙網路] TCP/IP(二):IP協議面試TCP協議
- 網路基礎和 TCP、IP 協議TCP協議
- [面試∙網路] TCP/IP(五):TCP 協議詳解面試TCP協議
- 【網路協議】TCP分段與IP分片協議TCP
- 重識TCP/IP協議族與HTTP基礎TCP協議HTTP
- TCP/IP 協議及網路分層模型TCP協議模型
- 詳談OSI七層網路協議和TCP/IP協議協議TCP
- [面試∙網路] TCP/IP(四):TCP 與 UDP 協議簡介面試TCPUDP協議
- [面試∙網路] TCP/IP(三):IP協議相關技術面試TCP協議
- tcp/ip協議TCP協議
- 【網路協議】TCP協議簡介協議TCP
- TCP/IP、UDP/IP協議TCPUDP協議
- IP協議(網路層協議)協議
- TCP/IP基礎知識&Oracle的TCP/IP網路應用TCPOracle
- 傳輸控制協議/網際網路協議(TCP / IP)是什麼意思?-VeCloud協議TCPCloud
- 網路協議之TCP協議TCP
- 網路協議 - TCP/IP、HTTP、HTTPS、HTTP2.0協議TCPHTTP
- 計算機網路之TCP/IP協議簡介計算機網路TCP協議
- TCP/IP——TCP協議中提高網路利用率的機制TCP協議
- TCP/IP協議族TCP協議
- TCP/IP 協議族TCP協議
- Android網路程式設計(一) TCP IP協議基礎棧結構Android程式設計TCP協議
- 網路協議基礎知識協議
- 系列TCP/IP協議-TCP協議概述(011)TCP協議
- 《TCP/IP詳解 卷1:協議》第3章 IP:網際協議TCP協議
- TCP/IP協議之網路連結的背後故事TCP協議
- 網路系統組成、OSI模型、TCP/IP協議簇模型TCP協議
- 對 TCP/IP 網路協議的深入淺出總結TCP協議
- 一篇文章帶你熟悉 TCP/IP 協議(網路協議篇二)TCP協議
- 系列TCP/IP協議-靜態IP選路(007)TCP協議
- 網路通訊協議-TCP協議詳解!協議TCP
- TCP/IP五層協議TCP協議
- TCP/IP協議詳解TCP協議
- TCP IP之ICMP協議TCP協議
- tcp /ip 協議簡介TCP協議
- 如何理解TCP/IP協議?TCP協議