오늘은 TCP, UDP, Multicast 에 대해서 정리해보겠습니다.
Transmission Control Protocol
간단히 말하면 연결지향 신뢰성 보장 프로토콜입니다.
보통 TCP/IP 라고 부르는데, IP와 함께 사용하기 때문에 그렇게 부릅니다. IP 측에서 메세지를 전송하고 TCP 가 신뢰성을 보장해줍니다.
IP는 단지 전송만 해주는 기능을 합니다.
TCP/IP는 Session 을 만들고, Session 기반으로 통신합니다. 연결지향성이라고 불리는 이유입니다.
여기서 Session 이란 Client 와 Server 의 하나의 통신을 위한 길(Path) 라고 이해하셔도 좋겠습니다.
TCP/IP 통신 과정 중에 네트워크 오류 또는 망 상태가 좋지 않은 이유 등으로 패킷 손실이 발생할 수도 있겠죠?
또는, 순서가 뒤바뀌거나(시퀀스) 하는 등의 과정을 TCP 레이어에서 모두 처리해줍니다.
TCP 는 받아야할 메세지를 올바르게 받지 않으면, 재전송을 요구합니다. 다시 전송을 해줄 때까지 기다리죠.
순서대로 메세지를 받는다는 의미입니다.
하지만, 이러한 이유 때문에 TCP 가 UDP 보다는 좀 더 복잡합니다.
이러한 특성 때문에, 멀티미디어(ex. Live 영상) 정보를 수신하는데는 용이하지 않을 것입니다.
네트워크 공부하시면서 5 way Handshake, 3 way Handshake 를 들어보셨나요?
TCP/IP 의 통신 방법입니다. 어떻게 TCP/IP 통신이 이뤄지는 알 수 있는 개념이죠.
이건 따로 추후에 포스팅 하도록 하겠습니다.
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 구조입니다. 아주 간단합니다.
TCP/IP 와 같이 handshake 통신으로 왔다갔다 하면서 보내는게 아니고, 그냥 Request Response 의 구조입니다.
위에서 오버헤드가 적다는게 위와 같은 이유에서입니다.
위의 표를 보면 쉽게 이해하실 수 있습니다.
위에서 말씀드린 신뢰성, 비신뢰성, 연결지향형, 비연결지향형 을 생각하시면서 그림을 보시면 이해가 쉽습니다.
- TCP
SYN(나 너랑 통신하고 싶어)
SYN ACK(응 그래 통신하자)
ACK + Data(오케이 이제 데이터 보냄)
이 뒤에는 이제 Server 에서는 Data 를 받으면 다시 Data 를 잘 받았다고 ACK 를 보냅니다.
그러면 또 다시, Client 를 데이터를 보내겠죠.
- UDP
받어
받어
받어
받어
TCP 와 UDP 의 차이를 설명드렸습니다.
여기까지 포스팅을 마치겠습니다.
그럼 20000.
네트워크 UPnP 정리, Discovery 방법, SSDP (2) | 2020.06.04 |
---|---|
TCP/IP 소켓프로그래밍, 클라이언트 통신, C 소켓통신, 네트워크 프로그래밍 (2) | 2020.03.17 |
Samba 서버 설정, 쌈바 서버 설정, Ubuntu, 우분트 서버, 리눅스 서버 (0) | 2020.03.07 |
HTTP 인증, Baisic 인증, Digest 인증, 네트워크 보안 (0) | 2020.03.06 |
네트워크 장비, 허브(Hub), 스위치(Switch), 라우터(Router) 개념 및 정리 (0) | 2020.03.05 |