TCP/IP(一)
發表于:2007-07-02來源:作者:點擊數:
標簽:
指導內容: 1.協議的概念及作用 2.協議的發展過程 3.TCP/IP協議定義及內容 4.TCP/IP內部結構 5.TCP/IP中的協議: TCP/IP通訊協議 在談論TCP/IP協議之前,我們先來了解一下,什么叫協議。它有何作用? 協議是對網絡中的設備,以何種方式交換信息的一系列規定的
指導內容:
1.協議的概念及作用
2.協議的發展過程
3.TCP/IP協議定義及內容
4.TCP/IP內部結構
5.TCP/IP中的協議:
TCP/IP通訊協議
在談論TCP/IP協議之前,我們先來了解一下,什么叫協議。它有何作用?
協議是對網絡中的設備,以何種方式交換信息的一系列規定的組合,它對信息交換的速率,傳輸代碼,代碼結構,傳輸控制步驟,出錯控制等許多參數做出定義及規范。
網絡是一個互相連接的大群體,所以在相互連接的各個節點上需要擁有共同的“語言”--規范。根據它的定義和規則來控制數據傳遞,這種所謂的“語言”就是協議。
對于網絡入門者來說,首先需要了解和懂得:這些協議在網絡運行中起到什么作用?有何相互聯系?為什么有了一個協議又要補充另外一個?
網絡起初只是在小范圍間的運作,隨著網絡的擴大和相互網絡的互連,使得這個網絡越來越大,原本的使用規定,已經不能滿足龐大的運作。所以就需要制定更為嚴格的規章制度,這就是協議。
在不同網絡的互連中,又會增加很多新的協議作為補充,或是獨立成為一個新的標準。
數據在源傳輸地,到達目的地的過程中,由于網絡的結構,和傳輸的層面,為此國際標準化組織ISO于1978年提出了“開放系統互連參考模式”,也就是大家所俗稱的OSI(Open Sysytem Interconnection)網絡七層模式。網絡協議就是正對這些不同網絡層的行為規范。
網絡在發展過程中,形成了很多不同的協議族,每一個協議族都在網絡的各層對應有相應的協議,其中作為規范Internet的協議族就是:TCP/IP協議
TCP/IP協議
TCP/IP全稱:Transmission Control Protocol / Internet Protocol
中文翻譯:傳輸控制協議 / 互聯網協議
它是目前最為廣泛的協議,它的流行和重要性是于Internet的迅猛發展和普及密切相關的。
TCP/IP最初是為互聯網的原型:ARPANET所設計的,目的是提供一整套方便實用;能應用于多種網絡上的協議,現在它也做到了這點,有了它,使得我們在網絡互連中,變得簡單,并且越來越多的網絡加入其中,成為Internet的一個標準。
之前我們說過:TCP/IP協議是一個協議族,必然,它就會包括有很多功能各異的子協議
這里,我們就要深入介紹TCP/IP的內部結構和相關的子協議
TCP/IP協議之所以流行,部分原因在于它可以用在各種各樣的通信管道和底層協議(例如:T1和X.25;以太網以及RS-232 串行接口)之上。
TCP/IP協議包括:TCP(Transmission Control Protocol )協議;IP(Internet Protocol)協議;UDP(User Datagram Protocol)協議;ICMP(Internet Control Message Protocol)協議和其他一些協議。
TCP/IP內部結構
TCP/IP協議并不完全符合OSI的七層參考模型。傳統的開放式系統互連參考模型,是一種通信協議的7層抽象參考模型,其中每一層執行某一特定任務。目的是使各種硬件在相同層次上互相通信。
7層:物理層;數據鏈路層;網絡層;數據層;話路層;表示層;應用層。
而TCP/IP的層次模型,一共分為四層:應用層;傳輸層;網絡層;數據鏈路層。
每一層都呼叫它的下一層所提供的網絡來完成自己
需求。
(是不是有點糊涂了,讓我做個比較:7層參考模型某方面來講,它們是獨立完成特定任務,而TCP/IP協議,在需要完成自身的任務時,都會呼叫它的下一層所提供的網絡。)
應用層:
應用層是所有用戶所面向的應用程序的統稱,也就是應用程序用來溝通的層。這一層有著我們所熟悉的進行萬維網-www訪問協議(http);文件傳輸協議(FTP);電子郵件傳輸協議(SMTP);網絡遠程訪問協議(Telnet);域名解析用的(DNS)協議等。
大家現在所使用的是一個個軟件所構筑的大多為圖形化的操作界面,而實際后臺運行的便是上述協議。
傳輸層:
這一層的功能主要是提供應用程序間的通信,它提供節點間的數據傳輸服務,如:傳輸控制協議(TCP);用戶傳輸報協議(UDP)等,TCP和UDP給數據包加入傳輸數據并把它傳輸到下一層,這一層負責傳輸數據,并且確定數據已被送達并接收。
(火火注:這一層的
安全性是不可靠的,由于TCP/UDP服務信任主機地址,所以攻擊者可以冒充一個被信任的主機或客戶,使用“IP Source Routing”采取一些操作,就可把攻擊者的系統假扮成某一個特定服務器的可信任用戶,關于協議的安全方面,我會在本聯盟以下的網絡講座中詳細與大家討論,交流。哇~我先來幫忙做下廣告,哈哈,如果覺得這個教學計劃好的話,大家也要幫忙做宣傳啊,讓更多朋友能學到真正有意義的
知識。。。彭!好痛,誰丟的爛冬瓜?-- 哈哈,繼續~)
網絡層:
TCP/IP協議族中非常關鍵和重要的一層。它主要定義了IP地址格式,從而能夠使得不同應用類型的數據在Internet上通暢的傳輸。簡單說,就是負責基本的數據包傳輸功能,讓每一塊數據包都能夠到達目的主機(火火注:但是它不檢查是否被正確接收...好了,不說了,不然雪精靈要打pp了 :P )這一層包含的協議就是IP協議。
網絡接口層:
這是TCP/IP協議族中最底層,負責接收IP數據包并且通過網絡發送它,或者從網絡上接收物理幀,抽出IP數據包,交給IP層。簡單說:對實際的網絡媒體的管理,定義如何使用實際網絡(如:Ethernet;Serial Line 等)來傳輸數據。
大家是否還有精力繼續,不如先休息一下,打場CS如何?調節一下精神。哈哈,在下可是很菜的哦~
ZZZ...Zzz...zzz.......
下面我們就開始討論學習TCP/IP中的各項子協議。
TCP/IP中的協議:
以下開始介紹TCP/IP中的協議都具備什么樣的功能,都是如何工作的:
1.IP(Internet protocol)網絡協議
網絡協議:IP是TCP/IP的心臟,也是網絡層中最重要的協議。
IP層接收由最底層(網絡接口層,例如以太網設備驅動程序)發來的數據包,并且把該數據包發送到更高層--〉TCP或UDP層;(火火注:此時的安全問題見下文...快閃~)相反,IP層也把從TCP或UDP層接收來的數據包傳送至更低層。IP數據包是不可靠的,因為IP并沒有做任何事情來確認數據包是按順序發送或者沒有被破壞。IP數據包中含有發送它的主機的地址(源地址)和接收它的主機地址(目的地址)。
高層的TCP和UDP服務在接收數據包時,通常假設包中源地址是有效的。也就是:IP地址形成了許多服務認證的基礎,這些服務相信數據包是從一個有效的主機發送來的。IP確認包一個選項,叫IP Source Routing,可以用來指定一條源地址和目錄地址之間的直接路徑。對于一些TCP和UDP的服務來說,使用了該選項的IP包好像是從路徑的最后一個系統傳遞過來的,而不是它真實的來源地。這個選項是為了
測試而存在的,說明了它可以被用來欺騙系統,進行平常是被禁止的連接。許多依靠IP源地址做確定的服務就將產生問題,或被入侵。
(火火注:具體步驟-1.攻擊者需要使用那個被信任的IP地址作為自己的地址;2.攻擊者構造一條要攻擊的服務器和其主機間的直接路徑,把信任的用戶作為通向服務器的路徑的最后節點;3.攻擊者使用這條路徑向服務器發出客戶申請;4.服務器接受客戶申請,就好像從可信任用戶直接發出的一樣,然后給可信任的客戶返回響應;5.可信任用戶使用使用這條路徑將包向前傳送給攻擊者的主機)
2.TCP(Transmission Control Protocol )傳輸控制協議
如果IP數據包中有已經封好的TCP數據包,那么IP將把它們向“上”傳輸到TCP層。TCP將包查序并檢查錯誤,同時實現虛電路間的連接。TCP數據包中包含序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。
TCP將它的信息送到更高層的應用程序,例如:Telnet的服務程序和客戶程序。應用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設備驅動器和物力介質,最后到達接收方。
面向的服務:(Telnet;Ftp;rlogin;X windows;SMTP;)這些都需要高度的
可靠性,所以他們使用了TCP協議。DNS在某些情況下使用TCP(發送和接收域名
數據庫),但會使用UDP傳送有關單個主機的信息。
3.UDP(User Datagram Protocol)
UDP和TCP位于同一層-傳輸層,但對于數據包的順序錯誤或重發沒有TCP來的可靠。因此,UDP不被應用于那些使用虛電路的面向直接服務,UDP主要用于面向查詢--應答的服務,例如:NFS。相比FTP或Telnet,這些服務需要交換信息量較小。使用UDP的服務還包括:NTP(網絡時間協議)和DNS(DNS也是用TCP)。
欺騙UDP包要比欺騙TCP包來的更容易,因為UDP沒有建立初始化連接(俗稱:握手)--因為在兩個系統間沒有虛電路,也就是說:與UDP相關的服務面臨更大的危險。
備注:TCP 與 UDP 的比較
由于兩協議都在傳輸層,同屬于傳輸層協議。TCP提供IP環境下的數據可靠傳輸,提供服務包括數據流傳送;可靠性;有效流控;多路復用。通過面向連接;端到端和可靠的數據包發送。簡單說就是:它是事先為所發送的數據開辟出連接好的通道,然后再進行數據傳輸;而UDP則不為IP提供可靠性;流控或差錯恢復功能。一般來說,TCP對應是可靠性要求高的應用。而UDP對應是可靠性低;傳輸經濟的應用。
TCP主要支持:Telnet;FTP;SMTP;等
UDP主要支持:NFS(網絡文件系統);SNMP(簡單網絡管理協議);DNS(主域名稱系統);TFTP(通用文件傳輸協議);等
TCP 與 UDP 的端口結構:
TCP和UDP服務通常有一個客戶端/服務端的關系,例如:一個Telnet服務進程開始在系統上處于空閑狀態,等待著連接。用戶使用Telnet客戶程序與服務進程建立一個連接??蛻舫绦蛳蚍者M程寫入信息,服務進程讀出信息并發出響應,客戶程序讀出響應并向用戶報告。因而,這個連接是雙工的,可以用來進行讀與寫。
兩個系統間的多重Telnet連接是如何相互確認并協調一致的呢?TCP或UDP連接唯一的使用每個信息中的如下四項進行確認:
1.源IP地址:發送包的IP地址。
2.目標IP地址:接收包的IP地址。
3.源端口:源系統上的連接端口。
4.目標端口:目標主機上的連接端口。
端口是一個軟件結構,被客戶程序或服務進程用來發送和接收信息。一臺服務器有256*256個端口。一個端口對應一個16bit的數。新安裝好的服務器會打開139端口。服務進程通常使用一個固定的端口,例如:SMTP使用25;X windows使用6000;E-mai接收(pop)使用110;E-mail發送(SMTP)使用25;http使用80;FTP使用20或21;Finger使用79;Login使用513;shell使用514;Printer使用515;sunrpc使用111;......這些端口號都是“廣為人知”的,但是不是絕對的(部分可以設定修改)。因為在建立連接與特定主機或服務時,需要這些地址和目標地址進行通訊傳輸。
(火火注:檢查自己端口方法:打開c://windows\winipfg.exe 找出自己的IP地址,打開瀏覽器。地質欄內鍵入:http://10.10.10.10:1111 意思就是:檢查IP為10.10.10.10服務器上的1111端口。一些黑客軟件也有固定打開端口,拿netspy.exe就會打開:7306.7307.7308.12345.12346.31337.6680.8111.9910 關于端口的相對用途,我們會另外發貼)
4.ICMP
ICMP與IP位于同一層,它被用來傳輸IP的控制信息。它主要是用來提供有關通向目標主機的路徑信息。ICMP的“Redirect”信息通知主機通向其它系統的更準確的路徑,而“Unreachable”信息則指出路徑有問題。另外,如果路徑不可用,ICMP可以使用TCP連接“體面的”終止。ping 就是最常用的基于ICMP的服務。
原文轉自:http://www.kjueaiud.com