轉載http://forum.eet-cn.com/BLOG_ARTICLE_6265.HTM?click_from=8800069361,9949979222,2011-01-05,EECOL,FORUM_ALERT
在使用TCP/IP協議通信的網絡中,可以形象地理解爲有兩個信封,TCP和IP就是信封。待傳遞的信息被劃分成若干段,每一段塞入一個TCP信封,並在該信封面上記錄有分段號的信息,再將 TCP信封塞入IP大信封,發送上網。在接收端,一個TCP軟件包接收信封,抽出數據,按發送前的順序將信息還原,並加以校驗,若發現差錯,TCP將會要求重發。因此,TCP/IP在網絡中幾乎可以無差錯地傳送數據。
但是這些信是如何到達目的地的呢?
我們來打個比方:以下圖爲例,小K住在村1的H1中,村裏有個郵局H0。現在小K有兩封信分別要給住在村1的H3和村2的H1中的人。
操作的步驟如下:
小K首先在信封上都標註收信人的地址。第一封信的地址是:村1.H3;第二封信的地址是:村2.H2。
然後,小K比較了一下第一封的地址和自己的地址,發現第一封信的收信人和自己在一個村,所以最簡單和經濟的辦法就是自己送去。
接下來,小K比較了一下第二封的地址和自己的地址,發現第二封信的收信人和自己不在一個村,甚至自己也不知道如何到達那裏,所以小K只好把信送到郵局,由郵局來送這封信。
信總算送出去了。現在我們來總結一下這個過程需要哪些要素。
首先需要一個地址,這個地址包括兩部分:一是你是哪個村的,二是你住在村裏的哪個屋子裏。
其次需要郵局來送的不是同一個村的信,因爲同一個村的信是不需要通過郵局的。
在使用TCP/IP協議通信的網絡中,這個地址就是“IP地址”,IP地址分爲網絡號和主機號兩部分,由四段1-255的數字組成。網絡號就相當於地址中標明是哪個村的部分,一個村的網絡號是相同的,一個網絡號代表一個“子網”。主機號就相當於地址中標明是哪座房子的部分。然而,在IP地址中並沒有明確規定哪個部分是網絡號,哪個部分是主機號,還需要“子網掩碼”來進行區分。網絡中的每臺計算機都有自己的IP地址,這個地址不能重複。
郵局就是實現路由功能的路由器,它知道如何把數據發送到其他子網上。路由器和網絡上的其他計算機一樣有自己的IP地址。當計算機發現要發送數據的目的地和自己不在同一個子網內時,就把數據發到路由器。爲了使同一個子網內的計算機識別出路由器,需要在計算機上配置一下,告訴計算機路由器的IP地址,這個地址在操作系統中稱爲“GateWay(網關)”。
TCP/IP 的分層結構:
TCP/IP(Transmission Control Protocol/Internet Protocol)已成爲一個事實上的工業標準。
TCP/IP是一組協議的代名詞,它還包括許多協議,組成了TCP/IP協議簇。TCP/IP協議簇分爲四層,IP位於協議簇的第二層(對應OSI的第三層),TCP位於協議簇的第三層(對應OSI的第四層)。TCP和IP是TCP/IP協議簇的中間兩層,是整個協議簇的核心,起到了承上啓下的作用。
1、接口層
TCP/IP的最低層是接口層,常見的接口層協議有:Ethernet 802.3、Token Ring 802.5、X.25、Frame reley、HDLC、PPP等。
2、網絡層
網絡層包括:IP(Internet Protocol)協議、ICMP(Internet Control Message Protocol)控制報文協議、ARP(Address Resolution Protocol)地址轉換協議、RARP(Reverse ARP)反向地址轉換協議。
IP是網絡層的核心,通過路由選擇將下一跳IP封裝後交給接口層。IP數據報是無連接服務。
ICMP是網絡層的補充,可以回送報文。用來檢測網絡是否通暢。Ping命令就是發送ICMP的echo包,通過回送的echo relay進行網絡測試。
ARP是正向地址解析協議,通過已知的IP,尋找對應主機的MAC地址。
RARP是反向地址解析協議,通過MAC地址確定IP地址。比如無盤工作站和DHCP服務。
3、傳輸層
傳輸層協議主要是:傳輸控制協議TCP(Transmission Control Protocol)和用戶數據報協議UDP(User Datagram rotocol)。
TCP是面向連接的通信協議,通過三次握手建立連接,通訊時完成時要拆除連接,由於TCP是面向連接的所以只能用於點對點的通訊。TCP提供的是一種可靠的數據流服務,採用“帶重傳的肯定確認”技術來實現傳輸的可靠性。TCP還採用一種稱爲“滑動窗口”的方式進行流量控制,所謂窗口實際表示接收能力,用以限制發送方的發送速度。
UDP是面向無連接的通訊協議,UDP數據包括目的端口號和源端口號信息,由於通訊不需要連接,所以可以實現廣播發送。UDP通訊時不需要接收方確認,屬於不可靠的傳輸,可能會出丟包現象,實際應用中要求在程序員編程驗證。
4、應用層
應用層一般是面向用戶的服務。如FTP、TELNET、DNS、SMTP、POP3。
FTP(File Transmision Protocol)是文件傳輸協議,一般上傳下載用FTP服務,數據端口是20H,控制端口是21H。
Telnet服務是用戶遠程登錄服務,使用23H端口,使用明碼傳送,保密性差、簡單方便。
DNS(Domain Name Service)是域名解析服務,提供域名到IP地址之間的轉換。
SMTP(Simple Mail Transfer Protocol)是簡單郵件傳輸協議,用來控制信件的發送、中轉。
POP3(Post Office Protocol 3)是郵局協議第3版本,用於接收郵件。
數據格式:
數據幀:幀頭+IP數據包+幀尾 (幀頭包括源和目標主機MAC地址及類型,幀尾是校驗字)
IP數據包:IP頭部+TCP數據信息 (IP頭包括源和目標主機IP地址、類型、生存期等)
TCP數據信息:TCP頭部+實際數據 (TCP頭包括源和目標主機端口號、順序號、確認號、校驗字等)
TCP/IP網絡是如何通訊的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.