基本應用層的TCP/IP協議介紹 (IP/TCP/UDP)
來源: http://www.networkdictionary.com/chinese/protocols/tcpip.php
IP/IPv4:網際協議
IP/IPv4:網際協議 | |
(IP/IPv4:Internet Protocol) |
網際協議(IP)是一個網絡層協議,它包含尋址信息和控制信息 ,可使數據包在網絡中路由。 IP 協議是 TCP/IP 協議族中的主要網絡層協議,與 TCP 協議結合組成整個因特網協議的核心協議。 IP 協議同樣都適用于 LAN 和 WAN 通信。 IP 協議有兩個基本任務:提供無連接的和最有效的數據包傳送;提供數據包的分割及重組以支持不同最大傳輸單元大小的數據連接。對于互聯網絡中 IP 數據報的路由選擇處理,有一套完善的 IP 尋址方式。每一個 IP 地址都有其特定的組成但同時遵循基本格式。 IP 地址可以進行細分并可用于建立子網地址。 TCP/IP 網絡中的每臺計算機都被分配了一個唯一的 32 位邏輯地址,這個地址分為兩個主要部分:網絡號和主機號。網絡號用以確認網絡,如果該網絡是因特網的一部分,其網絡號必須由 InterNIC 統一分配。一個網絡服務器供應商(ISP)可以從 InterNIC 那里獲得一塊網絡地址,按照需要自己分配地址空間。主機號確認網絡中的主機,它由本地網絡管理員分配。 當你發送或接受數據時(例如,一封電子信函或網頁),消息分成若干個塊,也就是我們所說的“包”。每個包既包含發送者的網絡地址又包含接受者的地址。由于消息被劃分為大量的包,若需要,每個包都可以通過不同的網絡路徑發送出去。包到達時的順序不一定和發送順序相同, IP 協議只用于發送包,而 TCP 協議負責將其按正確順序排列。 除了 ARP 和 RARP ,其它所有 TCP/IP 族中的協議都是使用 IP 傳送主機與主機間的通信。當前 IP 協議有兩種版本: IPv4 和 IPv6 。本文主要闡述 IPv4 。 IPv6 的相關細節將在其它文件中再作介紹。 |
協議結構 |
4 | 8 | 16 | 32bit |
Version | IHL | Type of service | Total length |
Identification | Flags | Fragment offset | |
Time to live | Protocol | Header checksum | |
Source address | |||
Destination address | |||
Option + Padding | |||
Data |
|
相關協議 | IPv6 、 TCP 、 UDP 、ICMP、 SNMP 、 FTP 、 TELNET 、 SMTP 、 ARP 、 RARP 、 RPC 、XDR、NFS |
組織來源 | IP 由 IETF( http://www.ietf.org )定義在 RFC 791中。 |
相關鏈接 |
http://www.javvin.com/protocol/rfc791.pdf
: Internet Protocol Specifications
http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/ip.htm : IP Overview |
TCP:傳輸控制協議
TCP:傳輸控制協議 | |
(TCP:Transmission Control Protocol) |
傳輸控制協議 TCP 是 TCP/IP 協議棧中的傳輸層協議,它通過序列確認以及包重發機制,提供可靠的數據流發送和到應用程序的虛擬連接服務。與 IP 協議相結合, TCP 組成了因特網協議的核心。 由于大多數網絡應用程序都在同一臺機器上運行,計算機上必須能夠確保目的地機器上的軟件程序能從源地址機器處獲得數據包,以及源計算機能收到正確的回復。這是通過使用 TCP 的“端口號”完成的。網絡 IP 地址和端口號結合成為唯一的標識 , 我們稱之為“套接字”或“端點”。 TCP 在端點間建立連接或虛擬電路進行可靠通信。 TCP 服務提供了數據流傳輸、可靠性、有效流控制、全雙工操作和多路復用技術等。 關于流數據傳輸 ,TCP 交付一個由序列號定義的無結構的字節流。 這個服務對應用程序有利,因為在送出到 TCP 之前應用程序不需要將數據劃分成塊, TCP 可以將字節整合成字段,然后傳給 IP 進行發送。 TCP 通過面向連接的、端到端的可靠數據報發送來保證可靠性。 TCP 在字節上加上一個遞進的確認序列號來告訴接收者發送者期望收到的下一個字節。如果在規定時間內,沒有收到關于這個包的確認響應,重新發送此包。 TCP 的可靠機制允許設備處理丟失、延時、重復及讀錯的包。超時機制允許設備監測丟失包并請求重發。 TCP 提供了有效流控制。當向發送者返回確認響應時,接收 TCP 進程就會說明它能接收并保證緩存不會發生溢出的最高序列號。 全雙工操作: TCP 進程能夠同時發送和接收包。 TCP 中的多路技術:大量同時發生的上層會話能在單個連接上時進行多路復用。 |
協議結構 |
16 | 32 bit | |||||||
Source port | Destination port | |||||||
Sequence number | ||||||||
Acknowledgement number | ||||||||
Offset | Reserved | U | A | P | R | S | F | Window |
Checksum | Urgent pointer | |||||||
Option + Padding | ||||||||
Data |
|
U (URG) | Urgent pointer field significant. |
A (ACK) | Acknowledgment field significant. |
P (PSH) | Push function. |
R (RST) | Reset the connection. |
S (SYN) | Synchronize sequence numbers. |
F (FIN) | No more data from sender. |
|
相關協議 | IP 、 UDP 、 ICMP 、 SNMP 、 FTP 、 TELNET 、 SMTP 、 RPC 、XDR、NFS |
組織來源 | TCP 由 IETF( http://www.ietf.org )定義在 RFC 793中。 |
相關鏈接 |
http://www.javvin.com/protocol/rfc793.pdf
: TCP Specifications
http://www.javvin.com/protocol/rfc3168.pdf : The Addition of Explicit Congestion Notification (ECN) to IP http://www.iana.org/assignments/port-numbers : TCP and UDP port numbers |
UDP:用戶數據報協議
UDP:用戶數據報協議 | |
(UDP:User Datagram Protocol) |
用戶數據報協議(UDP)是 ISO 參考模型中一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。 UDP 協議基本上是 IP 協議與上層協議的接口。 UDP 協議適用端口分辨運行在同一臺設備上的多個應用程序。 由于大多數網絡應用程序都在同一臺機器上運行,計算機上必須能夠確保目的地機器上的軟件程序能從源地址機器處獲得數據包,以及源計算機能收到正確的回復。這是通過使用 UDP 的“端口號”完成的。例如,如果一個工作站希望在工作站 128.1.123.1 上使用域名服務系統,它就會給數據包一個目的地址 128.1.123.1 ,并在 UDP 頭插入目標端口號 53 。源端口號標識了請求域名服務的本地機的應用程序,同時需要將所有由目的站生成的響應包都指定到源主機的這個端口上。 UDP 端口的詳細介紹可以參照相關文章。 與 TCP 不同, UDP 并不提供對 IP 協議的可靠機制、流控制以及錯誤恢復功能等。由于 UDP 比較簡單, UDP 頭包含很少的字節,比 TCP 負載消耗少。 UDP 適用于不需要 TCP 可靠機制的情形,比如,當高層協議或應用程序提供錯誤和流控制功能的時候。 UDP 是傳輸層協議,服務于很多知名應用層協議,包括網絡文件系統(NFS)、簡單網絡管理協議(SNMP)、域名系統(DNS)以及簡單文件傳輸系統(TFTP)。 |
協議結構 |
16 | 32bit |
Source port | Destination port |
Length | Checksum |
Data |
|
相關協議 | IP 、 TCP 、 ICMP 、 SNMP 、 DNS 、 TFTP 、NFS |
組織來源 |
UDP 由 IETF( http://www.ietf.org )定義在 RFC 768中。 |
相關鏈接 |
http://www.javvin.com/protocol/rfc768.pdf
:User Datagram Protocol(UDP) Specifications
|
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
