日期:2015/7/3
TCP封包表頭格式
傳輸層功能:
- 接管由上層協定傳來的資料﹐進行"封裝"工作。
- 進行資料傳送和回應的確認﹐以及處理資料流的檢測和控制。
- 對不同的連線進行追蹤及轉換。
TCP的可靠性傳輸有五個要求:
- 資料流導向
- 虛擬電路連接。
- 建立和回應資料流傳送的連線請求﹐驗證並偵錯傳送期間的資料。
- 緩衝處理。
- 若資料太小,將等到收集一定大小之後才進行傳送﹐然而協定允許“push”機制強行送出。
- 非結構化資料流。
- 建立連線之前﹐先了解資料流動內容與格式﹐方能使用資料流服務。
- 全雙工連線。
- 允許雙向性的資料傳送﹐各自被視為互不相關的獨立資料流。然而﹐它提供了返回資料流中攜帶傳送控制資訊的機制。
TCP封包表頭格式
- Source Port:來源端埠號
- Destination Port:目的端埠號
- Sequence Number:封包序號
- Acknowledge Number:回應序號。
- 接收端收到封包後,無須再額外傳送確認封包。
- TCP會指出接收端下一個期望接收到的位元組序號。
- Data Offset(HLEN):用來記錄表頭長度。沒記錄則是20 bytes。
- Reserved:保留區,暫時尚未用到。
- Contral Flag:控制旗標。共有6個:
- URG(Urgent data):當URG設定為1時代表緊急封包,須優先處理。
- ACK(Acknowledge field significant):設為1代表回應序號是有效的。
- PSH(Push function):設為1則立即傳送。否則須等到緩衝區滿了才送。
- RST(Reset):設為1則連線立即結束。
- SYN(Synchronize sequence number):設為1則代表要建立連線。
- FIN(Finish):設為1代表傳送結束。
- Window:可得知對方目前接收緩衝區大小(bytes),而決定下一個傳送的Window大小
- Checksum:校驗數據。判斷封包是否損壞。
- Urgent Pointer:當URG為1時,Urgent Pointer會指出緊急資料所在位置。
- Option:較少用。使用於需要同步動作的程式。
三向交握