TCP/IP協(xié)議
文章出處:http://psychicreadingswithdeb.com 作者:興邦開(kāi)發(fā)部 人氣: 發(fā)表時(shí)間:2016年06月18日
Transmission Control Protocol/Internet Protocol的簡(jiǎn)寫(xiě),中譯名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,又名網(wǎng)絡(luò )通訊協(xié)議,是Internet最基本的協(xié)議、Internet國際互聯(lián)網(wǎng)絡(luò )的基礎,由網(wǎng)絡(luò )層的IP協(xié)議和傳輸層的TCP協(xié)議組成。TCP/IP 定義了電子設備如何連入因特網(wǎng),以及數據如何在它們之間傳輸的標準。協(xié)議采用了4層的層級結構,每一層都呼叫它的下一層所提供的協(xié)議來(lái)完成自己的需求。通俗而言:TCP負責發(fā)現傳輸的問(wèn)題,一有問(wèn)題就發(fā)出信號,要求重新傳輸,直到所有數據安全正確地傳輸到目的地。而IP是給因特網(wǎng)的每一臺聯(lián)網(wǎng)設備規定一個(gè)地址。
IP
IP層接收由更低層(網(wǎng)絡(luò )接口層例如以太網(wǎng)設備驅動(dòng)程序)發(fā)來(lái)的數據包,并把該數據包發(fā)送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來(lái)的數據包傳送到更低層。IP數據包是不可靠的,因為IP并沒(méi)有做任何事情來(lái)確認數據包是否按順序發(fā)送的或者有沒(méi)有被破壞,IP數據包中含有發(fā)送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。
高層的TCP和UDP服務(wù)在接收數據包時(shí),通常假設包中的源地址是有效的。也可以這樣說(shuō),IP地址形成了許多服務(wù)的認證基礎,這些服務(wù)相信數據包是從一個(gè)有效的主機發(fā)送來(lái)的。IP確認包含一個(gè)選項,叫作IP source routing,可以用來(lái)指定一條源地址和目的地址之間的直接路徑。對于一些TCP和UDP的服務(wù)來(lái)說(shuō),使用了該選項的IP包好像是從路徑上的最后一個(gè)系統傳遞過(guò)來(lái)的,而不是來(lái)自于它的真實(shí)地點(diǎn)。這個(gè)選項是為了測試而存在的,說(shuō)明了它可以被用來(lái)欺騙系統來(lái)進(jìn)行平常是被禁止的連接。那么,許多依靠IP源地址做確認的服務(wù)將產(chǎn)生問(wèn)題并且會(huì )被非法入侵。
TCP
TCP是面向連接的通信協(xié)議,通過(guò)三次握手建立連接,通訊完成時(shí)要拆除連接,由于TCP是面向連接的所以只能用于端到端的通訊。
TCP提供的是一種可靠的數據流服務(wù),采用“帶重傳的肯定確認”技術(shù)來(lái)實(shí)現傳輸的可靠性。TCP還采用一種稱(chēng)為“滑動(dòng)窗口”的方式進(jìn)行流量控制,所謂窗口實(shí)際表示接收能力,用以限制發(fā)送方的發(fā)送速度。
如果IP數據包中有已經(jīng)封好的TCP數據包,那么IP將把它們向‘上’傳送到TCP層。TCP將包排序并進(jìn)行錯誤檢查,同時(shí)實(shí)現虛電路間的連接。TCP數據包中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。
TCP將它的信息送到更高層的應用程序,例如Telnet的服務(wù)程序和客戶(hù)程序。應用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設備驅動(dòng)程序和物理介質(zhì),最后到接收方。
面向連接的服務(wù)(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發(fā)送和接收域名數據庫),但使用UDP傳送有關(guān)單個(gè)主機的信息。
UDP
UDP是面向無(wú)連接的通訊協(xié)議,UDP數據包括目的端口號和源端口號信息,由于通訊不需要連接,所以可以實(shí)現廣播發(fā)送。UDP通訊時(shí)不需要接收方確認,屬于不可靠的傳輸,可能會(huì )出現丟包現象,實(shí)際應用中要求程序員編程驗證。
UDP與TCP位于同一層,但它不管數據包的順序、錯誤或重發(fā)。因此,UDP不被應用于那些使用虛電路的面向連接的服務(wù),UDP主要用于那些面向查詢(xún)---應答的服務(wù),例如NFS。相對于FTP或Telnet,這些服務(wù)需要交換的信息量較小。使用UDP的服務(wù)包括NTP(網(wǎng)絡(luò )時(shí)間協(xié)議)和DNS(DNS也使用TCP)。
欺騙UDP包比欺騙TCP包更容易,因為UDP沒(méi)有建立初始化連接(也可以稱(chēng)為握手)(因為在兩個(gè)系統間沒(méi)有虛電路),也就是說(shuō),與UDP相關(guān)的服務(wù)面臨著(zhù)更大的危險。
ICMP
ICMP與IP位于同一層,它被用來(lái)傳送IP的控制信息。它主要是用來(lái)提供有關(guān)通向目的地址的路徑信息。ICMP的‘Redirect’信息通知主機通向其他系統的更準確的路徑,而‘Unreachable’信息則指出路徑有問(wèn)題。另外,如果路徑不可用了,ICMP可以使TCP連接‘體面地’終止。PING是最常用的基于ICMP的服務(wù)。