사람과 사람의 통신에도 3개의 계층으로 나눌 수 있다.
이 세 계층은 바꿔도 서로 영향을 주지 않는다.
이런 것을 ‘계층’ 이라고 부른다.
이렇게 계층을 나누면, 특정계층을 개선하거나 특정계층에서 사용하는 프로토콜을 다른 것으로 변경한다고 해도 다른 계층들은 영향을 받지 않는다.
그렇다면 기계와 기계 간에 정보를 주고받을 때에는 몇 개의 계층으로 나누는 게 좋을까?
인터넷 모델이라고도 함.
이 모델에서는 5개의 계층으로 나누고 있다.
💡 5계층 : Application (응용 계층)4계층 : Transport (전송 계층)
3계층 : Network (네트워크 계층)
2계층 : Data link (데이터링크 계층)
1계층 : Physical (물리 계층)
이렇게 컴퓨터가 내부적으로 5개의 계층으로 구성되어 있다고 생각한 모델이다.
0과 1의 비트들의 나열로
데이터 속도, 비트의 동기화, 토폴로지, 전송 모드, 케이블 연결 등의 정보를 보내는 계층
이 계층부터는 메세지 포맷이 존재한다.
(참고로 물리 계층은 포맷이 없고 그냥 비트의 나열이다.)
프레임화, 송수신 주소 명시, 흐름제어, 에러제어, 접근제어를 한다.
데이터링크 계층의 가장 중요한 기능이다.
물리계층에서 보낸 비트에서 에러가 났는지 여부를 체크한다.
수신측과 송신측의 데이터 처리 속도 차이를 해결
(사람도 말이 너무 빠르면 못 알아들으니까)
여러 장치들이 동일한 링크를 공유할 때 충돌이 발생하지 않도록 조정
여기서 가장 중요한 기능은 라우팅
이다.
데이터가 가는 경로를 선택하는 기능
가장 좋은 경로로 가야하기 때문에 라우팅이 이루어진다.
데이터가 왔을 때 누구에게 보내냐 하는 것을 결정하는 계층
만약 데이터가 너무 크면 그걸 잘라서 보내지는데, 그걸 묶는 역할도 함.
말 그대로 모든 응용 프로그램이 다 포함된다.
대표적으로 파일을 송수신할 때 사용되는 프로토콜인 FTP (File Transfer Protocol)
,
이메일 송수신할 때 사용되는 SMTP (Simple Mail Transfer Protocol)
,
하이퍼텍스트를 지원하는 HTTP (HyperText Transfer Protocol)
이러한 프로토콜을 사용하는 기능들을 포함한 계층이 응용계층이다.
여기서 더 나아가서 프로토콜이란?
자세히 말하면, 데이터를 주고 받는데 이용되는 규칙의 집합