IP (Internet Protocol)
어떤 통신 방식이든 IP를 구현만하면 모든 응용 프로그램을 지원할 수 있으며,
어떤 응용 프로그램이든 IP로 통신을 한다면 IP를 지원하는 하드웨어 기술에서도 동작이 가능
IP는 독립적으로 서로 다른 네트워크를 연결하므로 여러 네트워크를 거쳐야하는 인터넷 환경에서는 '반드시 통신이 가능하다'를 보장하지 못한다.
그래서 열심히 통신은 시도 하나 보장은 못한다는 의미로 Best effort라는 표현을 쓰는데
이는 IP의 중요 특성 중 하나이다.
💡 Best effort?
데이터를 전송할 때 최선형 전송(best-effort delivery) 서비스 방식을 이용하는 네트워크.
최선형 전송(best-effort delivery) 서비스란 빠른 시간내의 데이터 전송을 최우선으로 하는 전달 방식으로, 데이터를 그 중요도나 주체와 무관하게 선입선출(FIFO) 방식으로 처리하는 방식이 대표적이다. 최선형 서비스 네트워크에서는 수신자의 데이터 수신 여부, 전송되는 데이터에 대한 품질(QoS), 데이터에 대한 특정한 우선도(priority)를 보장하지 않는 특징을 가진다.
TCP
- 컴퓨터가 다른 컴퓨터와 데이터 양방향 통신을 하기 위한 프로토콜
- 위 그림은 서로를 확인하는 과정으로 Three Way Handshake라고 한다
1) 상대에게 통신을 하고 싶다는 메시지를 보낸다. (SYN)
2) 상대는 그 메시지에 대한 응답 + 나도 통신 준비가 되었다는 메시지를 보낸다. (SYN-ACK)
3) 2번에서 받은 메시지에 응답을 보낸다. (ACK)
- 이 과정을 통해 상대를 신뢰할 수 있는지 판단이 가능하다.
- 연결 후 요청을 했을 때 timeout시간 안에 답이 오지 않으면 계속 요청을 하게 된다.
- 패킷을 통해 누락된 데이터를 확인할 수 있다.
- 혼잡 제어를 통해 속도를 조절하여 라우터 들의 부담을 줄인다.
UDP
- 컴퓨터가 다른 컴퓨터와 데이터 단방향 통신을 하기 위한 프로토콜
- 상대가 신뢰할 수 있는 대상인지 판단이 불가능하다.
- 상대가 데이터를 제대로 받았는지 못받았는지를 판단하지 않는다.
- 따라서 누락된 데이터를 확인이 불가능하다.
- 확인응답(Ark) 같은 것이 없기 때문에 TCP보다 용량이 가볍고 송신속도가 빠르다.
참고
https://hack-cracker.tistory.com/111