본 글은 아래의 [변계사 Sam] 블로그에서 개인적인 공부의 목적으로 허가를 받고 발췌하였음을 밝힙니다.
https://better-together.tistory.com/82?category=887984


TCP/IP 의 4 계층

 

지난 내용을 복습하자면 인터넷의 핵심인 TCP/IP는 데이터 전송 과정에서의 역할에 따라 Application Layer, Internet Layer, Network Interface Layer 라는 4개의 계층으로 구성된다.

 

데이터 전송을 담당하는 하위 3개의 계층과, 전송된 데이터의 내용을 보고 사용자가 이용할 수 있는 서비스를 제공하는 Application Layer 로 나눌 수 있다.

 

Application Layer는 제공하는 서비스마다 개별적인 기능을 구현하기 때문에 다른 계층과 달리 하나의 계층으로서 두드러진 특징이 있다기보다 애플리케이션마다 별개로 존재하는 프로토콜들이 독자적인 특징을 갖고 있다.

따라서 계층의 특징을 설명하는 이번 글에서는 데이터가 전송되는 과정에서 특징적인 역할을 담당하는 Network Interface Layer, Internet Layer , Transfort Layer 에 대하여 더 알아보자.

 


데이터 전송의 기본 요건 - 네트워크의 하드웨어적인 연결

 

컴퓨터가 네트워크에서 데이터를 전송하려면 기본적으로 컴퓨터와 네트워크 장비를 전송 매체로 연결한 물리적인 네트워크가 존재해야 한다. 즉 랜 케이블과 같은 전선을 사용해 유선 네트워크를 만들든, 공기를 통과하는 전파를 사용해 무선 네트워크를 만들든 일단 컴퓨터와 컴퓨터 사이에 데이터가 이동할 수 있는 통로가 구축되어야한다.

 

서로 다른 컴퓨터와 네트워크 장비를 전송 매체와 연결하기 위한 인터페이스 규칙과 전송 매체의 표준 규격을 정한 대표적인 기술이 이더넷 Wi-Fi 이다.

이더넷이 정한 표준 규격에 따라 만들어진 랜 포트 랜 케이블을 연결하여 데이터 통신이 가능한 유선 LAN을 만든다. 와이파이가 정한 표준 규격에 따라 만들어진 기기들을 전파로 연결하여 데이터 통신이 가능한 무선 LAN을 만든다.

 


 

TCP/IP 를 표준으로 하는 인터넷에서의 데이터 전송과 주소

 

수 많은 컴퓨터와 네트워크 장비가 연결된 인터넷에서 Network Interface Layer 가 물리적으로 직접 연결된 기기 간의 데이터 통신을 제어하고 , Internet Layer가 직접 연결되지 않은 컴퓨터까지 데이터를 전송하기 위해 네트워크 간의 데이터 통신을 구현하며, Transport Layer 가 송신지에서 수신지까지 데이터의 흐름을 제어하고 수신지 컴퓨터에 도착한 데이터가 어떤 어플리케이션에서 사용하는 것인지 판단해서 데이터를 배분함으로써 데이터 통신이 구현된다.

 

 


 

TCP/IP 데이터 전송 계층들이 사용하는 주소

 

전화를 걸기 위해 수신자의 전화번호가 필요하듯이 네트워크에서 데이터를 전송하기 위해서도 수신지를 특정할 주소가 필요하다. 즉, 인터넷에서 데이터 전송을 담당하는 Transport Layer , Internet Layer , Network Interface Layer 에서 데이터 수신지를 식별할 수 있는 고유 주소가 필요하다.

 

 

각 계층은 데이터 전송 과정에서 담당하는 기능에 따라 기능에 부합하는 각기 다른 주소를 사용한다.

 

같은 네트워크 안에서 직접 연결된 물리적 장비 간의 데이터 전송을 하는 Network Interface Layer 에서는 물리적 장비를 식별하는 물리 주소 (Mac 주소) 를 사용한다. Mac 주소가 있으면 물리적으로 연결된 장비 중 어느 장비로 데이터를 전송해야 하는지 알 수 있다.

 

서로 다른 네트워크에 있는 컴퓨터 간에 데이터를 전송하는 Internet Layer 에서는 컴퓨터를 식별하는 IP 주소(논리 주소) 를 사용한다. IP 주소가 있으면 다른 네트워크에 있는 수신지 컴퓨터를 지정할 수 있다.

 

수신지 컴퓨터에 도착한 데이터를 컴퓨터의 어플리케이션에 배분하는 Transport Layer 에서는 어플리케이션을 식별하는 Port 번호 를 사용한다. port 번호가 있으면 수신지 컴퓨터에 있는 특정 어플리케이션을 수신지로 지정할 수 있다.

 

 


 

[ Netwokr Interface Layer ]

 

네트워크 인터페이스 계층의 역할

 

TCP/IP 모델 최하층에 위치한 네트워크 인터페이스 계층은 이름처럼 인접한 네트워크 기기 간에, 즉 전송 매체로 연결되어 전기 신호나 전파가 도달하는 범위에서 데이터를 전송하는 역할을 한다.

네트워크 계층이 직접 연결된 네트워크용 하드웨어 기기 간에 데이터 전송을 제어함으로써 상위 계층은 하드웨어의 종류에 상관없이 통신할 수 있게 된다.

 

 

 

다수의 컴퓨터를 연결하여 하나의 네트워크(LAN)을 만드는 스위치가 Network Interface Layer 의 역할을 수행하는 대표적인 네트워크 장비이다.

 

위 그림에서 같은 네트워크에서 랜 케이블과 스위치로 직접 연결된 1번 PC 와 2번 노트북 간의 데이터 전송은 Network Interface Layer 으로만 가능하다. 스위치가 자신과 연결된 기기들의 물리주소 (Mac 주소) 를 식별하고 데이터를 제어함으로써 1번 PC가 2번 노트북으로 보낸 데이터가 3번 PC가 아닌 2번 노트북으로 정확하게 도달될 수 있게 한다.

 

그러나, 물리적으로 직접 연결되지 않고 다른 네트워크에 속한 1번 pc와 4번 노브툭 간의 데이터 전송은 Netwok Interface Layer만으로 불가능하고 아래에 나올 Internet Layer 의 기능이 필요하다.

 


[ Network Interface Layer ] 의 Protocol

 

TCP/IP 에서는 네트워크의 하드웨어적인 연결에 대해 모든 표준 규격과 기술적인 프로토콜을 지원하기에 하드웨어를 제어하는 Network Interface layer 계층에서도 특정 프로토콜을 규정하지 않고 ,모든 프로토콜을 지원한다. 사실상 표준처럼 사용되는 대표적인 Network Interface Layer의 프로토콜이 이더넷 프로토콜이다. 

 

네트워크 계층이 모든 프로토콜을 지원하기 때문에 다른 계층과 달리 통신의 상대방이 반드시 같은 프로토콜을 사용할 필요는 없다. 예를 들어 서버와 클라이언트가 통신을 할 때 서버는 이더넷 프로토콜을, 클라이언트는 무선 LAN 프로토콜을 사용해도 통신이 가능하다. 이더넷 프로토콜과 무선 LAN 프로토콜네트워크 인터페이스 계층에서 사용하는 물리주소를 MAC 주소라고 한다.

 


 

[ Internet Layer ]

 

인터넷 계층의 역할과 라우터

 

Internet Layer는 인터넷(inter network) 라는 이름처럼 네트워크와 네트워크를 연결하여 직접 연결되지 않은 컴퓨터 간에 데이터 통신을 구현하는 역할을 한다.

Internet Layer에서 네트워크를 연결하고 데이터를 전송하기 위해 반드시 필요한 네트워크 장비가 라우터 이다.

 

앞서 LAN 을 연결하여 WAN을 구축하고, 전 세계의 LAN을 연결하여 인터넷을 만드는 장비가 라우터라고 한 것은 라우터가 네트워크 간에 데이터를 전송하는 장비이기 때문이다.

 


 

호스트와 IP 주소

 

인터넷에 연결된 네트워크 기기인 노드 중에서 특히 컴퓨터를 호스트, 호스트 사이에 위치한 노드를 중간 노드라고 한다.

Network Interface Layer 가 인접한 두 개의 노드 간의 데이터를 전송하고 책임지면, Internet Layer는 데이터를 송신하는 호스트에서부터 수신하는 호스트까지 데이터가 전송되는 경로를 책임진다고 할 수 있다. 

 

각 호스트는 인터넷에 연결된 호스트를 식별하기 위해 유일한 번호로 부여된 IP 주소를 갖고 있고, 라우터는 이 IP 주소를 기반으로 송신지 호스트에서 수신지 호스트까지 데이터를 전송할 경로를 찾아간다.

따라서 인터넷을 연결된 모든 호스트와 중간 노드인 라우터는 반드시 IP 계층의 기능을 갖고 있어야 한다.

 

 

네트워크 1에 속한 송신지 호스트인 ①번 PC는 ④번 노트북을 수신지 호스트로 지정해서 데이터를 전송한다. 수신지를 지정할 때 사용하는 IP 주소는 수신지 호스트가 네트워크 2에 속한 ④번 노트북이라는 것을 말해준다. 네트워크 1로부터 데이터를 전달받은 라우터는 IP 주소를 보고 자신과 연결된 네트워크 중에서 ④번 노트북이 속한 네트워크 2로 데이터를 전달한다.


 

라우팅과 IP 프로토콜

 

 

수많은 네트워크가 연결된 인터넷에서 데이터가 전송된다는 것은 수많은 라우터를 거쳐 데이터가 이동한다는 뜻이다.

하나의 라우터는 자신과 연결된 라우터 중에서 데이터를 목적지까지 전달할 수 있는 최적의 경로 상에 위치한 라우터에게 데이터를 전달한다. 데이터를 전달 받은 라우터도 마찬가지로 자신과 연결된 라우터 중에서 데이터 목적지까지 최적의 경로 상에 위치한 다른 라우터에게 데이터를 전달한다. 이렇게 라우터에서 라우터로 최종 데이터의 목적지까지 최적의 경로를 찾아가는 연쇄적인 과정을 라우팅 라고 한다.

 

Internet Layer 에서 사용하는 IP 주소와 라우팅에 대해 규정한 프로토콜이 IP 프로토콜이다. 오늘날 거의 모든 네트워크가 사용하는 IP 프로토콜은 인터넷을 통한 데이터 통신을 가능하게 하는 가장 중요한 프로토콜이다.

 

 

결국 같은 네트워크 안에서 하드웨어 인터페이스를 연결하여 데이터를 전송하는 Network Interface Layer와 서로 다른 네트워크 간에 라우팅으로 데이터를 전송하는 Internet 계층이 협력하여 수많은 네트워크각 연결된 인터넷에서 소로 다른 컴퓨터 간에 데이터의 전송이 이루어진다.

 

 

 


[ Transport Layer ]

 

전송 계층의 역할

Network Interface Layer와 internet Layer 는 정확한 데이터의 수신지 컴퓨터까지 최적의 경로를 찾아 데이터를 전송할 뿐, 데이터 전송의 신뢰성이나 수신지 컴퓨터 내에서 데이터의 배분에는 관여하지 않는다.

전송 과정에서의 데이터 손상이나 유실이 없는지, 데이터가 효율적으로 잘 전달 되는지, 목적지 컴퓨터 내의 어떤 Application으로 데이터를 전달해야 하는지는 Transport Layer 에서 처리한다.

 

웹 브라우저로 여러 개의 웹사이트에 접속하거나 웹 브라우저뿐만 아니라 카카오톡 등 여러 Application으로 동시에 인터넷을 사용하더라도 문제 없이 Application이 동작되는것은 Transpor Layer 덕분이다.

 

 

애플리케이션의 식별과 포트 번호

오늘날 대부분의 컴퓨터는 다수의 애플리케이션을 동시에 실행할 수 있다. 따라서 수신지 컴퓨터에 도착한 데이터가 각 애플리케이션에 배분되어야 데이터 통신의 최종 목적인 서비스를 실행할 수 있다. 복수의 기능을 갖고 있는 컴퓨터의 어떤 기능이 데이터를 사용할지, 즉 데이터를 실행시키는 애플리케이션을 식별할 수 있는 주소 내지, 번호를 포트 번호라고 한다. Transport Layer 에서는 포트 번호로 송신지 애플리케이션에서 보낸 데이터가 수신지 컴퓨터의 어떤 애플리케이션으로 전송되어야 할지를 식별하게 된다.

 

전송 계층의 프로토콜

Transport Layer에는 데이터 전송의 신뢰성이나 효율성을 중시하는지 여부에 따라서 크게 TCPUDP 프로토콜이 사용된다. 신뢰할 수 있고 정확한 데이터를 전달하기 위해 전송 속도를 조절하거나 도달하지 않은 데이터를 재전송하는 기능을 하는 프로토콜이 TCP, 데이터의 일부가 유실되더라도 빠르고 효율적으로 데이터를 전송하는 프로토콜이 UDP(User Datagram Protocol)이다. 웹이나 이메일과 같이 데이터의 신뢰성정확성이 중요한 애플리케이션에서는 TCP를 사용하고, 동영상 스트리밍 서비스와 같이 데이터가 늦게 도착해서 버벅거리는 동영상을 보는 것보다 데이터가 일부 유실되더라도 원활하게 볼 수 있도록 빠른 데이터 전송이 필요한 애플리케이션에서는 UDP를 사용한다.

 

 


 

[ Application Layer ]

 

Application Layer는 애플리케이션의 기능을 실행하기 위해 애플리케이션이 다루는 데이터 형식과 처리 순서를 결정하여 사용자에게 서비스를 제공하는 역할을 한다. Transport Layer 으로부터 분배받은 디지털 데이터를 사용자가 이해할 수 있는 표현 형식인 문자, 음성, 동영상 같은 형태로 변환하여 애플리케이션이 제공하고자 하는 기능을 동작하게 하는 것이다.

 

Application Layer은 이름처럼 애플리케이션이 제공하는 서비스마다 개별적인 기능을 구현하기 때문에 다른 계층과 달리 하나의 계층으로서 두드러진 특징이 있다기보다 애플리케이션마다 별개로 존재하는 프로토콜이 독자적인 특징을 갖고 있다. 따라서 애플리케이션의 종류만큼 다양한 프로토콜이 존재한다.

 

대표적으로 웹서비스를 제공할 때는 HTTP, 파일을 전송할 때는 FTP, 메일을 보낼 때는 SMTP, 메일을 받을 때는 POP3라는 프로토콜을 사용한다.

 

인터넷에서 TCP/IP 프로토콜의 구현

인터넷에서는 컴퓨터와 네트워크에 연결된 장비들이 기능에 따라 TCP/IP 4개의 계층 중 필요한 계층의 프로토콜을 구현하면 정상적인 데이터 통신을 할 수 있다. 데이터를 송수신하고 애플리케이션을 실행시키는 컴퓨터, 즉 호스트는 4개 계층 모두의 프로토콜을 구현해야 하지만, 애플리케이션에 관심을 갖지 않고 호스트 간의 데이터 전송을 돕는 중간 노드인 라우터는 네트워크 인터페이스 계층과 인터넷 계층의 프로토콜만을 구현하면 된다.

 

 


+ Recent posts