<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    GONE WITH THE WIND

    --tomorrow is another day

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

    2009年4月13日 #

    LI代碼的格式化:
    A).運(yùn)用CSS格式化列表符: ul li{
    list-style-type:none;
    }
    B).假如你想將列表符換成圖像,則: ul li{
    list-style-type:none;
    list-style-image: url(/blog/images/icon.gif);
    }
    C).為了左對(duì)齊,可以用如下代碼: 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; }說(shuō)明:display:block;這一行必須要加的,這樣才能塊狀顯示!

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


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

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

    type="square"
    設(shè)定符號(hào)款式,其值有三種,如下,內(nèi)定為 type="disc":
    符號(hào) 是當(dāng) type="disc" 時(shí)的列項(xiàng)符號(hào)。
    符號(hào) 是當(dāng) type="circle" 時(shí)的列項(xiàng)符號(hào)。
    符號(hào) 是當(dāng) type="square" 時(shí)的列項(xiàng)符號(hào)。

    <ul>是項(xiàng)目列表,<li>是列表項(xiàng),項(xiàng)目列表就是用符號(hào)來(lái)列的,所以你列出來(lái)默認(rèn)的就是黑點(diǎn)啦,還有一個(gè)是<ol>這個(gè)是編號(hào)列表,用數(shù)字來(lái)列的,也是用<li>做列表項(xiàng)

     


    <li>是 list item 即列表項(xiàng),但列表有很兩種,所以外面得有 <ul> 或者 <ol> 用來(lái)區(qū)別無(wú)序列表(小點(diǎn)點(diǎn))和有序列表(1,2,3...)。

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

    2009年4月8日 #

    (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 張永耀 閱讀(183) | 評(píng)論 (0)編輯 收藏

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

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

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

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

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

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

      上面的例子用一行來(lái)定義font屬性,分別是:font-style font-weight font-size line-height font-family;而color設(shè)定文字顏色需要單獨(dú)進(jìn)行定義。

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

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



    您好,{UserName}


    {WelcomeMessage}



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

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

    //一般來(lái)說(shuō)這種全局變量放在單獨(dú)的一個(gè)文件中,便于維護(hù)
    $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();
    ?>

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

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

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

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

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

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

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

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

    關(guān)于更多,請(qǐng)閱讀CSS高級(jí)指南的布局。


    在XHTML中所有的標(biāo)簽都必須小寫(xiě)和關(guān)閉。沒(méi)有閉合標(biāo)簽的(如br和img)必須用英文半角正斜杠“/”在后面自關(guān)閉(如<br />)。注意在斜杠前應(yīng)該有一個(gè)英文半角空格。

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

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

    文檔主體應(yīng)該從 p, h1,h2, h3,h4,h5,h6,div, pre,address,ins或者del開(kāi)始。

    屬性
    所有的屬性必須是小寫(xiě)的,它們的值也要用英文半角引號(hào)括(")起來(lái)。

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

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

    目標(biāo)屬性target不是一個(gè)合法的屬性。慶幸吧,它有些癲狂。

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

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

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

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

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

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

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

    1.初級(jí)改善

    • 為頁(yè)面添加正確的DOCTYPE

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

    (1)過(guò)渡型(Transitional )

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

    (2)嚴(yán)格型(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">

    對(duì)于我們初級(jí)改善來(lái)說(shuō),只要選用過(guò)渡型的聲明就可以了。它依然可以兼容你的表格布局、表現(xiàn)標(biāo)識(shí)等,不至于讓你覺(jué)得變化太大,難以掌握。

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

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

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

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

    一個(gè)namespace是收集元素類型和屬性名字的一個(gè)詳細(xì)的DTD,namespace聲明允許你通過(guò)一個(gè)在線地址指向來(lái)識(shí)別你的namespace。只要照樣輸入代碼就可以。

    • 聲明你的編碼語(yǔ)言

    為了被瀏覽器正確解釋和通過(guò)標(biāo)識(shí)校驗(yàn),所有的XHTML文檔都必須聲明它們所使用的編碼語(yǔ)言。代碼如下:

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

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

    • 用小寫(xiě)字母書(shū)寫(xiě)所有的標(biāo)簽

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

    <TITLE>公司簡(jiǎn)介</TITLE>

    正確的寫(xiě)法是:

    <title>公司簡(jiǎn)介</title>

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

    為所有圖片添加alt屬性。alt屬性指定了當(dāng)圖片不能顯示的時(shí)候就顯示供替換文本,這樣做對(duì)正常用戶可有可無(wú),但對(duì)純文本瀏覽器和使用屏幕閱讀機(jī)的用戶來(lái)說(shuō)是至關(guān)重要的。只有添加了alt屬性,代碼才會(huì)被W3C正確性校驗(yàn)通過(guò)。注意的是我們要添加有意義的alt屬性,象下面這樣的寫(xiě)法毫無(wú)意義:

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

    正確的寫(xiě)法:

    <img src="logo_unc_120x30.gif" alt="UNC公司標(biāo)志,點(diǎn)擊返回首頁(yè)">

    • 給所有屬性值加引號(hào)

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

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

    • 關(guān)閉所有的標(biāo)簽

    在XHTML中,每一個(gè)打開(kāi)的標(biāo)簽都必須關(guān)閉。就象這樣:

    <p>每一個(gè)打開(kāi)的標(biāo)簽都必須關(guān)閉。</p>

    <b>HTML可以接受不關(guān)閉的標(biāo),XHTML就不可以。</b>

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

    <br />

    <img src="webstandards.gif" />

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

    2.中級(jí)改善

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

    • 用CSS定義元素外觀

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

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

    • 用結(jié)構(gòu)化元素代替無(wú)意義的垃圾

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

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

    如果我們采用一個(gè)無(wú)序列表代替會(huì)更好:

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

    你或許會(huì)說(shuō)“但是<li>顯示的是一個(gè)圓點(diǎn),我不想用圓點(diǎn)”。事實(shí)上,CSS沒(méi)有設(shè)定元素看起來(lái)是什么樣子,你完全可以用CSS關(guān)掉圓點(diǎn)。

    • 給每個(gè)表格和表單加上id

    給表格或表單賦予一個(gè)唯一的、結(jié)構(gòu)的標(biāo)記,例如

    <table id="menu">

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

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

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

    2009年4月2日 #

    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ù)庫(kù)實(shí)用學(xué)習(xí)資料之常用命令集合
    2007-10-12 源自:賽迪網(wǎng) 網(wǎng)友評(píng)論 0 條 進(jìn)入視頻教程
    Mysql數(shù)據(jù)庫(kù)是一個(gè)多用戶,多線程的關(guān)系型數(shù)據(jù)庫(kù),是一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)的應(yīng)用程序。它是對(duì)個(gè)人用戶和商業(yè)用戶是免費(fèi)的.


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


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

    2.可以保存超過(guò)5千萬(wàn)條的記錄

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

    4.用戶權(quán)限設(shè)置簡(jiǎn)單、有效。


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


    啟動(dòng)Mysql數(shù)據(jù)庫(kù)


    C:/>cd Mysql5.0/bin

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

    C:/Mysql5.0/bin>net start mysql 啟動(dòng)Mysql服務(wù)

    請(qǐng)求的服務(wù)已經(jīng)啟動(dòng)。


    連接mysql

    用戶需要提供Mysql的用戶名和密碼來(lái)連接服務(wù)器,如果服務(wù)器不是在本機(jī),則還需要一個(gè)主機(jī)名或IP來(lái)指定服務(wù)器的位置。

    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>

    使用一條簡(jiǎn)單的查詢語(yǔ)句


    mysql> select version(),current_date;

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


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


    Mysql>create database mydb;

    Mysql> drop database mydb;


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


    mysql> use mysql

    Database changed


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


    mysql> show databases;


    查看數(shù)據(jù)表的詳細(xì)結(jié)構(gòu)


    mysql> desc func;


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


    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)建新用戶并給予權(quán)限


    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ù)庫(kù)及表


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

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

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


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


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

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


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


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


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

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

    還原其中的一個(gè)表


    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)


    關(guān)閉mysql服務(wù)


    C:/mysql/bin>net mysql

    (責(zé)任編輯:盧兆林)


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

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

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

     


     

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

    2009年3月31日 #

    tcp/ip

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

    TCP/IP協(xié)議

     

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

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

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

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

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

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

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

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

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

     
    什么是 TCP/IP?

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

      TCP/IP 指?jìng)鬏斂刂茀f(xié)議/網(wǎng)際協(xié)議 (Transmission Control Protocol / Internet Protocol)。

      TCP/IP 定義了電子設(shè)備(比如計(jì)算機(jī))如何連入因特網(wǎng),以及數(shù)據(jù)如何在它們之間傳輸?shù)臉?biāo)準(zhǔn)。
     

    TCP/IP協(xié)議介紹

      

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



      

      這部分簡(jiǎn)要介紹一下TCP/IP的內(nèi)部結(jié)構(gòu),為討論與互聯(lián)網(wǎng)有關(guān)的安全問(wèn)題打下基礎(chǔ)。TCP/IP協(xié)議組之所以流行,部分原因是因?yàn)樗梢杂迷诟鞣N各樣的信道和底層協(xié)議(例如T1和X.25、以太網(wǎng)以及RS-232串行接口)之上。確切地說(shuō),TCP/IP協(xié)議是一組包括TCP協(xié)議和IP協(xié)議,UDP(User Datagram Protocol)協(xié)議、ICMP(Internet Control Message Protocol)協(xié)議和其他一些協(xié)議的協(xié)議組。

      

    TCP/IP整體構(gòu)架概述



      

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

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

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

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

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

      

    TCP/IP中的協(xié)議



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

      1. IP

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

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

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

      2. TCP

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

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

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

      3.UDP

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

      欺騙UDP包比欺騙TCP包更容易,因?yàn)閁DP沒(méi)有建立初始化連接(也可以稱為握手)(因?yàn)樵趦蓚€(gè)系統(tǒng)間沒(méi)有虛電路),也就是說(shuō),與UDP相關(guān)的服務(wù)面臨著更大的危險(xiǎn)。

      4.ICMP

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

      5. TCP和UDP的端口結(jié)構(gòu)

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

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

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

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

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

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

      端口是一個(gè)軟件結(jié)構(gòu),被客戶程序或服務(wù)進(jìn)程用來(lái)發(fā)送和接收信息。一個(gè)端口對(duì)應(yīng)一個(gè)16比特的數(shù)。服務(wù)進(jìn)程通常使用一個(gè)固定的端口,例如,SMTP使用25、Xwindows使用6000。這些端口號(hào)是‘廣為人知’的,因?yàn)樵诮⑴c特定的主機(jī)或服務(wù)的連接時(shí),需要這些地址和目的地址進(jìn)行通訊。

      

    IP協(xié)議



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

      

    TCP協(xié)議



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

      

    1.1 TCP/IP參考模型



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

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

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

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

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

      

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



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

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

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

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

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

      

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



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

      TCP協(xié)議被稱作一種端對(duì)端協(xié)議。這是因?yàn)樗鼮閮膳_(tái)計(jì)算機(jī)之間的連接起了重要作用:當(dāng)一臺(tái)計(jì)算機(jī)需要與另一臺(tái)遠(yuǎn)程計(jì)算機(jī)連接時(shí),TCP協(xié)議會(huì)讓它們建立一個(gè)連接、發(fā)送和接收資料以及終止連接。

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

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

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

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

      

    1.4 IP地址及其分類



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

      Internet的網(wǎng)絡(luò)地址是指連入Internet網(wǎng)絡(luò)的計(jì)算機(jī)的地址編號(hào)。所以,在Internet網(wǎng)絡(luò)中,網(wǎng)絡(luò)地址唯一地標(biāo)識(shí)一臺(tái)計(jì)算機(jī)。

      我們都已經(jīng)知道,Internet是由幾千萬(wàn)臺(tái)計(jì)算機(jī)互相連接而成的。而我們要確認(rèn)網(wǎng)絡(luò)上的每一臺(tái)計(jì)算機(jī),靠的就是能唯一標(biāo)識(shí)該計(jì)算機(jī)的網(wǎng)絡(luò)地址,這個(gè)地址就叫做IP(Internet Protocol的簡(jiǎn)寫(xiě))地址,即用Internet協(xié)議語(yǔ)言表示的地址。

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

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

      1. A類地址

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

      2. B類地址

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

      3. C類地址

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

      RFC 1918留出了3塊IP地址空間(1個(gè)A類地址段,16個(gè)B類地址段,256個(gè)C類地址段)作為私有的內(nèi)部使用的地址。在這個(gè)范圍內(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)絡(luò)連至Internet,需要將私有地址轉(zhuǎn)換為公有地址。這個(gè)轉(zhuǎn)換過(guò)程稱為網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation,NAT),通常使用路由器來(lái)執(zhí)行NAT轉(zhuǎn)換。

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

      連接到Internet上的每臺(tái)計(jì)算機(jī),不論其IP地址屬于哪類都與網(wǎng)絡(luò)中的其它計(jì)算機(jī)處于平等地位,因?yàn)橹挥蠭P地址才是區(qū)別計(jì)算機(jī)的唯一標(biāo)識(shí)。所以,以上IP地址的分類只適用于網(wǎng)絡(luò)分類。

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

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

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

      2. 單播地址 目的端為指定網(wǎng)絡(luò)上的單個(gè)主機(jī)地址

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

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

      

    1.5 子網(wǎng)的劃分



      

      若公司不上Internet,那一定不會(huì)煩惱IP地址的問(wèn)題,因?yàn)榭梢匀我馐褂盟械腎P地址,不管是A類或是B類,這個(gè)時(shí)候不會(huì)想到要用子網(wǎng),但若是上Internet那IP地址便彌足珍貴了,目前全球一陣Internet熱,IP地址已經(jīng)愈來(lái)愈少了,而所申請(qǐng)的IP地址目前也趨保守,而且只有經(jīng)申請(qǐng)的IP地址能在Internet使用,但對(duì)某些公司只能申請(qǐng)到一個(gè)C類的IP地址,但又有多個(gè)點(diǎn)需要使用,那這時(shí)便需要使用到子網(wǎng),這就需要考慮子網(wǎng)的劃分,下面簡(jiǎn)介子網(wǎng)的原理及如何規(guī)劃。

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

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

      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)掩碼有所謂的默認(rèn)值,如下所示

      類 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

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

      192.10.10.193--11000000.00001010.00001010.11000001

      255.255.255.224--11111111.11111111.11111111.11100000

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

      192.10.10.192--11000000.00001010.00001010.11000000

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

      子網(wǎng)掩碼二進(jìn)制表示法可分幾個(gè)網(wǎng)絡(luò)

      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)絡(luò)編碼,各個(gè)網(wǎng)絡(luò)編碼及其廣播IP地址及可使用之IP地址序號(hào)網(wǎng)絡(luò)編碼廣播可使用之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

      可驗(yàn)證所使用的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)絡(luò)編碼可自行以上述方法自行推演出來(lái)。

      1.5.3 子網(wǎng)的應(yīng)用

      使用子網(wǎng)是要解決只有一組C類地址但需要數(shù)個(gè)網(wǎng)絡(luò)編碼的問(wèn)題,并不是解決IP地址不夠用的問(wèn)題,因?yàn)槭褂米泳W(wǎng)反而能使用的IP地址會(huì)變少,子網(wǎng)通常是使用在跨地域的網(wǎng)絡(luò)互聯(lián)之中,兩者之間使用路由器連線,同時(shí)也上Internet,但只申請(qǐng)到一組C 類IP地址,過(guò)路由又需不同的網(wǎng)絡(luò),所以此時(shí)就必須使用到子網(wǎng),當(dāng)然二網(wǎng)絡(luò)間也可以遠(yuǎn)程橋接(Remote Bridge,字面翻譯)連接,那便沒(méi)有使用子網(wǎng)的問(wèn)題。

      網(wǎng)關(guān)地址

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

      完美測(cè)試TCP/IP協(xié)議簡(jiǎn)介

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

      1、 單擊“開(kāi)始”/“運(yùn)行”,輸入CMD按回車,打開(kāi)命令提示符窗口。

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

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

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

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

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

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

      補(bǔ)充:
     

    TCP/IP 協(xié)議簇

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

      標(biāo)準(zhǔn)。

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

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

      三層(對(duì)應(yīng)OSI的第四層)。

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

      1、接口層

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

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

      2、網(wǎng)絡(luò)層

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

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

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

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

      。

      ICMP是網(wǎng)絡(luò)層的補(bǔ)充,可以回送報(bào)文。用來(lái)檢測(cè)網(wǎng)絡(luò)是否通暢。

      Ping命令就是發(fā)送ICMP的echo包,通過(guò)回送的echo relay進(jìn)行網(wǎng)絡(luò)測(cè)試。

      ARP是正向地址解析協(xié)議,通過(guò)已知的IP,尋找對(duì)應(yīng)主機(jī)的MAC地址。

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

      3、傳輸層

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

      議UDP(User Datagram rotocol)。

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

      是面向連接的所以只能用于點(diǎn)對(duì)點(diǎn)的通訊。

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

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

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

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

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

      在程序員編程驗(yàn)證。

      4、應(yīng)用層

      應(yīng)用層一般是面向用戶的服務(wù)。如FTP、TELNET、DNS、SMTP、POP3。

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

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

      Telnet服務(wù)是用戶遠(yuǎn)程登錄服務(wù),使用23H端口,使用明碼傳送,保密性差、簡(jiǎn)單方便。

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

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

      轉(zhuǎn)。 

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

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

      數(shù)據(jù)幀:幀頭+I(xiàn)P數(shù)據(jù)包+幀尾 (幀頭包括源和目標(biāo)主機(jī)MAC地址及類型,幀尾是校驗(yàn)字)

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

      TCP數(shù)據(jù)信息:TCP頭部+實(shí)際數(shù)據(jù) (TCP頭包括源和目標(biāo)主機(jī)端口號(hào)、順序號(hào)、確認(rèn)號(hào)、校

      驗(yàn)字等)
    posted @ 2009-03-31 10:54 張永耀 閱讀(189) | 評(píng)論 (0)編輯 收藏

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

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

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

      在擁塞控制上,采用慢啟動(dòng)算法。

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

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

      什么是TCP/IP?

      TCP/IP(Transmission Control Protocol/Internet Protocol) 即傳輸控制協(xié)議/網(wǎng)間協(xié)議,是一個(gè)工業(yè)標(biāo)準(zhǔn)的協(xié)議集,它是為廣域網(wǎng)(WANs)設(shè)計(jì)的。它是由ARPANET網(wǎng)的研究機(jī)構(gòu)發(fā)展起來(lái)的。

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

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

      TCP/IP的標(biāo)準(zhǔn)在一系列稱為RFC的文檔中公布。文檔由技術(shù)專家、特別工作組、或RFC編輯修訂。公布一個(gè)文檔時(shí),該文檔被賦予一個(gè)RFC量,如RFC959說(shuō)明FTP、RFC793說(shuō)明TCP、RFC791說(shuō)明IP等。 最初的RFC一直保留而從來(lái)不會(huì)被更新,如果修改了該文檔,則該文檔又以一個(gè)新號(hào)碼公布。因此,重要的是要確認(rèn)你擁有了關(guān)于某個(gè)專題的最新RFC文檔。文后會(huì)列出主要的RFC文檔號(hào)。

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

      * 文件傳送File Transfer。

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

      * 遠(yuǎn)程登錄Remote login

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

      * 計(jì)算機(jī)郵件Mail

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

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

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

      這種訪問(wèn)另一計(jì)算機(jī)的文件的方法非常接近于流行的FTP。網(wǎng)絡(luò)文件系統(tǒng)提供磁盤(pán)或設(shè)備服務(wù),而無(wú)需特定的網(wǎng)絡(luò)實(shí)用程序來(lái)訪問(wèn)另一系統(tǒng)的文件。可以簡(jiǎn)單地認(rèn)為它是一個(gè)外加的磁盤(pán)驅(qū)動(dòng)器。這種額外\"虛擬\"磁盤(pán)驅(qū)動(dòng)器就是其它計(jì)算機(jī)系統(tǒng)的磁盤(pán)。這非常有用。你只需加大幾臺(tái)計(jì)算機(jī)的磁盤(pán)容量,就可使網(wǎng)絡(luò)上其他用戶訪問(wèn)它,且不說(shuō)所帶來(lái)的經(jīng)濟(jì)效益,它還能夠讓幾臺(tái)工作的計(jì)算機(jī)共享相同的文件。它也使得系統(tǒng)維護(hù)和備份易如反掌,因?yàn)樵俨槐貫榇罅康牟煌瑱C(jī)器上 的文件的升級(jí)和備份而擔(dān)心。

      * 遠(yuǎn)程打印(Remote printing)

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

      * 遠(yuǎn)程執(zhí)行(Remote execution)

      允許你請(qǐng)求運(yùn)行在不同計(jì)算機(jī)上的特殊程序。當(dāng)你在一個(gè)很小的計(jì)算機(jī)上運(yùn)行一個(gè)需要大機(jī)系統(tǒng)資源的程序時(shí),這時(shí)候遠(yuǎn)程執(zhí)行非常有用。

      * 名字服務(wù)器(Name servers)

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

      * 終端服務(wù)器(Terminal servers)

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

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

      TCP的服務(wù)

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

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

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

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

      在一個(gè)TCP連接中,僅有兩方進(jìn)行彼此通信。廣播和多播不能用于TCP。

      TCP通過(guò)下列方式來(lái)提供可靠性:

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

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

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

      •既然TCP報(bào)文段作為IP數(shù)據(jù)報(bào)來(lái)傳輸,而IP數(shù)據(jù)報(bào)的到達(dá)可能會(huì)失序,因此TCP報(bào)文段的到達(dá)也可能會(huì)失序。如果必要,TCP將對(duì)收到的數(shù)據(jù)進(jìn)行重新排序,將收到的數(shù)據(jù)以正確的順序交給應(yīng)用層。

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

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

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

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

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

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

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

    僅列出標(biāo)題  下一頁(yè)
    主站蜘蛛池模板: 日韩色日韩视频亚洲网站| 亚洲日产2021三区| 日产亚洲一区二区三区| 777亚洲精品乱码久久久久久 | 在线看片免费人成视频福利| 免费精品一区二区三区第35| 18禁美女黄网站色大片免费观看| 久久综合AV免费观看| 免费国产在线观看| 亚洲成AV人片在| 亚洲人成免费网站| 成人亚洲国产精品久久| 三年片免费高清版| 久久笫一福利免费导航| 免费a在线观看播放| 亚洲国产第一站精品蜜芽| 亚洲一区精彩视频| 久久av免费天堂小草播放| 久久久久国色av免费看| 成年在线观看免费人视频草莓| 国产成人亚洲综合| 亚洲视频在线免费看| 亚洲AV色无码乱码在线观看| 高清永久免费观看| 黄瓜视频影院在线观看免费| 亚洲国产小视频精品久久久三级 | 黄视频在线观看免费| 24小时日本电影免费看| 国产亚洲福利一区二区免费看| 亚洲中文字幕在线第六区| 亚洲av无码片在线观看| 一本岛v免费不卡一二三区| 3344永久在线观看视频免费首页 | 国产精品极品美女免费观看| 亚洲一区AV无码少妇电影☆| 亚洲av无码不卡久久| 中国极品美軳免费观看| 在线观看无码的免费网站| 国产精品亚洲аv无码播放| 亚洲午夜无码久久久久软件| 免费无码又爽又刺激网站|