투케이2K

573. (ios/swift5) [간단 소스] NWConnection TCP IP 소켓 통신 연결 옵션 정리 - NWProtocolTCP.Options 본문

IOS

573. (ios/swift5) [간단 소스] NWConnection TCP IP 소켓 통신 연결 옵션 정리 - NWProtocolTCP.Options

투케이2K 2024. 11. 29. 09:43

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT5

 

[소스 코드]

 

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Swift


- 개발 툴 : Xcode


- 사전) NWConnection 설명 :

  >> NWConnection 는 로컬 엔드포인트와 원격 엔드포인트 간의 양방향 데이터 연결 (TCP , UDP) 을 수행할 수 있습니다

  >> NWConnection 를 사용하기 위해서는 import Network 패키지 호출 정의가 필요합니다

  >> NWParameters 설정 가능 옵션 : 

   - tls
   - tcp
   - dtls
   - udp
   - quic
   - quicDatagram

  >> 참고 사이트 : https://developer.apple.com/documentation/network/nwconnection

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[NWProtocolTCP.Options 설명 정리]
// --------------------------------------------------------------------------------------

1. NWProtocolTCP.Options 은 TCP 를 사용하는 방법을 구성하기 위한 옵션 컨테이너입니다


2. NWProtocolTCP.Options 사용 OS 지원 버전 : 

  >> iOS 12.0 이상
  >> 아이패드 OS 12.0+
  >> 맥 카탈리스트 12.0+
  >> 맥 OS 10.14+
  >> tvOS 12.0+
  >> 비전 OS 1.0+
  >> 워치OS 5.0+


3. NWProtocolTCP.Options 사용자 정의 옵션 종류 : 

  >> var enableFastOpen : Bool : 연결에서 TCP Fast Open을 활성화하는 부울입니다.
  >> var maximumSegmentSize : Int : TCP의 최대 세그먼트 크기(바이트)입니다.
  >> var noDelay : Bool : TCP의 Nagle 알고리즘을 비활성화하는 부울입니다.
  >> var noOptions : Bool : TCP를 옵션 없는 모드로 설정하는 부울입니다.
  >> var noPush : Bool : TCP를 푸시 금지 모드로 설정하는 부울입니다.
  >> var retransmitFinDrop : Bool : FIN 패킷 이후 ACK 패킷을 수신하지 못하면 TCP가 연결을 끊도록 하는 부울 값입니다.
  >> var disableAckStretching : Bool : TCP 확인 스트레칭을 비활성화하는 부울입니다.
  >> var disableECN : Bool : 명시적 혼잡 알림 표시의 협상을 비활성화하는 부울입니다.


4. NWProtocolTCP.Options Keepalives 구성 종류 : 

  >> var enableKeepalive : Bool : TCP keepalives를 활성화하는 부울입니다.
  >> var keepaliveIdle : Int : TCP가 Keepalive 프로브를 보내기 전에 대기하는 유휴 시간(초)입니다.
  >> var keepaliveCount : Int : TCP가 연결을 종료하기 전에 보내는 Keepalive 프로브의 수입니다.
  >> var keepaliveInterval : Int : TCP가 Keepalive 프로브를 보내는 사이에 기다리는 시간(초)입니다.


5. NWProtocolTCP.Options 시간 초과 설정 종류 : 

  >> var connectionTimeout : Int : TCP가 핸드셰이크의 시간 초과가 되기 전에 기다리는 시간(초)입니다.
  >> var connectionDropTime : Int : TCP 재전송 시도에 대한 시간 초과(초)입니다.
  >> var persistTimeout : Int : RFC 6429에 정의된 TCP 지속 시간 제한(초)입니다.

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

https://developer.apple.com/documentation/network/nwprotocoltcp/options

// --------------------------------------------------------------------------------------

반응형
Comments