TCP/IP 4계층
애플리케이션 계층
- 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정.
- HTTP도 이 계층에 포함.
트랜스포트 계층
- 애플리케이션 계층에 네트워크로 접속되어있는 2대의 컴퓨터 사이의 데이터 흐름을 제공.
- 서로 다른 성질을 가진 TCP(Transmission Control Protocol)와 UDP(User Data Protocol) 이 있다.
네트워크 계층 (인터넷 계층)
- 네트워크 상에서 패킷(전송하는 데이터의 최소단위)의 이동을 다룸.
- 어떤 경로를 거쳐 상대의 컴퓨터까지 보낼지 결정.
링크 계층
- 네트워크에 접속하는 하드웨어적인 면을 다룸.
- 운영체제가 하드웨어를 제어하기 때문에 디바이스 드라이버랑 네트워크 인터페이스 카드를 포함.
- 클라이언트가 발신한 HTTP 리퀘스트 내용은 각 계층을 지나면서 헤더로 불려지는 해당 계층마다 필요한 정보를 추가한다.
- 반대로 수신측에서는 각 계층을 거칠 때마다 반드시 해당 계층에서 사용한 헤더를 삭제한다. 이를
캡슐화 과정
이라고 한다.
네트워크의 기본은 TCP/IP
인터넷을 포함하여 일반적으로 사용하는 네트워크는 TCP/IP라는 프로토콜에서 움직인다.
즉, TCP/IP
는 각각의 프로토콜을 명칭하기도 하지만 IP통신을 사용한 통신에서 사용되고 있는 프로토콜을 총칭하기도 한다.
IP - 패킷 배송을 담당
- IP는 네트워크 계층으로 개개의 패킷을 상대방에게 전달하는 역할을 한다.
- ARP(Address Resolution Protocol) 는 주소를 해결하기 위한 프로토콜 중 하나인데, 수신지의 IP주소를 바탕으로 MAC주소를 조사한다.
전달을 위해서는 IP주소
와 MAC(Media Access Control Address) 주소
가 필요하다.
IP 주소는 각 노드에 부여된 주소이고, MAC주소는 각 네트워크 카드에 할당된 고유의 주소이다.
TCP - 전송 신뢰성을 담당
- TCP는 트랜스포트 층에 해당하고, 신뢰성있는 바이트 스트림을 제공한다.
- TCP는 대용량의 데이터를 보내기 쉽게 작게 분해하여 상대에게 보내고, 정확하게 도착했는지 확인하는 역할을 한다.
상대에게 확실하게 데이터를 보내기위해서 쓰리웨이 핸드 셰이킹
이라는 방법을 쓴다. 송신측에서 최초 SYN
플래그와 함께 패킷을 보내고, 수신측에서는 SYN/ACK
플래그로 접속함과 동시에 패킷을 수신한 사실을 다시 송신측으로 보낸다. 마지막으로 송신측은 ACK
플래그를 보내 패킷 교환이 완료됨을 알린다.
DNS - 이름 해결을 담당
- DNS(Domain Name System)은 HTTP와 같이 응용 계층 시스템에서 도메인 이름과 IP주소 이름 확인을 제공한다.
도메인 명에서 IP주소를 조사하거나 반대로 IP주소로 부터 도메인 명을 조사하는 서비스를 제공한다.