• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    新手學堂:解析Ftp協議的兩種工作模式

    發布: 2007-7-13 15:18 | 作者: skid | 來源: ccidnet | 查看: 17次 | 進入軟件測試論壇討論

    領測軟件測試網

    Ftp協議的兩種工作模式:主動模式active和被動模式passive

     

    FTP 是一種數據傳輸協議 (File Transfer Protocol),它的連接模式有兩種: 主動模式( active )和被動模式( passive )。

     

    以下說明FTP的連接是怎樣建立的:

     

    在 active 模式下 (一般預設的模式):

     

    FTP client 開啟一個隨機選擇的TCP port 呼叫 FTP server 的 port 21請求建立連接。當完成 Three-Way Handshake 之后,連接就成功建立,但這僅是命令通道的建立。

    當兩端需要傳送數據資料的時候,client 透過命令通道用一個 port command 告訴 server ,client可以用另一個TCP port 做數據通道。

    然后 server 用 port 20 和剛才client 所告知的 TCP port 建立數據連接。注意:連接方向是從server 到 client 的,TCP 分組中會有一個 SYN flag。

    然后 client 會返回一個帶 ACK flag的確認分組,并完成另一次的 Three-Way Handshake 過程。這時候,數據連接才能成功建立。開始數據傳送。

     

    在 passive 模式下:

     

    FTP client 開啟一個隨機選擇的TCP port 呼叫 FTP server 的 port 21請求建立連接,完成命令通道的建立。

    當兩端需要傳送數據的時候,client 通過命令通道發送一個 PASV command 給server,要求進入 passive 傳輸模式。

    然后 server 像上述的正常模式之第 2 步驟那樣,挑一個TCP port ,并用命令通道告訴 client。

    然后 client 用另一個TCP port 呼叫剛才 server 告知的 TCP port 來建立數據通道。此時分組中帶有 SYN flag。

    server 確認后回送一個 ACK 分組。并完成所有握手過程、成功建立數據通道。

    開始數據傳送。 在實際使用中, active mode 用來登入一些架設在主機上沒有安裝防火墻的 FTP server,或是架設在 client side 的 FTP server! Passive mode (簡稱 PASV)用來登陸一些架設于防火墻保護下而又是開設于主機上的 FTP server!

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>