筆記:
作業一、何謂Ping?
A:
一個電腦網路工具,用來測試特定主機能否通過IP到達。
ping的運作原理是:向目標主機傳出一個ICMPecho要求封包,等待接收echo回應封包。
程式會按時間和反應成功的次數,估計失去封包率(丟包率)和封包來回時間(網路時延)(Round-trip delay time)。
資料來源:WIKI
作業二、3 Way handshacking (handshaking I/O)?
A:
TCP 通訊協定是一種 connection-oriented 協定,它在實際資料傳送前,會在來源端與目的端主機以三向交握 (three-way handshake) 的方式先建立連線,所有屬於相同訊息的 TCP 封包,就利用此連線傳送,此種作法有助於資料傳輸的正確性。
(1) 當傳送端想要與接收端連線時,同時會啟用一個大於 1023 的通訊埠作為溝通的介面,並且送出一個要求連線的 SYN 封包,此封包內帶有起始序號 (例如 100)。
(2) 接收端確認收到連線的 SYN 封包後,會回送一個 SYN+ACK 封包給傳送端,封包內則帶有回應號碼 (連線 SYN 封包的序號 + 1),以及接收端的起始序號 (例如 2200),等待傳送端的回應確認。
(3) 當傳送端收到來自接收端的回應號碼,確認之前的連線要求封包已被收到,便會再傳送一個 ACK 封包給接收端,封包內會帶有回應號碼 (SYN+ACK 封包的序號 + 1)。
待接收端收到帶有正確回應號碼的 ACK 封包,此連線便正式建立。在 TCP 封包內,有 8 個控制位元 (Control bits 或 Flags) 用來代表封包的主要動作:
Flags | 說 明 |
---|---|
CWR |
CWR (Congestion Window Reduced) flag 為 1 代表接到 ECE 旗標 為 1 的 TCP 封包。 |
ECE | ECE (ECN-Echo) flag 為 1 代表 TCP peer (對等體) 具備 ECN (Explicit Congestion Notification, 明確擁塞通知) 功能,同時 IP 封包中的 ECN 欄位被設定為 11。 |
URG | URG (Urgent) flag 為 1 代表緊急封包,接收端應優先處理。 |
ACK | ACK (Acknowledgment) flag 為 1 代表此封包的 Acknowledgment Number 是有效的﹐是用來回應上一個封包。 |
PSH | PSH (Push function) flag 為 1 代表此封包連同緩衝區的其它相關封包應立即進行傳送,而無需等待緩衝區滿了才送。 |
RST | RST (Reset) flag 為 1 代表馬上結束連線,無需等待終止確認手續。 |
SYN | SYN (Synchronize) flag 為 1 代表要求雙方進行同步處理,也就是要求建立連線。 |
FIN | FIN (Finish) flag 為 1 代表資料傳送結束,等待結束回應,以便正式結束 TCP 傳送流程。 |
圖示:
詳細#1#2#3步驟
以上圖片來源:
http://www.tcpipguide.com/free/t_TCPConnectionEstablishmentProcessTheThreeWayHandsh-3.htm
http://www3.gdin.edu.cn/jpkc/dzxnw/jsjkj/chapter3/35.htm
參考來源:
http://120.105.184.250/peiyuli/network-3/%E7%B6%B2%E8%B7%AF%E7%B0%A1%E4%BB%8B%E8%88%87%E6%8C%87%E4%BB%A4.htm