GONE WITH THE WIND

          --tomorrow is another day

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            30 隨筆 :: 19 文章 :: 0 評論 :: 0 Trackbacks

          2009年3月31日 #

          LI代碼的格式化:
          A).運用CSS格式化列表符: ul li{
          list-style-type:none;
          }
          B).假如你想將列表符換成圖像,則: ul li{
          list-style-type:none;
          list-style-image: url(/blog/images/icon.gif);
          }
          C).為了左對齊,可以用如下代碼: ul{
          list-style-type:none;
          margin:0px;
          }
          D).假如想給列表加背景色,可以用如下代碼: ul{
          list-style-type: none;
          margin:0px;
          }
          ul li{
          background:#CCC;
          }
          E).假如想給列表加MOUSEOVER背景變色效果,可以用如下代碼: ul{ list-style-type: none; margin:0px; }
          ul li a{ display:block; width: 100%; background:#ccc; }
          ul li a:hover{ background:#999; }說明:display:block;這一行必須要加的,這樣才能塊狀顯示!

          F).LI中的元素水平排列,要害FLOAT:LEFT: ul{
          list-style-type:none;
          width:100%;
          }
          ul li{
          width:80px;
          float:left;
          }
          <ul><li>的區(qū)別
          <LI> 的參數(shù)設定(常用):
           


          例如: <li type="square" value="4">

          type="square"
          只適用于非順序清單,設定符號款式,其值有三種,如下,內(nèi)定為 type="disc":
          符號 是當 type="disc" 時的列項符號。
          符號 if" width=10 height=10 border=0> 是當 type="circle" 時的列項符號。
          符號 是當 type="square" 時的列項符號。
          value="4"
          只適用于順序清單,設定該一項的數(shù)目,其後各項將以此作為起始數(shù)目而遞增,但前面各項則不受影響,其值只能是 1,2,3.. 等整數(shù),沒有內(nèi)定值。
          <UL>稱為無序清單標記。
          所謂無序清單就是在每一項前面加上 、、等符號,故又稱符號清單。
          <UL> 的參數(shù)設定(常用):
          例如: <UL type="square">

          type="square"
          設定符號款式,其值有三種,如下,內(nèi)定為 type="disc":
          符號 是當 type="disc" 時的列項符號。
          符號 是當 type="circle" 時的列項符號。
          符號 是當 type="square" 時的列項符號。

          <ul>是項目列表,<li>是列表項,項目列表就是用符號來列的,所以你列出來默認的就是黑點啦,還有一個是<ol>這個是編號列表,用數(shù)字來列的,也是用<li>做列表項

           


          <li>是 list item 即列表項,但列表有很兩種,所以外面得有 <ul> 或者 <ol> 用來區(qū)別無序列表(小點點)和有序列表(1,2,3...)。

          posted @ 2009-04-13 09:22 張永耀 閱讀(399) | 評論 (0)編輯 收藏

          (from:http://www.0574dh.com/article.asp?id=420)

          /* mozilla.org Base Styles
          * maintained by fantasai
          * (classes defined in the Markup Guide - http://mozilla.org/contribute/writing/markup)
          */
          /* Suggested order:
          //顯示屬性
          * display
          * list-style
          * position
          * float
          * clear
          //自身屬性
          * width
          * height
          * margin
          * padding
          * border
          * background
          //文本屬性
          * color
          * font
          * text-decoration
          * text-align
          * vertical-align
          * white-space
          * other text
          * content
          *
          */
          posted @ 2009-04-08 12:31 張永耀 閱讀(187) | 評論 (0)編輯 收藏

          (from: http://www.webwoo.net/bc/bencandy-38-20144-1.htm)
          優(yōu)化代碼:網(wǎng)頁技術CSS的font屬性的縮寫的技巧,縮寫有利于減少代碼,優(yōu)化CSS,使之更加合理。

            css font屬性是用來控制文字字體、顏色、大小等。而font的屬性有多種,在通常情況下,我們用縮寫的辦法將多種屬性概括在一句css代碼中。這樣極大的減小了代碼,優(yōu)化css文件。

            我們常用的font屬性有下面這六種:

          font-style設定斜體 如:font-style: italic;
          font-weight設定文字粗細 如:font-weight: bold;
          font-size設定文字大小 如:font-size: 12px;
          line-height設定行距 如:line-height: 150%;
          color設定文字顏色(注意不是font-color) 如:color: red;
          font-family設定字體 如:font-family : "Lucida Grande", Verdana, Lucida, Arial, Helvetica, 宋體,sans-serif;

            上述的屬性,我們可以概括寫在一行font屬性里。需要注意的是color屬性我們需要單獨定義。

          font: italic bold 12px/150% "Lucida Grande", Verdana, Lucida, Arial, Helvetica, 宋體,sans-serif;}

            上面的例子用一行來定義font屬性,分別是:font-style font-weight font-size line-height font-family;而color設定文字顏色需要單獨進行定義。

          posted @ 2009-04-08 12:30 張永耀 閱讀(195) | 評論 (0)編輯 收藏

          使用PHP編程的人都會碰到這樣一個問題:當PHP代碼和HTML代碼在一起的時候,看PHP代碼很費勁,整個文件也無法用Dreamweaver來編輯,這對于PHP程序員和美工來講,修改這樣的文件就象一個噩夢。
          PHP中的模板(Template)技術就是為了解決這個問題而出現(xiàn)的。PHP模板類有很多,比較常見的是 FastTemplate 和 PHPLib, 因為出現(xiàn)得早,在PHP編程界名聲很大。PHP程序員不知道這兩個類,就象VB程序員不知道MsgBox函數(shù)一樣,是一件不可思議的事情。
          以前我們需要去下載PHP模板類,現(xiàn)在PHP4有了自己的模板類 IntegratedTemplate 和 IntegratedTemplateExtension,功能和PHPLib 差不多。這兩個類是子類和父類的關系。一般我們用 IntegratedTemplateExtension 就可以了。讓人感到不可思議的是 IntegratedTemplate 不是從 PEAR 類繼承過來,無法用到 PEAR 類的 debug 功能。
          以下舉例子說明它們的用法,假設 IntegratedTemplate 類和 IntegratedTemplateExtension 類分別在 C:\php4\pear\HTML\ITX.php 和 C:\php4\pear\HTML\ITX.php 中。我們寫的代碼放在C:\TestPHP\PHP4\Welcome.htm 和 C:\TestPHP\HTML\Welcome.php 中。將C:\TestPHP\PHP4 在Web Server 上設成虛擬目錄 /testphp 并且給與腳本執(zhí)行權限,確認C:\TestPHP\HTML\Welcome.htm 無法通過遠端瀏覽器訪問。在 php.ini 里面設置 include_path = ".;C:\php4\pear"
          例1:
          我們在HTML文件中放置變量的標記,用PHP代碼設置變量的值,然后將HTML中的標記替換掉,最后輸出到客戶瀏覽器。
          以下是 Welcome.htm 代碼,我們放了三個PHP tag(變量標記)為: {WelcomeTitle}、{UserName}、{WelcomeMessage}



          您好,{UserName}


          {WelcomeMessage}



          以下是Welcome.php代碼
          <?php
          require_once "HTML/ITX.php";

          //以下是給變量賦值,在實際代碼中可能從Database中取得數(shù)據(jù)然后賦值
          $WelcomeTitle = "歡迎來到網(wǎng)頁天堂";
          $UserName = "皮皮魯";
          $WelcomeMessage = "您的到來讓我們深感榮幸!";

          //一般來說這種全局變量放在單獨的一個文件中,便于維護
          $HTML_CODE_FILE_ROOT = "../HTML/";

          $tpl = new IntegratedTemplateExtension($HTML_CODE_FILE_ROOT);

          指定要替換 tag 的 HTML 文件
          $tpl->loadTemplatefile("Welcome.htm");

          替換HTML 文件中的 tag
          $tpl->setVariable( array (
          "WelcomeTitle" => $WelcomeTitle,
          "UserName" =>$UserName,
          "WelcomeMessage" =>$WelcomeMessage
          ) );

          輸出替換后的 HTML
          $tpl->show();
          ?>

          這樣寫好后,Welcome.htm 仍然可以使用網(wǎng)頁編輯器如Dreamweaver、FrontPage 進行編輯,Welcome.php中是純粹的PHP代碼,不含HTML,方便以后的代碼修改和維護。
          如果將 IntegratedTemplateExtension 類和 PHP4中的 Cache 類 聯(lián)合使用,在速度上可以得到很好的效果。
          PHP4 模板類還可以使用 Block,配合其他 PHP4 中的類 可以很輕松地實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)檢索的翻頁,可以很輕松寫出論壇之類的軟件。

          補充說明:為了防止用戶直接用 Welcome.htm 看網(wǎng)頁,將 Welcome.htm 放在客戶訪問不到的目錄(只要不在Web Server 的虛擬目錄下即可)。對于大型的PHP項目,圖片、PHP代碼、HTML文件、多語言字符串文件都應該放在不同的目錄,這樣在多人共同做一個項目時不至于混亂。
          posted @ 2009-04-08 12:29 張永耀 閱讀(370) | 評論 (0)編輯 收藏

          分離內(nèi)容和表現(xiàn)
          HTML從來就不是表現(xiàn)的手段,但從用戶端結合元素來格式化文本,開發(fā)者從中找到操作布局的方法。CSS的強大,使得現(xiàn)在不再需要用HTML做任何表現(xiàn)了,而內(nèi)容也可以完全從表現(xiàn)(CSS)中分離出來。

          這樣做有很多好處──通常可以壓縮文件容量,有著用一個主要樣式表就可控制整個網(wǎng)站而不是單個頁面的靈活性,也可能使頁面更易用,更具親和力。

          遵循這些基本原則基本上意味著你不應該在HTML內(nèi)使用樣式化的任何事物了。比如font的標簽,比如bgcolor的屬性不應該再使用。甚至在圖像標簽img內(nèi)的邊框?qū)傩詁order在XHTML 1.1中也是非法的了。別擔心,過時的HTML可以樣式化,CSS更可以樣式化,而且可以做得更好。

          不僅僅是從HTML內(nèi)剝離表現(xiàn),內(nèi)容的結構意味著在適合的地方使用明確的HTML標簽。比如,h1,h2等應用在標題上──而不僅僅是使用CSS使字體變大而已。

          最佳指引就是一個可視化的瀏覽器上使用其默認的樣式來呈現(xiàn)一個沒有樣式表(或者有樣式表,但不支援樣式表的文本瀏覽器,比如lynx——譯者注)的頁面。

          表格不應該用在布局上──表格用來表示表格式的數(shù)據(jù)(我們已經(jīng)不厭其煩地說了很多次──譯者注)。也許對于已經(jīng)習慣傳統(tǒng)結構的HTMLer來說,完全改變有很大的技術難度。這個方法很大程度上壓縮了文件,而且,基于這些顯性代碼,它變得更易用,更具親和力。

          關于更多,請閱讀CSS高級指南的布局。


          在XHTML中所有的標簽都必須小寫和關閉。沒有閉合標簽的(如br和img)必須用英文半角正斜杠“/”在后面自關閉(如<br />)。注意在斜杠前應該有一個英文半角空格。

          標記也必須是合式的,使元素正確嵌套(比如<strong><em>this</em></strong>,而不是<strong><em>this</strong></em>)。

          所有的文檔都要有html,head,title和body元素。也必須從文檔類型聲明開始。

          文檔主體應該從 p, h1,h2, h3,h4,h5,h6,div, pre,address,ins或者del開始。

          屬性
          所有的屬性必須是小寫的,它們的值也要用英文半角引號括(")起來。

          精簡屬性是不允許的(比如<input type="checkbox" checked />)。按慣例,精簡屬性必須給出跟屬性名稱一樣的值(如 <input type="checkbox" checked="checked" />)。

          名字 name屬性不再是合法的了(除了在表單元素中),應該使用id來代替。

          目標屬性target不是一個合法的屬性。慶幸吧,它有些癲狂。

          在img里,alt屬性是必須的。

          親和力
          為殘障人士制做具有親和力網(wǎng)頁的理由是不證而明的。不僅是人道的,而且也對老年用戶和五官功能減退的用戶有利(想一想,有一天我們老了,視力消退,五官不靈,怎么瀏覽互聯(lián)網(wǎng)?為年老積點德,現(xiàn)在就考慮親和力吧!——譯者注)。親和力不僅與有嚴重殘障人士方便,也使大部分少量消退功能(特別是視覺)的用戶更為易用。

          這個問題越來越牽涉法律問題了,比如美國的“508條款”的采用,試圖積極推動強制使用親和力;在英國,所有的政府網(wǎng)站必須有一個指定的親和力程度。什么時候才可以有像在建筑物上的親和措施的立法,以便普遍用在商業(yè)網(wǎng)站上?(中國還不知道什么時候有這種立法呢!但不等于我們就不要關注我們設計的網(wǎng)頁的合法性。——譯者注)

          如果能遵循上述的建議,你的HTML應該已經(jīng)具備了為殘障用戶服務的高度親和力。還有更多的創(chuàng)作使你的親和力更上一層樓,而且不難。見親和連接和親和表單指南。

          posted @ 2009-04-08 12:28 張永耀 閱讀(363) | 評論 (0)編輯 收藏

          怎么改善現(xiàn)有網(wǎng)站

          我們大部分的設計師依舊在采用傳統(tǒng)的表格布局、表現(xiàn)與結構混雜在一起的方式來建立網(wǎng)站。學習使用XHTML CSS的方法需要一個過程,使現(xiàn)有網(wǎng)站符合網(wǎng)站標準也不可能一步到位。最好的方法是循序漸進,分階段來逐步達到完全符合網(wǎng)站標準的目標。如果你是新手,或者對代碼不是很熟悉,也可以采用遵循標準的編輯工具,例如Dreamweaver MX 2004,它是目前支持CSS標準最完善的工具。

          1.初級改善

          • 為頁面添加正確的DOCTYPE

          很多設計師和開發(fā)者都不知道什么是DOCTYPE,DOCTYPE有什么用。DOCTYPE是document type的簡寫。主要用來說明你用的XHTML或者HTML是什么版本。瀏覽器根據(jù)你DOCTYPE定義的DTD(文檔類型定義)來解釋頁面代碼。所以,如果你不注意設置了錯誤的DOCTYPE,結果會讓你大吃一驚。XHTML1.0提供了三種DOCTYPE可選擇:

          (1)過渡型(Transitional )

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

          (2)嚴格型(Strict )

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

          (3)框架型(Frameset )

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

          對于我們初級改善來說,只要選用過渡型的聲明就可以了。它依然可以兼容你的表格布局、表現(xiàn)標識等,不至于讓你覺得變化太大,難以掌握。

          Tip:你懶得輸入上面過渡型代碼的話,可以訪問http://www.macromedia.com/網(wǎng)站的首頁,然后查看源代碼,把head區(qū)同樣的代碼拷貝粘貼就可以了。

          • 設定一個名字空間(Namespace)

          直接在DOCTYPE聲明后面添加如下代碼:

          <html XMLns="http://www.w3.org/1999/xhtml" >

          一個namespace是收集元素類型和屬性名字的一個詳細的DTD,namespace聲明允許你通過一個在線地址指向來識別你的namespace。只要照樣輸入代碼就可以。

          • 聲明你的編碼語言

          為了被瀏覽器正確解釋和通過標識校驗,所有的XHTML文檔都必須聲明它們所使用的編碼語言。代碼如下:

          <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />

          這里聲明的編碼語言是簡體中文GB2312,你如果需要制作繁體內(nèi)容,可以定義為BIG5。

          • 用小寫字母書寫所有的標簽

          XML對大小寫是敏感的,所以,XHTML也是大小寫有區(qū)別的。所有的XHTML元素和屬性的名字都必須使用小寫。否則你的文檔將被W3C校驗認為是無效的。例如下面的代碼是不正確的:

          <TITLE>公司簡介</TITLE>

          正確的寫法是:

          <title>公司簡介</title>

          同樣的,<P>改成<p>,<B>改成<b>等等。這步轉(zhuǎn)換很簡單。
          • 為圖片添加 alt 屬性

          為所有圖片添加alt屬性。alt屬性指定了當圖片不能顯示的時候就顯示供替換文本,這樣做對正常用戶可有可無,但對純文本瀏覽器和使用屏幕閱讀機的用戶來說是至關重要的。只有添加了alt屬性,代碼才會被W3C正確性校驗通過。注意的是我們要添加有意義的alt屬性,象下面這樣的寫法毫無意義:

          <img src="logo_unc_120x30.gif" alt="logo_unc_120x30.gif">

          正確的寫法:

          <img src="logo_unc_120x30.gif" alt="UNC公司標志,點擊返回首頁">

          • 給所有屬性值加引號

          在HTML中,你可以不需要給屬性值加引號,但是在XHTML中,它們必須被加引號。

          例:height="100",而不能是height=100。

          • 關閉所有的標簽

          在XHTML中,每一個打開的標簽都必須關閉。就象這樣:

          <p>每一個打開的標簽都必須關閉。</p>

          <b>HTML可以接受不關閉的標,XHTML就不可以。</b>

          這個規(guī)則可以避免HTML的混亂和麻煩。舉例來說:如果你不關閉圖像標簽,在一些瀏覽器中就可能出現(xiàn)CSS顯示問題。用這種方法能確保頁面和你設計的一樣顯示。需要說明的是:空標簽也要關閉,在標簽尾部使用一個正斜杠"/"來關閉它們自己。例如:

          <br />

          <img src="webstandards.gif" />

          經(jīng)過上述七個規(guī)則處理后,頁面就基本符合XHTML1.0的要求。但我們還需要校驗一下是否真的符合標準了。我們可以利用W3C提供免費校驗服務(http://validator.w3.org/)。發(fā)現(xiàn)錯誤后逐個修改。在后面的資源列表中我們也提供了其他校驗服務和對校驗進行指導的網(wǎng)址,可以作為W3C校驗的補充。當最后通過了XHTML驗證,恭喜你已經(jīng)向網(wǎng)站標準邁出了一大步。不是想象中的那么難吧!

          2.中級改善

          接下來我們的改善主要在結構和表現(xiàn)相分離上,這一步不象第一步那么容易實現(xiàn),我們需要觀念上的轉(zhuǎn)變,以及對CSS2技術的學習和運用。但學習任何新知識都需要花點時間的,不是嗎?訣竅在于邊做邊學。假如你一直采用表格布局,根本沒用過 CSS,也不必急于跟表格布局說再見,你可以先用樣式表代替 font 標簽。隨著你學到的越多,你能做的就越多。好,一起來看看我們需要做哪些事:

          • 用CSS定義元素外觀

          我們在寫標識時已經(jīng)養(yǎng)成習慣,當希望字體大點就用<h1>,希望在前面加個點符號就用<li>。我們總是想<h1>的意思是大的,<li>的意思是圓點,<b>的意思是“加粗文本”。而實際上, <h1>能變成你想要的任何樣子,通過CSS,<h1>能變成小的字體,<p>文本能夠變成巨大的、粗體的,<li>能夠變成一張圖片等等。我們不能強迫用結構元素實現(xiàn)表現(xiàn)效果,我們應該使用CSS來確定那些元素的外觀。例如,我們可以使原來默認的6級標題可以看起來大小一樣:

          h1, h2, h3, h4, h5, h6{ font-family: 宋體, serif; font-size: 12px; }

          • 用結構化元素代替無意義的垃圾

          許多人可能從來都不知道HTML和XHTML元素設計本意是用來表達結構的。我們很多人已經(jīng)習慣用元素來控制表現(xiàn),而不是結構。例如,一段列表內(nèi)容可能會使用下面這樣的標識:

          句子一<br /> 句子二<br /> 句子三<br />

          如果我們采用一個無序列表代替會更好:

          <ul> <li>句子一</li> <li>句子二</li> <li>句子三</li> </ul>

          你或許會說“但是<li>顯示的是一個圓點,我不想用圓點”。事實上,CSS沒有設定元素看起來是什么樣子,你完全可以用CSS關掉圓點。

          • 給每個表格和表單加上id

          給表格或表單賦予一個唯一的、結構的標記,例如

          <table id="menu">

          接下來,在書寫樣式表的時候,你就可以創(chuàng)建一個“menu”的選擇器,并且關聯(lián)一個CSS規(guī)則,用來告訴表格單元、文本標簽和所有其他元素怎么去顯示。這樣,不需要對每個<td>標簽附帶一些多余的、占用帶寬的表現(xiàn)層的高、寬、對齊和背景顏色等等屬性。只需要一個附著的標記(標記“menu”的id標記),你就可以在一個分離的樣式表內(nèi)為干凈的、緊湊的代碼標記進行特別的表現(xiàn)層處理。

          中級改善我們這里先列主要的三點,但其中包含的內(nèi)容和知識點非常多,需要我們逐步學習和掌握,直到最后實現(xiàn)完全采用CSS而不才用任何表格實現(xiàn)布局。

          posted @ 2009-04-08 12:21 張永耀 閱讀(135) | 評論 (0)編輯 收藏

          CREATE USER 'dream2008'@'%' IDENTIFIED BY 'dream1234';
          GRANT ALL PRIVILEGES ON *.* TO 'dream2008'@'localhost' IDENTIFIED BY 'dream1234'WITH GRANT OPTION


          MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

          MYSQL數(shù)據(jù)庫實用學習資料之常用命令集合
          2007-10-12 源自:賽迪網(wǎng) 網(wǎng)友評論 0 條 進入視頻教程
          Mysql數(shù)據(jù)庫是一個多用戶,多線程的關系型數(shù)據(jù)庫,是一個客戶機/服務器結構的應用程序。它是對個人用戶和商業(yè)用戶是免費的.


          Mysql數(shù)據(jù)庫具有以下優(yōu)點:


          1.同時訪問數(shù)據(jù)庫的用戶的數(shù)量不受限制

          2.可以保存超過5千萬條的記錄

          3.是目前市場上現(xiàn)有數(shù)據(jù)庫產(chǎn)品中運行速度最快的數(shù)據(jù)庫系統(tǒng)

          4.用戶權限設置簡單、有效。


          Mysql數(shù)據(jù)庫常用命令:


          啟動Mysql數(shù)據(jù)庫


          C:/>cd Mysql5.0/bin

          C:/Mysql5.0/bin>mysqld –install 安裝Mysql服務

          C:/Mysql5.0/bin>net start mysql 啟動Mysql服務

          請求的服務已經(jīng)啟動。


          連接mysql

          用戶需要提供Mysql的用戶名和密碼來連接服務器,如果服務器不是在本機,則還需要一個主機名或IP來指定服務器的位置。

          C:/Mysql5.0/bin>mysql -h localhost -u root -p

          Enter password: ****

          Welcome to the MySQL monitor. Commands end with ; or /g.

          Your MySQL connection id is 6 to server version: 5.0.18-nt


          Type 'help;' or '/h' for help. Type '/c' to clear the buffer.


          mysql>

          使用一條簡單的查詢語句


          mysql> select version(),current_date;

          mysql> select version();select now();


          新建或刪除一個數(shù)據(jù)庫


          Mysql>create database mydb;

          Mysql> drop database mydb;


          打開的數(shù)據(jù)庫的命令


          mysql> use mysql

          Database changed


          查看數(shù)據(jù)庫的命令


          mysql> show databases;


          查看數(shù)據(jù)表的詳細結構


          mysql> desc func;


          新建數(shù)據(jù)庫


          mysql> create database school;

          Query OK, 1 row affected (0.00 sec)


          新建表


          mysql> create table user01(

          -> id varchar(20) NOT NULL,

          -> userName varchar(10) NOT NULL,

          -> age int(11) default'0',

          -> sex char(2) NOT NULL default'm',

          -> PRIMARY KEY (id)

          -> )TYPE=InnoDB;

          Query OK, 0 rows affected, 1 warning (0.02 sec)mysql>desc student;


          插入和刪除表中的數(shù)據(jù)


          Create table student(stuName varchar(20),age varchar(20),id varchar(20),set0 char(1));


          插入


          mysql> insert into student(id,stuName) values('1','tomcat');

          Query OK, 1 row affected (0.00 sec)


          刪除


          mysql> delete from student where id='1';

          Query OK, 1 row affected (0.01 sec)


          刪除表中所有數(shù)據(jù)


          mysql> truncate table student;

          Query OK, 1 row affected (0.01 sec)


          刪除表


          mysql> create table temp(t varchar(1));

          Query OK, 0 rows affected (0.00 sec)


          mysql> drop table temp;

          Query OK, 0 rows affected (0.00 sec)


          創(chuàng)建新用戶并給予權限


          mysql> grant all privileges on *.* to dbuser@localhost identified by '1234'

          with grant option;


          更改Mysql用戶密碼


          c:/Mysql5.0/bin>mysqladmin -u root -p password 1234

          Enter password: ****


          備份數(shù)據(jù)庫及表


          我們用mysqldump命令來備份數(shù)據(jù)庫

          c:/mysql/bin/>mysqldump –u root –p 3306 mysql>d:/backup.sql

          執(zhí)行此語句將把mydb 備份到D盤的backup.sql文件中


          備份多個數(shù)據(jù)庫表


          c:/mysql/bin/>mysqldump –u root –p 3306 school user01 user >d:/backup.sql

          此句的意思是把school庫中的user01表和user表的內(nèi)容和表的定義備份到D盤backup.sql文件中。


          備份所有的數(shù)據(jù)庫


          c:/myql/bin>mysqldump –u root –p 3306 –all –database>d:backup.sql


          還原Mysql數(shù)據(jù)庫

          c:/mysql/bin/mysql –u root –p 3306 school

          還原其中的一個表


          mysql> source d:/books.sql;

          ERROR:

          Unknown command '/b'.

          Query OK, 0 rows affected (0.00 sec)

          Query OK, 1 row affected (0.00 sec)


          退出Mysql連接


          mysql>quit(exit)


          關閉mysql服務


          C:/mysql/bin>net mysql

          (責任編輯:盧兆林)


          mysql4.0.26 win32 下載及安裝方法
          [color=blue]mysql4.0.26安裝方法:[/color]
            
               解壓下載后的mysql-4.0.26-win32.rar,執(zhí)行setup.exe,默認安裝,一路NEXT就可以了.
              
               安裝完畢后,在“開始”菜單的“運行”中輸入:C:\MySQL\bin\mysqld-nt.exe -install ([color=Red]這個版本建議安裝在C盤[/color]),運行成功之后再在“開始”菜單的“運行”輸入:net mysql start ,將會啟動 MySQL 服務.
              
               默認管理員root 密碼空 請使用PHPMYADMIN 修改.

          [color=red]注: 這個版本建議安裝在C盤,如果安裝后不能啟動,重啟服務器后,請直接到系統(tǒng)服務里面去啟動MYSQL.

          [/color][color=Blue]怎么刪除mysql服務?[/color]
          開始-運行-CMD-進入MYsql的安裝目錄下的bin目錄輸入下面命令
          D:\mysql5\bin>mysqld-nt.exe -remove

           


           

          posted @ 2009-04-02 15:10 張永耀 閱讀(633) | 評論 (0)編輯 收藏

          PHPCMS2008模板教程 默認模板解析及模板制作教程 PHPCMS2008官方默認 模板解讀 首先打開后臺,官方默認模板的存放位置,存放在 ./templates/default/ php cms/ 目錄里,從這里我們就知道如果我們要新那建一套模板應該怎么做了: 方法:把全套模板放在一個文
            

          PHPCMS2008模板教程 默認模板解析及模板制作教程
          首先打開后臺,官方默認模板的存放位置,存放在 ./templates/default/phpcms/ 目錄里,從這里我們就知道如果我們要新那建一套模板應該怎么做了:
          方法:把全套模板放在一個文件夾內(nèi),如:W3ZZ,然后上傳至templates下面,進入后臺,我們在方案管理處就可以看到我們剛剛上傳的W3ZZ了,把該方案設置成默認方案,更新模板緩存,然后更新首頁就完全是我們W3ZZ里面的模板了,就這樣簡單……
          如圖:
           這里就是我們W3ZZ文件夾下面PHPCMS里的所有模板,也就是整站核心的模板,包括首頁,欄目首頁,列表頁,內(nèi)容頁,標簽模板……
          接下來看一下header.html、index.html、footer.html 三個模板文件。這是首頁模板的靈魂!不僅是首頁,其它頁面的頭部文件和頁腳文件也是header.html,footer.html這個不用我說了,因為看看模板中的{template 'phpcms','header'}{template 'phpcms','footer'}說一下這三個參數(shù)的含義:
          第一個template,是整個系統(tǒng)的模板文件夾,也就是前面講的為什么要傳到templates下面的原因,因為系統(tǒng)定義的模板文件夾就為templates,也就是這里的template;第二個phpcms,就是目前你的模板所在phpcms文件夾名稱,如果你要新建一個頭部,只要在phpcms里面新建一個文件,如:header_w3zz.html,然后用{template 'phpcms','header_w3zz'}就可以了,這樣第三個header這個就明白了,是要包含的模板文件的名稱,footer這個就一樣了。
          完整頁面模板是header+index+footer,有了這三部分,首頁模板就可以說結構完整了。
          對應2008的默認模板看:(因為都有默認的,所以就不貼出來了,占地方,也不方便看)
          現(xiàn)在我們開始分析header.html的構造
          1、<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
          http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    w3c國際標準


          2、<meta http-equiv="Content-Type" c />     

          這里定義字符編碼,也就是我們下載的時候是GBK還是UTF-8的,這個{CHARSET}就是編碼變量,這個你在安裝的時候就已經(jīng)確定,所以以后的任何操作都要在該編碼下操作,否則就會出現(xiàn)亂碼,也就是說,出現(xiàn)亂碼這些的原因就在于此。

          3、<title>{$head[title]}</title>               
          這個就是網(wǎng)站名稱-網(wǎng)站標題,在后臺系統(tǒng)設置--基本設置--網(wǎng)站名稱-網(wǎng)站標題,在首頁會兩個都顯示出來,其它的頁面就只顯示網(wǎng)站名稱

          4、<meta c name="keywords" />     
          在后臺系統(tǒng)設置--基本設置--網(wǎng)頁關鍵詞

          5、<meta c name="description" />   
          在后臺系統(tǒng)設置--基本設置--網(wǎng)頁描述

          6、<base href="{SITE_URL}" _fcksavedurl=""{SITE_URL}"" />              
          這是全部定義的,就相當于2007里面的{PHPCMS_PATH},同時2008也用。但是在這里定義之后你的模板里面的調(diào)用任何文件都不用定義{PHPCMS_PATH}了,如:我要調(diào)用images下面的一個圖片,你只要寫<img src="images/w3zz.jpg">這樣就好。{SITE_URL}這個就是你網(wǎng)站的在后臺系統(tǒng)設置--基本設置--網(wǎng)站地址

          7、<link href="favicon.ico" rel="shortcut icon" />   
          這個效果就是:  就是網(wǎng)站地址前面的標識,也就調(diào)用images/favicon.ico文件,這個可以制作,有制作工具

          8、<link href="{SKIN_PATH}{$mod}.css" rel="stylesheet" type="text/css" />   
          引用全部CSS文件,即templates/default/skins/default下面的CSS文件{SKIN_PATH}就是templates/default/skins/default這個地址,{$mod}是當前模型的變量,如:當前是phpcms那就說明CSS文件是phpcms.css

          9、<link rel="alternate" type="application/rss+xml" title="{$head[title]}" href="/rss.php?rssid={$catid}" />  
          網(wǎng)站標題,即訂閱的地址

          10<script language="JavaScript" src="data/config.js"></script>  _fcksavedurl=""data/config.js"></script> "        
          配置js文件      

          <script language="JavaScript" src="images/js/jquery.min.js"></script>  
          框架js文件

          <script language="JavaScript" src="images/js/css.js"></script>              
          cssjs文件

          <script language="JavaScript" src="images/js/common.js"></script>      
          配置js包括添加收藏夾,設置為首頁
          <script language="JavaScript" src="images/js/login.js"></script>            
          登陸js文件

          <script language="JavaScript" src="images/js/validator.js"></script>         
          cookie等的js文件

          出現(xiàn)相對應的問題,首先檢查這里的js是否調(diào)用
           

          11、<body   
          頁面載入的時候調(diào)用輸出catid或者mod,所以說$catid和$mod即欄目ID和模型名稱是全局變量

          12、<div id="top">
          {if isset($MODULE['search'])}
          {php $types = cache_read('search_type.php');}
            <div class="f_r">
               <form name="site_search" action="{$MODULE[search][url]}" target="_blank">
             <input type="hidden" name="type" value="all"/>
                <input type="text" name="q" size="20"/>
                <select>
                  <option value="all">全部</option>
            {loop $types $k $name}
                  <option value="{$k}">{$name}</option>
            {/loop}
                </select>
                <input type="submit" name="s" id="button" value="搜索" />
            </form>
            </div>
          {/if}
            <div class="f_l">
              <div id="div_login" style="display:block">
            <form action="{$MODULE[member][url]}login.php" method="post" name="login" >
            用戶名:<input type="text" name="username" size="12"/>
            密碼:<input type="password" name="password" size="12"/>
               <input type="submit" name="dosubmit" value="登錄" />
               <input type="button" name="register" value="注冊" />
               <input type="hidden" name="cookietime" value="0"/>
            </form>
          </div>
              <div id="div_logined" style="display:none">
            <strong id="logined_username" ></strong>,<a href="{$MODULE[member][url]}">會員中心</a> |
                  <a href="{if $PHPCMS['uc']}{$MODULE[member][url]}logout.php{else}javascript:logout('{$MODULE[member][url]}logout.php?action=ajax');{/if}">退出登錄</a>
          </div>
            </div>
          </div>   

          這就是網(wǎng)站首頁頂站的搜索框和登陸框,以及登陸后的效果。
          如圖: 
          13、<div id="head">
            <div id="logo">
              <a href="{SITE_URL}"><img src="images/logo.gif" _fcksavedurl=""images/logo.gif"" alt="{$PHPCMS[sitename]}" /></a>
              <a href="{SITE_URL}rss.php" target="_blank"><img src="images/rss.jpg" alt="rss信息聚合" /></a></div>
          <div class="ad" id="topbanner"><script language="javascript" src="data/js.php?id=1"></script></div>
          </div>
          <div id="menu">
          <ul>
             <li><a href="" id="menu_phpcms"><span>首頁</span></a></li>
             {tag_一級欄目}
          </ul>
          </div>     
          頭部里面的head  包括logo,訂閱標志,banner,導航
          效果如圖: 

          主體頁面index.html代碼解析
          1、第一個div  <div id="main"></div>   這個主要控制頁面的寬度,框加顯示,具體樣式對應看CSS文件里面的#main這樣就明白了,所以說看了模板就知道CSS樣式是如何的了,這里就告訴需要修改樣式的朋友,要修改哪里,先看那里的模板,然后對應<div>的class或者id去相應的CSS里面查找,然后按著你的想法修改
          同時我們也可以這樣實現(xiàn)。如:我要把整個頁面改成960px的寬度,<div id="main" style="width:960px;"></div>這樣改是最保險的,既不會影響全局的CSS,也不會影響其它頁面的,我只是舉個例子,其它的當然也可以這樣改,這樣操作最方便。
          2、第二個div <div id="main_l"></div>   這個一看就知道是main里面的left了,這就id是main_l,如果要修改可參考1的說明。這個div里面包含了幻燈片,搜索框,欄目首頁列表。下面我們具體分析:
          第一塊:幻燈片 首頁頭條首頁推薦
          <div class="cribox_bdr">
                <!--幻燈片-->
                <div id="slide">{tag_首頁幻燈片}</div>
                <!--熱點文章-->
                <div id="hotnews" class="f_r"> {tag_網(wǎng)站首頁頭條}
                  <ul class="text_list">
                    {tag_網(wǎng)站首頁推薦}
                  </ul>
                </div>
              </div>這個里面有注釋一看就懂了,里面也就是三個標簽,{tag_首頁幻燈片}  {tag_網(wǎng)站首頁頭條}  {tag_網(wǎng)站首頁推薦}這個在PHPCMS2008里面分別通過三個推薦位置來實現(xiàn)的,幻燈片是首頁焦點,首頁頭條就是首頁頭條,首頁推薦就是首頁推薦,這個一看標簽設置就可以明白了,同樣你也可以修改這些設置。標簽設置的教程我以后補上。
          第二塊:搜索框
          <!--{if isset($MODULE['search'])}-->      這里判斷是否安裝最搜索模塊,安裝了就顯示,否則不顯示
          <script type="text/javascript">
          function set_type(type)
          {
          $('#type').val(type);
          $('#search_tag>span').removeClass('selected');
          $('#type_'+type).addClass('selected');
          }
          </script>                   這里是用JSfunction調(diào)用全站搜索的分類,分類設置在模塊管理--全站搜索--分類管理
              <form name="search" action="{$MODULE[search][url]}" target="_blank">    全站搜索的表單里面包含name和動作action
                <div class="search_tag_top mar_10">
                  <p id="search_tag"> <span id="type_all" class="selected" >全部</span> {php $types = cache_read('search_type.php');}       搜索條件的讀取如:圖片,資訊,cache_read()讀取緩存文件函數(shù),只要保存在緩存文件里面的都可以直接用該函數(shù)讀取。
                    {loop $types $type $name} <span id="type_{$type}" >{$name}</span> {/loop}   循環(huán)出全站搜索的分類  $types是在cache_read()函數(shù)讀取緩存的時候?qū)⑺袛?shù)據(jù)保存在該數(shù)組里面的,$type就是你在模塊管理--全站搜索--類別管理的類別,如:news。$name是你想要保存的變量,可以自己定義,注意下面的輸出是由這個變量控制的。
          </p>
                </div>     
                <div class="cribox_bdr_1">
                  <input type="hidden" name="type" value="all" id="type"/>
                  <input type="text" name="q" size="50"/>
                  <input type="submit" name="s" id="button" value="搜索" />
                </div>
              </form>
              <div class="cribox_btm"></div>
          <!--{/if}-->
          效果圖:
           
          posted @ 2009-04-01 10:32 張永耀 閱讀(1312) | 評論 (0)編輯 收藏

          tcp/ip

            TCP/IP協(xié)議(Transmission Control Protocol/Internet Protocol)叫做傳輸控制/網(wǎng)際協(xié)議,又叫網(wǎng)絡通訊協(xié)議,這個協(xié)議是Internet國際互聯(lián)網(wǎng)絡的基礎。
            TCP/IP是用于計算機通信的一組協(xié)議,我們通常稱它為TCP/IP協(xié)議族。它是70年代中期美國國防部為其ARPANET廣域網(wǎng)開發(fā)的網(wǎng)絡體系結構和協(xié)議標準,以它為基礎組建的INTERNET是目前國際上規(guī)模最大的計算機網(wǎng)絡,正因為INTERNET的廣泛使用,使得TCP/IP成了事實上的標準。
            TCP/IP是網(wǎng)絡中使用的基本的通信協(xié)議。雖然從名字上看TCP/IP包括兩個協(xié)議,傳輸控制協(xié)議(TCP)和網(wǎng)際協(xié)議(IP),但TCP/IP實際上是一組協(xié)議,它包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP、TFTP等許多協(xié)議,這些協(xié)議一起稱為TCP/IP協(xié)議。
            TCP/IP由四個層次組成:數(shù)據(jù)鏈路層、網(wǎng)絡層、傳輸層、應用層。
            一數(shù)據(jù)鏈路層
            這是TCP/IP軟件的最低層,負責接收IP數(shù)據(jù)報并通過網(wǎng)絡發(fā)送之,或者從網(wǎng)絡上接收物理幀,抽出IP數(shù)據(jù)報,交給IP層。
            二網(wǎng)絡層
            負責相鄰計算機之間的通信。其功能包括三方面:
            1、處理來自傳輸層的分組發(fā)送請求,收到請求后,將分組裝入IP數(shù)據(jù)報,填充報頭,選擇去往信宿機的路徑,然后將數(shù)據(jù)報發(fā)往適當?shù)木W(wǎng)絡接口。
            2、處理輸入數(shù)據(jù)報:首先檢查其合法性,然后進行尋徑--假如該數(shù)據(jù)報已到達信宿機,則去掉報頭,將剩下部分交給適當?shù)膫鬏攨f(xié)議;假如該數(shù)據(jù)報尚未到達信宿,則轉(zhuǎn)發(fā)該數(shù)據(jù)報。
            3、處理路徑、流控、擁塞等問題。
            三傳輸層
            提供應用程序間的通信。其功能包括:
            1、格式化信息流;
            2、提供可靠傳輸。為實現(xiàn)后者,傳輸層協(xié)議規(guī)定接收端必須發(fā)回確認,并且假如分組丟失,必須重新發(fā)送。
            四應用層
            向用戶提供一組常用的應用程序,比如電子郵件、文件傳輸訪問、遠程登錄等。遠程登錄TELNET使用TELNET協(xié)議提供在網(wǎng)絡其它主機上注冊的接口。TELNET會話提供了基于字符的虛擬終端。文件傳輸訪問FTP使用FTP協(xié)議來提供網(wǎng)絡內(nèi)機器間的文件拷貝功能。
            OSI七層模型與TCP/IP協(xié)議的對應關系。
            OSI中的層 功能 TCP/IP協(xié)議族
            應用層 文件傳輸,電子郵件,文件服務,虛擬終端 TFTP,HTTP,SNMP,F(xiàn)TP,SMTP,DNS,Telnet
            表示層 數(shù)據(jù)格式化,代碼轉(zhuǎn)換,數(shù)據(jù)加密 沒有協(xié)議
            會話層 解除或建立與別的接點的聯(lián)系 沒有協(xié)議
            傳輸層 提供端對端的接口 TCP,UDP
            網(wǎng)絡層 為數(shù)據(jù)包選擇路由 IP,ICMP,RIP,OSPF,BGP,IGMP
            數(shù)據(jù)鏈路層 傳輸有地址的幀以及錯誤檢測功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
            物理層 以二進制數(shù)據(jù)形式在物理媒體上傳輸數(shù)據(jù) ISO2110,IEEE802。IEEE802.2
            TCP/IP協(xié)議中一些常用協(xié)議英文名:
            TCP(Transmission Control Protocol)傳輸控制協(xié)議
            IP(Internet Protocol)網(wǎng)際協(xié)議
            UDP(User Datagram Protocol)用戶數(shù)據(jù)報協(xié)議
            ICMP(Internet Control Message Protocol)互聯(lián)網(wǎng)控制信息協(xié)議
            SMTP(Simple Mail Transfer Protocol)簡單郵件傳輸協(xié)議
            SNMP(Simple Network manage Protocol)簡單網(wǎng)絡管理協(xié)議
            FTP(File Transfer Protocol)文件傳輸協(xié)議
            ARP(Address Resolation Protocol)地址解析協(xié)議
          posted @ 2009-03-31 11:15 張永耀 閱讀(160) | 評論 (0)編輯 收藏

          TCP/IP協(xié)議

           

            TCP/IP(Transmission Control Protocol/Internet Protocol)的簡寫,中文譯名為傳輸控制協(xié)議/互聯(lián)網(wǎng)絡協(xié)議)協(xié)議是Internet最基本的協(xié)議,簡單地說,就是由網(wǎng)絡層的IP協(xié)議和傳輸層的TCP協(xié)議組成的。

            眾所周知,如今電腦上因特網(wǎng)都要作TCP/IP協(xié)議設置,顯然該協(xié)議成了當今地球村“人與人”之間的“牽手協(xié)議”。

            1997年,為了褒獎對因特網(wǎng)發(fā)展作出突出貢獻的科學家,并對TCP/IP協(xié)議作出充分肯定,美國授予為因特網(wǎng)發(fā)明和定義TCP/IP協(xié)議的文頓·瑟夫和卡恩“國家技術金獎”。這無疑使人們認識到TCP/IP協(xié)議的重要性。

            在阿帕網(wǎng)(ARPR)產(chǎn)生運作之初,通過接口信號處理機實現(xiàn)互聯(lián)的電腦并不多,大部分電腦相互之間不兼容,在一臺電腦上完成的工作,很難拿到另一臺電腦上去用,想讓硬件和軟件都不一樣的電腦聯(lián)網(wǎng),也有很多困難。當時美國的狀況是,陸軍用的電腦是DEC系列產(chǎn)品,海軍用的電腦是Honeywell中標機器,空軍用的是IBM公司中標的電腦,每一個軍種的電腦在各自的系里都運行良好,但卻有一個大弊病:不能共享資源。

            當時科學家們提出這樣一個理念:“所有電腦生來都是平等的。”為了讓這些“生來平等”的電腦能夠?qū)崿F(xiàn)“資源共享”就得在這些系統(tǒng)的標準之上,建立一種大家共同都必須遵守的標準,這樣才能讓不同的電腦按照一定的規(guī)則進行“談判”,并且在談判之后能“握手”。

            在確定今天因特網(wǎng)各個電腦之間“談判規(guī)則”過程中,最重要的人物當數(shù)瑟夫(Vinton G.Cerf)。正是他的努力,才使今天各種不同的電腦能按照協(xié)議上網(wǎng)互聯(lián)。瑟夫也因此獲得了與克萊因羅克(“因特網(wǎng)之父”)一樣的美稱“互聯(lián)網(wǎng)之父”。

            瑟夫從小喜歡標新立異,堅強而又熱情。中學會書時,就被允許使用加州大學洛杉磯分校的電腦,他認為“為電腦編程序是個非常激動人心的事,…只要把程序編好,就可以讓電腦做任何事情。”1965年,瑟夫從斯坦福大學畢業(yè)到IBM的一家公司當系統(tǒng)工程師,工作沒多久,瑟夫就覺得知識不夠用,于是到加州大學洛杉磯分校攻讀博士,那時,正逢阿帕網(wǎng)的建立,“接口信號處理機”(IMP)的研試及網(wǎng)絡測評中心的建立,瑟夫也成了著名科學家克萊因羅克手下的一位學生。瑟夫與另外三位年輕人(溫菲爾德、克羅克、布雷登)參與了阿帕網(wǎng)的第一個節(jié)點的聯(lián)接。此后不久,BBN公司對工作中各種情況發(fā)展有很強判斷能力、被公認阿帕網(wǎng)建成作出巨大貢獻的鮑伯·卡恩(Bob Kahn)也來到了加州大學洛杉磯分校。 在那段日子里,往往是卡恩提出需要什么軟件,而瑟夫則通宵達旦地把符合要求的軟件給編出來,然后他們一起測試這些軟件,直至能正常運行。當時的主要格局是這樣的,羅伯茨提出網(wǎng)絡思想設計網(wǎng)絡布局,卡恩設計阿帕網(wǎng)總體結構,克萊因羅克負責網(wǎng)絡測評系統(tǒng),還有眾多的科學家、研究生參與研究、試驗。69年9月阿帕網(wǎng)誕生、運行后,才發(fā)現(xiàn)各個IMP連接的時候,需要考慮用各種電腦都認可的信號來打開通信管道,數(shù)據(jù)通過后還要關閉通道。否則這些IMP不會知道什么時候應該接收信號,什么時候該結束,這就是我們現(xiàn)在所說的通信“協(xié)議”的概念。70年12月制定出來了最初的通信協(xié)議j 由卡恩開發(fā)、瑟夫參與的“網(wǎng)絡控制協(xié)議”(NCP),但要真正建立一個共同的標準很不容易,72年10月國際電腦通信大會結束后,科學家們都在為此而努力。“包切換”理論為網(wǎng)絡之間的聯(lián)接方式提供了理論基礎。卡恩在自己研究的基礎上,認識到只有深入理解各種操作系統(tǒng)的細節(jié)才能建立一種對各種操作系統(tǒng)普適的協(xié)議,73年卡恩請瑟夫一起考慮這個協(xié)議的各個細節(jié),他們這次合作的結果產(chǎn)生了目前在開放系統(tǒng)下的所有網(wǎng)民和網(wǎng)管人員都在使用的“傳輸控制協(xié)議”(TCP,Transsmission-Control Protocol)和“因特網(wǎng)協(xié)議”(IP,Internet Protocol)即TCP/IP協(xié)議。

            通俗而言:TCP負責發(fā)現(xiàn)傳輸?shù)膯栴},一有問題就發(fā)出信號,要求重新傳輸,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡亍6鳬P是給因特網(wǎng)的每一臺電腦規(guī)定一個地址。1974年12月,卡恩、瑟夫的第一份TCP協(xié)議詳細說明正式發(fā)表。當時美國國防部與三個科學家小組簽定了完成TCP/IP的協(xié)議,結果由瑟夫領銜的小組捷足先登,首先制定出了通過詳細定義的TCP/IP協(xié)議標準。當時作了一個試驗,將信息包通過點對點的衛(wèi)星網(wǎng)絡,再通過陸地電纜,再通過衛(wèi)星網(wǎng)絡,再由地面?zhèn)鬏敚灤畾W洲和美國,經(jīng)過各種電腦系統(tǒng),全程9.4萬公里竟然沒有丟失一個數(shù)據(jù)位,遠距離的可靠數(shù)據(jù)傳輸證明了TCP/IP協(xié)議的成功。

            1983年1月1日,運行較長時期曾被人們習慣了的NCP被停止使用,TCP/IP協(xié)議作為因特網(wǎng)上所有主機間的共同協(xié)議,從此以后被作為一種必須遵守的規(guī)則被肯定和應用。正是由于TCP/IP協(xié)議,才有今天“地球村”因特網(wǎng)的巨大發(fā)展。

           
          什么是 TCP/IP?

            TCP/IP 是供已連接因特網(wǎng)的計算機進行通信的通信協(xié)議。

            TCP/IP 指傳輸控制協(xié)議/網(wǎng)際協(xié)議 (Transmission Control Protocol / Internet Protocol)。

            TCP/IP 定義了電子設備(比如計算機)如何連入因特網(wǎng),以及數(shù)據(jù)如何在它們之間傳輸?shù)臉藴省?
           

          TCP/IP協(xié)議介紹

            

          TCP/IP的通訊協(xié)議



            

            這部分簡要介紹一下TCP/IP的內(nèi)部結構,為討論與互聯(lián)網(wǎng)有關的安全問題打下基礎。TCP/IP協(xié)議組之所以流行,部分原因是因為它可以用在各種各樣的信道和底層協(xié)議(例如T1和X.25、以太網(wǎng)以及RS-232串行接口)之上。確切地說,TCP/IP協(xié)議是一組包括TCP協(xié)議和IP協(xié)議,UDP(User Datagram Protocol)協(xié)議、ICMP(Internet Control Message Protocol)協(xié)議和其他一些協(xié)議的協(xié)議組。

            

          TCP/IP整體構架概述



            

            TCP/IP協(xié)議并不完全符合OSI的七層參考模型。傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡層、傳輸層、會話層、表示層和應用層。而TCP/IP通訊協(xié)議采用了4層的層級結構,每一層都呼叫它的下一層所提供的網(wǎng)絡來完成自己的需求。這4層分別為:

            應用層:應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協(xié)議(FTP)、網(wǎng)絡遠程訪問協(xié)議(Telnet)等。

            傳輸層:在此層中,它提供了節(jié)點間的數(shù)據(jù)傳送服務,如傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP)等,TCP和UDP給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)较乱粚又校@一層負責傳送數(shù)據(jù),并且確定數(shù)據(jù)已被送達并接收。

            互連網(wǎng)絡層:負責提供基本的數(shù)據(jù)封包傳送功能,讓每一塊數(shù)據(jù)包都能夠到達目的主機(但不檢查是否被正確接收),如網(wǎng)際協(xié)議(IP)。

            網(wǎng)絡接口層:對實際的網(wǎng)絡媒體的管理,定義如何使用實際網(wǎng)絡(如Ethernet、Serial Line等)來傳送數(shù)據(jù)。

            

          TCP/IP中的協(xié)議



            以下簡單介紹TCP/IP中的協(xié)議都具備什么樣的功能,都是如何工作的:

            1. IP

            網(wǎng)際協(xié)議IP是TCP/IP的心臟,也是網(wǎng)絡層中最重要的協(xié)議。

            IP層接收由更低層(網(wǎng)絡接口層例如以太網(wǎng)設備驅(qū)動程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的,因為IP并沒有做任何事情來確認數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。IP數(shù)據(jù)包中含有發(fā)送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。

            高層的TCP和UDP服務在接收數(shù)據(jù)包時,通常假設包中的源地址是有效的。也可以這樣說,IP地址形成了許多服務的認證基礎,這些服務相信數(shù)據(jù)包是從一個有效的主機發(fā)送來的。IP確認包含一個選項,叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對于一些TCP和UDP的服務來說,使用了該選項的IP包好像是從路徑上的最后一個系統(tǒng)傳遞過來的,而不是來自于它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統(tǒng)來進行平常是被禁止的連接。那么,許多依靠IP源地址做確認的服務將產(chǎn)生問題并且會被非法入侵。

            2. TCP

            如果IP數(shù)據(jù)包中有已經(jīng)封好的TCP數(shù)據(jù)包,那么IP將把它們向‘上’傳送到TCP層。TCP將包排序并進行錯誤檢查,同時實現(xiàn)虛電路間的連接。TCP數(shù)據(jù)包中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。

            TCP將它的信息送到更高層的應用程序,例如Telnet的服務程序和客戶程序。應用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設備驅(qū)動程序和物理介質(zhì),最后到接收方。

            面向連接的服務(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發(fā)送和接收域名數(shù)據(jù)庫),但使用UDP傳送有關單個主機的信息。

            3.UDP

            UDP與TCP位于同一層,但它不管數(shù)據(jù)包的順序、錯誤或重發(fā)。因此,UDP不被應用于那些使用虛電路的面向連接的服務,UDP主要用于那些面向查詢---應答的服務,例如NFS。相對于FTP或Telnet,這些服務需要交換的信息量較小。使用UDP的服務包括NTP(網(wǎng)絡時間協(xié)議)和DNS(DNS也使用TCP)。

            欺騙UDP包比欺騙TCP包更容易,因為UDP沒有建立初始化連接(也可以稱為握手)(因為在兩個系統(tǒng)間沒有虛電路),也就是說,與UDP相關的服務面臨著更大的危險。

            4.ICMP

            ICMP與IP位于同一層,它被用來傳送IP的的控制信息。它主要是用來提供有關通向目的地址的路徑信息。ICMP的‘Redirect’信息通知主機通向其他系統(tǒng)的更準確的路徑,而‘Unreachable’信息則指出路徑有問題。另外,如果路徑不可用了,ICMP可以使TCP連接‘體面地’終止。PING是最常用的基于ICMP的服務。

            5. TCP和UDP的端口結構

            TCP和UDP服務通常有一個客戶/服務器的關系,例如,一個Telnet服務進程開始在系統(tǒng)上處于空閑狀態(tài),等待著連接。用戶使用Telnet客戶程序與服務進程建立一個連接。客戶程序向服務進程寫入信息,服務進程讀出信息并發(fā)出響應,客戶程序讀出響應并向用戶報告。因而,這個連接是雙工的,可以用來進行讀寫。

            兩個系統(tǒng)間的多重Telnet連接是如何相互確認并協(xié)調(diào)一致呢?TCP或UDP連接唯一地使用每個信息中的如下四項進行確認:

            源IP地址 發(fā)送包的IP地址。

            目的IP地址 接收包的IP地址。

            源端口 源系統(tǒng)上的連接的端口。

            目的端口 目的系統(tǒng)上的連接的端口。

            端口是一個軟件結構,被客戶程序或服務進程用來發(fā)送和接收信息。一個端口對應一個16比特的數(shù)。服務進程通常使用一個固定的端口,例如,SMTP使用25、Xwindows使用6000。這些端口號是‘廣為人知’的,因為在建立與特定的主機或服務的連接時,需要這些地址和目的地址進行通訊。

            

          IP協(xié)議



             IP(Internet Protocol)協(xié)議的英文名直譯就是:因特網(wǎng)協(xié)議。從這個名稱我們就可以知道IP協(xié)議的重要性。在現(xiàn)實生活中,我們進行貨物運輸時都是把貨物包裝成一個個的紙箱或者是集裝箱之后才進行運輸,在網(wǎng)絡世界中各種信息也是通過類似的方式進行傳輸?shù)摹P協(xié)議規(guī)定了數(shù)據(jù)傳輸時的基本單元和格式。如果比作貨物運輸,IP協(xié)議規(guī)定了貨物打包時的包裝箱尺寸和包裝的程序。 除了這些以外,IP協(xié)議還定義了數(shù)據(jù)包的遞交辦法和路由選擇。同樣用貨物運輸做比喻,IP協(xié)議規(guī)定了貨物的運輸方法和運輸路線。

            

          TCP協(xié)議



             我們已經(jīng)知道了IP協(xié)議很重要,IP協(xié)議已經(jīng)規(guī)定了數(shù)據(jù)傳輸?shù)闹饕獌?nèi)容,那TCP(Transmission Control Protocol)協(xié)議是做什么的呢?不知大家發(fā)現(xiàn)沒有,在IP協(xié)議中定義的傳輸是單向的,也就是說發(fā)出去的貨物對方有沒有收到我們是不知道的。就好像8毛錢一份的平信一樣。那對于重要的信件我們要寄掛號信怎么辦呢?TCP協(xié)議就是幫我們寄“掛號信”的。TCP協(xié)議提供了可靠的面向?qū)ο蟮臄?shù)據(jù)流傳輸服務的規(guī)則和約定。簡單的說在TCP模式中,對方發(fā)一個數(shù)據(jù)包給你,你要發(fā)一個確認數(shù)據(jù)包給對方。通過這種確認來提供可靠性。

            

          1.1 TCP/IP參考模型



            TCP/IP協(xié)議并不完全符合OSI的七層參考模型。傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數(shù)據(jù)鏈路層、網(wǎng)路層、傳輸層、話路層、表示層和應用層。而TCP/IP通訊協(xié)議采用了4層的層級結構,每一層都呼叫它的下一層所提供的網(wǎng)絡來完成自己的需求。這4層分別為:

            應用層:應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協(xié)議(FTP)、網(wǎng)絡遠程訪問協(xié)議(Telnet)等。

            傳輸層:在此層中,它提供了節(jié)點間的數(shù)據(jù)傳送服務,如傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP)等,TCP和UDP給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)较乱粚又校@一層負責傳送數(shù)據(jù),并且確定數(shù)據(jù)已被送達并接收。

            互連網(wǎng)絡層:負責提供基本的數(shù)據(jù)封包傳送功能,讓每一塊數(shù)據(jù)包都能夠到達目的主機(但不檢查是否被正確接收),如網(wǎng)際協(xié)議(IP)。

            網(wǎng)絡接口層:對實際的網(wǎng)絡媒體的管理,定義如何使用實際網(wǎng)絡(如Ethernet、Serial Line等)來傳送數(shù)據(jù)。

            

          1. 2 網(wǎng)間協(xié)議IP



             Internet 上使用的一個關鍵的底層協(xié)議是網(wǎng)際協(xié)議,通常稱IP協(xié)議。我們利用一個共同遵守的通信協(xié)議,從而使 Internet 成為一個允許連接不同類型的計算機和不同操作系統(tǒng)的網(wǎng)絡。要使兩臺計算機彼此之間進行通信,必須使兩臺計算機使用同一種"語言"。通信協(xié)議正像兩臺計算機交換信息所使用的共同語言,它規(guī)定了通信雙方在通信中所應共同遵守的約定。

            計算機的通信協(xié)議精確地定義了計算機在彼此通信過程的所有細節(jié)。例如,每臺計算機發(fā)送的信息格式和含義,在什么情況下應發(fā)送規(guī)定的特殊信息,以及接收方的計算機應做出哪些應答等等。

            網(wǎng)際協(xié)議IP協(xié)議提供了能適應各種各樣網(wǎng)絡硬件的靈活性,對底層網(wǎng)絡硬件幾乎沒有任何要求,任何一個網(wǎng)絡只要可以從一個地點向另一個地點傳送二進制數(shù)據(jù),就可以使用IP協(xié)議加入 Internet 了。

            如果希望能在 Internet 上進行交流和通信,則每臺連上 Internet 的計算機都必須遵守IP協(xié)議。為此使用 Internet 的每臺計算機都必須運行IP軟件,以便時刻準備發(fā)送或接收信息。

            IP協(xié)議對于網(wǎng)絡通信有著重要的意義:網(wǎng)絡中的計算機通過安裝IP軟件,使許許多多的局域網(wǎng)絡構成了一個龐大而又嚴密的通信系統(tǒng)。從而使 Internet 看起來好像是真實存在的,但實際上它是一種并不存在的虛擬網(wǎng)絡,只不過是利用IP協(xié)議把全世界上所有愿意接入 Internet 的計算機局域網(wǎng)絡連接起來,使得它們彼此之間都能夠通信。

            

          1.3 傳輸控制協(xié)議TCP



            盡管計算機通過安裝IP軟件,從而保證了計算機之間可以發(fā)送和接收資料,但IP協(xié)議還不能解決資料分組在傳輸過程中可能出現(xiàn)的問題。因此,若要解決可能出現(xiàn)的問題,連上 Internet 的計算機還需要安裝TCP協(xié)議來提供可靠的并且無差錯的通信服務。

            TCP協(xié)議被稱作一種端對端協(xié)議。這是因為它為兩臺計算機之間的連接起了重要作用:當一臺計算機需要與另一臺遠程計算機連接時,TCP協(xié)議會讓它們建立一個連接、發(fā)送和接收資料以及終止連接。

            傳輸控制協(xié)議TCP協(xié)議利用重發(fā)技術和擁塞控制機制,向應用程序提供可靠的通信連接,使它能夠自動適應網(wǎng)上的各種變化。即使在 Internet 暫時出現(xiàn)堵塞的情況下,TCP也能夠保證通信的可靠。

            眾所周知, Internet 是一個龐大的國際性網(wǎng)絡,網(wǎng)絡上的擁擠和空閑時間總是交替不定的,加上傳送的距離也遠近不同,所以傳輸資料所用時間也會變化不定。TCP協(xié)議具有自動調(diào)整"超時值"的功能,能很好地適應 Internet 上各種各樣的變化,確保傳輸數(shù)值的正確。

            因此,從上面我們可以了解到:IP協(xié)議只保證計算機能發(fā)送和接收分組資料,而TCP協(xié)議則可提供一個可靠的、可流控的、全雙工的信息流傳輸服務。

            綜上所述,雖然IP和TCP這兩個協(xié)議的功能不盡相同,也可以分開單獨使用,但它們是在同一時期作為一個協(xié)議來設計的,并且在功能上也是互補的。只有兩者的結合,才能保證 Internet 在復雜的環(huán)境下正常運行。凡是要連接到 Internet 的計算機,都必須同時安裝和使用這兩個協(xié)議,因此在實際中常把這兩個協(xié)議統(tǒng)稱作TCP/IP協(xié)議。

            

          1.4 IP地址及其分類



            在Internet上連接的所有計算機,從大型機到微型計算機都是以獨立的身份出現(xiàn),我們稱它為主機。為了實現(xiàn)各主機間的通信,每臺主機都必須有一個唯一的網(wǎng)絡地址。就好像每一個住宅都有唯一的門牌一樣,才不至于在傳輸資料時出現(xiàn)混亂。

            Internet的網(wǎng)絡地址是指連入Internet網(wǎng)絡的計算機的地址編號。所以,在Internet網(wǎng)絡中,網(wǎng)絡地址唯一地標識一臺計算機。

            我們都已經(jīng)知道,Internet是由幾千萬臺計算機互相連接而成的。而我們要確認網(wǎng)絡上的每一臺計算機,靠的就是能唯一標識該計算機的網(wǎng)絡地址,這個地址就叫做IP(Internet Protocol的簡寫)地址,即用Internet協(xié)議語言表示的地址。

            目前,在Internet里,IP地址是一個32位的二進制地址,為了便于記憶,將它們分為4組,每組8位,由小數(shù)點分開,用四個字節(jié)來表示,而且,用點分開的每個字節(jié)的數(shù)值范圍是0~255,如202.116.0.1,這種書寫方法叫做點數(shù)表示法。

            IP地址可確認網(wǎng)絡中的任何一個網(wǎng)絡和計算機,而要識別其它網(wǎng)絡或其中的計算機,則是根據(jù)這些IP地址的分類來確定的。一般將IP地址按節(jié)點計算機所在網(wǎng)絡規(guī)模的大小分為A,B,C三類,默認的網(wǎng)絡屏蔽是根據(jù)IP地址中的第一個字段確定的。

            1. A類地址

            A類地址的表示范圍為:10.0.0.0~126.255.255.255,默認網(wǎng)絡屏蔽為:255.0.0.0;A類地址分配給規(guī)模特別大的網(wǎng)絡使用。A類網(wǎng)絡用第一組數(shù)字表示網(wǎng)絡本身的地址,后面三組數(shù)字作為連接于網(wǎng)絡上的主機的地址。分配給具有大量主機(直接個人用戶)而局域網(wǎng)絡個數(shù)較少的大型網(wǎng)絡。例如IBM公司的網(wǎng)絡。

            2. B類地址

            B類地址的表示范圍為:127.0.0.0~191.255.255.255,默認網(wǎng)絡屏蔽為:255.255.0.0;B類地址分配給一般的中型網(wǎng)絡。B類網(wǎng)絡用第一、二組數(shù)字表示網(wǎng)絡的地址,后面兩組數(shù)字代表網(wǎng)絡上的主機地址。

            3. C類地址

            C類地址的表示范圍為:192.0.0.0~223.255.255.255,默認網(wǎng)絡屏蔽為:255.255.255.0;C類地址分配給小型網(wǎng)絡,如一般的局域網(wǎng),它可連接的主機數(shù)量是最少的,采用把所屬的用戶分為若干的網(wǎng)段進行管理。C類網(wǎng)絡用前三組數(shù)字表示網(wǎng)絡的地址,最后一組數(shù)字作為網(wǎng)絡上的主機地址。

            RFC 1918留出了3塊IP地址空間(1個A類地址段,16個B類地址段,256個C類地址段)作為私有的內(nèi)部使用的地址。在這個范圍內(nèi)的IP地址不能被路由到Internet骨干網(wǎng)上;Internet路由器將丟棄該私有地址。

            IP地址類別 RFC 1918內(nèi)部地址范圍

            A類 10.0.0.0到10.255.255.255

            B類 172.16.0.0到172.31.255.255

            C類 192.168.0.0到192.168.255.255

            使用私有地址將網(wǎng)絡連至Internet,需要將私有地址轉(zhuǎn)換為公有地址。這個轉(zhuǎn)換過程稱為網(wǎng)絡地址轉(zhuǎn)換(Network Address Translation,NAT),通常使用路由器來執(zhí)行NAT轉(zhuǎn)換。

            實際上,還存在著D類地址和E類地址。但這兩類地址用途比較特殊,在這里只是簡單介紹一下:D類地址稱為廣播地址,供特殊協(xié)議向選定的節(jié)點發(fā)送信息時用。E類地址保留給將來使用。

            連接到Internet上的每臺計算機,不論其IP地址屬于哪類都與網(wǎng)絡中的其它計算機處于平等地位,因為只有IP地址才是區(qū)別計算機的唯一標識。所以,以上IP地址的分類只適用于網(wǎng)絡分類。

            在Internet中,一臺計算機可以有一個或多個IP地址,就像一個人可以有多個通信地址一樣,但兩臺或多臺計算機卻不能共享一個IP地址。如果有兩臺計算機的IP地址相同,則會引起異常現(xiàn)象,無論哪臺計算機都將無法正常工作。

            順便提一下幾類特殊的IP地址:

            1. 廣播地址 目的端為給定網(wǎng)絡上的所有主機,一般主機段為全0

            2. 單播地址 目的端為指定網(wǎng)絡上的單個主機地址

            3. 組播地址 目的端為同一組內(nèi)的所有主機地址

            4. 環(huán)回地址 127.0.0.1 在環(huán)回測試和廣播測試時會使用

            

          1.5 子網(wǎng)的劃分



            

            若公司不上Internet,那一定不會煩惱IP地址的問題,因為可以任意使用所有的IP地址,不管是A類或是B類,這個時候不會想到要用子網(wǎng),但若是上Internet那IP地址便彌足珍貴了,目前全球一陣Internet熱,IP地址已經(jīng)愈來愈少了,而所申請的IP地址目前也趨保守,而且只有經(jīng)申請的IP地址能在Internet使用,但對某些公司只能申請到一個C類的IP地址,但又有多個點需要使用,那這時便需要使用到子網(wǎng),這就需要考慮子網(wǎng)的劃分,下面簡介子網(wǎng)的原理及如何規(guī)劃。

            1.5.1 子網(wǎng)掩碼(Subnet Mask)的介紹

            設定任何網(wǎng)絡上的任何設備不管是主機、個人電腦、路由器等皆需要設定IP地址,而跟隨著IP地址的是所謂的子網(wǎng)掩碼(NetMask,Subnet Mask),這個子網(wǎng)掩碼主要的目的是由IP地址中也能獲得網(wǎng)絡編碼,也就是說IP地址和子網(wǎng)掩碼作和而得到網(wǎng)絡編碼,如下所示:

            IP地址

            192.10.10.6 11000000.00001010.00001010.00000110

            子網(wǎng)掩碼

            255.255.255.0 11111111.11111111.11111111.00000000

            AND

            -------------------------------------------------------------------

            Network Number

            192.10.10.0 11000000.00001010.00001010.00000000

            子網(wǎng)掩碼有所謂的默認值,如下所示

            類 IP地址 范圍 子網(wǎng)掩碼

            A 1.0.0.0-126.255.255.255 255.0.0.0

            B 128.0.0.0-191.255.255.255 255.255.0.0

            C 192.0.0.0-223.255.255.255 255.255.255.0

            在預設的子網(wǎng)掩碼(Net Mask)都只有255的值,在談到子網(wǎng)掩碼(Subnet Mask)時這個值便不一定是255了。在完整一組C類地址中如203.67.10.0-203.67.10.255 子網(wǎng)掩碼255.255.255.0,203.67.10.0稱之網(wǎng)絡編碼(Network Number,將IP 地址和子網(wǎng)掩碼作和),而203.67.10.255是廣播的IP地址,所以這兩者皆不能使用,實際只能使用203.67.10.1--203.67.10.254等254個IP地址,這是以255.255.255.0作子網(wǎng)掩碼的結果,而所謂Subnet Msk尚可將整組C類地址分成數(shù)組網(wǎng)絡編碼,這要在子網(wǎng)掩碼上作手腳,若是要將整組C類地址分成2個網(wǎng)絡編碼那子網(wǎng)掩碼設定為255.255.255.128,若是要將整組C類分成8組網(wǎng)絡編碼則子網(wǎng)掩碼要為255.255.255.224,這是怎么來的,由以上知道網(wǎng)絡編碼是由IP地址和子網(wǎng)掩碼作AND而來的,而且將子網(wǎng)掩碼以二進制表示法知道是1的會保留,而為0的去掉

            192.10.10.193--11000000.00001010.00001010.11000001

            255.255.255.0--11111111.11111111.11111111.00000000

            --------------------------------------------------------------

            192.10.10.0--11000000.00001010.00001010.00000000

            以上是以255.255.255.0為子網(wǎng)掩碼的結果,網(wǎng)絡編碼是192.10.10.0,若是使用255.255.255.224作子網(wǎng)掩碼結果便有所不同

            192.10.10.193--11000000.00001010.00001010.11000001

            255.255.255.224--11111111.11111111.11111111.11100000

            --------------------------------------------------------------

            192.10.10.192--11000000.00001010.00001010.11000000

            此時網(wǎng)絡編碼變成了192.10.10.192,這便是子網(wǎng)。那要如何決定所使用的子網(wǎng)掩碼,255.255.255.224以二進制表示法為11111111.11111111.11111111.11100000,變化是在最后一組,11100000便是224,以三個位(Bit)可表示2的3次方便是8個網(wǎng)絡編碼

            子網(wǎng)掩碼二進制表示法可分幾個網(wǎng)絡

            255.255.255.011111111.11111111.11111111.000000001

            255.255.255.128

            11111111.11111111.11111111.100000002

            255.255.255.192

            11111111.11111111.11111111.110000004

            255.255.255.224

            11111111.11111111.11111111.111000008

            255.255.255.240

            11111111.11111111.11111111.1111000016

            255.255.255.248

            11111111.11111111.11111111.1111100032

            255.255.255.252

            11111111.11111111.11111111.1111110064

            以下使用255.255.255.224將C類地址203.67.10.0分成8組網(wǎng)絡編碼,各個網(wǎng)絡編碼及其廣播IP地址及可使用之IP地址序號網(wǎng)絡編碼廣播可使用之IP地址

            (1)203.67.10.0--203.67.10.31

            203.67.10.1--203.67.10.30

            (2)203.67.10.32--203.67.10.63

            203.67.10.33--203.67.10.62

            (3)203.67.10.64--203.67.10.95

            203.67.10.65--203.67.10.94

            (4)203.67.10.96--203.67.10.127

            203.67.10.97--203.67.10.126

            (5)203.67.10.128--203.67.10.159

            203.67.10.129--203.67.10.158

            (6)203.67.10.160--203.67.10.191

            203.67.10.161--203.67.10.190

            (7)203.67.10.192--203.67.10.223

            203.67.10.193--203.67.10.222

            (8)203.67.10.224--203.67.10.255

            203.67.10.225--203.67.10.254

            可驗證所使用的IP地址是否如上表所示

            203.67.10.115--11001011.01000011.00001010.01110011

            255.255.255.224--11111111.11111111.11111111.11100000

            --------------------------------------------------------------

            203.67.10.96--11001011.01000011.00001010.01100000

            203.67.10.55--11001011.01000011.00001010.00110111

            255.255.255.224--11111111.11111111.11111111.11100000

            --------------------------------------------------------------

            203.67.10.32--11001011.01000011.00001010.00100000

            其它的子網(wǎng)掩碼所分成的網(wǎng)絡編碼可自行以上述方法自行推演出來。

            1.5.3 子網(wǎng)的應用

            使用子網(wǎng)是要解決只有一組C類地址但需要數(shù)個網(wǎng)絡編碼的問題,并不是解決IP地址不夠用的問題,因為使用子網(wǎng)反而能使用的IP地址會變少,子網(wǎng)通常是使用在跨地域的網(wǎng)絡互聯(lián)之中,兩者之間使用路由器連線,同時也上Internet,但只申請到一組C 類IP地址,過路由又需不同的網(wǎng)絡,所以此時就必須使用到子網(wǎng),當然二網(wǎng)絡間也可以遠程橋接(Remote Bridge,字面翻譯)連接,那便沒有使用子網(wǎng)的問題。

            網(wǎng)關地址

            若要使兩個完全不同的網(wǎng)絡(異構網(wǎng))連接在一起,一般使用網(wǎng)關,在Internet中兩個網(wǎng)絡也要通過一臺稱為網(wǎng)關的計算機實現(xiàn)互聯(lián)。這臺計算機能根據(jù)用戶通信目標計算機的IP地址,決定是否將用戶發(fā)出的信息送出本地網(wǎng)絡,同時,它還將外界發(fā)送給屬于本地網(wǎng)絡計算機的信息接收過來,它是一個網(wǎng)絡與另一個網(wǎng)絡相聯(lián)的通道。為了使TCP/IP協(xié)議能夠?qū)ぶ罚撏ǖ辣毁x予一個IP地址,這個IP地址稱為網(wǎng)關地址。

            完美測試TCP/IP協(xié)議簡介

            安裝網(wǎng)絡硬件和網(wǎng)絡協(xié)議之后,我們一般要進行TCP/IP協(xié)議的測試工作,那么怎樣測試才算是比較全面的測試呢?我們認為,全面的測試應包括局域網(wǎng)和互聯(lián)網(wǎng)兩個方面,因此應從局域網(wǎng)和互聯(lián)網(wǎng)兩個方面測試,以下是我們在實際工作中利用命令行測試TCP/IP配置的步驟:

            1、 單擊“開始”/“運行”,輸入CMD按回車,打開命令提示符窗口。

            2、 首先檢查IP地址、子網(wǎng)掩碼、默認網(wǎng)關、DNS服務器地址是否正確,輸入命令ipconfig /all,按回車。此時顯示了你的網(wǎng)絡配置,觀查是否正確。

            3、 輸入ping 127.0.0.1,觀查網(wǎng)卡是否能轉(zhuǎn)發(fā)數(shù)據(jù),如果出現(xiàn)“Request timed out”,表明配置差錯或網(wǎng)絡有問題。

            4、 Ping一個互聯(lián)網(wǎng)地址,如ping 202.102.128.68,看是否有數(shù)據(jù)包傳回,以驗證與互聯(lián)網(wǎng)的連接性。

            5、 Ping 一個局域網(wǎng)地址,觀查與它的連通性。

            6、 用nslookup測試DNS解析是否正確,輸入如nslookup www.ccidnet.com,查看是否能解析。

            如果你的計算機通過了全部測試,則說明網(wǎng)絡正常,否則網(wǎng)絡可能有不同程度的問題。在此不展開詳述。不過,要注意,在使用 ping命令時,有些公司會在其主機設置丟棄ICMP數(shù)據(jù)包,造成你的ping命令無法正常返回數(shù)據(jù)包,不防換個網(wǎng)站試試。

            補充:
           

          TCP/IP 協(xié)議簇

            TCP/IP(Transmission Control Protocol/Internet Protocol)已成為一個事實上的工業(yè)

            標準。

            TCP/IP是一組協(xié)議的代名詞,它還包括許多協(xié)議,組成了TCP/IP協(xié)議簇。

            TCP/IP協(xié)議簇分為四層,IP位于協(xié)議簇的第二層(對應OSI的第三層),TCP位于協(xié)議簇的第

            三層(對應OSI的第四層)。

            TCP和IP是TCP/IP協(xié)議簇的中間兩層,是整個協(xié)議簇的核心,起到了承上啟下的作用。

            1、接口層

            TCP/IP的最低層是接口層,常見的接口層協(xié)議有:

            Ethernet 802.3、Token Ring 802.5、X.25、Frame reley、HDLC、PPP等。

            2、網(wǎng)絡層

            網(wǎng)絡層包括:IP(Internet Protocol)協(xié)議、ICMP(Internet Control Message Protocol)

            控制報文協(xié)議、ARP(Address Resolution Protocol)地址轉(zhuǎn)換協(xié)議、RARP(Reverse ARP)反向

            地址轉(zhuǎn)換協(xié)議。

            IP是網(wǎng)絡層的核心,通過路由選擇將下一跳IP封裝后交給接口層。IP數(shù)據(jù)報是無連接服務

            。

            ICMP是網(wǎng)絡層的補充,可以回送報文。用來檢測網(wǎng)絡是否通暢。

            Ping命令就是發(fā)送ICMP的echo包,通過回送的echo relay進行網(wǎng)絡測試。

            ARP是正向地址解析協(xié)議,通過已知的IP,尋找對應主機的MAC地址。

            RARP是反向地址解析協(xié)議,通過MAC地址確定IP地址。比如無盤工作站和DHCP服務。

            3、傳輸層

            傳輸層協(xié)議主要是:傳輸控制協(xié)議TCP(Transmission Control Protocol)和用戶數(shù)據(jù)報協(xié)

            議UDP(User Datagram rotocol)。

            TCP是面向連接的通信協(xié)議,通過三次握手建立連接,通訊時完成時要拆除連接,由于TCP

            是面向連接的所以只能用于點對點的通訊。

            TCP提供的是一種可靠的數(shù)據(jù)流服務,采用“帶重傳的肯定確認”技術來實現(xiàn)傳輸?shù)目煽?br />
            性。TCP還采用一種稱為“滑動窗口”的方式進行流量控制,所謂窗口實際表示接收能力,用

            以限制發(fā)送方的發(fā)送速度。

            UDP是面向無連接的通訊協(xié)議,UDP數(shù)據(jù)包括目的端口號和源端口號信息,由于通訊不需要

            連接,所以可以實現(xiàn)廣播發(fā)送。

            UDP通訊時不需要接收方確認,屬于不可靠的傳輸,可能會出丟包現(xiàn)象,實際應用中要求

            在程序員編程驗證。

            4、應用層

            應用層一般是面向用戶的服務。如FTP、TELNET、DNS、SMTP、POP3。

            FTP(File Transmision Protocol)是文件傳輸協(xié)議,一般上傳下載用FTP服務,數(shù)據(jù)端口

            是20H,控制端口是21H。

            Telnet服務是用戶遠程登錄服務,使用23H端口,使用明碼傳送,保密性差、簡單方便。

            DNS(Domain Name Service)是域名解析服務,提供域名到IP地址之間的轉(zhuǎn)換。

            SMTP(Simple Mail Transfer Protocol)是簡單郵件傳輸協(xié)議,用來控制信件的發(fā)送、中

            轉(zhuǎn)。 

            POP3(Post Office Protocol 3)是郵局協(xié)議第3版本,用于接收郵件。

            數(shù)據(jù)格式:

            數(shù)據(jù)幀:幀頭+IP數(shù)據(jù)包+幀尾 (幀頭包括源和目標主機MAC地址及類型,幀尾是校驗字)

            IP數(shù)據(jù)包:IP頭部+TCP數(shù)據(jù)信息 (IP頭包括源和目標主機IP地址、類型、生存期等)

            TCP數(shù)據(jù)信息:TCP頭部+實際數(shù)據(jù) (TCP頭包括源和目標主機端口號、順序號、確認號、校

            驗字等)
          posted @ 2009-03-31 10:54 張永耀 閱讀(192) | 評論 (0)編輯 收藏

          TCP:Transmission Control Protocol 傳輸控制協(xié)議

            首先,TCP建立連接之后,通信雙方都同時可以進行數(shù)據(jù)的傳輸,其次,他是全雙工的;在保證可靠性上,采用超時重傳和捎帶確認機制。

            在流量控制上,采用滑動窗口協(xié)議,協(xié)議中規(guī)定,對于窗口內(nèi)未經(jīng)確認的分組需要重傳。

            在擁塞控制上,采用慢啟動算法。

            注解:該協(xié)議主要用于在主機間建立一個虛擬連接,以實現(xiàn)高可靠性的數(shù)據(jù)包交換。IP協(xié)議可以進行IP數(shù)據(jù)包的分割和組裝,但是通過IP協(xié)議并不能清楚地了解到數(shù)據(jù)包是否順利地發(fā)送給目標計算機。而使用TCP協(xié)議就不同了,在該協(xié)議傳輸模式中在將數(shù)據(jù)包成功發(fā)送給目標計算機后,TCP會要求發(fā)送一個確認;如果在某個時限內(nèi)沒有收到確認,那么TCP將重新發(fā)送數(shù)據(jù)包。另外,在傳輸?shù)倪^程中,如果接收到無序、丟失以及被破壞的數(shù)據(jù)包,TCP還可以負責恢復。

            傳輸控制協(xié)議(Transmission Control Protocol,TCP)是一種面向連接的、可靠的、基于字節(jié)流的運輸層通信協(xié)議,通常由IETF的RFC 793說明。在簡化的計算機網(wǎng)絡OSI模型中,它完成運輸層所指定的功能。

            什么是TCP/IP?

            TCP/IP(Transmission Control Protocol/Internet Protocol) 即傳輸控制協(xié)議/網(wǎng)間協(xié)議,是一個工業(yè)標準的協(xié)議集,它是為廣域網(wǎng)(WANs)設計的。它是由ARPANET網(wǎng)的研究機構發(fā)展起來的。

            有時我們將TCP/IP描述為互聯(lián)網(wǎng)協(xié)議集\"Internet Protocol Suite\",TCP和IP是其中的兩個協(xié)議(后面將會介紹)。由于TCP和IP是大家熟悉的協(xié)議,以至于用TCP/IP或IP/TCP這個詞代替了整個協(xié)議集。這盡管有點奇怪,但沒有必要去爭論這個習慣。例如,有時我們討論NFS 是基于TCP/IP時,盡管它根本沒用到TCP(只用到IP,和另一種交互式 協(xié)議UDP而不是TCP)。

            Internet是網(wǎng)絡的集合,包括ARPANET、NSFNET、分布在各地的局域網(wǎng)、以及其它類型的網(wǎng)絡,如(DDN,Defense Data Network美國國防數(shù)據(jù)網(wǎng)絡),這些統(tǒng)稱為Internet。所有這些大大小小的網(wǎng)絡互聯(lián)在一起。(因為大多數(shù)網(wǎng)絡基本協(xié)議是由DDN組織開發(fā)的,所以以前有時DDN與Internet在某種意義上具有相同的含義)。網(wǎng)絡上的用戶可以互相傳送信息,除一些有授權限制和安全考慮外。一般的講,互聯(lián)網(wǎng)協(xié)議文檔案是Internet委員會自己采納的基本標準。 TCP/IP標準與其說由委員會指定,倒不如說由\"輿論\"來開發(fā)的。 任何人都可以提供一個文檔,以RFC(Request for Comment需求注釋) 方式公布。

            TCP/IP的標準在一系列稱為RFC的文檔中公布。文檔由技術專家、特別工作組、或RFC編輯修訂。公布一個文檔時,該文檔被賦予一個RFC量,如RFC959說明FTP、RFC793說明TCP、RFC791說明IP等。 最初的RFC一直保留而從來不會被更新,如果修改了該文檔,則該文檔又以一個新號碼公布。因此,重要的是要確認你擁有了關于某個專題的最新RFC文檔。文后會列出主要的RFC文檔號。

            不管怎樣,TCP/IP是一個協(xié)議集。為應用提供一些\"低級\"功能,這些包括IP、TCP、UDP。其它是執(zhí)行特定任務的應用協(xié)議,如計算機間傳送文件、發(fā)送電子郵件、或找出誰注冊到另外一臺計算機。因此, 最重要的\"商業(yè)\"TCP/IP服務有:

            * 文件傳送File Transfer。

            文件傳送協(xié)議FTP(File Transfer Protocol)允許用戶從一臺計算機到另一臺取得文件,或發(fā)送文件到另外一臺計算機。從安全性方面考慮,需要用戶指定一個使用其它計算機的用戶名和口令。它不同與NFS(Network File System)和Netbios協(xié)議。一旦你要訪問另一臺 系統(tǒng)中的文件,任何時刻都要運行FTP。而且你只能拷貝文件到自己的機器中去來使用它。(RFC 959中關于FTP的說明)

            * 遠程登錄Remote login

            網(wǎng)絡終端協(xié)議TELNET允許用戶登錄到網(wǎng)絡上任一計算機上。你可啟動一個遠程進程連接到指定的計算機,直到進程結束,期間你所鍵入的內(nèi)容被送到所指定的計算機。值得注意的是,這時你實際上是與你的計算機進行對話。TELENET程序使得你的計算機在整個過程中不見了,所敲的每一個字符直接送到所登錄的計算機系統(tǒng)。一般的說,這種遠程連接是通過類式撥號連接的,也就是,撥通后,遠程系統(tǒng)提示你輸入注冊名和口令,退出遠程系統(tǒng),TELNET程序也就退出,你又與自己的計算機對話了。微電腦中的TELNET工具一般含有一個終端仿真程序。

            * 計算機郵件Mail

            允許你發(fā)送消息給其它計算機的用戶。通常,人們趨向于使用指定的一臺或兩臺計算機。計算機郵件系統(tǒng)只需你簡單地往另一用戶的郵件文件中添加信息,但隨之產(chǎn)生問題,使用的微電腦的環(huán)境不同,還有重要的是宏(MICRO)不適合于接受計算機郵件。為了發(fā)送電子郵件,郵件軟件希望連接到目的計算機,如果是微電腦,也許它已關機,或者正在運行另一個應用程序呢?出于這種原因,通常由一個較大的系統(tǒng)來處理這些郵件,也就是一個一直運行著的郵件服務器。郵件軟件成為用戶從郵件服務器取回郵件的一個界面。

            任何一個的TCP/IP工具提供上述這些服務。這些傳統(tǒng)的應用功能在基于TCP/IP的網(wǎng)絡中一直扮演非常重要的角色。目前情況有點變化,這些功能使用也發(fā)生變化,如老系統(tǒng)的改造,計算機的發(fā)展等,出現(xiàn)了各種安裝版本,如:微電腦、工作站、小型機、和巨型機等。這些計算機好像在一起完成指定的任務,盡管有時看來像是只用到某個指定 的計算機,但它是通過網(wǎng)絡得到其它計算機系統(tǒng)的服務。服務器Server是為網(wǎng)絡上其它提供指定服務的系統(tǒng),客戶Client是得到這種服務的另外計算機系統(tǒng)。(值得注意的是,服務/客戶機不一定是不同的計算機,有可能是同一計算機中的不同運行程序)。以下是幾種目前計算機上典型的一些服務,這些服務可在TCP/IP網(wǎng)絡上調(diào)用。

            * 網(wǎng)絡文件系統(tǒng)(NFS)

            這種訪問另一計算機的文件的方法非常接近于流行的FTP。網(wǎng)絡文件系統(tǒng)提供磁盤或設備服務,而無需特定的網(wǎng)絡實用程序來訪問另一系統(tǒng)的文件。可以簡單地認為它是一個外加的磁盤驅(qū)動器。這種額外\"虛擬\"磁盤驅(qū)動器就是其它計算機系統(tǒng)的磁盤。這非常有用。你只需加大幾臺計算機的磁盤容量,就可使網(wǎng)絡上其他用戶訪問它,且不說所帶來的經(jīng)濟效益,它還能夠讓幾臺工作的計算機共享相同的文件。它也使得系統(tǒng)維護和備份易如反掌,因為再不必為大量的不同機器上 的文件的升級和備份而擔心。

            * 遠程打印(Remote printing)

            允許你使用其它計算機上的打印機,好像這些打印機直接連到你的計算機上。

            * 遠程執(zhí)行(Remote execution)

            允許你請求運行在不同計算機上的特殊程序。當你在一個很小的計算機上運行一個需要大機系統(tǒng)資源的程序時,這時候遠程執(zhí)行非常有用。

            * 名字服務器(Name servers)

            在一個大的系統(tǒng)安裝過程中,需要用到大量的各種名字,包括用戶名、口令,姓名、網(wǎng)絡地址、帳號等,管理這些是非常令人乏味的。因此將這些數(shù)據(jù)形成數(shù)據(jù)庫,放到一個小系統(tǒng)中去,其它系統(tǒng)通過網(wǎng)絡來訪問這些數(shù)據(jù)。

            * 終端服務器(Terminal servers)

            很多的終端連接安裝不再直接將終端連到計算機,取而代之的是,將他們連接到終端服務器上。終端服務器是一個小的計算機,它只需知道怎樣運行TELNET(或其它一些完成遠程登錄的協(xié)議)。如果你的終端想連上去,只用鍵入要連的計算機名就可。通常有可能同時有幾個這種連接,這時終端服務器采用快速開關技術來切換。

            上述所描述的一些協(xié)議是由Berkeley, Sun,或其它組織定義的。因此,它們不是互聯(lián)網(wǎng)協(xié)議集(Internet Protocol Suite)的一部分, 只是使用到TCP/IP的工具,如同一般的TCP/IP 應用協(xié)議。因為協(xié)議的定義不一致,并且商業(yè)支持的TCP/IP工具廣泛應用,也許會把這些協(xié)議作為互聯(lián)協(xié)議集中的一部分。上述列出的只是基于TCP/IP部分服務的一些簡單例子,但包含了一些\"主要\"的應用。

            TCP的服務

            TCP協(xié)議提供的是可靠的、面向連接的傳輸控制協(xié)議,即在傳輸數(shù)據(jù)前要先建立邏輯連接,然后再傳輸數(shù)據(jù),最后釋放連接3個過程。TCP提供端到端、全雙工通信;采用字節(jié)流方式,如果字節(jié)流太長,將其分段;提供緊急數(shù)據(jù)傳送功能。

            盡管TCP和UDP都使用相同的網(wǎng)絡層(IP),TCP卻向應用層提供與UDP完全不同的服務。

            TCP提供一種面向連接的、可靠的字節(jié)流服務。

            面向連接意味著兩個使用TCP的應用(通常是一個客戶和一個服務器)在彼此交換數(shù)據(jù)之前必須先建立一個TCP連接。這一過程與打電話很相似,先撥號振鈴,等待對方摘機說“喂”,然后才說明是誰。

            在一個TCP連接中,僅有兩方進行彼此通信。廣播和多播不能用于TCP。

            TCP通過下列方式來提供可靠性:

            •應用數(shù)據(jù)被分割成TCP認為最適合發(fā)送的數(shù)據(jù)塊。這和UDP完全不同,應用程序產(chǎn)生的數(shù)據(jù)報長度將保持不變。由TCP傳遞給IP的信息單位稱為報文段或段(segment)TCP如何確定報文段的長度。

            •當TCP發(fā)出一個段后,它啟動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到一個確認,將重發(fā)這個報文段。•當TCP收到發(fā)自TCP連接另一端的數(shù)據(jù),它將發(fā)送一個確認。這個確認不是立即發(fā)送,通常將推遲幾分之一秒

            •TCP將保持它首部和數(shù)據(jù)的檢驗和。這是一個端到端的檢驗和,目的是檢測數(shù)據(jù)在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,TCP將丟棄這個報文段和不確認收到此報文段(希望發(fā)端超時并重發(fā))。

            •既然TCP報文段作為IP數(shù)據(jù)報來傳輸,而IP數(shù)據(jù)報的到達可能會失序,因此TCP報文段的到達也可能會失序。如果必要,TCP將對收到的數(shù)據(jù)進行重新排序,將收到的數(shù)據(jù)以正確的順序交給應用層。

            •既然IP數(shù)據(jù)報會發(fā)生重復,TCP的接收端必須丟棄重復的數(shù)據(jù)。

            •TCP還能提供流量控制。TCP連接的每一方都有固定大小的緩沖空間。TCP的接收端只允許另一端發(fā)送接收端緩沖區(qū)所能接納的數(shù)據(jù)。這將防止較快主機致使較慢主機的緩沖區(qū)溢出。

            兩個應用程序通過TCP連接交換8bit字節(jié)構成的字節(jié)流。TCP不在字節(jié)流中插入記錄標識符。我們將這稱為字節(jié)流服務(bytestreamservice)。如果一方的應用程序先傳10字節(jié),又傳20字節(jié),再傳50字節(jié),連接的另一方將無法了解發(fā)方每次發(fā)送了多少字節(jié)。收方可以分4次接收這80個字節(jié),每次接收20字節(jié)。一端將字節(jié)流放到TCP連接上,同樣的字節(jié)流將出現(xiàn)在TCP連接的另一端。

            另外,TCP對字節(jié)流的內(nèi)容不作任何解釋。TCP不知道傳輸?shù)臄?shù)據(jù)字節(jié)流是二進制數(shù)據(jù),還是ASCII字符、EBCDIC字符或者其他類型數(shù)據(jù)。對字節(jié)流的解釋由TCP連接雙方的應用層解釋。

            這種對字節(jié)流的處理方式與Unix操作系統(tǒng)對文件的處理方式很相似。Unix的內(nèi)核對一個應用讀或?qū)懙膬?nèi)容不作任何解釋,而是交給應用程序處理。對Unix的內(nèi)核來說,它無法區(qū)分一個二進制文件與一個文本文件。

            TCP是因特網(wǎng)中的傳輸層協(xié)議,使用三次握手協(xié)議建立連接。當主動方發(fā)出SYN連接請求后,等待對方回答SYN,ACK。這種建立連接的方法可以防止產(chǎn)生錯誤的連接,TCP使用的流量控制協(xié)議是可變大小的滑動窗口協(xié)議。第一次握手:建立連接時,客戶端發(fā)送SYN包(SEQ=x)到服務器,并進入SYN_SEND狀態(tài),等待服務器確認。第二次握手:服務器收到SYN包,必須確認客戶的SYN(ACK=x+1),同時自己也送一個SYN包(SEQ=y),即SYN+ACK包,此時服務器進入SYN_RECV狀態(tài)。第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發(fā)送確認包ACK(ACK=y+1),此包發(fā)送完畢,客戶端和服務器時入Established狀態(tài),完成三次握手。

            TCP建立連接時的三次握手
          posted @ 2009-03-31 10:06 張永耀 閱讀(172) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 瓮安县| 读书| 米林县| 福安市| 江西省| 夏津县| 广饶县| 文化| 元朗区| 三门县| 五河县| 砀山县| 东明县| 安图县| 台南县| 崇左市| 来安县| 留坝县| 郯城县| 香河县| 皋兰县| 基隆市| 宁海县| 六枝特区| 陵川县| 芜湖县| 昌乐县| 汝南县| 宣汉县| 延边| 维西| 温宿县| 广平县| 杭锦后旗| 天台县| 锦州市| 河东区| 丹棱县| 始兴县| 内乡县| 抚松县|