2008年4月22日星期二

Protocol : DHCP/DNS/FTP/HTTP

DHCP 动态主机配置协议(Dynamic Host Configuration Protocol)。

提供4种IP地址分配方式,这个忘了再去想。服务器使用UDP端口67,客户端使用UDP端口68。

DHCP服务器将广播DHCPOFFER到所有主机的68端口,主机应答后,服务器再发DHCPBACK给正确的主机。

DNS Domain Name System,域名系统
格式:(Name,Value,Type,TTL)
Type=A 则Name是主机名,Value是IP地址
Type=NS 则Nanme是域名,Value是 负责维护该域中主机IP的 权威DNS服务器的主机名 Type=CNAME 则Value是别名为Name的主机对应的规范主机名
Type=MX 则Value是别名为Name的邮件服务器的规范主机名

FTP,参考:FTP进入之后报错

FTP 是一種檔傳輸協定 (File Transfer Protocol),它的連線模式有兩種﹕主動模式( active )和被動模式( passive )。
以下說明 FTP 的連線是怎樣建立的﹕
在 active 模式下 (一般預設的模式)﹕
1. FTP client 開啟一個隨機選擇的TCP port 呼叫 FTP server 的 port 21請求連線。當順  利完成 Three-Way Handshake 之後,連線就成功建立,但這僅是命令通道的建立  。
2.當兩端需要傳送資料的時候,client 透過命令通道用一個 port command 告訴 server  ,client可以用另一個TCP port 做數據通道。
3.然後 server 用 port 20 和剛才 client 所告知的 TCP port 建立數據連線。請注意:連  線方向這是從 server 到 client 的,TCP 封包會有一個 SYN flag。
4.然後 client 會返回一個帶 ACK flag的確認封包﹐並完成另一次的 Three-Way  Handshake 手續。這時候,數據通道才能成功建立。
5.開始數據傳送。

在 passive 模式下
1.FTP client 開啟一個隨機選擇的TCP port 呼叫 FTP server 的 port 21請求連線,並完  成命令通道的建立。
2.當兩端需要傳送資料的時候,client 透過命令通道送一個 PASV command 給  server,要求進入 passive 傳輸模式。
3.然後 server 像上述的正常模式之第 2 步驟那樣,挑一個TCP port ,並用命令通道  告訴 client。
4.然後 client 用另一個TCP port 呼叫剛才 server 告知的 TCP port 來建立數據通道。此  時封包帶 SYN flag。
5.server 確認後回應一個 ACK 封包。並完成所有交握手續、成功建立數據通道。
6.開始數據傳送。

在實際使用上, active mode 用來登入一些開設在主機上及沒有安裝防火牆的 FTP server,或是開設於 client side 的 FTP server! Passive mode (簡稱 PASV)用來登入一些架設於防火牆保護下而又是開設於主機上的 FTP server!

HTTP HyperTextTransferProtocol,超文本传输协议

使用TCP连接,默认使用流水线方式的持久连接。

非持久连接 每个TCP连接在服务器返回对象后关闭,并不为其他的对象而持续下来。 每个TCP连接只传输一个请求报文和一个响应报文。 如果一个web页上有10个图像链接,那么,请求该web页将建立11个TCP连接。

持久连接(流水线/非流水线方式) 服务器在发送响应后保持该TCP连接,相同的客户机与服务器之间的后续请求和响应报文可通过相同的连接进行传送。如果客户机请求同一站点的多个web页也只需建立一个TCP连接。如果一个连接经过一定超时间隔仍未被使用,服务器就关闭该连接。

非流水线方式:客户机只能在接收到前一个响应之后才能发出新的请求。缺陷是,服务器发送完一个对象后,连接处于空闲状态,等待下一个请求的到来。

流水线方式:HTTP客户机一遇到引用就立即产生一个请求,在未接收到前一个响应的情况下仍可产生新的请求。使得TCP连接处于空闲状态的时间变短。

没有评论:

发表评论