컴퓨터 네트워크 CHAPTER2 OSI 모델과 TCP/IP 프로토콜

최기환·2022년 4월 7일
0

Internet and Network

목록 보기
1/3

OSI 모델과 TCP/IP 프로토콜

패킷을 정확하게 분석하고, 이해하기 위해서는 패킷(packet)과 패킷을 전달하는 네트워크(network)에 대한 이해가 필요하다. 패킷이란 네트워크에 접속되어 있는 컴퓨터끼리 통신을 하여 주고받는 데이터 단위를 말한다. 이 데이터는 약속에 따라 작성되고, 정해진 약속에 따라 송/수신된다. 1990년대 이전 데이터 통신과 네트워크 계층 모델은 OSI(Open System Interconnection)모델이었다. 이후 TCP/IP 프로토콜이 인터넷에서 광범위하게 시험을 거쳐서 사용되면서 지배적인 상업적 구조가 되었고 OSI 모델은 완전히 구현되지 않았다. 이 장에서 먼저, OSI 모델을 간단히 보고, TCP/IP 프로토콜에 대해 중점적으로 설명한다.

1. 프로토콜 계층구조

통신이 복잡할 때는 복잡한 밈무를 여러 개의 계층구조로 나눌 수 있다. 이 경우에 각 계층 별로 하나씩 여러 개의 프로토콜이 필요하다.

1.1 계층구조

송신 측에 서로 다른 동작이 있고 수신 측 또한 마찬가지다. 여기서 중요한 것은 임무가 계층구조에 주어진 순서대로 행해져야 한다는 것이다.

1.2 서비스

송신 측에 있는 각 계층은 자신의 아래에 있는 계층의 서비스(service)를 이용한다.

2. OSI 기본 참조 모델

개방 시스템(Open System)은 기반 구조와 관계없이 서로 다른 시스템 간의 통신을 제공하는 프로토콜의 집합니다. OSI 모델은 하드웨어나 소프트웨어 기반의 논리적인 변화에 대한 요구 없이 서로 다른 시스템 간의 통신을 원할하게 하는 그 목적이 이다. OSI 모델은 모든 종류의 컴퓨터 스스템 간 통신을 가능하게 하는 네트워크 시스템 설계를 위한 계층구조이다. 이 모델은 서로 연관된 7개의 계층으로 구성되어 있고, 각 계층에는 네트워크를 통해 정보를 전송하는 일련의 과정이 규정되어있다. OSI 모델의 기초를 이해하는 것은 컴퓨터 네트워크를 공하는데 필요한 기본 지식을 제공한다.

[OSI 계층 구조]

2.1 계층화된 구조

OSI 모델은 물리층, 데이터 링크층, 네트워크층, 전송층, 세션층, 표현층 그리고 응용층으로 구성되어 있다. 메세지가 장치 A에서 장치 B로 전송되는 동중에 많은 중간 노드를 거칠 수 있다. 이 중간 노드는 항상 OSI 모델의 처음 3계층만 이용한다.
각 계층은 다른 계층의 기능과 구분되는 기능들의 집합으로 정의한다. 하나의 장치에서 각 계층은 바로 아래 계층의 서비스를 요구한다. 이러한 통신은 프로토콜이라는 협의된 규칙과 규약 의해 제어된다.

OSI계층구조 specific

2.2 계층-대-계층 통신

그림에서 장치 A는 장치 B로 메세지를 보낸다(중간 노드를 거친다.). 송신 측에서 메시지는 계층 8에서 계층 1까지 아래로 이동한다. 계층 1에서 전체 패키지는 수신 측으로 전송될 수 있는 형식으로 변환된다. 수신 측에서 메시지는 계층 1에서 계층 7까지 이동된다.

  • 계층 간 인터페이스
    각 인터페이스는 한 계층이 바로 위의 계층에게 제공해야 하는 정보와 서비스를 정의한다. 한 계층이 바로 위의 계층으로 미리 정의된 서비스를 제공한다면, 다른 계층을 전혀 바꾸지 않고도 그 계층의 기능을 구현하는 방식을 변경하거나 대체할 수 있다.
  • 계층의 구성
    7개의 계층은 3개의 그룹으로 나눌 수 있다. 1,2,3층은 각각 무리층, 데이터 링크층, 그리고 네트워크층으로, 다른 장치로 데이터를 전송할 때 필요한 물리적인 면을 처리한다. 5,6,7계층인 세션층, 표현층, 응용층,은 사용자 지원 계층으로 생각될 수 있다. 이들은 서로 관련이 없는 소프트웨어 시스템 간의 상호 연동을 가능하게 한다. 전송층인 제 4계층은 지금 설명한 두 그룹을 연결하고, 하위 계층에서 전송한 내용을 상위 계층이 사용할 수 있는 형태가 되도록 보장한다.

2.3 캡슐화

N계층의 전체 패킷은 N-1계층 패킷의 데이터 부분으로 전송된다. N-1계층은 캡슐화된 패킷이 데이터인지 헤더 또는 트레일러인지 코르기 때문에 캡슐화라고 한다. N-1계층은 N계층에서 오는 패킷을 하나의 완전한 단위로 취급한다.

캡슐화

2.4 OSI 모델의 계층 구조

  • 물리층

    물리층(physical layer)은 물리 매체를 통하여 비트 스트림(bit stream)을 전달하는데 필요한 기능들을 저정한다. (물리층은 개별 비트들을 한 노드에서 다음 노드로 전달하는 책임을 갖는다.)
    물리층은 다음과도 관련이 있다.

    • 인터페이스와 매체의 물리적인 특성. 물리층은 장치와 전송 매체 간에 인터페이스의 특성을 규정한다. 이는 또 전송 매체의 유형도 규정한다.
    • 비트의 표현. 물리층 데이터는 해석되지 않은 비트(bit) 스트림(0과 1의 연속)으로 구성되어 있다. 전송하기 위해서 비트는 신호로 부호화되어야 한다. 물리층은 부호화(encoding) 유형을 규정한다(어떻게 0과 1이 신호로 바뀌는지).
    • 데이터 전송률. 전송률(초당 보내지는 비트의 수)도 물리층에서 규정된다.
    • 비트의 동기화. 송신자와 수신자는 같은 비트율을 사용하고, 비트 레벨에서 동기화되어야 한다. 즉, 송신자와 수신자 시계가 동기화되어야 한다.
    • 회선 구성. 물리층은 매체에 대한 장치들의 연결과 관련 있다.
    • 물리적 접속형태. 물리적 접속형태는 장치들이 네트워크를 만들기 위해 어떻게 연결 되는 지를 규정한다.
    • 전송모드/ 물리층은 두 장치 사이의 전송방향(단방향, 반이중, 전이중)도 규정한다.
  • 데이터 링크층

    데이터 링크층(data link layer)은 물리층에 있는 전송 설비를 신뢰할 수 있는 링크로 변환한다. 데이터 링크층의 또 다른 책임은 다음과 같다.

    • 프레임 구성/ 데이터 링크층은 네트워크층으로부터 받은 비트 스트림을 프레임(frame)이라는 데이터 단위로 나눈다.
    • 물리 주소지정.프레임이 네트워크상의 서로 다른 시스템에 전달되면 데이터 링크층 은 프레임의 송신자 그리고/또는 수신자를 지정하기 위해 프레임에 헤더를 더한다.
    • 흐름 제어. 수신자에 의해 처리되는 데이터 전송률이 송신자가 보낸 데이터 전송률보다 낮으면 데이터 링크층은 수신자가 흐름 제어 메커니즘이 수행되게 한다.
    • 오류 제어. 데이터 링크층은 손상되고 손실된 프레임을 탐지하고 재전송하는 메커니즘을 추가함으로써 물리층의 신회성을 더한다.
    • 접근 제어. 둘 또는 그 이상의 자이가 같은 링크에 연결되어 있을 때 데이터 링크 프로토콜은 어떤 주어진 시간에 어느 장치가 제어권을 갖는지를 결정하는 것이 필요하다.
  • 네트워크층
    네트워크층(network layer)은 다중 네트워크(링크)를 통하여 전달되는 발진시-대-목적지 전달을 책임진다. 이외의 네트워크층의 주요 기능은 다음과 같다.

    • 논리 주소지정. 데이터 링크층에 구현된 물리 주소지정은 내부적인 주소지정 문제를 처리한다. 네트워크층은 상위 계층으로부터 오는 패킷에 송신자와 수신자의 논리 주소를 포함하는 헤더를 더한다.
    • 경로지정. 독립된 네트워크나 링크를 **네트워크 간 연결(internetworks) 또는 규모가 큰 네트워크를 만들기 위해 서로 연결하려면 연결 장치(라우터 또는 스위치)는 패킷의 최종 목적지까지 경로지정이나 스위칭하게 된다.
  • 전송층
    전송층(transport layer)은 전체 메시지의 프로세스-대-프로세스 전달(process-to-process delivery)을 책임진다. 프로세스는 호스트에서 실행 중인 응용 프로그램이다. 전송층은 발신지-대-목적지 레벨에서 오류 제어와 흐름 제어를 통하여 순서대로 도착하는 것을 보장한다. (순서대로 도착하는 것을 보장한다는 의미에서 네트워크층과 다르다.) 그 밖의 전송층의 책임은 다음과 같다.

    • 서비스 지점 주소지정. 컴퓨터는 같은 시간에 여러 개의 프로그램을 실행한다. 이러한 이유 때문에, 발신지-대-목적지 전달은 하나의 컴퓨터에서 다음 컴퓨터까지 전달 뿐만 아니라 특정 프로세스에서 다른 컴퓨터의 특정 프로세스까지 전달을 의미한다. 그래서 전송층 헤더는 서비스 지점(service point) 주소(또는 포트 주소)라는 주소 유형을 포함한다. 네트워크층은 정확한 컴퓨터에 각 패킷을 갖게 하지만 전송층은 컴퓨터상의 정확한 프로세스에게 전체 메시지를 갖게 한다.
    • 분할과 재조립. 메시지는 각 세그먼트가 순서 번호가 들어있는 전송 가능한 세그먼트로 나눈다.
    • 연결제어. 전송층은 비연결형이거나 연결형일 수 있다. 이에 따라 전송층에 전달한다.
    • 흐름 제어. 데이터 링크층처럼 전송층은 흐름 제어를 책임진다. 그렇지만 이 계층에서 흐름 제어는 단일 링크라기보다 종단-대-종단에서 수행된다.
    • 오류 제어. 데이터 링크층처럼 전송층은 오류 제어를 책임진다. 그렇지만, 이 계층에서 오류 제어는 단일 링크를 따라 수행되기보다 프로세스-대-프로세스로 수행된다.
  • 세션층
    처음 네 계층(물리, 데이터 링크, 네트워크, 전송)에 의해 제공되는 서비스는 일부 프로세스에 대해 충분하지 않다. 세션층(session layer)네트워크 대화 제어기(dialog controller)이다. 이는 통신 시스템 간에 상호 대화를 설정하고, 유지하고, 동기화한다. 세션 계층의 주요 책임은 다음과 같다.

    • 대화제어. 세션층은 두 시스템이 대화하는 것을 허용한다. 이는 두 프로세스 간에 반이중이나 전이중 모드로 통신하는 것을 허용한다.
    • 동기화. 세션층은 데이터 스트림에 **확인점(synchronication point)을 추가하는 것을 허용한다.
  • 표현층
    표현층(presentation layer)은 두 시스템 간에 교환되는 정보의 구문(syntax)과 의미(semantic)와 관련이 있다. 표현층의 특정 기능은 다음과 같다.

    • 변환. 두 시스템에 있는 프로세스(실행 중인 프로그램)는 항상 문자 스트링, 숫자 등의 형식으로 정보를 교환한다. 정보는 전송되기 전에 비트 스트림으로 변경되게 된다. 서로 다른 컴퓨터는 서로 다른 부호화 시스템을 사용하기 때문에 표현층은 서로 다른 부호화 방법간에 상호 운용성을 책임진다.
    • 암호화. 중요암호화는 송신지가 원래의 정보를 다른 형식으로 변환하고 변환된 메시지를 네트워크를 통하여 보내는 것을 의미한다. 복호화는 메시지를 원래의 형식으로 되돌릴 수 있도록 변화하는 반대과정이다.
    • 압축. 데이터 압축은 정보에 들어있는 비트의 수를 줄여준다.
  • 응용 계층
    응용층(application layer)은 사용자가 네트워크에 접속하는 것을 가능하게 한다. 전자우편, 원격 파일 접속과 전송, 공유된 데이터베이스 관리, 분산된 정보 서비스의 또 다른 유형과 같은 서비스를 지원하고 사용자 인터페이스를 제공한다. 응용 계층에 의해 제공되는 특정 서비스는 다음과 같다.

    • 네트워크 가상 터미널(NVT, Network Virtual Terminal). 네트워크 가상 터미널은 사용자에게 원격 호스트에 로그온을 허용하는 물리적인 터미널의 소프트웨어 버전이다.
    • 파일 전송, 접근, 관리(FTAM, File Transfer, Access, Management). 이 응용은 사용자에게 로컬 컴퓨터에서 사용하기 위해, 원격 컴퓨터로부터 파일을 검색하기 위하여, 자체적으로 원격 컴퓨터에 있는 파일을 관리하거나 제어하기 위하여 원격 호스트에 있는 파일 접근(데이터를 읽거나 변경하기 위하여)을 허용한다.
    • 전자우편 서비스. 이 응용은 전자우편을 전달하거나 저장하는 것을 제공한다.
    • 디렉토리 서비스. 이 응용은 분산 데이터베이스 자원을 제공하고 여러 가지 객체와 서비스들에 대한 글로벌 정보에 대한 접근을 제공한다.

2.5 OSI 계층의 요약

3. TCP/IP 프로토콜

TCP/IP 프로토콜은 다섯계층인 물리층, 데이터 링크층, 네트워크층, 전송층, 응용층으로 구성되어 있다. 처음 네계층은 OSI 모델의 네 계층과 일치하는 물리적인 표준, 네트워크 인터페이스, 네트워크 간 상호연결, 그리고 전송 기능을 제공한다. 그러나 OSI 모델의 최상위 세 계층(세션, 표현, 응용)은 TCP/IP에서 응용층이라는 하나의 계층으로 표현된다. 각 계층에서 사용되는 프로토콜을 요약하면 다음과 같다.

3.1 OSI와 TCP/IP 그룹 간 비교

두 개의 모델을 비교할 때 TCP/IP 프로토콜 그룹에는 세션과 표현층이 빠져있다. 이 결정에는 두 가지 이규가 언급되었다. 먼저, TCP/IP는 하나 이상의 전송층 프로토콜을 가지고 있다. 세션층의 기능들 중 일부는 전송층 프로토콜의 일부로 이용할 수 있다. 둘째, 응용층은 소프트웨어의 일부분만이 아니다. 많은 응용이 이 계층에서 개발될 수 있다. 세션층과 표현층의 기능 중 일부가 특정 응용에 필요하다면 소프트웨어로 개발해서 포함실킬 수 있다.

3.2 TCP/IP 프로토콜의 계층들

이 절에서 TCP/IP 프로토콜에서 각 계층의 목적을 간단하게 설명한다. 인터넷은 링크라는 여러 개의 작은 네트워크로 만들어진다. 링크(link)는 많은 컴퓨터 간에 서로 통신을 허용하는 네트워크이다. 링크는 작은 영역을 지원하는 근거리 통신망(LAN)과 큰 영역을 지원하는 광역 통신망(WAN)일 수 있다. 또안 서로 다른 링크가 데이터를 자신의 최종 목적지에 도달하기 위해 경로를 지정하는 라우터(router)나 교환기(switch)라고 하는 장치가 서로 연결된다. 다음 그림은 각 계층의 목적을 보여주는 상상 속의 인터넷을 보여준다. 그림에는 6개의 링크와 4개의 라우터가 있다. A,B는 컴퓨터다.

  • 물리층
    물리층과 데이터 링크층에서 TCP/IP는 특정 프로토콜을 규정하지 않고, 앞에서 설명한 모든 표준과 기술적인 프로토콜을 지원한다. 이 레벨에서, 통신은 두 홉 또는 노드 간, 컴퓨터나 라우터 간이다. 단위는 단일 비트(bit)이다. 두 노드 간에 연결이 설정되면, 비트 스트림이 연결을 따라 전달되게 된다. 그렇지만 물리층은 각 비트를 개별적으로 처리한다. 다음 그림은 노드 간의 통신을 보여준다.

    만약 노드가 n개의 링크에 연결되어 있다면 각 링크 당 하나씩 n개의 물리층 프로토콜이 필요하다. 그렇지만 그림은 통신에 단지 하나의 물리층만 포함된 것으로 보여준다. 각 컴퓨터는 단지 하나의 링크에 포함되어 있고, 각 라우터는 두 개의 링크에만 포함되어 있다. 그림처럼 컴퓨터A와 컴퓨터B 간의 비트들의 전달은 4개의 독립적이고 짧은 과정으로 이루어진다. 각 링크들은 각자의 링크에서 사용하는 프로토콜 형식으로 데이터를 받는다.
  • 데이터 링크층
    TCP/IP는 데이터 링크층에 대해 특정 프로토콜을 규정하지 않는다. 모든 표준과 프토콜은 이를 지원한다. 이 레벨에서, 통신은 두 홉(hop)이나 노드 간이다. 그렇지만 통신 단위는 프레임(frame)이라는 패킷이다. 프레임은 네트워크층으로부터 받은 데이터에 헤더가 더해지고 트레일러가 더해짐으로 캡슣화된 패킷이다. 통신 정보 가운데 헤더는 프레임의 발신지와 목적지를 포함한다. 목적지 주소는 노드딜이 링크에 연결되어 있으므로 프레임의 정확한 수신자를 규정하는 데 필요하다. 발신지 주소는 프로토콜에 의해 요구될 수 있는 가능한 응답이나 확인응답을 위해 필요하다. 다음 그림은 데이터 링크층의 통신을 보여준다.

    컴퓨터 A와 라우터 R1 간에 이동하는 프레임은 라우터 R1과 R3 간에 이동하는 프레임과 다르다. 프레임이 라우터 R1에 의해 수신될 때, 이 라우터는 왼쪽에 나타나 있는 데이터 링크 프로토콜로 프레임을 전달한다. 이후 프레임은 개방되고 데이터는 제거된다. 그러면 데이터는 라우터 R3로 보내지는 새로운 프레임을 생성하기 위하여 오른쪽에 나타나 있는 데이터 링크 프로토콜로 보내진다. 이유는 링크 1과 링크 3이 서로 다른 프로토콜을 사용하게 되면 서로 다른 형식의 프레임이 요구되기 때문이다. 또, 그림에는 프레임의 물리적인 이동은 보여지지 않는다. 물리적인 이동은 물리층에서만 이루어진다. A에서 프레임은 비트 스트림으로 변환되고, R1에서 비트들은 프레임으로 변환된다.
  • 네트워크층
    네트워크층(더 정확하게 말해 상호 연결된 네트워크층)에서, TCP/IP는 인터넷 프로토콜(IP)을 지원한다. 아울러, IP는 3개의 지원 프로토콜 (ARP, ICMP, IGMP)을 포함한다.
  • 인터넷 프로토콜
    인터넷 프로토콜(IP; Internet Protocol)은 TCP/IP 프로토콜에서 사용하는 전송 메커니즘이다. 이 프로토콜은 신뢰성이 없는 비연결형 데이터그램 프로토콜로서 최선의 노력으로 전달을 제공하는 전송 서비스이다. 최선의 노력(Best-Effort)이란 IP가 오류 검사나 추적을 제공하지 않는다는 것을 의미한다. IP는 계층의 신뢰성이 없음을 가정하고 목적지 까지 전송이 제대로 이루어지도록 최선을 다하지만 완벽한 보장은 없다. IP는 각기 개별적으로 전송되는 데이터그램(Datagram)이라는 패킷 형태로 데이터를 전송한다. 데이터그램은 서로 다른 경로로 전달될 수 있으므로 순서대로 도착하지 않거나 중복되어 도착할 수 있다. IP는 경로를 기록하지 않고, 일단 목적지에 도착한 데이터그램을 재전송하는 기능도 제공하지 않는다.
  • 주소 변환 프로토콜
    주소 변환 프로토콜(ARP; Address Resolution Protocol)은 IP 주소를 물리적인 주소로 변환해준다. LAN과 같은 물리적인 네트워크에서, 링크상의 각 장치는 네트워크 인터페이스 카드(NIC; Network Interface Card)의 물리 주소인 로컬 주소에 의해 구분된다. ARP는 인터넷 주소를 알고 있을 때 노드의 물리 주소를 찾는 데 사용된다.
  • 인터넷 제어 메시지 프로토콜
    인터넷 제어 메시지 프로토콜(ICMP; Internet Control Message Protocol)은 송신자에게 데이터그램의 문제점을 알려주기 위해 호스트와 게이트웨이가 사용하는 메커니즘이다. ICMP는 조회와 오류 보고 메시지를 보낸다. 다음 그림은 네트워크층에서 이루어지는 통신을 보여준다.

    네트워크층의 통신과 데이터 링크층이나 물리층의 통신 간에는 주요 차이점이 있다. 네트워크층의 통신은 종단-대-종단인 데 반하여 다른 두 계층 간의 통신은 노드-대-노드이다. 컴퓨터A에서 출발하는 데이터그램은 컴퓨터 B에 도착하게 된다. 라우터의 네트워크층은 가장 최적의 경로를 찾기 위해 패킷의 발신지와 목적지를 조사할 수 있다. 그러나 패킷의 내용은 병경하지 않는다. 물론, 통신은 노리적이지 물리적이 아니다. 컴퓨터 A와 B의 네트워크 계층이 데이터그램을 보내고 받는 것으로 생각하지만 실제 통신은 물리 레벨에서 이루어진다.

3.3 전송층

TCP/IP에서 전송층은 3개의 프로토콜(TCP. UDP, SCTP)을 갖는다. IP는 호스트-대-호스트 프로토콜(Host-to-Host Protocol)로서 패킷을 하나의 물리적인 장치에서 다른 물리적인 장치로 전달 할 수 있다는 것을 의미한다. UDP, TCP, SCTP는 하나의 프로세스(실행 중인 프로그램)에서 다른 프로세스로 메시지를 전달하는 기능을 갖는 전송 레벨 프로토콜(Transport Level Protocol)이다.

  • 사용자 데이터그램 프로토콜)
    **사용자 데이터그램 프로토콜(UDP; User Datagram Protocol)은 표준 TCP/IP 전송 프로토콜보다 단순하다. 이것은 포트주소, 검사합 오류 제어, 상위 계층으로부터 받은 데이터 길이 정보만 추가한다. 프로세스-대-프로세스 프로토콜이다.
  • 전송 제어 프로토콜
    전송 제어 프로토콜(TCP; Transmission Control Protocol)은 응용에 대한 모든 전송층 서비스를 제공한다. TCP는 신뢰성 있는 스트림(stream)전송 프로토콜이다. 여기서 스트림이란 용어는 연결형을 의미한다. 데이터를 전송하기 전에 양 종단가의 연결을 설정해야한다.
    각 전송의 송신 종단에서 TCP는 데이터 스트림 세그먼트(Segment)라는 작은 단위로 나눈다. 각 세그먼트는 수신된 세그먼트에 대한 확인응답 번호와 함께, 수신 후에 순서를 맞추기 위한 순서 번호를 포함하고 있다. 세그먼트 IP 데이터그램으로 캡슐화되어 인터넷을 통하여 전달된다. 수신 종단에서, TCP는 수신되는 각 데이터그램의 순서를 순서 번호에 따라 맞춘다.
  • 스트림 제어 전송 프로토콜
    스트림 제어 전송 프로토콜(SCTP; Stream Control Transmission Protocol)은 IP 텔레포니와 같은 새로운 응용을 제공한다. 스트림 제어 전송 프로토콜은 UDP와 TCP의 장점을 결합한 전송 제어 프로토콜이다.
    전송층과 네트워크층 사이에는 큰 차이점이 있다. 물론 네트워크에 있는 모든 노드가 네트워크층을 갖는 것이 필요하지만 단지 두 컴퓨터만 전송층을 가질 필요가 있다. 네트워크층은 컴퓨터 A에서 컴퓨터 B까지 개별적인 데이터그램을 보내는 책임을 갖지만, 전송층은 A에서 B까지 사용자 데이터그램, 패킷, 세그먼트라는 전체 메시지를 전달하는 책임이 있다. 세그먼트는 데이터그램으로 나뉠 필요가 있고, 각 데이터그램은 전송을 위해 네트워크층으로 전달되어야 한다. 인터넷은 각 데이터그램에 대해 서로 다른 경로를 지정하므로 데이터그램은 수서가 바뀌어 도착하거나 손실될 수 있다. 컴퓨터 B에 있는 전송층은 모든 데이터그램이 도착하여 조립되고, 세그먼트로 만들어질 때까지 기다려야한다. 다음 그림은 전송층의 통신을 보여준다.
  • 응용층
    TCP/IP에서 응용층은 OSI 모델의 세션, 표현, 그리고 응용층을 합친 것과 같다. 종단 사용자가 직접 눈으로 볼 수 있는 층으로 사용자에 대해서 직접 통신 기능을 제공한다. 응용층은 사용자가 사설 인터넷이나 글로벌 인터넷에 접근하는 것을 허용한다. 이 계층에는 전자 우편, 파일 전송, 월드 와이드 웹 접속 등의 많은 프로토콜이 규정되어있다. 다음 그림은 응용층 통신을 보여준다.

    응용층의 통신은 전송층처럼 종단-대-종단이다.

4. 주소지정

TCP/IP 프로토콜을 이용한 인터넷은 3개의 서로 다른 계층의 주소가 사용되는데, 이는 물리(링크) 주소(Physical address), 논리(IP)주소(logical address), 그리고 포트 주소(port address)이다. 다음 그림처럼, 각 주소는 TCP/IP 구조에서 계층과 간련이 있다.

4.1 물리 주소

링크 주소로 잘 알려진 물리 주소(physical address)는 LAN이나 WAN에서 정의된 노드의 주소이다. 이것은 데이터 링크층에 의해 사용되는 프레임이 포함된다. 이것이 최하위 계층 주소이다. 물리 주소는 링크(LAN 또는 WAN)상의 권한을 갖는다. 이 주소의 크기와 형식은 네트워크에 따라 매우 다양하다.

그림에서, 물리 주소가 10인 노드가 물리 주소가 87인 노드로 프레임을 보낸다. 두 노드는 링크(LAN)에 연결되어있다. 데이터 링크층에서, 프레임은 헤더 내에 물리(링크)주소를 포함하고 있다. 헤더의 나머지 부분은 이 계층에서 필요한 정보를 담고 있다. 트레일러는(꼬리말) 보통 오류 검출에 필요한 추가 비트를 포함한다. 송신자의 데이터 링크층은 상위 계층으로부터 데이터를 받는다. 데이터는 헤더와 트레일러가 더해져 프레임에 캡슐화된다. 수신자와 송신자 물링(링크)주소는 헤더에 들어있다. 대부분의 데이터 링크 프로토콜에서 목적지 주소는 발신지 주소 앞에 온다. 프레임은 LAN을 통하여 전달된다. 목적지 주소와 다른 목적지 주소를 갖는 지국은 자신의 물리 주소와 다르므로 폐기한다. 그렇지만 목적지 컴퓨터는 프레임에 들어있는 목적지 주소와 자신의 물리 주소가 일치하는 것을 안다. 프레임을 받으면 헤더와 트레일러가 벗겨지고 데이터 부분은 상위계층에 전달된다.

  • 유니캐스트, 멀티캐스트, 브로드캐스트 물리주소
    물리 주소는 유니캐스트(unicast, 단일 수진자), 멀티캐스트(multicast, 그룹 수신자), 또는 브로드캐스트(broadcast, 네트워크의 모든 시스템이 수신)가 될 수 있다. 어떤 네트워크는 이 세 주소를 모두 지원한다.

4.2 논리 주소

IP 주소라고도 하는 **논리 주소(Logical Address)는 물리적인 네트워크와는 독립적인 전 세계적인 통신 서비스를 위해 필요하다. 물리 주소는 서로 다른 네트워크가 서로 다른 주소 형태를 갖는 네트워크 간 상호 접속 환경에는 적합하지 않다. 기존의 물리적인 네트워크에 관계없이, 각 호스트를 유일하게 식별할 수 있는 전 세계적인 주소지정 시스템이 필요하다.
논리 주소는 이러한 목적을 위해 설계되었다. 논리 주소는 현재 인터넷에 연결된 호스트를 유일하게 식별할 수 있는 32비트 주소체계를 사용한다. 인터넷상의 두 호스트는 동일한 IP주소를 사용할 수 없다.

그림은 세 개의 LAN을 연결하는 두개의 라우터를 가진 인터넷의 한 부분을 보여준다. 각 장치(컴퓨터나 라우터)는 각 연결에 대해 한 쌍의 주소(논리와 물리)를 갖는다. 각 라우터는 3개의 네트워크에 연결되어 있다.(그림에서는 단지 두개만 보인다). 따라서 각 라우터는 각 연결 당 하나씩 세 개의 주소 쌍을 가지고 있다. 송신자는 네트워크의 패킷에 있는 데이터와 두 개의 논리 주소(송신자 주소, 수신자 주소)를 더해서 캡슐화 한다. 대부분 프로토콜에서 논리 주소는 목적지 논리 주소 앞에 온다.(물리 주소의 순서와 반대로). 그렇지만 네트크워크층은 패킷을 전달하기 전에 다음 홉의 물리 주소가 필요하다. 네트워크층은 라우팅 테이블을 참조하여 다음 홈의 논리 주소를 찾아낸다. 이제 네트워크층은 데이터 링크층에 이 주소를 전달한다. 그러면 목적지 물리주소와 발신지 물리주소가 있는 패킷을 캡슐화 한다. 라우터는 논리 목적지주소를 읽기 위하여 프레임에서 패킷의 캡슐을 벗긴다. 논리 목적지 주소가 라우터의 논리 주소와 일치하지 않으면 라우터는 패킷을 포워딩한다. 그리고 라우터는 다음 홉의 물리 목적지 주소를 찾기 위해 자신의 라우팅 테이블과 ARP의 도움을 받아서, 새로운 프레임을 만들고 패킷을 캡슐화해서 다음 라우터로 보낸다. 이후 또 비슷한 시나리오를 갖는다. 물리 주소가 변경되고 새로운 프레임이 목적지 컴퓨터에 보내진다. 이러한 과정 끝에 프레임이 목적지에 도착하면 패킷은 캡슐이 벗겨진다. 목적지 논리 주소가 일치하면, 데이터는 패킷으로부터 캡슐이 벗겨지고 상위층에 보내진다. 물리 주소는 홉에서 홉으로 갈 때마다 변겨오디지만 논리 주소는 발신지에서 목적지까지 같은 상태로 남아있다.

  • 유니캐스트, 멀티캐스트, 브로드캐스트 주소
    논리 주소는 유니캐스트(단일 수신자), 멀티캐스트(그룹 수신자), 또는 브로드캐스트(네트워크 내의 모든 시스템)가 될 수 있다. 브로드캐스트 주소에는 제한이있다.

4.3 포트 주소

다량의 데이터를 발신지에서 목적지 호스트까지 전송하기 위해서는 IP주소와 물리 주소가 필요하다. 그러나 목적지 호스트에 도착하는 것이 인터넷을 통한 데이터 통신의 최종 목적이 아니다. 오늘날 컴퓨터는 여러개의 프로세스를 동시에 실행할 수 있다. 인터넷 통신의 최종 목적은 한 프로세스가 다른 프로세스와 통신할 수 있도록 하는 것이다. 동시에 발생되는 프로세스들을 위해 서로 다른 프로세스를 식별하는 방법이 필요하다. 즉, 주소가 필요하다. TCP/IP 구조에서, 프로세스에 할당된 레이블을 포트주소(port address)라고 한다. TCP/IP에서 포트 주소 길이는 16비트이다.

위 그림에서 전송층은 패킷에 응용층으로부터 온 데이터와 발신지와 목적지 포트 주소를 더한다. 전송층의 패킷은 네트워크층에서 발신지와 목적지 논리 주소를 가진 또 다른 패킷으로 캡슐화 한다. 마지막으로, 이 패킷은 물리 발신지와 다음 홉의 목적지 주소를 갖는 프레임으로 캡슐화 된다. 여기서 물리 주소는 인터넷에서 홉에서 홉으로 갈 때마다 변경 됨으로 보여 줄 수 없다. 하지만 논리 주소와 포트 주소는 목적지까지 변경되지 않고 그대로 유지된다.

4.4 응용 지정 주소

어떤 응용은 특정 응용을 위해 설계된 사용자에게 친근한 주소를 사용한다. 예를 들면 전자우편주소나, URL(Universal Resource Locator, ex> www.amazon.com)이다.

profile
꾸준히 한걸음씩

0개의 댓글