참고도서: 컴퓨터 네트워킹 : 하향식 접근. 7판. James F. Kurose , Keith W.Ross 지음
프로토콜 인터페이스
어떤 네트워크 계층 N이 있을 때, 이 계층은 자신의 바로 위 계층에 서비스를 제공한다.
이 서비스는 인터페이스를 통해서 제공되기 때문에, 윗 계층은 단순히 서비스를 사용하기만 할 뿐, 내부적으로 어떤 구성으로 이루어져 있는지 알지 못한다.
이렇게 한 계층의 서비스를 나타내는 단위를 SDU(Service Data Unit) 이라고 하고, 이 SDU에 PCI(Protocol Control Information)을 헤더로 추가해서 윗 계층에서 사용되는 단위를 PDU(Protocol Data Unit) 이라고 한다.
서비스 흐름
어떤 두 호스트 A와 B가 있다고 할때, A 와 B가 정보를 송수신 하기 위해서는 네 단계를 거치게 된다.
출발지 호스트 A의 N 번째 계층에서 바로 아래 계층인 N-1 계층으로 request를 보낸디.
아래 계층은 목적지 호스트 B의 N-1번째 계층에 정보를 전송하고, N-1번째 계층은 바로 위 계층인 N번째 계층에 indication을 보낸다.
indication이 성공하면 호스트 B의 N 계층은 N-1 계층에 Response 보낸다.
이 응답이 호스트 A의 N-1 계층에 전달되고 N-1번쨰 계층은 바로 위인 N번째 계층에 Confirm 을 보낸다.
인터넷 프로토콜 스택
인터넷 프로토콜 스택은 총 5개의 계층으로 구성된다.
Application Layer(어플리케이션 계층)
HTTP, FTP, SMTP 와 같은 프로토콜이 어플리케이션 계층에 포함된다.
여러 앤드 시스템에 분산되어 있고 한 어플리케이션이 다른 앤드시스템에 있는 어플리케이션과 정보를 교환할 때 위 프로토콜들을 사용한다.
어플리케이션 계층에서 사용되는 정보 패킷을 메시지(message) 라고 한다.
Transport Layer(트랜스포트 계층)
클라이언트와 서버 간의 어플리케이션 계층 메세지를 전송하는 기능을 담당한다.
TCP, UDP 프로토콜이 사용된다.
TCP는 정보 전송에 있어서 연결 지향 서비스 를 제공한다. 연결 지향 서비스는 송신자와 수신자 사이에 연결이 우선적으로 설정된 후에 데이터가 전송되는 방식이다. 따라서 TCP는 항상 메세지 전달이 보장되고 송신자와 수신자의 속도가 같도록 보장한다.
UDP는 비연결형 서비스를 제공한다. 비연결형 서비스는 TCP외는 달리 연결을 설정할 필요없이 패킷을 바로바로 목적지로 전달하는 서비스이다.
트랜스포트 계층에서 사용되는 정보 패킷을 세그먼트(segmen) 라고 한다.
Network Layer(네트워크 계층)
트랜스포트 계층에서 TCP나 UDP를 이용해 네트워크 계층으로 세그먼트와 목적지 주소를 전달한다.
네트워크 계층은 전달받은 목적지의 트랜스포트 계층으로 세그먼트를 운반하는 기능을 한다.
이때 운반되는 정보 패킷을 데이터그램(datagram) 이라고 한다.
네트워크 계층은 IP 프로토콜을 가진다.
IP 프로토콜은 데이터그램의 필드를 정의하고 앤드 시스템과 라우터가 어떻게 동작하는지 정의한다.
네트워크 계층을 가진 모든 인터넷 요소는 IP 프로토콜을 수행해야한다.
네트워크 계층은 라우팅 프로토콜을 가진다.
라우팅 프로토콜은 출발지와 목적지 사이에 데이터그램이 어떻게 전달될지 그 경로를 결정한다.
Link Layer(링크 계층)
데이터그램이 라우팅될 때, 한 노드에서 다음 노드로 패킷이 이동되기 위해서는 링크계층을 거쳐야 한다.
네트워크 계층은 데이터그램을 링크 계층으로 내려보내고 링크 계층에서 다음 노드로 패킷이 이동하게 된다.
링크 계층에서 사용되는 패킷을 프레임(frame)이라고 한다.
Physical Layer(물리계층)
링크계층에서 전달된 프레임의 각 비트 하나하나는 물리 계층을 통해 다음 노드로 이동된다.
이 계층에서 패킷의 전달은 통신 링크에 따라 이루어지고, 케이블과 같은 직접적인 물리매체를 사용하게 된다.
OSI Reference Model
OSI(Open System Interconnection) 7계층 모델은 우리가 일반저긍로 흔히 접하는 네트워크 모델이다. 7개의 계층은 다음과 같이 구성된다.
물리 계층
데이터링크 계층
네트워크 계층
트랜스포트 계층
세션 계층
프레젠테이션 계층
어플리케이션 계층
다른 계층들은 이미 위 프로토콜 스택에서 기술 했으니 세션 계층과 프레젠테이션 계층만 정리해보자.
프레젠테이션 계층
프레젠테이션 계층은 교환되는 데이터들의 의미를 해석해서 어플리케이션에게 제공하는 역할을 한다.
데이터를 기술하고, 암호화를 지원한다.
세션 계층
데이터 교환의 경계와 동기화를 제공한다.
통신하는 두 응용프로그램의 연결을 설정하고 유지, 종료시킨다.
전송방식을 결정하고 데이터의 교환을 관리한다.
캡슐화(encapsulation)
캡슐화는 프로토콜 스택의 아래로 위아래로 데이터들이 전달될 때 헤더에 추가적인 정보들을 추가하여 다음 계층으로 보낸다.
어플리케이션 계층의 메세지는 트랜스포트 계층으로 전달되면서 트랜스포트 계층의 헤더정보와 합쳐져 트랜스포트 계층의 세그먼트가 된다.
트랜스포트 계층의 세그먼트는 네트워크 계층으로 전달되면서 출발지와 목적지에 대한 정버를 헤더에 포함하여 네트워크 계층의 데이터그램을 구성한다.
네트워크 계층의 데이터그램은 링크계층에서 또 다시 링크 계층의 헤더정보와 합쳐져 링크 계층의 프레임을 구성하게 된다.
따라서 어떤 계층에서의 패킷은 그 상위 계층에서 전달받은 패킷은 페이로드 필드(payload field)와 헤더필드로 구성된다.