
그 전에...
OSI 7 LAYER에 대해 비유적으로 설명하자면,

모듈화? => 전문화/분업화
컴퓨터 네트워크에서 데이터 주고 받을 때 정해 놓은 규칙 (PACK+BUCKET)
-> 큰 데이터를 작은 조각으로 나누어 전송할 때의 이 작은 조각
패킷은 기본적으로 TOP-DOWN 프로세스로 이루어진다
7계층 -> 1계층으로 내려오면서 옷(헤더) 추가하는 Encapsulation 과정 거침
반대는 옷(헤더) 벗기고 데이터만 추출하는 De-encapsulation 과정 거침
옷? 데이터 전송을 위해 필요한 주소, 타입, 순서 번호 등의 정보
4계층까지 입음: Segment
3계층까지 입음: 패킷
2계층까지 입음: 프레임
TCP는 APPLICATION 에서 보내는 데이터를 받아서 이를 네트워크를 통해 전송할 수 있는 형태로 잘게 나눈다
적용 7계층 프로토콜: HTTP, FTP, SMTP, Telnet
적용 7계층 프로토콜: SYSLOG, SNMP, DHCP, DNS

DHCP: IP 자동 할당
DHCP Discover: 컴퓨터가 네트워크에 연결되면, IP 주소를 요청하기 위해 브로드캐스트 메시지를 네트워크에 보냄. 이 메시지는 모든 장치가 수신할 수 있는 형태로 발송됨
DHCP Offer: DHCP 서버가 이 브로드캐스트 메시지를 받고, 사용할 수 있는 IP 주소를 제안하는 DHCP Offer 메시지를 보냄. 이 메시지는 유니캐스트 또는 브로드캐스트 방식으로 보낼 수 있지만, 일반적으로는 응답이 올바른 대상 장치에 전달되도록 유니캐스트로 보내짐
DHCP Request: 클라이언트는 제공된 IP 주소를 수락하기 위해 DHCP Request 메시지를 서버에 보냅니다. 이 메시지 또한 브로드캐스트로 전송됨
DHCP Acknowledgment: 서버가 클라이언트의 요청을 확인하고, 최종적으로 IP 주소를 할당해주는 DHCP Acknowledgment 메시지를 클라이언트에 전송함. 이 메시지는 유니캐스트로 전달됨
DHCP에서 ip주소를 할당 받았으니 다른 장치와 통신하기 위해선 물리적 MAC주소가 필요함
ARP Request: 클라이언트가 자신의 IP 주소에 해당하는 MAC 주소를 알아내기 위해 브로드캐스트로 ARP Request를 보냄 . 이 요청은 네트워크상의 모든 장치에게 전달됨
ARP Reply: 해당 IP 주소를 가진 장치가 자신의 MAC 주소를 포함한 ARP Reply 메시지를 보냄. 이 응답은 요청한 클라이언트에게만 유니캐스트로 전달됨.
웹사이트에 접속하려 할 때, 웹사이트의 도메인 이름을 IP 주소로 변환해야 함
DNS Query: 클라이언트는 도메인 이름을 IP 주소로 변환하기 위해 DNS Query를 DNS 서버에 보냄. 이 요청은 유니캐스트로 전달됨.
DNS Answer: DNS 서버가 요청을 처리한 후, 도메인 이름에 해당하는 IP 주소를 포함한 DNS Answer 메시지를 클라이언트에게 유니캐스트로 보냄.
이제 IP 주소 알고 있으니 웹 서버에 HTTP 요청 보냄
TCP 3-Way Handshake:
SYN: 클라이언트가 서버에 연결 요청 보냄
SYN-ACK: 서버가 클라이언트의 요청 수락 및 응답
ACK: 클라이언트가 서버의 응답 확인
HTTP Request/Response:
TCP 연결이 확립되면, 클라이언트가 서버에 HTTP GET 요청을 보냄. 서버는 HTTP 200 OK 응답과 함께 요청된 리소스를 반환.
DHCP(UDP, BroadCast) : DHCP DORA -> 출발지 주소 받음
ARP Request / Reply
DNS(UDP, UniCast) : DNS Query/Answer -> 목적지 주소 받음
ARP Request / Reply
TCP 3 WAY-HandShake
HTTP(TCP, UniCast) : HTTP GET/200 -> 통신
TCP 3 WAY-HandShake
첫 번째 ARP: 클라이언트가 네트워크에 처음 연결되어 IP 주소 할당 받기 위해 DHCP 서버와 통신하려고 할 때 발생
두 번째 ARP: 클라이언트가 DNS 서버나 웹 서버와 통신하려고 할 때 발생
왜 두 번이나 TCP 3 WAY HANDSHAKE 나타남?
->