




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、TCP/IP詳解學(xué)習(xí)筆記(1)-基本概念為什么會有TCP/IP協(xié)議在世界上各地,各種各樣的電腦運行著各自不同的操作系統(tǒng)為大家服務(wù),這些電腦在表達同一種信息的時候所使用的方法是千差萬別。就好像圣經(jīng)中上帝打亂 了各地人的口音,讓他們無法合作一樣。計算機使用者意識到,計算機只是單兵作戰(zhàn)并不會發(fā)揮太大的作用。只有把它們聯(lián)合起來,電腦才會發(fā)揮出它最大的潛力。 于是人們就想方設(shè)法的用電線把電腦連接到了一起。但是簡單的連到一起是遠遠不夠的,就好像語言不同的兩個人互相見了面,完全不能交流信息。因而他們需要定義一些共通的東西來進行交流,TCP/IP 就是為此而生。TCP/IP不是一個協(xié)議,而是一個協(xié)議族的統(tǒng)稱。
2、里面包括了IP協(xié)議,IMCP協(xié)議,TCP協(xié)議,以及我們更加熟悉的http、ftp、 pop3協(xié)議等等。電腦有了這些,就好像學(xué)會了外語一樣,就可以和其他的計算機終端做自由的交流了。TCP/IP協(xié)議分層提到協(xié)議分層,我們很容易聯(lián)想到ISO-OSI的七層協(xié)議經(jīng)典架構(gòu),但是TCP/IP協(xié)議族的結(jié)構(gòu)則稍有不同。如圖所示TCP/IP協(xié)議族按照層次由上到下,層層包裝。最上面的就是應(yīng)用層了,這里面有http,ftp,等等我們熟悉的協(xié)議。而第二層則是傳輸層,著名 的TCP和UDP協(xié)議就在這個層次(不要告訴我你沒用過udp玩星際)。第三層是網(wǎng)絡(luò)層,IP協(xié)議就在這里,它負責(zé)對數(shù)據(jù)加上IP地址和其他的數(shù)據(jù)(后面 會講
3、到)以確定傳輸?shù)哪繕?biāo)。第四層是叫數(shù)據(jù)鏈路層,這個層次為待傳送的數(shù)據(jù)加入一個以太網(wǎng)協(xié)議頭,并進行CRC編碼,為最后的數(shù)據(jù)傳輸做準(zhǔn)備。再往下則是 硬件層次了,負責(zé)網(wǎng)絡(luò)的傳輸,這個層次的定義包括網(wǎng)線的制式,網(wǎng)卡的定義等等(這些我們就不用關(guān)心了,我們也不做網(wǎng)卡),所以有些書并不把這個層次放在 tcp/ip協(xié)議族里面,因為它幾乎和tcp/ip協(xié)議的編寫者沒有任何的關(guān)系。發(fā)送協(xié)議的主機從上自下將數(shù)據(jù)按照協(xié)議封裝,而接收數(shù)據(jù)的主機則按照協(xié)議 從得到的數(shù)據(jù)包解開,最后拿到需要的數(shù)據(jù)。這種結(jié)構(gòu)非常有棧的味道,所以某些文章也把tcp/ip協(xié)議族稱為tcp/ip協(xié)議棧。一些基本的常識在學(xué)習(xí)協(xié)議之前,我們應(yīng)該具備一些
4、基本知識?;ヂ?lián)網(wǎng)地址(ip地址)網(wǎng) 絡(luò)上每一個節(jié)點都必須有一個獨立的Internet地址(也叫做IP地址)?,F(xiàn)在,通常使用的IP地址是一個32bit的數(shù)字,也就是我們常說的IPv4 標(biāo)準(zhǔn),這32bit的數(shù)字分成四組,也就是常見的55的樣式。IPv4標(biāo)準(zhǔn)上,地址被分為五類,我們常用的是B類地址。具體的 分類請參考其他文檔。需要注意的是IP地址是網(wǎng)絡(luò)號+主機號的組合,這非常重要。域名系統(tǒng)域名系統(tǒng)是一個分布的數(shù)據(jù)庫,它提供將主機名(就是網(wǎng)址啦)轉(zhuǎn)換成IP地址的服務(wù)。RFCRFC是什么?RFC就是tcp/ip協(xié)議的標(biāo)準(zhǔn)文檔,在這里我們可以看到RFC那長長的定義列表,現(xiàn)在它一共
5、有4000多個協(xié)議的定義,當(dāng)然,我們所要學(xué)習(xí)的,也就是那么十幾個協(xié)議而已。端口號(port)注意,這個號碼是用在TCP,UDP上的一個邏輯號碼,并不是一個硬件端口,我們平時說把某某端口封掉了,也只是在IP層次把帶有這個號碼的IP包給過濾掉了而已。應(yīng)用編程接口現(xiàn)在常用的編程接口有socket和TLI。而前面的有時候也叫做“Berkeley socket”,可見Berkeley對于網(wǎng)絡(luò)的發(fā)展有多大的貢獻。TCP/IP詳解學(xué)習(xí)筆記(2)-數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層有三個目的: 為IP模塊發(fā)送和 接收IP數(shù)據(jù)報。 為ARP模塊發(fā)送ARP請求和接收ARP應(yīng)答。 為RARP發(fā)送RARP請 求和接收RARP應(yīng)答i
6、p大家都聽說過。至于ARP和RARP,ARP叫做地址解析協(xié)議,是用IP地址換MAC地址的一種協(xié)議,而RARP則叫做逆地址解析協(xié)議,在tcp/ip協(xié)議的后面章節(jié)會介紹它們(在局域網(wǎng)里面用ARP協(xié)議可以很容易的搞癱瘓網(wǎng)絡(luò)哦)數(shù)據(jù)鏈路層的協(xié)議還是很多的,有我們最常用的以太網(wǎng)(就是平時我們用的網(wǎng)卡)協(xié)議,也有不太常見的令牌環(huán),還有FDDI,當(dāng)然,還有國內(nèi)現(xiàn)在相當(dāng)普及的PPP協(xié)議(就是adsl寬帶),以及一個loopback協(xié)議。聯(lián)系linux里面的ifconfig -a命令,這個命令通常會得到如下的結(jié)果eth0 Link encap:Ethernet HWaddr 00:01:4A:03:5B:ED
7、inet addr: Bcast:55 Mask: inet6 addr: fe80:201:4aff:fe03:5bed/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2819 errors:0 dropped:0 overruns:0 frame:0 TX packets:76 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 R
8、X bytes: (235.9 KiB) TX bytes:9596 (9.3 KiB)lo Link encap:Local Loopback inet addr: Mask: inet6 addr: :1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:2713 errors:0 dropped:0 overruns:0 frame:0 TX packets:2713 errors:0 dropped:0 overruns:0 carrier:0 collisions:0
9、txqueuelen:0 RX bytes: (3.3 MiB) TX bytes: (3.3 MiB)其中,eth0就是以太網(wǎng)接口,而lo則是loopback接口。這也說明這個主機在網(wǎng)絡(luò)鏈路層上至少支持loopback協(xié)議和以太網(wǎng)協(xié)議。以太網(wǎng)(Ether-net)的定是指數(shù)字設(shè)備公司( Digital Equipment Corp.)、英特爾公司(Intel Corp.)和Xerox公司在1982年聯(lián)合公布的一個標(biāo)準(zhǔn),這個標(biāo)準(zhǔn)里面使用了一種稱作CSMA/CD的接入方法。而IEEE802提供的標(biāo)準(zhǔn)集 802.3(還有一部分定義到了802.2中)也提供了一個CSMA/CD的標(biāo)準(zhǔn)。這兩個標(biāo)準(zhǔn)稍有不
10、同,TCP/IP協(xié)議對這種情況的處理方式如下: 以太網(wǎng)的IP數(shù)據(jù)報封裝在RFC894中定義,而IEEE802網(wǎng)絡(luò)的IP數(shù)據(jù)報封裝在RFC1042中定義。 一臺主機一定要能發(fā)送和接收RFC894定義的數(shù)據(jù)報。 一臺主機可以接收RFC894和RFC1042的封裝格式的混合數(shù)據(jù)報。 一臺主機也許能夠發(fā)送RFC1042數(shù)據(jù)報。如果主機能同時發(fā)送兩種類型的分組數(shù) 據(jù),那么發(fā)送的分組必須是可以設(shè)置的,而且默認條件下必須是RFC 894分組。可見,RFC1042在TCP/IP里面處于一個配角的地位。這兩種不同的數(shù)據(jù)報格式請參考教材。ppp(點對點協(xié)議)是從SLIP的替代品。他們都提供了一種低速接入的解決方案
11、。而每一種數(shù)據(jù)鏈路層協(xié)議,都有一個MTU(最大傳輸單元)定義, 在這個定義下面,如果IP數(shù)據(jù)報過大,則要進行分片(fragmentation),使得每片都小于MTU,注意PPP的MTU并不是一個物理定義,而是 指一個邏輯定義(個人認為就是用程序控制)??梢杂胣etstat來打印出MTU的結(jié)果,比如鍵入netstat -inKernel Interface tableIface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flgeth0 1500 0 1774 0 0 0 587 0 0 0 BMRUlo 16436
12、 0 2667 0 0 0 2667 0 0 0 LRU就可以觀察到eth0的MTU是1500。而lo(環(huán)回接口)的MTU則是16436。最后說說那個環(huán)回接口(loopback)。平時我們用來嘗試自己的機器服務(wù)器好使不好使。走的就是這個loopback接口。對于環(huán)回接口,有如下三點值得注意: 傳給環(huán)回地址(一般是)的任何數(shù)據(jù)均作為I P輸入。 傳給廣播地址或多播地址的數(shù)據(jù)報復(fù)制一份傳給環(huán)回接口,然后送到以太網(wǎng)上。這是 因為廣播傳送和多播傳送的定義包含主機本身。 任何傳給該主機IP地址的數(shù)據(jù)均送到環(huán)回接口。這一章還是很簡單的,一般作為了解知識也就足夠了,沒必要
13、摳的那么詳細。TCP/IP詳解學(xué)習(xí)筆記(3)-IP協(xié)議,ARP協(xié)議,RARP協(xié)議把這三個協(xié)議放到一起學(xué)習(xí)是因為這三個協(xié)議處于同一層,ARP協(xié)議用來找到目標(biāo)主機的Ethernet網(wǎng)卡Mac地址,IP則承載要發(fā)送的消息。數(shù)據(jù)鏈路層可以從ARP得到數(shù)據(jù)的傳送信息,而從IP得到要傳輸?shù)臄?shù)據(jù)信息。1.IP協(xié)議IP協(xié)議是TCP/IP協(xié)議的核心,所有的TCP,UDP,IMCP,IGCP的數(shù)據(jù)都以IP數(shù)據(jù)格式傳輸。要注意的是,IP不是可靠的協(xié)議,這是 說,IP協(xié)議沒有提供一種數(shù)據(jù)未傳達以后的處理機制這被認為是上層協(xié)議TCP或UDP要做的事情。所以這也就出現(xiàn)了TCP是一個可靠的協(xié)議,而 UDP就沒有那么可靠的區(qū)
14、別。這是后話,暫且不提1.1.IP協(xié)議頭如圖所示挨個解釋它是教科書的活計,我感興趣的只是那八位的TTL字段,還記得這個字段是做什么的么?這個字段規(guī)定該數(shù)據(jù)包在穿過多少個路由之后才會被拋棄 (這里就體現(xiàn)出來IP協(xié)議包的不可靠性,它不保證數(shù)據(jù)被送達),某個ip數(shù)據(jù)包每穿過一個路由器,該數(shù)據(jù)包的TTL數(shù)值就會減少1,當(dāng)該數(shù)據(jù)包的TTL成 為零,它就會被自動拋棄。這個字段的最大值也就是255,也就是說一個協(xié)議包也就在路由器里面穿行255次就會被拋棄了,根據(jù)系統(tǒng)的不同,這個數(shù)字也不一 樣,一般是32或者是64,Tracerouter這個工具就是用這個原理工作的,tranceroute的-m選項要求最大值
15、是255,也就是因為這個 TTL在IP協(xié)議里面只有8bit?,F(xiàn)在的ip版本號是4,所以也稱作IPv4?,F(xiàn)在還有IPv6,而且運用也越來越廣泛了。1.2.IP路由選擇當(dāng)一個IP數(shù)據(jù)包準(zhǔn)備好了的時候,IP數(shù)據(jù)包(或者說是路由器)是如何將數(shù)據(jù)包送到目的地的呢?它是怎么選擇一個合適的路徑來送貨的呢?最特殊的情況是目的主機和主機直連,那么主機根本不用尋找路由,直接把數(shù)據(jù)傳遞過去就可以了。至于是怎么直接傳遞的,這就要靠ARP協(xié)議了,后面會講到。稍微一般一點的情況是,主機通過若干個路由器(router)和目的主機連接。那么路由器就要通過ip包的信息來為ip包尋找到一個合適的目標(biāo)來進行傳遞,比如合適的主機,或
16、者合適的路由。路由器或者主機將會用如下的方式來處理某一個IP數(shù)據(jù)包1 如果IP數(shù)據(jù)包的TTL(生命周期)以到,則該IP數(shù)據(jù)包就被拋棄。2 搜索路由表,優(yōu)先搜索匹配主機,如果能找到和IP地址完全一致的目標(biāo)主機,則將該包發(fā)向目標(biāo)主機3 搜索路由表,如果匹配主機失敗,則匹配同子網(wǎng)的路由器,這需要“子網(wǎng)掩碼(1.3.)”的協(xié)助。如果找到路由器,則將該包發(fā)向路由器。4 搜索路由表,如果匹配同子網(wǎng)路由器失敗,則匹配同網(wǎng)號(第一章有講解)路由器,如果找到路由器,則將該包發(fā)向路由器。5 搜索陸游表,如果以上都失敗了,就搜索默認路由,如果默認路由存在,則發(fā)包6 如果都失敗了,就丟掉這個包。這再一次證明了,ip包
17、是不可靠的。因為它不保證送達。1.3.子網(wǎng)尋址IP地址的定義是網(wǎng)絡(luò)號+主機號。但是現(xiàn)在所有的主機都要求子網(wǎng)編址,也就是說,把主機號在細分成子網(wǎng)號+主機號。最終一個IP地址就成為 網(wǎng)絡(luò)號碼+子網(wǎng)號+主機號。例如一個B類地址:34。一般情況下,這個IP地址的紅色部分就是網(wǎng)絡(luò)號,而藍色部分就是子網(wǎng)號,綠色部分就是主機號。至于有多少位代表子網(wǎng)號這個問題上,這沒有一個硬性的規(guī)定,取而代之的則是子網(wǎng)掩碼, 校園網(wǎng)相信大多數(shù)人都用過,在校園網(wǎng)的設(shè)定里面有一個的東西,這就是子網(wǎng)掩碼。子網(wǎng)掩碼是由32bit的二進制數(shù)字序列,形式 為是一連串的1和一連串的0,例如
18、:(二進制就是.) 對于剛才的那個B類地址,因為210.30是網(wǎng)絡(luò)號,那么后面的109.134就是子網(wǎng)號和主機號的組合,又因為子網(wǎng)掩碼只有后八bit為0,所以主機號 就是IP地址的后八個bit,就是134,而剩下的就是子網(wǎng)號碼109。2. ARP協(xié)議還記得數(shù)據(jù)鏈路層的以太網(wǎng)的協(xié)議中,每一個數(shù)據(jù)包都有一個MAC地址頭么?我們知道每一塊以太網(wǎng)卡都有一個MAC地址,這個地址是唯一的,那么IP包是如何知道這個MAC地址的?這就是ARP協(xié)議的工作。ARP(地址解析)協(xié)議是一種解析協(xié)議,本來主機是完全不知道這個IP對應(yīng)的是哪個主機的哪個接口,當(dāng)主機要發(fā)送一個IP包的時候,會首先查
19、一下自 己的ARP高速緩存(就是一個IP-MAC地址對應(yīng)表緩存),如果查詢的IPMAC值對不存在,那么主機就向網(wǎng)絡(luò)發(fā)送一個ARP協(xié)議廣播包,這個廣播包 里面就有待查詢的IP地址,而直接收到這份廣播的包的所有主機都會查詢自己的IP地址,如果收到廣播包的某一個主機發(fā)現(xiàn)自己符合條件,那么就準(zhǔn)備好一個包 含自己的MAC地址的ARP包傳送給發(fā)送ARP廣播的主機,而廣播主機拿到ARP包后會更新自己的ARP緩存(就是存放IP-MAC對應(yīng)表的地方)。發(fā)送 廣播的主機就會用新的ARP緩存數(shù)據(jù)準(zhǔn)備好數(shù)據(jù)鏈路層的的數(shù)據(jù)包發(fā)送工作。一個典型的arp緩存信息如下,在任意一個系統(tǒng)里面用“arp -a”命令:Interfa
20、ce: - 0x2 Internet Address Physical Address Type 00-0d-0b-43-a0-2f dynamic 00-01-4a-03-5b-ea dynamic 都會得到這樣的結(jié)果。 這樣的高速緩存是有時限的,一般是20分鐘(伯克利系統(tǒng)的衍生系統(tǒng))。3. RARP協(xié)議(略)TCP/IP詳解學(xué)習(xí)筆記(4)-ICMP協(xié)議,ping和Traceroute1.IMCP協(xié)議介紹前面講到了,IP協(xié)議并不是一個可靠的協(xié)議,它不保證數(shù)據(jù)被送達,那么,自然的,保證數(shù)據(jù)送達的工作應(yīng)該由其他的模塊來
21、完成。其中一個重要的模塊就是ICMP(網(wǎng)絡(luò)控制報文)協(xié)議。當(dāng)傳送IP數(shù)據(jù)包發(fā)生錯誤比如主機不可達,路由不可達等等,ICMP協(xié)議將會把錯誤信息封包,然后傳送回給主機。給主機一個處理錯誤的機會,這 也就是為什么說建立在IP層以上的協(xié)議是可能做到安全的原因。ICMP數(shù)據(jù)包由8bit的錯誤類型和8bit的代碼和16bit的校驗和組成。而前 16bit就組成了ICMP所要傳遞的信息。書上的圖63清楚的給出了錯誤類型和代碼的組合代表的意思。盡管在大多數(shù)情況下,錯誤的包傳送應(yīng)該給出ICMP報文,但是在特殊情況下,是不產(chǎn)生ICMP錯誤報文的。如下:1 ICMP差錯報文不會產(chǎn)生ICMP差錯報文(出IMCP查詢報
22、文)(防止IMCP的無限產(chǎn)生和傳送)2 目的地址是廣播地址或多播地址的IP數(shù)據(jù)報。3 作為鏈路層廣播的數(shù)據(jù)報。4 不是IP分片的第一片。5 源地址不是單個主機的數(shù)據(jù)報。這就是說,源地址不能為零地址、環(huán)回地址、廣播地 址或多播地址。雖然里面的一些規(guī)定現(xiàn)在還不是很明白,但是所有的這一切規(guī)定,都是為了防止產(chǎn)生ICMP報文的無限傳播而定義的。ICMP協(xié)議大致分為兩類,一種是查詢報文,一種是差錯報文。其中查詢報文有以下幾種用途:6 ping查詢(不要告訴我你不知道ping程序)7 子網(wǎng)掩碼查詢(用于無盤工作站在初始化自身的時候初始化子網(wǎng)掩碼)8 時間戳查詢(可以用來同步時間)而差錯報文則產(chǎn)生在數(shù)據(jù)傳送發(fā)
23、生錯誤的時候。就不贅述了。2.ICMP的應(yīng)用-pingping可以說是ICMP的最著名的應(yīng)用,當(dāng)我們某一個網(wǎng)站上不去的時候。通常會ping一下這個網(wǎng)站。ping會回顯出一些有用的信息。一般的信息如下:Reply from : bytes=32 time1ms TTL=255Reply from : bytes=32 time1ms TTL=255Reply from : bytes=32 time1ms TTL=255Reply from : bytes=32 time30000(真變態(tài))的UDP報,所以到達目的主機的時候
24、,目的 主機只能發(fā)送一個端口不可達的ICMP數(shù)據(jù)報給主機。主機接到這個報告以后就知道,主機到了,所以,說Traceroute是一個騙子一點也不為過:)Traceroute程序里面提供了一些很有用的選項,甚至包含了IP選路的選項,請察看man文檔來了解這些,這里就不贅述了。TCP/IP詳解學(xué)習(xí)筆記(5)-IP選路,動態(tài)選路,和一些細節(jié)1.靜態(tài)IP選路1.1.一個簡單的路由表選路是IP層最重要的一個功能之一。前面的部分已經(jīng)簡單的講過路由器是通過何種規(guī)則來根據(jù)IP數(shù)據(jù)包的IP地址來選擇路由。這里就不重復(fù)了。首先來看看一個簡單的系統(tǒng)路由表。Destination Gateway Genmask Fla
25、gs Metric Ref Use Iface * U 0 0 0 eth0 * U 0 0 0 eth0default UG 0 0 0 eth0對于一個給定的路由器,可以打印出五種不同的flag。1 U表明該路由可用。2 G表明該路由是到一個網(wǎng)關(guān)。如果沒有這個標(biāo)志,說明和Destination是直連的,而相應(yīng)的Gateway應(yīng)該直接給出Destination的地址。3 H表明該路由是到一個主機,如果沒有該標(biāo)志,說明Destination是一個網(wǎng)絡(luò),換句
26、話說Destination就應(yīng)該寫成一個網(wǎng)絡(luò)號和子網(wǎng)號的組合,而不包括主機號(主機號碼處為0),例如 4 D表明該路由是為重定向報文創(chuàng)建的5 M該路由已經(jīng)被重定向報文修改U沒啥可說的,G說明這是一個網(wǎng)關(guān),如果你要發(fā)數(shù)據(jù)給Destination,IP頭應(yīng)該寫Destination的IP地址,而數(shù)據(jù)鏈路層的 MAC地址就應(yīng)該是GateWay的Mac地址了;反之,如果沒有G標(biāo)志,那么數(shù)據(jù)鏈路層和IP層的地址應(yīng)該是對應(yīng)的。H說明了Destination的 性質(zhì),如果是H的,則說明該地址是一個完整的地址,既有網(wǎng)絡(luò)號又有主機號,那么再匹配的時候就既要匹配網(wǎng)絡(luò)號,又要匹配主機號;反
27、之,Destination就代表一個網(wǎng)絡(luò),在匹配的時候只要匹配一下網(wǎng)絡(luò)號就可以了。這樣,IP選路的方式就可以更加具體化了。如下6 首先用IP地址來匹配那些帶H標(biāo)志的DestinationIP地址。7 如果1失敗就匹配那些網(wǎng)絡(luò)地址。8 如果2失敗就發(fā)送到Default網(wǎng)關(guān)順便提一下那個GenMask(還記得子網(wǎng)掩碼么),它指定了目的地址的子網(wǎng)號,例如第一條的子網(wǎng)就是11。1.2.其他有關(guān)路由表的知識一般,我們在配置好一個網(wǎng)絡(luò)接口的時候,一個路由就被直接創(chuàng)建好了。當(dāng)然我們也可以手動添加路由。用route add命令就可以了。而當(dāng)一個IP包在某一個路由器的時候發(fā)現(xiàn)沒有路由可走,那么該路由器就會給源主
28、機發(fā)送“主機不可達”或者“網(wǎng)絡(luò)不可達”的ICMP包來報錯。注意,一般的操作系統(tǒng)默認是沒有路由功能的,這需要自己配置。這些歷史原因就不細說了,1.3.ICMP的IP重定向報文和路由發(fā)現(xiàn)報文當(dāng)IP包在某一個地方轉(zhuǎn)向的時候,都回給發(fā)送IP報的源主機一個ICMP重定向報文,而源主機就可以利用這個信息來更新自己的路由表,這樣,隨著網(wǎng)絡(luò)通信的逐漸增多,路由表也就越來越完備,數(shù)據(jù)轉(zhuǎn)發(fā)的速度也會越來越快。我們需要注意的是:9 重定向報文只能由路由器發(fā)出。10 重定向報文為主機所用,而不是為路由器所用。在主機引導(dǎo)的時候,一般會發(fā)送在網(wǎng)內(nèi)廣播一個路由請求的ICMP報文,而多個路由器則會回應(yīng)一個路由通告報文。而且,
29、路由其本身不定期的在網(wǎng)絡(luò)內(nèi)發(fā) 布路由通告報文,這樣,根據(jù)這些報文,每一個主機都會有機會建立自己的路由表而實現(xiàn)網(wǎng)絡(luò)通信。路由器在一份通告報文中可以通告多個地址,并且給出每一個地 址的優(yōu)先等級,這個優(yōu)先等級是該IP作為默認路由的等級,至于怎么算的就不深究了。路由器一般會在450-600秒的時間間隔內(nèi)發(fā)布一次通告,而一個給定的通告報文的壽命是30分鐘。而主機在引導(dǎo)的時候會每三秒發(fā)送一次請求報文,一旦接受到一個有效的通告報文,就停止發(fā)送請求報文。在TCP/IP詳解編寫的時候,只有Solaris2.x支持這兩種報文,大多數(shù)系統(tǒng)還不支持這兩種報文。(后面還會講到一些有用的路由報文)動態(tài)選路協(xié)議前面的選路方
30、法叫做靜態(tài)選路,簡要地說就是在配置接口的時候,以默認的方式生成路由表項。并通過route來增加表項,或者通過ICMP報文來更新表項(通常在默認方式出錯的情況下)。 而如果上訴三種方法都不能滿足,那么我們就使用動態(tài)選路。動態(tài)選路協(xié)議是用于動態(tài)選路的重要組成部分,但是他們只是使用在路由器之間,相鄰路由器之間互相通信。系統(tǒng)(路有選擇程序)選擇比較合適的路有放到 核心路由表中,然后系統(tǒng)就可以根據(jù)這個核心路有表找到最合適的網(wǎng)路。也就是說,動態(tài)選路是在系統(tǒng)核心網(wǎng)絡(luò)外部進行的,它只是用一些選路的策略影響路由表, 而不會影響到最后通過路由表選擇路由的那一部分。選路協(xié)議有一大類常用的叫做內(nèi)部網(wǎng)關(guān)協(xié)議(IGP),
31、而在IGP中,RIP就是其中最重要的協(xié)議。一種新 的IGP協(xié)議叫做開放最短路經(jīng)優(yōu)先(OSPF)協(xié)議,其意在取代RIP。另一種最早用在網(wǎng)路骨干網(wǎng)上的IGP協(xié)議-HELLO,現(xiàn)在已經(jīng)不用了。如今,任何支持動態(tài)選路的路由器都必須同時支持OSPF和RIP,還可以選擇性的支持其他的IGP協(xié)議。2.1.Unix選路程序Unix系統(tǒng)上面通常都有路由守護程序routed。還有一個叫做gate。gate所支持的協(xié)議要比routed多,routed只是支持RIPv1版本。而gate則支持RIPv1、v2,BGPv1 等等。2.1.RIP:選路信息協(xié)議它的定義可以在RFC1058內(nèi)找到,這種協(xié)議使用UDP作為載體(
32、也就是UDP的上層協(xié)議)。我們最關(guān)心的就是RIP其中的一個段,叫做度量的 段,這是一個以hop作為計數(shù)器(就是以走過多少路由為計數(shù)器)的段(IP協(xié)議里面也有一個TTL不是么)。這個度量段將最終影響到路由表的建立。參考圖:一般說來routed要承擔(dān)如下的工作:11 給每一個已知的路由器發(fā)送rip請求報文,要求其他路由器給出完整的路由表。這種報文的命令字段為1,地址字段為0,度量地段為16(相當(dāng)于無窮大)。12 接受請求,如果接收到剛才的那個請求,就把自己的完整的路由表交給請求者。如果沒有,就處理IP請求表項,把表項中自己有的部分添上跳數(shù),沒有的部分添上16。然后發(fā)給請求者。13 接受回應(yīng)。更新自
33、己的路由表。使用hop數(shù)小的規(guī)則。14 定期更新路由表,一般是30s(真頻繁)給相鄰的路有啟發(fā)一次自己的路由表。這種形式可以使廣播形式的。這個協(xié)議看起來會工作的很好,但是,這里面其實有很多隱藏的憂患,比如說RIP沒有子網(wǎng)的概念,比如說環(huán)路的危險。而且hop數(shù)的上限也限制了網(wǎng)絡(luò)的大小。因此,出現(xiàn)了很多RIPv1的替代品,比如說RIPv2,比如說OSPF。他們都是通過某種策略來影響路由表,所以就不說了。 TCP/IP詳解學(xué)習(xí)筆記(6)-UDP協(xié)議1.UDP簡要介紹UDP是傳輸層協(xié)議,和TCP協(xié)議處于一個分層中,但是與TCP協(xié)議不同,UDP協(xié)議并不提供超時重傳,出錯重傳等功能,也就是說其是不可靠的協(xié)
34、議。2.UDP協(xié)議頭2.1.UDP端口號由于很多軟件需要用到UDP協(xié)議,所以UDP協(xié)議必須通過某個標(biāo)志用以區(qū)分不同的程序所需要的數(shù)據(jù)包。端口號的功能就在于此,例如某一個UDP程序 A在系統(tǒng)中注冊了3000端口,那么,以后從外面?zhèn)鬟M來的目的端口號為3000的UDP包都會交給該程序。端口號理論上可以有216這么多。因為它的長 度是16個bit2.2.UDP檢驗和這是一個可選的選項,并不是所有的系統(tǒng)都對UDP數(shù)據(jù)包加以檢驗和數(shù)據(jù)(相對TCP協(xié)議的必須來說),但是RFC中標(biāo)準(zhǔn)要求,發(fā)送端應(yīng)該計算檢驗和。UDP檢驗和覆蓋UDP協(xié)議頭和數(shù)據(jù),這和IP的檢驗和是不同的,IP協(xié)議的檢驗和只是覆蓋IP數(shù)據(jù)頭,并
35、不覆蓋所有的數(shù)據(jù)。UDP和TCP都包含 一個偽首部,這是為了計算檢驗和而攝制的。偽首部甚至還包含IP地址這樣的IP協(xié)議里面都有的信息,目的是讓UDP兩次檢查數(shù)據(jù)是否已經(jīng)正確到達目的地。 如果發(fā)送端沒有打開檢驗和選項,而接收端計算檢驗和有差錯,那么UDP數(shù)據(jù)將會被悄悄的丟掉(不保證送達),而不產(chǎn)生任何差錯報文。2.3.UDP長度UDP可以很長很長,可以有65535字節(jié)那么長。但是一般網(wǎng)絡(luò)在傳送的時候,一次一般傳送不了那么長的協(xié)議(涉及到MTU的問題),就只好對數(shù)據(jù) 分片,當(dāng)然,這些是對UDP等上級協(xié)議透明的,UDP不需要關(guān)心IP協(xié)議層對數(shù)據(jù)如何分片,下一個章節(jié)將會稍微討論一些分片的策略。3.IP
36、分片IP在從上層接到數(shù)據(jù)以后,要根據(jù)IP地址來判斷從那個接口發(fā)送數(shù)據(jù)(通過選路),并進行MTU的查詢,如果數(shù)據(jù)大小超過MTU就進行數(shù)據(jù)分片。數(shù) 據(jù)的分片是對上層和下層透明,而數(shù)據(jù)也只是到達目的地還會被重新組裝,不過不用擔(dān)心,IP層提供了足夠的信息進行數(shù)據(jù)的再組裝。在IP頭里面,16bit識別號唯一記錄了一個IP包的ID,具有同一個ID的IP片將會被重新組裝;而13位片偏移則記錄了某IP片相對整個包的 位置;而這兩個表示中間的3bit標(biāo)志則標(biāo)示著該分片后面是否還有新的分片。這三個標(biāo)示就組成了IP分片的所有信息,接受方就可以利用這些信息對IP數(shù)據(jù) 進行重新組織(就算是后面的分片比前面的分片先到,這
37、些信息也是足夠了)。因為分片技術(shù)在網(wǎng)絡(luò)上被經(jīng)常的使用,所以偽造IP分片包進行流氓攻擊的軟件和人也就層出不窮??梢杂肨rancdroute程序來進行簡單的MTU偵測。請參看教材。3.UDP和ARP之間的交互式用這是不常被人注意到的一個細節(jié),這是針對一些系統(tǒng)地實現(xiàn)來說的。當(dāng)ARP緩存還是空的時候。UDP在被發(fā)送之前一定要發(fā)送一個ARP請求來獲得目的 主機的MAC地址,如果這個UDP的數(shù)據(jù)包足夠大,大到IP層一定要對其進行分片的時候,想象中,該UDP數(shù)據(jù)包的第一個分片會發(fā)出一個ARP查詢請求, 所有的分片都輝等到這個查詢完成以后再發(fā)送。事實上是這樣嗎?結(jié)果是,某些系統(tǒng)會讓每一個分片都發(fā)送一個ARP查
38、詢,所有的分片都在等待,但是接受到第一個回應(yīng)的時候,主機卻只發(fā)送了最后一個數(shù)據(jù)片而拋棄了其 他,這實在是讓人匪夷所思。這樣,因為分片的數(shù)據(jù)不能被及時組裝,接受主機將會在一段時間內(nèi)將永遠無法組裝的IP數(shù)據(jù)包拋棄,并且發(fā)送組裝超時的ICMP 報文(其實很多系統(tǒng)不產(chǎn)生這個差錯),以保證接受主機自己的接收端緩存不被那些永遠得不到組裝的分片充滿。4.ICMP源站抑制差錯當(dāng)目標(biāo)主機的處理速度趕不上數(shù)據(jù)接收的速度,因為接受主機的IP層緩存會被占滿,所以主機就會發(fā)出一個“我受不了”的一個ICMP報文。5.UDP服務(wù)器設(shè)計UDP協(xié)議的某些特性將會影響我們的服務(wù)器程序設(shè)計,大致總結(jié)如下:1 關(guān)于客戶IP和地址:服
39、務(wù)器必須有根據(jù)客戶IP地址和端口號判斷數(shù)據(jù)包是否合法的能力(這似乎要求每一個服務(wù)器都要具備)2 關(guān)于目的地址:服務(wù)器必須要有過濾廣播地址的能力。3 關(guān)于數(shù)據(jù)輸入:通常服務(wù)器系統(tǒng)的每一個端口號都會和一塊輸入緩沖區(qū)對應(yīng),進來的輸入根據(jù)先來后到的原則等待服務(wù)器的處理,所以難免會出現(xiàn)緩沖區(qū)溢出的問題,這種情況下,UDP數(shù)據(jù)包可能會被丟棄,而應(yīng)用服務(wù)器程序本身并不知道這個問題。4 服務(wù)器應(yīng)該限制本地IP地址,就是說它應(yīng)該可以把自己綁定到某一個網(wǎng)絡(luò)接口的某一個端口上。TCP/IP詳解學(xué)習(xí)筆記(7)-廣播和多播,IGMP協(xié)議1.單播,多播,廣播的介紹1.1.單播(unicast)單播是說,對特定的主機進行數(shù)
40、據(jù)傳送。例如給某一個主機發(fā)送IP數(shù)據(jù)包。這時候,數(shù)據(jù)鏈路層給出的數(shù)據(jù)頭里面是非常具體的目的地址,對于以太網(wǎng)來 說,就是網(wǎng)卡的MAC地址(不是FF-FF-FF-FF-FF-FF這樣的地址)。現(xiàn)在的具有路由功能的主機應(yīng)該可以將單播數(shù)據(jù)定向轉(zhuǎn)發(fā),而目的主機的網(wǎng) 絡(luò)接口則可以過濾掉和自己MAC地址不一致的數(shù)據(jù)。1.2.廣播(unicast)廣播是主機針對某一個網(wǎng)絡(luò)上的所有主機發(fā)送數(shù)據(jù)包。這個網(wǎng)絡(luò)可能是網(wǎng)絡(luò),可能是子網(wǎng),還可能是所有的子網(wǎng)。如果是網(wǎng)絡(luò),例如A類網(wǎng)址的廣播就是 netid.255.255.255,如果是子網(wǎng),則是id.subnetid.255;如果是所有的子網(wǎng)(B類IP)
41、則是則是 id.255.255。廣播所用的MAC地址FF-FF-FF-FF-FF-FF。網(wǎng)絡(luò)內(nèi)所有的主機都會收到這個廣播數(shù)據(jù),網(wǎng)卡只要把 MAC地址為FF-FF-FF-FF-FF-FF的數(shù)據(jù)交給內(nèi)核就可以了。一般說來ARP,或者路由協(xié)議RIP應(yīng)該是以廣播的形式播發(fā)的。1.3.多播(multicast)可以說廣播是多播的特例,多播就是給一組特定的主機(多播組)發(fā)送數(shù)據(jù),這樣,數(shù)據(jù)的播發(fā)范圍會小一些(實際上播發(fā)的范圍一點也沒有變小),多播的 MAC地址是最高字節(jié)的低位為一,例 如01-00-00-00-00-00。多播組的地址是D類IP,規(guī)定是-239.255.
42、255.255。雖然多播比較特殊,但是究其原理,多播的數(shù)據(jù)還是要通過數(shù)據(jù)鏈路層進行MAC地址綁定然后進行發(fā)送。所以一個以太網(wǎng)卡在綁定了一個多播IP地址之 后,必 定還要綁定一個多播的MAC地址,才能使得其可以像單播那樣工作。這個多播的IP和多播MAC地址有一個對應(yīng)的算法,在書的p133到p134之間。可以 看到 這個對應(yīng)不是一一對應(yīng)的,主機還是要對多播數(shù)據(jù)進行過濾。個人的看法:廣播和多播的性質(zhì)是一樣的,路由器會把數(shù)據(jù)放到局域網(wǎng)里面,然后網(wǎng)卡對這些數(shù)據(jù)進行過濾,只拿到自己打算要的數(shù)據(jù),比如自己感興趣的多 播數(shù)據(jù),自己感興趣的組播數(shù)據(jù)。當(dāng)一個主機運行了一個處理某一個多播IP的進程的時候,這個進程會
43、給網(wǎng)卡綁定一個虛擬的多播mac地址,并做出來一個多播 ip。這樣,網(wǎng)卡就會讓帶有這個多播mac地址的數(shù)據(jù)進來,從而實現(xiàn)通信,而那些沒有監(jiān)聽這些數(shù)據(jù)的主機就會把這些數(shù)據(jù)過濾掉,換句話說,多播,是讓主機 的內(nèi)核輕松了,而網(wǎng)卡,對不起,您就累點吧。一些文章也印證了這種想法,最明顯的就是局域網(wǎng)監(jiān)聽的原理、實現(xiàn)與防范2.一些驗證性實驗這些實驗并不是很復(fù)雜,我們只是要ping一下一般的ip和一個廣播地址。首先我ping一下自己所在的子網(wǎng)的某一臺主機:Reply from : bytes=32 time1ms TTL=255Reply from : bytes
44、=32 time1ms TTL=255Reply from : bytes=32 time1ms TTL=255Reply from : bytes=32 time=1ms TTL=255可以看到,機器返回的是一臺主機的回應(yīng)結(jié)果,進而推測,如果我ping一個廣播地址呢?結(jié)果如下Reply from : bytes=32 time=1ms TTL=255Reply from 74: bytes=32 time1ms TTL=64Reply from 74: bytes=32 t
45、ime1ms TTL=64Reply from 74: bytes=32 time1ms TTL=64Reply from 18: bytes=32 time1ms TTL=64Reply from 74: bytes=32 time1ms TTL=64可以看到,ping返回了一些隨機的ip的結(jié)果,這些ip都是與主機在同一子網(wǎng)內(nèi)的ip。我們可以看到,廣播實際上是給處于子網(wǎng)內(nèi)的所有ip發(fā)信。再來一個多播的例子,但是要實現(xiàn)這個多播并不容易,因為我不知道網(wǎng)絡(luò)內(nèi)有多少個多播組,就只好利用幾個特殊的多播地址來驗證了。對于多播地址,有
46、幾個特殊的多播地址被占用,他們是1 -該子網(wǎng)內(nèi)所有的系統(tǒng)組。2 -該子網(wǎng)內(nèi)所有的路由器。3 -網(wǎng)絡(luò)實現(xiàn)協(xié)議NTP專用IP。4 -RIPv2專用IP所以只要ping這幾個IP,就應(yīng)該能得到一些結(jié)果,比如說我ping 。Reply from : bytes=32 time1ms TTL=255Reply from : bytes=32 time1ms TTL=255Reply from : bytes=32 time1ms TTL=255
47、Reply from : bytes=32 time1ms TTL=255Reply from : bytes=32 time1ms TTL=255Reply from : bytes=32 time1ms TTL=255Reply from : bytes=32 time1ms TTL=255我們可以看到,這回ping只返回了一個ip的回應(yīng)。而這個就是我的網(wǎng)關(guān)的地址,這也驗證了是所有路由器的多播(組播)地址3.IGMP協(xié)議IGMP的作用在于,讓其他所有需要知道自己處于哪個多播組的
48、主機和路由器知道自己的狀態(tài)。一般多播路由器根本不需要知道某一個多播組里面有多少個 主機,而只要知道自己的子網(wǎng)內(nèi)還有沒有處于某個多播組的主機就可以了。只要某一個多播組還有一臺主機,多播路由器就會把數(shù)據(jù)傳輸出去,這樣,接受方就會通 過網(wǎng)卡過濾功能來得到自己想要的數(shù)據(jù)。為了知道多播組的信息,多播路由器需要定時的發(fā)送IGMP查詢,IGMP的格式可以看書,各個多播組里面的主機要根 據(jù)查詢來回復(fù)自己的狀態(tài)。路由器來決定有幾個多播組,自己要對某一個多播組發(fā)送什么樣的數(shù)據(jù)。這種查詢回應(yīng)數(shù)據(jù)報的TTL一般是1,而且就算是出錯也不產(chǎn)生ICMP差錯(沒必要)。TCP/IP詳解學(xué)習(xí)筆記(8)-DNS域名系統(tǒng)前面已經(jīng)提
49、到了訪問一臺機器要靠IP地址和MAC地址,其中,MAC地址可以通過ARP協(xié)議得到,所以這對用戶是透明的,但是IP地址就不行,無論如何用戶都需要用一個指定的IP來訪問一臺計算機,而IP地址又非常不好記,于是就出現(xiàn)了DNS系統(tǒng)1.DNS系統(tǒng)介紹DNS的全稱是Domain Name System。它負責(zé)把FQDN(就是以.分隔結(jié)尾的名字)翻譯成一個IP。最初的DNS系統(tǒng)使用的是一個巨大的hosts.txt文件(很吃驚,用 這個就好使了?),可是一段時間以后,開發(fā)這就不得不用數(shù)據(jù)庫來代替hosts.txt文件,最終發(fā)展到了現(xiàn)在的分布式數(shù)據(jù)庫。從書中的143頁可以看到,DNS系統(tǒng)是一個巨大的樹,最上方有
50、一個無名樹根,下一層是arpa,com,edu,gov,int,mil,us, cn。等等,其中arpa,是域名反解析樹的頂端;而com,edu,等域名本來只用在美國(這就是技術(shù)特權(quán)?。?,但是現(xiàn)在幾乎全世界通用;而us, cn,等叫做國家域。這個樹里面的域名并不是統(tǒng)一管理的,網(wǎng)絡(luò)信息中心(NIS)負責(zé)分配頂級域合委派其他制定地區(qū)域的授權(quán)機構(gòu)。一個獨立管理的DNS子樹叫做zone,最常見的區(qū)域就是二級域名,比如說.。我們還可以把這個二級域名給劃分成更小的區(qū)域,比如說。DNS系統(tǒng)是一個分布式的數(shù)據(jù)庫,當(dāng)一個數(shù)據(jù)庫發(fā)現(xiàn)自己并沒有某查詢所需要的數(shù)據(jù)的時候,它將把查詢轉(zhuǎn)
51、發(fā)出去,而轉(zhuǎn)發(fā)的目的地通常是根服務(wù)器,根服 務(wù)器從上至下層層轉(zhuǎn)發(fā)查詢,直到找到目標(biāo)為止。DNS還有一個特點就是使用高速緩存,DNS把查詢過的數(shù)據(jù)緩存在某處,以便于下次查詢時使用。2.DNS協(xié)議DNS報文定義了一個既可以查詢也可以響應(yīng)的報文格式。具體格式可以看P145頁。對各個字段簡單解釋如下1 最前面的16個bit唯一的標(biāo)示了問題號碼,用于查詢端區(qū)別自己的查詢。2 緊接著的16個bit又可以做進一步的細分,標(biāo)示了報文的性質(zhì)和一些細節(jié),比如說是查詢報文還是響應(yīng)報文,需要遞歸查詢與否(一般服務(wù)器都支持遞歸查詢,而且不需要任何設(shè)置,BIND就是這樣)3 查詢問題后面有查詢類型,包括A,NS,CNAM
52、E,PTR,HINFO,MX,如果熟悉BIND的話,就知道在zong的配置文件里面,每一條記錄都記載了各自的類型,比如A就是IP地址,NS就是名字服務(wù)器。4 響應(yīng)報文可以回復(fù)多個IP,也就是說,域名可以和多個IP地址對應(yīng),并且有很多CNAME。3.反向查詢正向查詢指的是通過域名得到IP的查詢,而反向查詢就是通過IP得到域名。例如用host命令,host ip就可以得到服務(wù)器的域名,host domainName 就得到IP。稍微知道一點數(shù)據(jù)結(jié)構(gòu)的人都能意識到,在正向查詢的域里面做反向查詢,其做法只有遍歷整個數(shù)據(jù)集合-對于DNS來說,那就是遍歷整個數(shù)據(jù)庫, 這將帶來巨大的負擔(dān),所以DNS采取了另
53、一種方法,使用另一棵子樹來維護IP-域名的對應(yīng)表。這個子樹的根節(jié)點是,而一個IP 例如)所具有的DNS地址就是 92.(ip倒置)。在DNS系統(tǒng)里面,一個反向地址對應(yīng)一個PTR紀錄(對應(yīng)A紀錄),所以反向查詢又叫 做指針(PTR)查詢。4.其他問題的討論4.1.DNS服務(wù)器高速緩存BIND9默認是作為一個高速緩存服務(wù)器,其將所有的查詢都轉(zhuǎn)交到根服務(wù)器去,然后得到結(jié)果并放在本地的緩沖區(qū),以加快查詢速度。如果有興趣可以安裝一個BIND9來嘗試一下。而自己定義的zone則可以規(guī)定其在緩存中的時間,一般是1天(就是配置文件中的1D)。4.2.用UDP還是TCPDNS服務(wù)器支持TCP和UDP兩種協(xié)議的查詢方式,而且端口都是53。而大多數(shù)的查詢都是UDP查詢的,一般需要TCP查詢的有兩種情況:1、當(dāng)查詢數(shù)據(jù)多大以至于產(chǎn)生了數(shù)據(jù)截斷(TC標(biāo)志為1),這時,需要利用TCP的分片能力來進行數(shù)據(jù)傳輸(看TCP的相關(guān)章節(jié))。2、當(dāng)主(master)服務(wù)器和輔(slave)服務(wù)器之間通信,輔服務(wù)器要拿到主服務(wù)器的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)殖庫房出售合同范本
- 單位鍋爐人員合同范本
- 個體工商合同范本
- 專業(yè)白蟻防治服務(wù)合同范本
- 養(yǎng)老機構(gòu)銷售合同范本
- 醫(yī)療設(shè)備議標(biāo)合同范本
- 化工鋼材采購合同范例
- 介紹費協(xié)議合同范本
- 勞務(wù)派遣合同勞動合同范本
- 辦公品合同范本
- 天車安全操作培訓(xùn)教材
- 《籃球運球》教案(共四篇)
- 國企關(guān)于違反“三重一大”決策制度責(zé)任追究辦法
- CRF病例報告表模板
- 九上下冊物理人教版九年級物理全冊第十九章《生活用電》第3節(jié)《安全用電》課件(42張)公開課教案
- 高中 語文 必修上冊 第八單元《詞語積累與詞語解釋》課件
- 2024年計算機二級WPS考試題庫380題(含答案)
- 客觀題法律職業(yè)資格考試(試卷一)試題及解答參考(2024年)
- 【網(wǎng)紅李佳琦直播帶貨營銷策略問題及對策13000字(論文)】
- 2024年人教版九年級英語單詞默寫單(微調(diào)版)
- 2024至2030年中國海洋化工產(chǎn)業(yè)發(fā)展動態(tài)及投資前景分析報告
評論
0/150
提交評論