TCP/IP Offload

http://del.icio.us/ohjeongwook/TCP%2FIP%2BOffload

TCP/IP Offload

전 “네트워크 개론” 수업 시간의 교수님의 말씀이 아직도 기억에 생생하다. 소프트웨어를 하는 사람들은 모든 것을 소프트웨어 영역에서 처리하려고 하고 하드웨어를 하는 사람들은 모든 것을 하드웨어 영역에서 처리하려고 하는 경향이 있다고 한다. TCP/IP 스택은 먼전 불안정한 네트워크 계층을 가정하고 있다. IP 패킷을 랜 상으로 쏘아도 그것이 소실될 확률이 0 이라고 가정하지 않는다. 따라서 모든 컨트롤 플로우가 소프트웨어적으로 일어 난다.

런데, 그 “네트워크 개론” 선생님의 말을 그대로 실현 시켜 주는 일들이 실제로도 많이 벌어지고 있었다.

최근 우리 소프트웨어의 이상 작동을 디버깅하면서 어떤 네트워크 카드들은 TCP/IP 와 관련된 오퍼레이션을 하드웨어적으로 처리하기도 한다는 것을 알게 되었다. 이러한 기능을 TCP Offload라고 한다고 한다. 사실상 대부분의 학계와 업계에서는 별로 퍼포먼스 향상에 도움이 안된다고 하지만, 네트워크를 통한 직접 메모리 접근(RDMA) 기능을 이용한 iSCSI 장치에서 많이 사용한다고 한다.

References)

TCP offload is a dumb idea whose time has come

Leave a Reply