본문 바로가기

iOS

TCP, UDP

728x90
반응형
SMALL

TCP와는 UDP는 모두 인터넷 프로토콜 스위트(IP 스위트)의 일부로, 네트워크 통신에서 사용되는 프로토콜입니다.

TCP(Transmission Control Protocol)

 연결형 프로토콜로, 신뢰성이 높고 데이터의 전송 순서가 보장됩니다. 데이터 전송 중 손실이 발생하면 재전송을 하여 정확한 데이터 전송을 보장합니다. *3-way-handshaking과정을 통해 연결을 설정하며, 웹 브라우저나 이메일 같은 애플리케이션에서 사용됩니다

 

UDP(User Datagram Protocol)

 비연결형 프로토콜로, 신뢰성이 낮고 속도가 빠릅니다. 데이터 전송 중 손실이 발생하더라도 재전송을 하지 않고 그대로 진행됩니다. 주로 오디오나 비디오 같은 실시간 데이터를 전송하는 데 사용됩니다.

 

*** 3-way-handshaking과정 ***

  1. 클라이언트는 서버에게 *SYN 패킷을 전송하여 연결 요청을 보냅니다.
  2. 서버는 SYN 패킷을 받고, 클라이언트에게 ACK와 SYN이 모두 설정된 SYN+ACK 패킷을 전송합니다. 이는 서버가 클라이언트의 요청을 받아들였음을 의미합니다.
  3. 클라이언트는 SYN+ACK 패킷을 받고, 서버에게 ACK 패킷을 전송하여 연결 설정이 완료됨을 알립니다.

*** SYN패킷 ***

SYN 패킷은 TCP 프로토콜에서 사용되는 패킷 중 하나로, 연결 설정을 위해 클라이언트가 서버에게 전송하는 패킷입니다.

SYN 패킷은 TCP 연결 설정 과정에서 클라이언트가 서버에게 보내는 첫 번째 패킷으로, SYN 비트를 설정하여 전송됩니다. 이 패킷을 받은 서버는 SYN 비트를 설정한 SYN+ACK 패킷을 클라이언트에게 전송하여 연결 요청을 수락한다는 응답을 보냅니다.

SYN 패킷은 연결 설정 과정에서 보안 상의 이유로 중간에 가로채지는 경우가 있기 때문에, 이를 방지하기 위해 시퀀스 번호를 포함하고 있습니다. 이 시퀀스 번호는 연속적인 숫자로 구성되어 있어, 클라이언트와 서버 간에 정확한 데이터 전송을 보장합니다.

따라서, SYN 패킷은 TCP 연결 설정 과정에서 중요한 역할을 하며, 안정적인 데이터 전송을 위해 필수적입니다.

 

SYN 패킷의 구조

  • 출발지 포트 번호
  • 목적지 포트 번호
  • 시퀀스 번호
  • ACK 번호
  • 데이터 오프셋
  • 예약 필드
  • 플래그 (SYN 비트가 설정됨)
  • 윈도우 크기
  • 체크섬
  • 긴급 포인터

https://www.juniper.net/documentation/us/en/software/junos/transport-ip/topics/topic-map/tcp-configure-features.html

 

TCP | Junos OS | Juniper Networks

During session connection establishment, two peers agree in negotiations to determine the IP segment size of packets that they will exchange during their communication. The TCP MSS (maximum segment size) value in TCP SYN packets specifies the maximum numbe

www.juniper.net

 *** ACK (Acknowledgement, 응답)***

TCP/IP 프로토콜에서 데이터 전송의 확인 응답을 의미합니다. 데이터 전송 시, 수신측은 정상적으로 데이터를 수신하면 송신측에게 ACK 신호를 보내어 전송이 완료되었다는 것을 알립니다. 이러한 방식으로 데이터 전송의 신뢰성을 보장합니다.

728x90
반응형
LIST

'iOS' 카테고리의 다른 글

솔리드(SOLID) 원칙  (0) 2023.05.03
iOS UDP 통신 쉬운 예제 코드  (0) 2023.04.30
강한순환참조  (0) 2023.04.28
AppDelegate  (0) 2023.04.27
ViewController Life Cycle  (0) 2023.04.27