歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux小型FTP服務系統的實現

Linux小型FTP服務系統的實現

日期:2017/2/28 16:00:26   编辑:Linux教程

UDP是簡單的,不可靠的數據報協議,而TCP是精致的,可靠的字節流協議。SCTP跟TCP類似也是可靠的傳輸協議,但它還提供消息邊界,傳輸層支持多宿主,最小化擁塞。

UDP(用戶數據報協議):

提供無連接的服務,同一個套接口可以發送數據報給不同的服務器,也可以在同一個套接口接收來自不同服務器的數據報。

TCP(傳輸控制協議):

一. TCP提供客戶與服務器連接。

二. 提供可靠性,發過去後需要對方的確認,如果沒有收到確認會重傳。

三. TCP通過給所發送數據的每一個字節關聯一個序列號進行排序。接收方的TCP將根據分節的序列號重新排序在將結果數據傳遞給應用進程。

四. 提供流量控制。通告窗口(advertised window)告訴對方它能接收多少字節的數據。緩沖區滿時,必須等應用程序取走數據後才能再接收

五. TCP是全雙工的

TCP建立連接的三路握手

1. 服務器通過調用socket, bind, listen 函數來完成被動打開;

2. 客戶通過connect進行主動打開,引起TCP發送一個SYN分節,告訴服務器客戶將在連接中發送的數據的初始序列號,

3. 服務器必須確認客戶的SYN,同時自己發送一個SYN,含有服務器在連接中發送的數據的初始序列號,同時發送對客戶SYN的ACK。

4. 客戶確認服務器的SYN。

SYN使用的TCP選項:

MSS選項。 通知對象自己的最大分節大小,即能接受的每個TCP分節中的最大數據量

窗口規模選項。 只有對方收到對方的SYN來的這個選項時,才能發送該選項。

時間戳選項。

高帶寬或長延時的網絡才會用到後兩個選項。

TCP連接終止:

1. 某個進程先調用close(主動關閉)。發送一個FIN,表示數據發送完畢。

2. 另一端收到後被動關閉,由TCP確認FIN,它的接收也作為文件結束符接收方應用程序。

3. 收到文件結束符的應用程序將調用close關閉套接口,導致它的TCP也發送一個FIN。

4. 收到這個FIN的原發送方對它確認。

Copyright © Linux教程網 All Rights Reserved