TCP implements
功能描述
TCP主要是做一些transport layer的事情,提供兩個終端上的程式傳輸資料。包含,建立連線的流程,傳輸的機制,流量控制等等!
相關的Code Files.
tcp.h: 跟TCP相關的定義。 在include/net/ 和 include/linux/ 目錄下
tcp.c: 處理sockets的TCP layer interface
tcp_ipv4.c: 包含TCP/IPv4的標準. 包括congestion control framework.
tcp_timer.c: 跟timer管理相關的介面。
tcp_input.c: 處理 incoming packets,最大的codes。包含recovery state machine.
tcp_output.c: 處理 sending packets,次大的codes。同時也包含一些方法回應給congestion control framework.
tcp_cong.c: 是congestion control’s核心framework。支援插入式的TCP congestion control algo.實做(預設 implementation of New Reno logic.
tcp_[algorithm].c: 實做不同的演算法規定congestion control logic. Example: tcp_vegas.c, tcp_cubic.c (btw 我們也能自己做)
相關terms
- MSS:Maximum Segment Size(MTU-40(header))
- MTU:Maximum Transport Unit
- RTT:Round-Trip Times,封包來回一次的時間
- RTO:Retransmission timeout,重傳的timeout限制時間
[optional]
- ECN:Explicit Congestion Notification
- BDP:Bandwidth Delay Product是指在傳送過程中在網路傳輸中的packet