리오집사의 기억저장소

목차

     

A. 컴퓨터 네트워크와 계층 모델

컴퓨터 네트워크는 여러 개의 통신 계층이 조합된 형태로 구성된다.

컴퓨터 네트워크는 다양한 통신 장비 및 프로그램이 어울려 통신이 이루어진다. 여기서 다양한 장비나 프로그램은 각각 맡은 역할이 정해져 있고, 이 역할들을 분류하고 추상화한 것이 계층 모델 이다. 계층 모델은 인터넷에서 사용되는 TCP/IP 계층 모델, 그리고 TCP/IP 계층 모델보다 더 세분화된 7개의 계층으로 구성된 OSI 참조 모델 등이 있다.

TCP/IP 계층 모델과 OSI 참조 모델
TCP/IP 계층 모델과 OSI 참조 모델

TCP/IP의 4개 계층 중에서 서비스의 내용을 결정하는 것은 애플리케이션 계층 뿐이며 / 나머지 3개 계층은 데이터를 전달하는 통신 기능을 담당한다. 각 계층은 각각 고유한 역할을 가지고 독립된 형태로 각자 맡은 일을 수행하게 된다.


 > 애플리케이션 계층

키워드 : 서버, 클라이언트, HTTP, SMPT, POP3, FTP, SSH ...

역할 : 웹 서비스, 이메일과 같은 서비스를 사용자에게 제공

 > 트랜스포트 계층

키워드 : TCP, UDP

역할 : 중계 역할. 애플리케이션 계층<->인터넷 계층 사이에서 데이터가 올바르게 전달되도록 중계한다.

 > 인터넷 계층

키워드 : IP 어드레스, IPv4, IPv6, ICMP, 라우팅 ...

역할 : 목적지의 IP 어드레스로 데이터를 전달한다.

 > 네트워크 인터페이스 계층

키워드 : 이더넷, 무선 LAN, MAC 어드레스, PPP, FTTx, xDSL ...

역할 : 네트워크 어댑터와 같은 하드웨어를 통해 다른 컴퓨터 등으로 실질적으로 데이터를 전달한다.

 

B. 데이터 통신 과정

통신 과정에서 각 계층을 지나는 데이터는 패킷 단위로 작게 쪼개지고, 목적지 정보와 같은 부가 정보가 헤더의 형태로 덧붙여지게 된다.

각 계층을 통과하는 데이터의 형태
각 계층을 통과하는 데이터의 형태

 

송신지의 각 계층에서 작업이 끝나고 나면, 하드웨어를 통과하는 데이터의 형태는 다음과 같은 형태로 이루어지게 된다.

하드웨어를 통과하는 데이터의 형태

*데이터 앞에 덧붙이는 정보는 Header, 뒤에 덧붙이는 정보는 Trailer라고 부른다.

 

위의 두 그림에서 각각의 역할을 살펴보면 다음과 같다.

 > 애플리케이션 계층 : 

역할 : 사용자가 실제로 체감할 수 있는 서비스를 제공하는 것. 데이터의 내용을 보고 그에 맞는 서비스를 처리하는데 집중한다.  데이터 전송에 대해서는 일절 관여하지 않고, 하위 계층에 위임한다.

  • 송신측에서는 사용자가 서비스를 이용하는 프로그램에서 상대방에게 보낼 데이터를 만들어 전송한다.
  • 수신측에서는 수신된 데이터를 사용하는 프로그램에서, 수신된 데이터를 바탕으로 사용자에게 서비스를 제공한다.
  • Example : 클라이언트PC의 웹 브라우저(송신측)서버PC의 웹 서버(수신측) 는 각각 애플리케이션 계층에 속하는 프로그램이고, 이때 주고받은 데이터는 페이지를 요청하는 URL, 그 응답 결과로서 전달되는 웹 페이지 데이터 이다.

 > 트랜스포트 계층 : 

역할 : 애플리케이션 계층의 프로그램 에서 전달받은 데이터를 목적지 애플리케이션 계층의 프로그램 까지 전달하는 것. 

  • 데이터가 제대로 전달되지 않았을 때 재전송하는 것도 이 트랜스포트 계층이 담당한다.
  • 송신측에서는 데이터를 전송하기에 적합한 크기의 패킷으로 쪼갠 후, 목적지의 프로그램을 식별할 수 있는 정보를 덧붙인다.
  • 수신측에서는 쪼개졌던 패킷들을 하나의 데이터로 결합하고, 제대로 결합되었는지 확인 후 목적지의 프로그램에게 전달한다.
  • Example :
    • [송신측] 웹 브라우저의 49153포트에서 웹 서버의 80번 포트로 요청 을 보낸다.
    • [수신측] 웹 서버의 80번 포트에서 웹 브라우저의 49153 포트로 응답 을 보낸다.

 > 인터넷 계층 : 

역할 : 데이터에 어드레스(IP) 정보를 덧붙여 목적지까지 무사히 전달하는 것. 이때, 목적지 컴퓨터까지 도달할 수 있도록 경로를 찾기 위해 라우터(router) 라는 장비가 사용된다.

  • 송신측에서는 수신 측의 컴퓨터를 식별할 수 있는 정보를 덧붙인다.
  • 수신측에서는 자신이 수신해야 하는 데이터인지 식별한 후, 자신이 수신해야 된다고 판단되면 이 데이터를 트랜스포트 계층으로 전달한다.
  • Example :
    • [송신측] 클라이언트 PC(192.0.0.1)에서 웹 서버 컴퓨터(121.78.0.0)로 요청 한다.
    • [수신측] 웹 서버 컴퓨터(121.78.0.0)에서 클라이언트 PC(192.0.0.1)로 응답 한다.

 > 네트워크 인터페이스 계층 : 

역할 : 유선 LAN 어댑터나 무선 LAN 어댑터가 처리할 수 있는 형태로 데이터를 변환하고, 이 데이터를 목적지까지 전달하는 것. 인터넷 계층이 멀리 떨어져 있는 목적지까지의 전달 방법에 초점을 맞추고 있다면, 네트워크 인터페이스 계층은 물리적으로 인접하여 장비까지 데이터를 전달하는 방법에 초점을 맞추고 있다.

  • 송신측에서는 신호를 전달하는데 필요한 정보를 하드웨어에 덧붙인다.
  • 수신측에서는 송신측의 네트워크 인터페이스 계층에서 덧붙여진 헤더와 트레일러를 통해 자신이 수신해야 함을 판별한 후, 헤더와 트레일러를 떼어네고 인터넷 계층으로 전달한다.
  • Example : 네트워크 어댑터가 처리할 수 있는 형태로 데이터를 변환하고, 이더넷 헤더, 즉 주변 장치까지 데이터를 전달하는데 필요한 정보를 덧붙여서 인접한 장비나 컴퓨터까지 변환된 데이터를 전달한다.

 

Example에 설명을 덧붙이자면, 결국 데이터는 트랜스포트 계층에 의해 알맞게 패킷단위로 쪼개어지고, 쪼개진 패킷마다 계층을 지나면서 헤더에 다음과 같은 순서의 정보가 덧붙여진다.

  • [3. 이더넷 헤더(주변 장치까지 데이터를 전달하는데 필요한 정보)][2. 인터넷 계층에서 붙은 출발지와 도착지의 IP주소][1. 트랜스포트 계층에서 붙은 출발지와 도착지의 포트 번호][패킷]

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band