傳輸層TCP/UDP協議

  1. 可靠的TCP協議(傳輸層)安全

    1)  TCP封包結構以下圖:服務器

wKioL1THvgfwNzMkAAFAfK8lEzc057.jpg

    各字段的含義爲:網絡

    封包序號:記錄每一個封包的序號,當TCP封包大於IP封包的長度時,TCP封包就須要拆分紅更小的包,來下發給網絡層,經過該字段可讓接收端從新將TCP數據組合起來。ssh

    迴應序號:回傳給客戶端的響應碼,當客戶端收到這個確認碼時,就可以肯定以前傳遞的封包已經被正確的收下了。ide

    資料補償:因爲Options字段是任意的,爲了確認整個封包的大小,就用這個字段來講明整個封包區段的起始位置。大數據

    保留:保留字段,還未被使用。加密

    控制標誌碼:用來講明聯機的狀態,以讓接收端了解這個封包的主要動做,這個字段共六位,表明六個句柄,若爲1則表示啓動,每位含義分別爲:spa

       URGUrgent:若爲1表示該封包爲緊急封包,接收端應該緊急處理,且Urgen Pointer字段也會被啓用。3d

       ACKAcknowledge:若爲1表示這個封包爲響應封包code

       PSHPush function:若爲1,表明要求對方當即傳送緩衝區內的其餘對應封包,而無需等待緩衝區滿了才送。

       RSTReset:若爲1,表示聯機會立刻結束,而無需等待終止確認手續。也就是說,這是個強制結束的聯機,且發送端已斷線。

       SYNSynchronous:若爲1,表示發送端但願雙方創建同步處理,也就是要求創建聯機。一般帶有SYN標識的封包表示主動要鏈接到對方的意思。

       FINFinish:若爲1,表示傳送結束,因此通知對方數據傳畢,是否贊成斷線,只是發送者還在等待對方的響應而已。

    Window(滑動窗口):主要用來控制封包的流量的,能夠告知對方目前自己有的緩衝器容量(Receive Buffer)還能夠接受封包。當Window=0時,表明緩衝器已經滿額,因此應該暫停傳輸數據。Window的單位是Bytes

    確認檢查碼:當數據有發送端送出前,會進行一個檢驗的動做,並將該動做的檢驗值標註在這個字段上;而接受者收到這個封包以後,會再次對封包進行驗證,而且比對原發送的Checksum值是否相符,若是相符就接受,若不符就會假設該封包已經損毀,進而要求對方從新發送。

    緊急資料:告知緊急數據所在的位置。

    任意選項:表示接收端能夠接收的最大數據區段容量,若此字段不使用,表示可使用任意數據區段的大小。這個字段較少使用。

    補足字段:將表頭長度補齊爲固定的長度。

    2)  端口號的最大值爲65535216次方減1),端口號小於1024的端口只用root身份才能啓動對應的服務,所以叫作特權端口。經常使用的端口與服務以下:

    20FTP-data,文件傳輸協議所使用的主動數據傳輸端口。

    21FTP,文件傳輸協議的命令通道

    22ssh,較爲安全的遠程聯機服務器

    23Telnet,早期的遠程機器服務軟件

    25SMTP,簡單郵件傳遞協議,用在做爲mail server的端口

    53DNS,用在做爲域名解析的服務器端口

    80www服務器

    110POP3,郵件收信協議

    443https,有安全加密機制的www服務器

3)  TCP三次握手,以下圖所示:

wKiom1THvSrTHhu1AAESIkfKMxk033.jpg

    過程詳解:

    a)  A封包發起,當客戶端想要對服務器端聯機時,就必需要送出一個要求聯機的封包,此時客戶端必須隨機取用一個大於1024以上的端口來做爲程序溝通接口。而後再TCP的表頭當中,必需要帶有SYN的主動聯機(SYN=1),而且記下發送出聯機封包給服務器端的序號(sequence number=10001

    b)  B:封包接受與確認封包傳送,當服務器接到這個封包,而且肯定要接受這個封包後,就會開始製做一個同時帶有SYN=1ACK=2的封包其中那個Acknowledge的號碼是要給client端確認用的,因此該數字會比(a)裏面的sequence number多一號(ack=10001+1=10002),那咱們服務器也必需要確認客戶端確實能夠接收咱們的封包才行,因此會發出一個Sequenceseq=20001),而且開始等待客戶端給咱們服務器的響應。

    c)  C:會送確認包當客戶端收到來自服務端的ACK數字後(10002)就能確認以前那個要求封包被正確的收受了,接下來若是客戶端也贊成羽服務端創建聯機時,就會再次的發送一個確認封包(ACK=1)給服務器,亦便是Acknowledge=20001+1=2002.

    d)  D:取得最後的確認,若一切都順利,在服務器端接收到帶有ACK=1ack=20002序號封包後,就可以創建起此次的聯機了。

2.非鏈接的UDP協議

    1)  UDPUser Datagram Protocol,用戶數據流協議),非面向鏈接的協議,即在UDP的傳輸過程當中,接受端在接受到封包以後,不會響應封包(ACK)給發送端,因此封包並無像TCP封包有較爲嚴格的檢查機制。

    2)  UDP封包結構圖爲:

    wKiom1THvSahHmQFAABft1un6b4414.jpg

    3)  UDP數據傳輸特色:不可靠,但速度快,多用於實時性要求較高,但正確率不是很高的數據傳輸方式,如視頻傳輸。

3.網絡防火牆與OSI七層協議

    1)  防火牆的原理:防火牆軟件對封包的表頭進行分析,而且設定分析規則,當發現某些特定的IP,特定的端口或者特定的封包信息(SYN/ACK等),就將該封包丟棄,這就是防火牆的原理。

    2)  OSI七層中,每層抵擋的數據有:

    第二層:能夠針對來源與目標的MAC進行抵擋

    第三層:主要針對來源與目標的IP,以及ICMP的類別(type)進行抵擋

    第四層:針對TCPUDP的端口進行抵擋,也能夠針對TCP的狀態(code)來進行抵擋。

相關文章
相關標籤/搜索