1. IP (Internet protocol)
ip 프로토콜은 데이터를 클라이언트의 Ip(시작점)에서 ,상대 서버 Ip(도착점)까지 패킷(packet) 의 단위로 전달한다

- 네트워크 계층이다
- 비 연결성이다(Connectionless)
- IP 프로토콜 은 데이터를 보낼 때 연결을 설정하지 않는다.
- 즉, 서버의 작동유무와 관계없이 패킷을 던진다
- 연결지향(Connection-Oriented) 은 전송계층인 Tcp 에서 이루어진다.
- 비 신뢰성이다
- Ip 프로토콜 은 데이터 전달을 보장하지 않는다.
- 패킷이 유실되거나 중복되어도 복구하지 않은다.
- 패킷 도착 순서를 보장하지 않는다
2. TCP(Transmission Control Protocol)
- 전송 계층이다
- 연결 지향(Connection-Oriented) 이다
- 클라이언트 OS 는 3-way handshake 로 해당 ip의 서버와 연결한다
3-way handshake

- 신뢰성 이다
- 데이터 전달을 보증한다.데이터가 유실되면 복구해서 다시보낸다.
- Sequence number 를 활용하여 순서가 뒤바뀌면 버퍼에 저장후 올바른 순서대로 재조립한다, 중복이 있다면 중복을 제거한다
- port + ip 의 조합
port
클라이언트가 하나의 PC(IP) 로 여러 서버와 요청을 주고받는중에 어떻게 작동할까?
친구들과 게임을하는중인데 상대 팀 전적이 궁금해서 웹(http)요청을한다면.
이럴때는 IP이외 에도 외부에서 받아오는 요청을 애플리케이션 단위로 구분할수있는 기준이 필요함.
하나의 IP주소안에서도 여러 애플리케이션이 동시에 통신할 수 있도록 하는번호체계이다.
ip를 집 주소로 비유하고, port는 각 방의 번호에 비유한다.
3. 인터넷 프로토콜 스택 4계층
- 애플리케이션 계층(HTTP,FTP,DNS등)
- 전송 계층 (TCP,UDP)
- 인터넷 계층(IP)
- 네트워크 인터페이스 계층(Ethernet,Wi-Fi)

1. 애플리케이션 계층 (HTTP,DNS)
클라이언트가 데이터생성(ex : http 요청 메세지)
2. 전송 계층 (TCP또는 UDP)
- TCP 라면 -> 데이터에 Port 추가 -> TCP세그먼트(segment)생성
- UDP 라면 -> 데이터에 Port 추가 -> UDP세그먼트 생성
이 시점에 3 - way handshack 가 일어나서 서버와 연결(Connection)
3. 네트워크 계층(IP)
- 세그먼트를 IP 패킷(packet)으로 캡슐화
- IP 헤더 추가(출발지 IP,목적지 IP)
4. 데이터 링크 계층(Ethernet,Wi-Fi)