IP는 Client와 Server간에 데이터를 주고받기 위해 사용되는 고유주소를 의미합니다. IP는 인터넷 상에서 기기를 식별하고 올바른 대상에게 전달되기 위해 사용되며 Ipv4/Ipv6의 종류가 있습니다.
인터넷 프로토콜 스택의 4계층
- 애플리케이션 계층 - HTTP, FTP
- 전송 계층 - TCP, UDP
- 인터넷 계층 - IP
- 네트워크 인터페이스 계층 - Lan카드 등
IP는 데이터를 전송하기 위해 패킷이라는 특수한 단위를 사용해 데이터를 송수신합니다. 패킷은 헤더와 바디로 이루어져 있고 하나의 패킷이 1500byte 넘으면 나누어 전송합니다.
헤더
바디
비신뢰성
패킷은 1500byte로 나누어 전송하는데 A -> B로 전송을 진행해도 B -> A순으로 데이터가 도착할 수 있습니다. 추가로 중간 네트워크 노드가 소실되는 등 패킷이 소실되거나 내부 데이터에 문제가 발생한 경우 수신자 입장에서는 이를 확인할 방법이 없습니다.
연결 식별성 부족
동일 IP내 클라이언트나 서버 구분이 불가능 합니다. 서버의 입장에서는 클라이언트를 명확하게 구분하기 위해 추가적인 정보가 필요합니다.
TCP는 "Transmission Control Protocol"의 약자로 전송제어 프로토콜이라는 의미를 가집니다. IP 프로토콜의 한계를 개선하기 위해 사용됩니다.
TCP프로토콜은 다음과 같은 특징이 있습니다.
연결 지향
데이터 전달 보증
순서 보장

출처 : 김영한님의 HTTP강의
TCP에서 가장 중요한 개념입니다. 3way handshake는 단순하게 쌍방향 연결 확인이며, 3번의 통신을 통해 연결한다는 개념입니다.

출처 : 김영한님의 HTTP강의
그림을 살펴보면 SYN / ACK가 있는걸 확인 할 수 있습니다.
SYN은 요청을 의미하고 ACK는 응답을 의미합니다.
풀어서 이야기하면 첫번째는 Client에서 Server로 "연결 가능해?"라는 의미로 SYN을 전송합니다. 두번째는 Server에서 연결 가능상태라면 "연결 가능하고, 나도 연결할게"라는 의미로 SYN/ACK 를 전송합니다. 세번째는 마무리 단계로 client에서 Server최종적인 승인을 전송해 연결을 마무리합니다.
TCP는 실제로 연결된 상태가 아니고 "개념적"으로 연결된 상태입니다.
장점 : 신뢰성이 있는 데이터 전송으로 전달 보증 순서를 보장한다.
-> 손실 복구와 흐름제어
단점 : 연결 설정 및 유지에 시간이 걸린다 (오버헤드 증가)
UDP는 User Datagram Protocol의 약자로 사용자기반 프로토콜입니다.
UDP는 주로 "하얀 도화지"에 비유를 많이 합니다. 아무런 기능이 없으며, IP 프로토콜에서 port의 정보만 갖고있는 것입니다.
UDP는 DIY가 가능한 프로토콜로 TCP패킷과 달리 패킷에 대한 모든 설정이 사용자가 자유롭게 구성이 가능합니다.
장점 : 연결 설정과정이 없고 단순 데이터 전송만 하기때문에 오버헤드가 적다.
주로 스트리밍서비스 VoIP등에 사용합니다.
단점 : 신뢰성이 부족합니다. 패킷의 모든정보를 사용자가 설정해야 하기 때문에 전달 보증 순서보증을 설정하지 않으면 없으며, 손실 패킷에 대한 복구가 자동으로 이루어지지 않습니다.
IP프로토콜에서 연결 식별성의 한계를 극복하기 위해 추가된 연결 옵션이며, TCP/UDP에서 사용됩니다.
Port는 하나의 IP주소에서 여러 서비스(웹서핑, 메일, 게임등등)를 구분하기 위해서 사용됩니다.
IP는 아파트의 주소, port는 호수로 비유가 가능합니다.
예를 들어 111.111.0.1:80은 아파트(111.111.0.1)동이고 80호(http서비스)입니다.
포트 번호를 이용해 패킷이 서버에서 어떤 호수로 들어가야하는 지 결정을 합니다.
쉽게 배달서비스를 생각하면 됩니다. 원하는 음식점(서버)에서 주문을 하면 집(클라이언트)로 음식(데이터)가 오는 것입니다.
IP 주소를 하나하나 전부 기억하지 못하기 때문에 IP에 이름을 부여한 것이라고 보면됩니다.
DNS는 우리가 실생활에 사용하는 주소록과 비슷합니다.
이를 통해 우리는 사이트의 실 IP를 몰라도 DNS를 사용하여 사이트에 접속을 합니다.
추가로 접속하는 사이트의 IP가 변경되더라도 도메인만 일정하면 사용자는 변경을 알지 않아도 됩니다.