오늘은 통신할 때 사용되는 프로토콜에 대해 알아보려고 한다.
컴퓨터 끼리의 데이터 전송을 위해서는 목적지에 대한 정보가 필요한데,
이번에 설명할 IP (Internet Protocol) 가 바로 목적지의 주소라고 생각하면 된다.
IP Adress 에 패킷(통신 단위)을 통해 데이터를 전송하면 비로소 통신을 하게되는 것이다.
IP 패킷 안에 데이터들을 담는데, 그 값들로는 출발지 IP, 목적지 IP 등의 정보들과 데이터를 담아서 함께 전송하게되는 방식이다.
하지만 이런 IP 통신에는 한계가 있다.
목적지의 PC가 꺼져있으면 패킷이 소실되며, 패킷이 꼬여버린다면 정상적인 데이터 전달이 이루어지지 않을 수 있다.
이를 위해 만들어진 것이 TCP/IP와 UDP/IP 이다
먼저 TCP/IP 에 대해서 살펴보도록 하자.
TCP/IP(Transmission Control Protocol/Internet Protocol)
TCP/IP 는 기본적으로 IP 패킷이 가지고 있는 정보를 가지고 있으며,
그 안에 출발지와 목적지의 Port 정보, 전송 제어정보와 순서, 검증정보 등을 가지고 데이터를 전송한다.
이러한 TCP/IP 는 기존 IP와는 다르게 연결성을 보장(3way Handshake)하기에 패킷이 소실될 일이 없고, 데이터를 보증해주며 순서를 지켜준다.
IP의 단점을 해결하였기에 신뢰할 수 있는 프로토콜이고, 현재는 대부분 TCP/IP를 사용한다.
다음으로는 UDP/IP 이다.
UDP (User datagram protocol)
UDP/IP는 기존 IP와 거의 비슷하다.
단지 Port와 체크섬이 추가된 것 뿐이라서, 거의 아무기능이 없다고 봐도 무방하다.
이를 제대로 사용하기 위해서는 애플리케이션에서의 추가 작업이 필요하다.
TCP/IP 처럼 데이터와 순서가 보장되지는 않지만, TCP/IP 보다 단순하기 때문에 빠른 속도가 장점이다.
최근에는 HTTP3를 사용하면서 많은 최적화를 통해서 UDP도 많이 사용되는 추세라고 한다.
알아두면 좋은 지식인 듯하니 알아두도록 하자.
참고 -
앞으로 이 목록에 올라갈 인터넷 및 네트워크 통신에 대한 내용은 인프런에 있는 '모든 개발자를 위한 HTTP 웹 기본 지식' 을 기반으로 작성 될 예정입니다.
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC
'오늘의 공부 > CS' 카테고리의 다른 글
Port 에 대해서 (0) | 2022.03.20 |
---|---|
DAO와 DTO, VO 그리고 Entity (0) | 2022.03.20 |
API에 대해서 (0) | 2022.03.20 |