Young & Rich

 

오늘은 TCP, UDP, Multicast 에 대해서 정리해보겠습니다.

 

[ TCP ]

Transmission Control Protocol

간단히 말하면 연결지향 신뢰성 보장 프로토콜입니다.

 

보통 TCP/IP 라고 부르는데, IP와 함께 사용하기 때문에 그렇게 부릅니다. IP 측에서 메세지를 전송하고 TCP 가 신뢰성을 보장해줍니다.

IP는 단지 전송만 해주는 기능을 합니다.

 

TCP/IP는 Session 을 만들고, Session 기반으로 통신합니다. 연결지향성이라고 불리는 이유입니다.

여기서 Session 이란 Client 와 Server 의 하나의 통신을 위한 길(Path) 라고 이해하셔도 좋겠습니다.

 

TCP/IP 통신 과정 중에 네트워크 오류 또는 망 상태가 좋지 않은 이유 등으로 패킷 손실이 발생할 수도 있겠죠?

또는, 순서가 뒤바뀌거나(시퀀스) 하는 등의 과정을 TCP 레이어에서 모두 처리해줍니다.

 

 

TCP/IP
TCP/IP

 

TCP 는 받아야할 메세지를 올바르게 받지 않으면, 재전송을 요구합니다. 다시 전송을 해줄 때까지 기다리죠.

순서대로 메세지를 받는다는 의미입니다.

 

하지만, 이러한 이유 때문에 TCP 가 UDP 보다는 좀 더 복잡합니다.

 

이러한 특성 때문에, 멀티미디어(ex. Live 영상)  정보를 수신하는데는 용이하지 않을 것입니다.

 

네트워크 공부하시면서 5 way Handshake, 3 way Handshake 를 들어보셨나요?

TCP/IP 의 통신 방법입니다. 어떻게 TCP/IP 통신이 이뤄지는 알 수 있는 개념이죠.

이건 따로 추후에 포스팅 하도록 하겠습니다.

 

 

[ UDP ]

User Datagram Protocol

UDP 통신은 TCP 통신과 다르게 비연결지향 통신입니다.

TCP 에서는 전송된 Packet 들의 신뢰성이 보장되지만, UDP는 보장해주지 않습니다.

TCP 와 다르게 IP 가 아닌 Destination Port 로 Data를 Send 하는 방식입니다.

 

쉽게 말해서, "나는 Packet을 Send 할 테니, 오류 및 기타 처리는 받는쪽에서 알아서 해" 라는 식입니다.

그래서 장점으로는 구조가 단순하고 그냥 Send 하는 기능 뿐이라, 빠른 실시간 처리를 요구할 때 많이 사용됩니다.

오버헤드가 적습니다.

UDP 통신은 브로드캐스트나 멀티캐스트, 소량의 데이터를 전송 시에 많이 사용합니다.

예를 들면 DHCP, DNS, TFTP, SNMP 등에 사용됩니다.

 

'D' 의 Datagram 은 UDP 통신 시 Data 를 Send 할 때, Datagram 하나의 데이터 덩어리로 보내기 때문에 Datagram 이라는 용어가 붙습니다.

 

Datagram
Datagram

 

Datagram 구조입니다. 아주 간단합니다.

 

TCP/IP 와 같이 handshake 통신으로 왔다갔다 하면서 보내는게 아니고, 그냥 Request Response 의 구조입니다.

위에서 오버헤드가 적다는게 위와 같은 이유에서입니다.

 

TCP vs UDP

위의 표를 보면 쉽게 이해하실 수 있습니다.

 

위에서 말씀드린 신뢰성, 비신뢰성, 연결지향형, 비연결지향형 을 생각하시면서 그림을 보시면 이해가 쉽습니다.

 

- TCP

SYN(나 너랑 통신하고 싶어)

SYN ACK(응 그래 통신하자)
ACK + Data(오케이 이제 데이터 보냄)

이 뒤에는 이제 Server 에서는 Data 를 받으면 다시 Data 를 잘 받았다고 ACK 를 보냅니다.

그러면 또 다시, Client 를 데이터를 보내겠죠.

 

- UDP

받어

받어

받어

받어

 

TCP 와 UDP 의 차이를 설명드렸습니다.

 

여기까지 포스팅을 마치겠습니다.

 

그럼 20000.

 

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band