No img

두 호스트가 각각 7개의 계층으로 구성된 모듈을 수행함으로써 데이터 송수신이 가능하다.

 

전송 데이터는 송신 호스트의 응용 계층에서 시작해 하위 계층으로 순차적으로 전달되어 최종적으로 물리 계층에서 수신 호스트에 전달된다.

수신 데이터는 수신 호스트의 하위 계층에서 시작해 상위 계층으로 순차적으로 이동시켜 응용 계층에 도착하게 된다.

임의의 호스트에서 실행되는 계층 n 모듈은 상대 호스트의 계층 n 모듈과 논리적으로 통신하는데, 이들이 사용하는 규칙을 계층 n프로토콜(protocol)이라 한다. 프로토콜의 역할은 프로토콜에 정의된 기능을 수행하면서 필요한 정보를 서로 교환하는 것이다.

- 동일 계층에 위치한 통신 양단은 같은 프로토콜을 사용하여 통신하기 때문에 Peer Process라고 한다.

- 한 호스트에서 상하로 이웃하는 계층에 위치한 모듈 사이에는 인터페이스가 정의되어 접근 방법을 제한한다.

- 상위 계층에서는 하위 계층의 인터페이스를 통해 하위 계층의 서비스를 이용할 수 있다.

- 각 계층의 동료 프로세스는 직접 통신을 하는 것이 아니며 항상 물리 계층을 통해 데이터가 전송 된다.

 

일반 송신자는 전송할 데이터가 있으면 이를 응용 계층에 보내 전송을 요청한다. 응용 계층에서는 데이터에 자신의 프로토콜에서 정의한 헤더 정보를 추가해 하위 계층으로 보낸다. 이런 과정은 물리 계층에서 데이터가 물리적으로 전송될 때까지 반복된다.

수신의 경우 물리 계층에서 수신한 데이터에서 반대로 헤더를 제거한다. 계층별로 해당 계층의 헤더 정보를 해석하여 적절히 처리하고 헤더를 제거한 후 상위 계층에 전달한다. 따라서 최상위 수신자에게는 원래의 전송 데이터만 남는다.

이런 과정에서 각 계층의 프로토콜은 정해진 기능을 수행하여 데이터 송신 과정에서 발생하는 문제점을 해결해준다.

 

송신 호스트에서 수신 호스트로 데이터를 전달하려면 중개 시스템 역할을 수행하는 중개 노드를 거쳐야 한다. 중개 시스템은 데이터가 목적지까지 올바르게 전달되록 경로 배정 기능을 수행한다.

중개 시스템에서는 경로 배정 기능을 수행하는 네트워크 계층의 프로토콜이 동작하는데 이런 경보 배정 기능을 라우팅이라 한다.

중개 노드인 라우터는 도착한 데이터의 헤더 정보를 해석해 적절한 경로로 전달하며 다음 라우터로 보내기 전에 헤더 정보를 적절히 수정해 전송한다.

 

물리 계층(Physical Layer)

가장 하위 계층인 물리 계층은 전송 매체의 물리적 인터페이스에 관한 사항을 기술한다. 즉, 전송 매체에서는 개별 정보의 비트(Bit) 교환 문제를 다룬다.

데이터 링크 계층(Data Link Layer)

물리 계층을 통해 전송되는 데이터의 물리적 전송 오류를 해결하고 송수신 호스트 사이의 전송 속도 차이를 고려한 흐름 제어 기능을 지원한다. 결과적으로 상위 네트워크 계층의 신뢰성 있는 패킷 전송을 보장해 전송 오류의 부담을 없애준다. 데이터 링크 계층은 전송 경로 문제를 해결할 수 없으므로 두 호스트가 1:1로 직접 연결된 환경에서 데이터 전송 기능을 지원한다.

데이터 링크 계층을 이용해 전송되는 데이터를 프레임(Frame)이라 부른다. 프레임 헤더에 표신되는 송수신 호스트 정보에는 LAN 카드에 내장된 송수신 호스트의 MAC 주소가 기록된다.

네트워크 계층(Network Layer)

라우팅 문제(경로 설정)를 처리한다. 전달 경로 선택은 미리 정해지는 정적(static) 방식과 현재 부사 상태에 따라 결정되는 동적(Dynamic) 방식으로 구분한다.

네트워크 계층에서는 전송 데이터를 패킷(Packet)이라 부르며 중개 과정에서 경로 선택의 기준이 되는 호스트 주소가 필요하다. 인터넷에서는 IP 프로토콜이 네트워크 계층의 기능을 수행하는데 호스트 IP 주소를 데이터 경로 선택에 중요한 기준으로 사용한다.

네트워크 트래픽이 과도하게 많을 경우 전송 속도 하락이 야기되기에 혼잡 제어(Congestion Control) 기능도 담당한다.

전송 계층(Transport Layer)

송/수신 프로세스를 직접 연결하는 End to End 통신 기능을 제공한다.

전송 계층 아래에 위치한 하위 계층은 호스트와 호스트 사이의 데이터 전송 과정에서 발생하는 문제만 반영하는 반면 전송 계층은 컴퓨터 내부에서 논리적으로 구축되는 통신 당사자 사이의 통신 문제를 다룬다.

전송 오류율, 전송 속도 같은 일반 사용자의 서비스 요구 유형에 대한 고려와 흐름 제어 기능을 제공한다.

세션 계층(Session Layer)

원격 파일 전송이나 원격 로그인 같은 상위적 연결 개념인 세션 관리 기능을 제공한다.

송수신 호스트 사이의 대화 제어를 비롯해 상호 배타적인 동작을 제어하기 위한 토큰 제어, 동기화 기능 등을 제공한다.

이 때 세션이란 계속 네트워크 통신을 유지하는 끈이라고 이해하면 편리하다. 세션이 끊어지면 서버에서 접근을 거부한다.

(세션: 망 환경에서 사용자 간 또는 컴퓨터 간의 대화를 위한 논리적 연결.)

표현 계층(Pressentation Layer)

데이터의 의미(Semantic)와 표현 방법(Syntax)을 처리한다. 즉, 통신 양단에서 서로 이해할 수 있는 표준 방식으로 데이터를 코딩하는 문제를 다룬다.

호스트의 데이터 표현 방법이 서로 다르면 상대방의 데이터를 이해할 수 있도록 적절하게 변환하는 과정이 필요하다. 데이터 암호화, 영상 정보 같은 대용량 데이터의 크기 압축 등도 표현 계층의 주요 기능이다.

응용 계층(Application Layer)

다양하게 존재하는 응용 환경에서 공통적으로 필요한 기능을 다룬다.

대표적으로 FTP(File Transfer Protocol), HTTP 등이 있다.

 

 

참고하면 좋을 것 같은 블로그: https://blog.naver.com/ithopenanum/221502748148

'CS > Web & Network' 카테고리의 다른 글

REST API  (0) 2020.10.06
http vs https  (0) 2020.10.05
TCP vs UDP  (0) 2020.10.05
흐름 제어 및 오류 제어  (0) 2020.10.05
[Node.js]Node.JS Study - 모듈  (0) 2020.06.25
[통신] http 통신 vs socket 통신  (0) 2020.06.16
[Tistory] 스킨 만들기 - 2. skin.html  (0) 2020.06.03
[Tistory] 스킨 만들기 - 1.기본구조  (0) 2020.06.02