可靠的TCP協議(傳輸層)安全
1) TCP封包結構以下圖:服務器
各字段的含義爲:網絡
封包序號:記錄每一個封包的序號,當TCP封包大於IP封包的長度時,TCP封包就須要拆分紅更小的包,來下發給網絡層,經過該字段可讓接收端從新將TCP數據組合起來。ssh
迴應序號:回傳給客戶端的響應碼,當客戶端收到這個確認碼時,就可以肯定以前傳遞的封包已經被正確的收下了。ide
資料補償:因爲Options字段是任意的,爲了確認整個封包的大小,就用這個字段來講明整個封包區段的起始位置。大數據
保留:保留字段,還未被使用。加密
控制標誌碼:用來講明聯機的狀態,以讓接收端了解這個封包的主要動做,這個字段共六位,表明六個句柄,若爲1則表示啓動,每位含義分別爲:spa
URG(Urgent):若爲1表示該封包爲緊急封包,接收端應該緊急處理,且Urgen Pointer字段也會被啓用。3d
ACK(Acknowledge):若爲1表示這個封包爲響應封包code
PSH(Push function):若爲1,表明要求對方當即傳送緩衝區內的其餘對應封包,而無需等待緩衝區滿了才送。
RST(Reset):若爲1,表示聯機會立刻結束,而無需等待終止確認手續。也就是說,這是個強制結束的聯機,且發送端已斷線。
SYN(Synchronous):若爲1,表示發送端但願雙方創建同步處理,也就是要求創建聯機。一般帶有SYN標識的封包表示主動要鏈接到對方的意思。
FIN(Finish):若爲1,表示傳送結束,因此通知對方數據傳畢,是否贊成斷線,只是發送者還在等待對方的響應而已。
Window(滑動窗口):主要用來控制封包的流量的,能夠告知對方目前自己有的緩衝器容量(Receive Buffer)還能夠接受封包。當Window=0時,表明緩衝器已經滿額,因此應該暫停傳輸數據。Window的單位是Bytes。
確認檢查碼:當數據有發送端送出前,會進行一個檢驗的動做,並將該動做的檢驗值標註在這個字段上;而接受者收到這個封包以後,會再次對封包進行驗證,而且比對原發送的Checksum值是否相符,若是相符就接受,若不符就會假設該封包已經損毀,進而要求對方從新發送。
緊急資料:告知緊急數據所在的位置。
任意選項:表示接收端能夠接收的最大數據區段容量,若此字段不使用,表示可使用任意數據區段的大小。這個字段較少使用。
補足字段:將表頭長度補齊爲固定的長度。
2) 端口號的最大值爲65535(2的16次方減1),端口號小於1024的端口只用root身份才能啓動對應的服務,所以叫作特權端口。經常使用的端口與服務以下:
20:FTP-data,文件傳輸協議所使用的主動數據傳輸端口。
21:FTP,文件傳輸協議的命令通道
22:ssh,較爲安全的遠程聯機服務器
23:Telnet,早期的遠程機器服務軟件
25:SMTP,簡單郵件傳遞協議,用在做爲mail server的端口
53:DNS,用在做爲域名解析的服務器端口
80:www服務器
110:POP3,郵件收信協議
443:https,有安全加密機制的www服務器
3) TCP三次握手,以下圖所示:
過程詳解:
a) A封包發起,當客戶端想要對服務器端聯機時,就必需要送出一個要求聯機的封包,此時客戶端必須隨機取用一個大於1024以上的端口來做爲程序溝通接口。而後再TCP的表頭當中,必需要帶有SYN的主動聯機(SYN=1),而且記下發送出聯機封包給服務器端的序號(sequence number=10001)
b) B:封包接受與確認封包傳送,當服務器接到這個封包,而且肯定要接受這個封包後,就會開始製做一個同時帶有SYN=1,ACK=2的封包其中那個Acknowledge的號碼是要給client端確認用的,因此該數字會比(a)裏面的sequence number多一號(ack=10001+1=10002),那咱們服務器也必需要確認客戶端確實能夠接收咱們的封包才行,因此會發出一個Sequence(seq=20001),而且開始等待客戶端給咱們服務器的響應。
c) C:會送確認包當客戶端收到來自服務端的ACK數字後(10002)就能確認以前那個要求封包被正確的收受了,接下來若是客戶端也贊成羽服務端創建聯機時,就會再次的發送一個確認封包(ACK=1)給服務器,亦便是Acknowledge=20001+1=2002.
d) D:取得最後的確認,若一切都順利,在服務器端接收到帶有ACK=1且ack=20002序號封包後,就可以創建起此次的聯機了。
2.非鏈接的UDP協議
1) UDP(User Datagram Protocol,用戶數據流協議),非面向鏈接的協議,即在UDP的傳輸過程當中,接受端在接受到封包以後,不會響應封包(ACK)給發送端,因此封包並無像TCP封包有較爲嚴格的檢查機制。
2) UDP封包結構圖爲:
3) UDP數據傳輸特色:不可靠,但速度快,多用於實時性要求較高,但正確率不是很高的數據傳輸方式,如視頻傳輸。
3.網絡防火牆與OSI七層協議
1) 防火牆的原理:防火牆軟件對封包的表頭進行分析,而且設定分析規則,當發現某些特定的IP,特定的端口或者特定的封包信息(SYN/ACK等),就將該封包丟棄,這就是防火牆的原理。
2) OSI七層中,每層抵擋的數據有:
第二層:能夠針對來源與目標的MAC進行抵擋
第三層:主要針對來源與目標的IP,以及ICMP的類別(type)進行抵擋
第四層:針對TCP,UDP的端口進行抵擋,也能夠針對TCP的狀態(code)來進行抵擋。