從網(wǎng)絡(luò)層協(xié)議來看,通信的兩端是兩臺主機(jī),ip 數(shù)據(jù)報首部就標(biāo)明了這兩臺主機(jī)的 IP 地址。但是從傳輸層來看,是發(fā)送方主機(jī)中的一個進(jìn)程與接收方主機(jī)中的一個進(jìn)程在交換數(shù)據(jù),因此,嚴(yán)格地講,通信雙方不是主機(jī),而是主機(jī)中的進(jìn)程。
主機(jī)中常常有多個應(yīng)用進(jìn)程同時在與外部通信(比如你的瀏覽器和 QQ 在同時運(yùn)行),下圖中,A 主機(jī)的 AP1 進(jìn)程在于 B 主機(jī)的 AP3 進(jìn)程通信,同時主機(jī) A 的 AP2 進(jìn)程也在與 B 主機(jī)的 AP4 進(jìn)程通信。
兩個主機(jī)的傳輸層之間有一個灰色雙向箭頭,寫著“傳輸層提供應(yīng)用進(jìn)程間的邏輯通信”。 邏輯通信:看起來是數(shù)據(jù)似乎是沿著雙向箭頭在傳輸層水平傳輸?shù)模珜嶋H上是沿圖中的虛線經(jīng)多個協(xié)議層次而傳輸。
TCP/IP 協(xié)議棧傳輸層有兩個重要協(xié)議——UDP 和 TCP,不同的應(yīng)用進(jìn)程在傳輸層使用 TCP 或 UDP 之一:
端口的作用體現(xiàn)在傳輸層。
剛才的圖中,AP1 與 AP3 的通信與 AP2 與 AP4 的通信可以使用同一個傳輸層協(xié)議來傳輸(TCP 或 UDP),根據(jù) IP 地址或 MAC 地址都只能是把數(shù)據(jù)傳到正確的主機(jī),但具體需要傳到哪一個進(jìn)程,是通過端口來辨認(rèn)的。比如同時使用瀏覽器和 QQ,瀏覽器占用 80 端口,而 QQ 占用 4000 端口,那么發(fā)送過來的 QQ 消息便會通過 4000 端口顯示在 QQ 客戶端,而不會錯誤地顯示在瀏覽器上。
端口號有 0~65535 的編號,其中:
編號 0~1023 為 系統(tǒng)端口號 ,這些端口號可以在網(wǎng)址 www.iana.org 查詢到,它們被指派給了 TCP/IP編號 1024~49151 為 登記端口號 ,為沒有系統(tǒng)端口號的應(yīng)用程序使用,使用這類端口號必須在 IANA 按規(guī)定手續(xù)登記,以防止重復(fù)。編號 49152~65535 為 短暫端口號 ,是留給客戶進(jìn)程選擇暫時使用的,使用結(jié)束后,這類端口號會被放開以供其它程序使用。最重要的一些應(yīng)用程序,以下是一些常見的系統(tǒng)端口號:
應(yīng)用層協(xié)議: | FTP | TELNET | SMTP | DNS | TFTP | HTTP | SNMP |
---|---|---|---|---|---|---|---|
系統(tǒng)端口號: | 21 | 23 | 25 | 53 | 69 | 80 | 161 |
UDP(User Datagram PRotocol)用戶數(shù)據(jù)報協(xié)議,它只在 IP 數(shù)據(jù)報服務(wù)之上增加了很少一點功能,它的主要特點有:
UDP 是無連接的,發(fā)送數(shù)據(jù)之前不需要建立連接(而 TCP 需要),減少了開銷和時延。UDP盡最大努力交付,不保證交付可靠性。UDP 是面向報文的,對于從網(wǎng)絡(luò)層交付下來的 IP 數(shù)據(jù)報,只做很簡單的封裝(8 字節(jié) UDP 報頭),首部開銷小。UDP 沒有擁塞控制,出現(xiàn)網(wǎng)絡(luò)擁塞時發(fā)送方也不會降低發(fā)送速率。這種特性對某些實時應(yīng)用是很重要的,比如 IP電話,視頻會議等,它們允許擁塞時丟失一些數(shù)據(jù),因為如果不拋棄這些數(shù)據(jù),極可能造成時延的累積。UDP 支持一對一、一對多、多對一和多對多的交互通信。從應(yīng)用層到傳輸層,再到網(wǎng)絡(luò)層的各層次封裝:
UDP 數(shù)據(jù)報可分為兩部分:UDP 報頭和數(shù)據(jù)部分。其中數(shù)據(jù)部分是應(yīng)用層交付下來的數(shù)據(jù)。UDP 報頭總共 8 字節(jié),而這 8 字節(jié)又分為 4 個字段:
tcpdump 抓取 UDP 報文C程序:
程序作用是向 指定 IP 地址 的 指定端口 發(fā)送一個 指定內(nèi)容 的 UDP 數(shù)據(jù)報 編譯后,安裝抓包工具 tcpdump ,并運(yùn)行,最小化當(dāng)前終端,另開啟一個終端,運(yùn)行剛才編譯好的 C 程序
新聞熱點
疑難解答