各協議的協議號和埠號
IP是網路層協議,IP頭中的協議號用來說明IP報文中承載的是哪種協議(一般是傳輸層協議,比如6 TCP,17 UDP;但也可能是網路層協議,比如1 ICMP;也可能是應用層協議,比如89 OSPF)。
TCP/UDP是傳輸層協議,TCP/UDP的埠號用來說明是哪種上層應用,比如TCP 80代表WWW,TCP 23代表Telnet,UDP 69代表TFTP。
目的主機收到IP包後,根據IP協議號確定送給哪個模組(TCP/UDP/ICMP...)處理,送給TCP/UDP模組的報文根據埠號確定送給哪個應用程式處理。
協議號和埠號的區別
ip協議是網路層協議,三層的,協議號標識上層是什麼協議,eg:17號表示是上層即傳輸層是udp協議,6號表示上層即傳輸層是tcp協議,89標識上層是ospf協議等等
tcp埠號表示是什麼應用,eg:80 http服務,23 telnet服務,53 dns服務
udp埠原理和tcp是一樣的。
網路層-資料包的包格式裡面有個很重要的欄位叫做協議號。比如在傳輸層如果是TCP連線,那麼在網路層IP包裡面的協議號就將會有個值是6,如果是UDP的話那個值就是17。傳輸層通過介面關聯(這一介面欄位叫做埠)應用層,詳見RFC 1700。協議號是存在於IP資料報首部的20位元組的固定部分,佔有8bit,該欄位是指出此資料報所攜帶的資料使用了何種協議,以便目的主機的IP層知道將資料部分上交給哪個處理過程。也就是協議欄位告訴IP層應當如何交付資料。
埠是傳輸層服務訪問點TSAP,埠的作用是讓應用層的各種應用程序都能將其資料通過埠向下交付給傳輸層,以及讓傳輸層知道應當將其報文段中的資料向上通過埠交付給應用層的程序。
埠號存在於UDP和TCP報文的首部,而IP資料報則是將UDP或者TCP報文做為其資料部分,再加上IP資料報首部,封裝成IP資料報。而協議號則是存在這個IP資料報的首部。
比如,客戶端傳送一個數據包給IP,然後IP將進來的資料傳送給傳輸協議(tcp或者udp),然後傳輸協議再根據資料包的第一個報頭中的協議號和埠號來決定將此資料包給哪個應用程式(也叫網路服務)。也就是說,協議號+埠號唯一地確定了接收資料包的網路程序。由於標誌資料傳送程序的“源埠號”和標誌資料接受程序的“目的埠號”都包含在每個TCP段和UDP段的第一個分組中,系統可以知道到底是哪個客戶應用程式同哪個伺服器應用程式在通訊,而不會將資料傳送到別的程序中。
但是要注意的一點是同樣的一個埠在不同的協議中的意義是不同的,比如TCP和UDP中的埠31指的並不是同一個埠。但是對於同一個協議,埠號卻是唯一的。
在埠中分為兩種,一是“知名埠”,也即小於256的埠號。另一種是“動態分配的埠”,也就是在需要時再將其賦給特定的程序。這類似於NT伺服器或者163撥號上網,也就是動態的分配給使用者一個目前沒有用到的標誌。動態分配的埠號都是高於標準埠號範圍的。
埠號的作用及常見埠號用途說明
IP協議是由TCP、UDP、ARP、ICMP等一系列子協議組成的。其中,主要用來做傳輸資料使用的是TCP和UDP協議。在TCP和UDP協議中,都有埠號的概念存在。埠號的作用,主要是區分服務類別和在同一時間進行多個會話。 舉例來說,有主機A需要對外提供FTP和WWW兩種服務,如果沒有埠號存在的話,這兩種服務是無法區分的。實際上,當網路上某主機B需要訪問A的FTP服務時,就要指定目的埠號為21;當需要訪問A的WWW服務時,則需要將目的埠號設為80,這時A根據B訪問的埠號,就可以區分B的兩種不同請求。這就是埠號區分服務類別的作用。 再舉個例子:主機A需要同時下載網路上某FTP伺服器B上的兩個檔案,那麼A需要與B同時建立兩個會話,而這兩個傳輸會話就是靠源埠號來區分的。在這種情況下如果沒有源埠號的概念,那麼A就無法區分B傳回的資料究竟是屬於哪個會話,屬於哪個檔案。而實際上的通訊過程是,A使用本機的1025號埠請求B的21號埠上的檔案1,同時又使用1026號埠請求檔案2。對於返回的資料,發現是傳回給1025號埠的,就認為是屬於檔案1;傳回給1026號埠的,則認為是屬於檔案2。這就是埠號區分多個會話的作用。 如果說IP地址讓網路上的兩個節點之間可以建立點對點的連線,那麼埠號則為端到端的連線提供了可能。理解埠號的概念,對於理解TCP/IP協議的通訊過程有著至關重要的作用。 埠號的範圍是從1~65535。其中1~1024是被RFC 3232規定好了的,被稱作“眾所周知的埠”(Well Known Ports);從1025~65535的埠被稱為動態埠(Dynamic Ports),可用來建立與其它主機的會話,也可由使用者自定義用途。 一些常見的埠號及其用途如下: TCP 21埠:FTP 檔案傳輸服務 TCP 23埠:TELNET 終端模擬服務 TCP 25埠:SMTP 簡單郵件傳輸服務 UDP 53埠:DNS 域名解析服務 TCP 80埠:HTTP 超文字傳輸服務 TCP 110埠:POP3 “郵局協議版本3”使用的埠 TCP 443埠:HTTPS 加密的超文字傳輸服務 TCP 1521埠:Oracle資料庫服務 TCP 1863埠:MSN Messenger的檔案傳輸功能所使用的埠 TCP 3389埠:Microsoft RDP 微軟遠端桌面使用的埠 TCP 5631埠:Symantec pcAnywhere 遠端控制資料傳輸時使用的埠 UDP 5632埠:Symantec pcAnywhere 主控端掃描被控端時使用的埠 TCP 5000埠:MS SQL Server使用的埠 UDP 8000埠:騰訊QQ網路服務常用的應用協議和對應的標準埠號:
應用協議 埠號/協議 說明 ftp-data 20/tcp FTP, data ftp 21/tcp FTP. control telnet 23/tcp smtp 25/tcp Simple Mail Transfer Protocol time 37/tcp timserver time 37/udp timserver domain 53/tcp Domain Name Server domain 53/udp Domain Name Server tftp 69/udp Trivial File Transfer gopher 70/tcp http 80/tcp www-http World Wide Web pop3 110/tcp Post Office Protocol-Version 3 nntp 119/tcp Network News Transfer Protocol netbios-ns 137/tcp NETBIOS Name Service netbios-ns 137/udp NETBIOS Name Service netbios-dgm 138/udp NETBIOS Datagram Service netbios-ssn 139/tcp NETBIOS Session Service imap 143/tcp Internet Message Access Protocol snmp 161/udp SNMP snmptrap 162/udp SNMP trap irc 194/tcp Internet Relay Chat Protocol ipx 213/udp IPX over IP ldap 389/tcp Lightweight Directory Access Protocol https 443/tcp https 443/udp uucp 540/tcp ldaps 636/tcp LDAP over TLS/SSL doom 666/tcp Doom Id Software doom 666/udp Doom Id Software phone 1167/udp Conference calling ms-sql-s 1433/tcp Microsoft-SQL-Server ms-sql-s 1433/udp Microsoft-SQL-Server ms-sql-m 1434/tcp Microsoft-SQL-Monitor ms-sql-m 1434/udp Microsoft-SQL-Monitor wins 1512/tcp Microsoft Windows Internet Name Service wins 1512/udp Microsoft Windows Internet Name Service l2tp 1701/udp Layer Two Tunneling Protocol 1720/tcp QICQ 4000/udp QICQ 8000/udp QQ 1080/UDP Socks 代理《木馬的常用連線埠》