

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# TCP/IP 스택 이식
<a name="afr-porting-tcp"></a>

이 섹션에서는 온보드 TCP/IP 스택을 이식하고 테스트하기 위한 지침을 제공합니다. 플랫폼이 TCP/IP 및 TLS 기능을 별도의 네트워크 프로세서 또는 모듈로 오프로드하는 경우 이 이식 섹션을 건너뛰고 [네트워크 전송 인터페이스 이식](afr-porting-network-transport-interface.md) 섹션으로 이동하세요.

[FreeRTOS\$1TCP](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/index.html)는 FreeRTOS 커널의 네이티브 TCP/IP 스택입니다. FreeRTOS\$1TCP는 FreeRTOS 엔지니어링 팀에서 개발 및 유지 관리하며 FreeRTOS와 함께 사용하도록 권장되는 TCP/IP 스택입니다. 자세한 내용은 [FreeRTOS\$1TCP 이식](#porting-freertos-tcp) 섹션을 참조하세요. 타사 TCP/IP 스택 [lwIP](https://savannah.nongnu.org/projects/lwip/)를 사용할 수도 있습니다. 이 섹션에 제공된 테스트 지침은 TCP 일반 텍스트용 전송 인터페이스 테스트를 사용하며 구현된 특정 TCP/IP 스택에 종속되지 않습니다.

## FreeRTOS\$1TCP 이식
<a name="porting-freertos-tcp"></a>

FreeRTOS\$1TCP는 FreeRTOS 커널의 네이티브 TCP/IP 스택입니다. 자세한 내용은 [FreeRTOS.org](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/)를 참조하십시오.

### 사전 조건
<a name="porting-prereqs-freertos-tcp"></a>

FreeRTOS\$1TCP 라이브러리를 이식하려면 다음이 필요합니다.
+ 공급업체에서 제공하는 이더넷 또는 Wi-Fi 드라이버가 포함된 IDE 프로젝트.

  테스트 프로젝트 설정에 대한 자세한 내용은 [이식을 위한 작업 영역 및 프로젝트 설정](porting-set-up-project.md) 단원을 참조하십시오.
+ FreeRTOS 커널의 검증된 구성.

  플랫폼에 맞는 FreeRTOS 커널 구성에 대한 정보는 [FreeRTOS 커널 포트 구성](afr-porting-kernel.md) 단원을 참조하십시오.

### 이식
<a name="porting-steps-freertos-tcp"></a>

FreeRTOS-TCP 라이브러리 이식을 시작하기 전에 [GitHub](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/tree/main/source/portable/NetworkInterface) 디렉터리를 확인하여 보드에 대한 포트가 이미 존재하는지 확인합니다.

포트가 존재하지 않으면 다음을 수행하십시오.

1. FreeRTOS\$1TCP를 디바이스에 이식하는 방법은 FreeRTOS.org의 [Porting FreeRTOS\$1TCP to a Different Microcontroller](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/Embedded_Ethernet_Porting.html)를 참조하십시오.

1. 필요한 경우 FreeRTOS\$1TCP를 새 컴파일러에 이식하는 방법은 FreeRTOS.org의 [Porting FreeRTOS\$1TCP to a New Embedded C Compiler](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/Embedded_Compiler_Porting.html)를 참조하십시오.

1. 공급업체가 제공한 이더넷 또는 Wi-Fi 드라이버를 사용하는 새 포트를 `NetworkInterface.c`라는 파일에 구현합니다. 템플릿을 보려면 [GitHub](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/tree/main/source/portable/NetworkInterface/board_family) 리포지토리를 방문하세요.

포트를 생성한 후 또는 포트가 이미 있는 경우 `FreeRTOSIPConfig.h`를 생성하고 사용 중인 플랫폼에 맞게 구성 옵션을 편집합니다. 구성 옵션에 대한 자세한 내용은 FreeRTOS.org의 [FreeRTOS\$1TCP Configuration](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html)을 참조하십시오.

## 테스트
<a name="testing-tcp"></a>

FreeRTOS\$1TCP 라이브러리를 사용하든 타사 라이브러리를 사용하든 아래 단계에 따라 테스트합니다.
+ 전송 인터페이스 테스트에서 API에 대한 `connect/disconnect/send/receive` 구현을 제공합니다.
+ 에코 서버를 일반 텍스트 TCP 연결 모드로 설정하고 전송 인터페이스 테스트를 실행합니다.

**참고**  
FreeRTOS용 디바이스를 공식적으로 인증하려면 아키텍처가 TCP/IP 소프트웨어 스택을 이식해야 하는 경우 AWS IoT Device Tester를 사용하여 디바이스의 포팅된 소스 코드를 일반 텍스트 TCP 연결 모드에서 전송 인터페이스 테스트에 대해 검증해야 합니다. *FreeRTOS 사용 설명서*의 [FreeRTOS용 AWS IoT Device Tester 사용](https://docs.aws.amazon.com/freertos/latest/userguide/device-tester-for-freertos-ug.html)에 나와 있는 지침에 따라 포트 검증을 위해 AWS IoT Device Tester를 설정합니다. 특정 라이브러리의 포트를 테스트하려면 Device Tester `device.json` 폴더의 `configs` 파일에서 올바른 테스트 그룹을 활성화해야 합니다.