패킷교환 방식의 네트워크 통신은 기존에 있던 회선교환 방식의 단점을 보완한 방식이다.
회선교환 방식이란 발신자와 수신자 사이에 데이터를 전송할 전용선을 미리 할당하고 둘을 연결하는 방식이다. 옛날에 존재했던 전화교환원 분들이 이런 회선교환을 도와주시던 분들이다. 하지만 회선교환은 중간에 오퍼레이터가 필요하기 때문에 즉시성이 떨어진다는 명백한 단점이 존재했다.
이런 단점을 보완하여 데이터를 '패킷'이라는 단위로 나누어 전송하는 방식이 패킷교환 방식이다. 그래서 출발지의와 목적지의 주소를 IP라는 특정한 숫자값으로 표기하고 데이터를 전송하게 되었다.
복잡한 인터넷 망 속에서 클라이언트와 서버가 통신하기 위해 컴퓨터에게 주소를 부여하는데 이를 위한 특정한 숫자값의 주소를 의미한다.
IP Packet에서 packet은 pack과 bucket이 합쳐진 단어로 '소포'라고 볼 수 있다.
이 패킷에는 단순히 전송할 데이터 뿐만 아니라 출발지 IP, 목적지 IP와 같은 정보들이 포함되어 있다.
비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷은 전송된다.
비신뢰성
IP 패킷의 한계를 보완한 단계인 TCP는 다음과 같은 특징을 가지고 있다.
먼저 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보낸다. 서버는 SYN 요청을 받고 클라이언트에게 요청을 수락한다는 ACK와 SYN이 설정된 패킷을 발송하고 클라이언트가 서버에게 ASK를 보내면 이후부터 연결이 성립되며 데이터를 전송할 수 있다.
만약 서버가 꺼져있다면 서버에서 응답이 없기 때문에 데이터를 보내지 않는다.
TCP는 데이터 전송이 성공적으로 이루어진다면 이에 대한 응답을 돌려주기 때문에 IP의 한계인 비연결성으로 인한 데이터 전달 여부를 보완할 수 있다.
만약 패킷이 순서대로 도착하지 않는다면 TCP 세그먼트에 있는 정보를 토대로 다시 패킷 전송을 요청한다.
ex ) 패킷이 1,2,3순서도 보내고 1,3,2순서로 도착했다면 패킷 2부터 재전송을 요청한다.
UDP는 IP에 PORT, 체크섬 필드 정보만 추가된 단순한 프로토콜이다. 앞서 나온 TCP 보다 신뢰성은 낮지만 3 way handshake를 사용하지 않기 때문에 비교적 빠른 속도를 보장한다.
HTTP3는 UDP를 사용하며 이미 여러 기능이 구현된 TCP보다는 하얀 도화지처럼 커스터마이징이 가능하다는 장점이 있습니다.
📌 체크섬 : 중복 검사의 한 형태로, 오류 정정을 통해, 공간이나 시간 속에서 송신된 자료의 무결성을 보호하는 단순한 방법.
📌 Tip. 아직 TCP와 UDP의 차이가 잘 와닿지 않는다면, 좋은 기능이 다 들어있는 무거운 라이브러리와 필요한 기능만 들어있는 가벼운 라이브러리로 비교할 수 있겠습니다.