> TCP의 통신 구조

 

TCP의 특징은 three-hands shaking(SYN - ACK+SYN - ACK)으로 세션을 형성해 신뢰성있는 전송을 합니다.
즉, 데이터의 손상을 대비하여 깨끗하고 온전한 데이터의 전송을 확보한다는 점이 특징입니다.

 

SERVER   CLIENT
WSAStartup   WSAStartup
socket   socket
bind    
listen    
accept 세션형성 connect
send/recv 통신 send/recv
closesocket    
WSACleanup    

 

 

 

 

> UDP의 통신 구조

 

UDP의 특징은 TCP통신과 다르게 세션이 없고 데이터만 전송하면 통신이 완료됩니다.
데이터가 잘 도착했는지의 여부에 대해선 관여하지 않습니다. 

따라서 전송속도는 TCP의 속도보다 빠르다는 장점이 있습니다.

SERVER   CLIENT
WSAStartup   WSAStartup
socket   socket
bind    
send/recv 통신 send/recv
close   close

 

 

 

> 소켓의 개수

 

 TCP 통신에서는 소켓과 소켓의 관계가 일대일로 대응되어 연결됩니다. 서버가 10개의 클라이언트에 서비스를 제공하려고 한다면 서버에 서버소켓 1개와 클라이언트와의 연결을 위한 10개의 추가소켓이 필요합니다. 그러나 UDP통신에서는 서버와 클라이언트 모두 하나의 소켓만 있으면 되는 특징이 있습니다.

 

> 헤더

 - TCP 헤더 

TCP에는 추가적으로 각 세그먼트에서 헤더 20 바이트의 "선택적"필드가 있습니다. 이 TCP 헤더에는 연결 (소켓)의 소스 포트 및 대상 포트가 있으며 시퀀스 번호, ACK 번호 및 SYN, ACK, RST, FIN, URG 등의 다른 TCP 플래그도 있습니다. 이 헤더에는 슬라이딩 윈도우의 작동에 매우 중요한 부분이 있으며 수신 윈도우의 크기를 나타내는 16 비트 필드가 있습니다.

그리고, TCP가 잘 동작하려면 포트는 필수적인 요소입니다. TCP는이 포트 번호를 사용하여 소켓, 즉 데이터를 내보내거나 데이터를 받는 응용 프로그램을 식별합니다. TCP 포트의 범위는 0-65535이고 그 중에서도 세 가지 유형으로 나뉩니다.

  • 0 ~ 1023 : 잘 알려진 Well-Known Port 라고 부르며, 웹 서버나 메일 서버 등의 일반적인 프로그램들이 사용합니다.
  • 1024 ~ 49151 : Registered Port 라고 부르며, 잘 알려져 있는 프로그램들이 아닌 다른 용도의 프로그램들이 사용합니다.
  • 49152 ~ 65535 : 동적 포트(Dynamic Port)로 서버가 클라이언트를 식별할 때 사용합니다.

 

 

 - UDP 헤더

 

UDP는 각 데이터 그램에서 8 바이트 헤더를 추가합니다. 이 UDP 헤더에는 연결의 소스 포트와 대상 포트 (소켓), 데이터 그램의 길이 및 해당 데이터 그램의 체크섬을 찾아서 헤더나 데이터 그램의 데이터에 오류가 없는지 확인합니다. UDP는이 포트 번호를 사용하여 소켓, 즉 데이터를 내보내거나 데이터를 받는 응용 프로그램을 식별합니다.

 

'Network' 카테고리의 다른 글

[TCP&UDP] TCP통신과 UDP 통신 비교  (1) 2023.11.02
포트포워딩이란?  (0) 2023.11.02

> TCP란

연결지향형인 TCP는 3-way handshaking이라는 과정을 통해 연결 후 통신을 시작합니다.
또한, 흐름제어와 혼잡제어를 지원하며 데이터의 순서를 보장합니다

흐름제어란, 보내는 측과 받는 측의 데이터 처리속도 차이를 조절해주는 것을 말하며,
혼잡제어란, 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지하는 것을 말합니다.

하지만 TCP는 UDP에 비해 속도가 느리다는 단점이 있습니다.
따라서, 대부분의 웹 HTTP 통신, 이메일, 파일전송에 사용됩니다.

 

> UDP란?

UDP는 전송계층의 비연결형 프로토콜입니다.
따라서 TCP와 달리 연결 설정이 없으며,
혼잡제어를 하지 않기 때문에 TCP보다 빠르다는 장점이 있습니다.

하지만 데이터 전송에 대한 보장을 하지 않기 때문에 패킷 손실이 발생할 수 있습니다.

UDP는 이러한 특징때문에 DNS, 멀티미디어에서 사용됩니다.

 

 

> TCP 통신과 UDP 통신의 공통점

 

 - 포트번호를 이용하여 주소를 지정한다. 두 애플리케이션이 통신하기 위해 반드시 포트 번호를 결정해야합니다.

 - 데이터 오류를 체크합니다.

   ip가 제공하는 오류 체크 기능은 프로토콜 동작을 위해 반드시 필요한 부분에만 국한됩니다. 즉 ip 헤더에 대한 오류는 체크하지만 데이터에 대한 오류는 체크하지 않습니다. 반면 TCP와 UDP는 헤더와 데이터에 대한 오류를 체크합니다.

 

 

TCP 통신과 UDP 통신의 차이점

 

TCP UDP
연결형 프로토콜
- 연결을 성공해야 통신 가능
비연결형 프로토콜
- 연결없이도 통신가능
데이터 경계를 구분하지 않음
- 바이트 스트림 서비스
데이터 경계를 구분함
- 데이터그램 서비스
신뢰성있는 데이터 전송
- 데이터를 재전송함
비신뢰적인 데이터 전송
- 데이터를 재전송하지 않음
1대 1 통신 (unicast) 1대 1 통신 (unicast)
1대 다 통신 (broad cast, multi cast)

 

'Network' 카테고리의 다른 글

[TCP&UDP] TCP통신과 UDP 통신 비교 (2)  (0) 2023.11.02
포트포워딩이란?  (0) 2023.11.02

+ Recent posts