네트워크의 구성 = LAN 계층, 인터넷 계층
LAN이 보급된 후, 여러가지의 다양한 형태를 가진 LAN 사이의 통신을 위해 인터넷이 만들어진다.
(LAN의 토폴로지는 star, ring, bus 등이 존재)
LAN과 인터넷은 각각 연결 계층과 프로토콜 계층으로 나뉜다.
이러한 구조는 5계층 구조로 발전한다.
응용 - 전송 - 네트워크 - 데이터링크 - 물리
물리 계층은 LAN에서 통신기기의 연결을 담당하는 계층으로, 인접해 있는 노드들을 유선 또는 무선으로 연결하는 역할이라고 할 수 있다.
데이터 링크 계층은 인접한 기기 간의 오류 없는 데이터 전송을 위한 계층이다.
물리 계층을 통해 얼마나 빠른 속도로 데이터를 주고 받을 것인지, 받은 데이터에는 오류가 없는지 살핀다. → 흐름 제어
LAN에서 물리 계층을 통해 데이터를 주고 받을 때, 데이터를 제어함으로써 인접한 기기 간의 통신이 이루어진다.
네트워크 계층은 여러 개의 LAN을 하나로 묶어 인터넷을 만들어 주는 핵심 계층으로,
여러 LAN을 지나 출발지로부터 목적지까지 데이터를 전송해주는 계층이다.
네트워크 계층은 서로 다른 LAN을 하나로 묶어 데이터를 전송하는 것이기 때문에 정상적으로 데이터가 전송한다는 보장이 없다. (데이터가 중간에 사라지거나 잘려나가기도 한다.)
이때 이러한 오류를 전송 계층에서 보정한다.
전송 계층은 네트워크 계층의 오류를 보정해주어 인터넷에서의 오류 없는 데이터 전송을 위한 계층이다.
이때 TCP, 즉 전송 제어 프로토콜을 사용하며 인터넷을 사용할 때 오류가 발생하는 IP만 쓰지 않고 TCP/IP로 함께 사용하게 된다.
데이터 링크 계층처럼 흐름 제어와 오류 처리 방식이 사용된다.
또한, 상위의 응용 프로그램이 인터넷을 사용할 수 있도록 인터페이스를 제공하며 연결 설정과 해제를 지원한다.
응용 계층은 인터넷을 사용하는 각종 응용 프로그램이 위치하는 계층이다.
가장 유명한 프로토콜은 HTTP가 존재한다. HTTP는 웹 브라우저를 사용하여 홈페이지를 방문할 때 쓰이고, 이것은 응용 계층의 HTTP가 전송 계층의 TCP가 제공하는 인터페이스를 사용해 서버에 있는 홈페이지의 데이터를 가져오는 것이다.
응용 계층의 대부분의 프로그램들은 클라이언트/서버 구조를 갖는다.
헤더는 데이터 전송을 위해 추가되는 자료구조이다.
통신할 때 각 계층에서 해야할 내용을 잘 수행하기 위해 사용된다.
우체국에서 전송할 박스 전면에 여러 내용을 기입하는 것과 같다.
데이터가 하위 계층으로 내려갈 때, 각 계층 별로 자신만의 고유한 헤더를 붙이고, 상위 계층으로 올라갈 때, 자신이 사용했던 헤더를 떼고 올려 보낸다.
예를 들어, A 호스트에 있는 응용 프로그램이 인터넷을 통해 B 호스트에 있는 응용 프로그램에게 데이터를 보낸다고 가정하자.
A 호스트의 응용 프로그램은 데이터를 전송 계층에 보내면 전송 계층은 전달 받은 데이터에 헤더를 통해 추가적인 정보를 삽입하고(누구에게 보내는지, 데이터 크기는 얼마인지, 데이터 크기를 분할 하기도 한다.), 네트워크 계층으로 내려 보낸다.
네트워크 계층 또한 필요로 하는 정보를 담은 헤더를 또 붙인 뒤 데이터 링크 계층으로 전송한다.
데이터 링크 계층도 헤더를 붙이고, 만들어진 데이터를 물리 계층을 통해 B 호스트에게 보낸다.
데이터를 전달받은 B 호스트는 데이터 링크 계층에서 헤더를 참조하여 오류가 없는지를 확인하고 문제가 없을 경우 데이터 링크 헤더를 떼고 올려 보낸다.
네트워크 계층과 전송 계층에서도 문제가 있는지 확인하고 각 계층의 헤더를 떼고 응용 계층으로 데이터만 올려 보낸다.
이때, 계층을 나누어 계층을 통과할 때마다 헤더를 계속 붙이는 작업은 불필요한 추가 작업(오버헤드)이 증가하는 것처럼 보일 수 있으나, 관리하기가 편해진다.
네트워크를 여러 개의 계층으로 나누며 각 계층은 하나의 모듈(module)이다.
모듈화한 네트워크는 관리 측면에서 유리하다. 통신 과정 중 오류가 발생했을 때, 계층을 나누지 않은 경우 전체를 수정해야 하지만, 모듈화된 경 오류가 발생한 특정 모듈만 바꾸면 된다.
인터넷의 중간 노드(라우터)들은 3번째 계층인 네트워크 계층까지만 사용한다.
전송 과정 중 중간 노드에서 4, 5 계층을 사용하지 않는 이유는 데이터를 전송하는 과정 중 데이터를 확인할 필요가 없기 때문이다.
데이터가 잘 도착했는지 유무는 수신자의 전송 계층이 확인한다.
ISO에서 네트워크 모델로 개발한 모델로 5계층 모델에서 응용 계층을 3개의 계층(세션 계층(Session layer), 표현 계층(Presentation layer), 세션 계층(Session layer))으로 분리한다.
현재 가장 많이 사용되는 계층 모델은 TCP/IP 모델로 IP 아래의 LAN 계층인 물리 계층과 데이터 링크 계층을 로컬 네트워크라는 하나의 덩어리로 처리한다.