TCP/IP가 보이는 그림책(이정현, 임세진, 윤재웅)

Jaewoong
Quantum Ant
Published in
14 min readJul 28, 2019

제9장 부록

OSI 참조 모델

OSI 7 Layer(계층)이 탄생한 이유?

통신에 관한 국제표준기구인 ISO(International Organization for Standardization)라는 곳에서 통신이 일어나는 과정을 7단계로 나누고 표준화를 시켰다. 그 이유는 크게 3가지입니다.

데이터의 흐름을 한눈에 볼 수 있다.

통신이 이루어지면서 데이터가 어떻게 흘러가는지 어플리케이션 계층부터 피지컬 계층까지를 나누어 놓았으니까 한 눈에 통신의 과정을 한눈에 파악하기 쉽습니다.

당연한 말이었습니다.

문제를 해결하기가 편하다.

통신 과정을 7단계로 나누었기 때문에 통신에 문제가 발생이 됐을 때 각 계층별로 문제가 없는지 파악하여 통신장애 원인을 규명하기 편리하다.

5계층 보다 세분화 되어 더욱 해결하기 편해 집니다.

여러장비를 써도 네트워크간 호환이 된다.

네트워크 장비를 개별적으로 다르게 쓰는 회사여도 기본적으로 통신 표준화를 지키면서 통신하기 때문에 네트워크 통신 장비 호환성이 보장된다.

OSI 7 Layer

이미 앞에서 TCP/IP 계층에 대한 설명이 있엇지만 OSI 7계층을 설명하면서 전체적으로 한번더 정리를 하겠습니다.

Physical Layer

맨 아래 계층으로 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송합니다. 이 계층에서 사용하는 통신 단위는 비트이며, 이것은 0과1로 나타내어지는 전기적 상태 ON/OFF 상태입니다.

피지컬은 단지 데이터를 전달만 할 뿐! 어떻게 보내는것이 효율적인지, 어떤 종류의 데이터인지, 에러가 있는지 없는지 관심이 없습니다.

( 케이블, 리피터, 허브 등)

Data-Link Layer

피지컬 레이어를 통하여 송수신 되는 정보의 오류와 흐름을 피지컬 레이어 대신 관리하며, 안전한 정보의 전달을 할 수 있도록 도와주는 계층입니다.

따라서 통신에서의 오류를 찾아주고, 데이터를 재전송하는 기능도 탑재되있습니다.

전에 배운 맥 어드레스를 가지고 통신할 수 있게 합니다.

이 계층에서의 통신 단위는 프레임(Frame)

(브릿지, 스위치)

  • 흐름 제어, 프레임 동기화, 오류 제어, 순서 제어가 있습니다.
  • HDLC, LAPB, PPP, LLC 등

Network Layer

네트워크의 꽃인 계층 가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 가장 빠르게 전달하는 것이 목표입니다.

보통 이것을 라우팅이라고 합니다.

따라서 경로를 선택하고(IP)주소를 정하고 경로에 따라 패킷을 전달해주는 것이 이 계층의 주 업무입니다.

이 역할을 라우터가 합니다.

요즘은 스위치중에서도 라우팅기능을 탑재하는 성능좋은 스위치가 나오고 있어 스위치를 3 Layer 장비라고도 합니다.

(라우터,스위치(라우터기능탑재))

  • 경로 설정(Routing), 트래픽 제어, 패킷 정보 전송

Transport Layer

전체 메시지를 발신지 대 목적지(종단 대 종단)간 제어와 에러를 관리한다.

패킷들의 전송이 유효한지 확인하고 실패한 패킷은 다시 보내는 작업을 하여 신뢰성있는 통신을 보장합니다.

대표적 프로토콜로 TCP(연결지향)가 있습니다.

또한 에러제어,흐름제어를 담당한다.

(TCP,UDP,ARP프로토콜)

Session Layer

통신세션을 구성하는 계층 포트(Port)간 연결을 합니다.

사용자간 포트연결이 유효한지 확인합니다.

통신장비를 연결, 유지, 관리, 종료등을 관할합니다.

세션을 유지 및 연결

송 수신 측 간의 관련성을 유지하고 대화 제어를 담당

  • 대화 구성 및 동기 제어, 데이터 교환 관리 기능
  • 체크점(=동기점) : 오류가 있는 데이터의 회복을 위해 사용하는 것으로 소동기점과 대동기점 존재

Presentation Layer

입출력되는 데이터에 대해 필요한 번역과 작업을 통해 일관되게 데이터를 서로 이해하고 호환될 수 있도록 변환한다.

확장자(jpg,gif,mpg),인코딩,디코딩 암호화,복호화 등 전송데이터를 서로 이해할 수 있도록 포멧을 변환.

(JPEG,MPEG,SMB,AFP프로토콜)

응용 계층으로부터 받은 데이터를 세션 계층에 맞게, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능

  • 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식(포맷 변환), 문맥관리 기능

Application Layer

사용자가 네트워크에 접근할 수 있도록 해준다.

네트워크 인터페이스 제공 및 네트워크 자원에 대한 사용자 접근 가능.

전자우편,데이터베이스관리 등 서비스를 제공,사용자에게 노출되는 계층

(텔넷,HTTP,DHCP,DNS,SSH,SMTP,FTP등)

서비스 제공계층

사용자 응용프로그램이 OSI 환경에 접근할 수 있도록 서비스 함

IPv6

IPv4는 8비트씩 4묶음, 즉 32비트 주소 체계입니다. 따라서 이론적으로는 2의 32제곱, 약 43억 개의 주소를 만들 수 있습니다. 하지만, 특수 배정된 IP 주소나 네트워크 주소, 브로드캐스팅 주소 등을 빼면 현실적으로 배정 가능한 주소는 약 2억 5천만개에 지나지 않는다고 합니다.

물론 서브넷팅 기술과 NAT(공인-사설 IP 주소 변환), DHCP(IP 자동 할당) 등을 이용하여 IPv4 체제에서 수많은 사람들이 인터넨을 사용할 수 있도록 여러가지 기술이 있었습니다.

이렇게 IP 주소가 부족해지는 ‘IP 주소 고갈 문제’에 대한 대응책으로서 현재 지금까지 이용해 온 IPv4(Interenet Protocol Version 4)에서 새로 개발된 IPv6(Internet Protocol Version 6)로 옮겨가고 있습니다.

IP 주소를 나타낸다는 목적은 같지만, IPv4와 IPv6는 호환성이 없습니다.

이 둘은 명칭이나 구조 등 다양한 점에서 차이를 볼 수 있습니다.

IPv6의 생김새

2001:0DB8:010F:0001:0000:0000:0000:0D0C

작정하고 IP 주소를 늘리려는 시도를 하다보니 IPv4에 비해 확실히 복잡해졌습니다.

위에 보는 것과 같이 IPv6는 IPv4와는 달리 8묶음으로 되어 있고, 묶음을 구분하기 위해 :(콜론)을 사용합니다. 또한 알파벳도 쓰이는 걸 보아 하니 각각의 숫자는 16진수임을 알 수 있습니다.

IPv6는 16진수 숫자 하나당 4비트(2의 4제곱은 16), 그리고 숫자 4개씩 8묶음 해서 128비트 주소 체계가 만들어집니다. (4 × 4 × 8 = 128) 그렇다면 이론적으로 만들 수 있는 주소 수는 2의 128제곱입니다.

즉, 340,282,366,920,938,463,463,374,607,431,768,211,456개 입니다. IPv6 체제에서 IP 주소는 거의 무한대라도 과언이 아닙니다.

IPv6 주소가 꽤 복잡하다보니 이를 보완하는 규칙도 있습니다.

각 묶음별로 앞쪽에 오는 0은 안 써도 됩니다.

예를 들어, 위의 주소는 2001:DB8:10F:1:0:0:0:D0C로 바꿔쓸 수 있습니다.

0이 연속으로 나올 때는 ‘::’으로 치환할 수 있습니다.

예를 들어, 위의 주소는 2001:DB8:10F:1D0C로 줄여쓸 수 있습니다. 단, ‘’으로 치환하는 것은 단 한 번만 가능합니다. (그러니까 2001FFFFD0C 은 안 됩니다.)

서브넷 마스크는 IPv6에서도 사용됩니다. 표시는 2001:DB8:10F:1D0C/64 와 같은 방식으로 합니다. 이러한 표기 방식은 주소 묶음(Aggregation)을 하는 데 도움을 줍니다. 만약 2001:200:1:1/64와 2001:200:1:2::/64 네트워크가 있다면,

이는 2001:200:1::/48로 묶을 수 있습니다. 이러한 방식을 슈퍼넷팅(Suppernetting)이라고도 합니다.

IPv6의 특징

브로드캐스트 대신 멀티캐스트

브로드캐스트는 해당 브로드캐스트 영역에 있는 모든 호스트들에게 다 전송되는 메시지입니다. 때문에 무조건 모든 곳으로 원하는 원치 않든 전송하고 받아야 합니다. 브로드캐스트는 이런 점 때문에 항상 골칫거리였습니다. 하지만, ARP(상대방의 MAC 주소를 가져오는 프로토콜)을 할 때나 라우팅 정보를 업데이트하는 데 브로드캐스트가 이용됩니다.

이런 점을 고려하여 IPv6에서는 브로드캐스트를 삭제하고, 대신 멀티캐스트가 이를 대신하도록 합니다. IPv6에서의 멀티캐스트는 4비트의 Scope ID를 사용하여 멀티캐스트의 전송 범위를 지정해줄 수 있습니다.

IP 주소 자동 구성

IPv4에서는 IP 주소 자동 할당을 위해 DHCP 서버를 만들고, 이 서버를 통해 IP 자동 할당이 가능했었습니다. 이러한 방식을 Stateful Auto Configuration(상태 보존형 주소 자동 설정)이라고 합니다.

그렇지만, IPv6에서는 DHCP 서버 없이도 라우터를 통해 IP 주소를 자동으로 구성할 수 있게 합니다. 이러한 방식을 Stateless Auto Configuration(상태 비보존형 주소 자동 설정)이라고 합니다. 물론 좀 더 자세히 호스트를 구성하고자 한다면 IPv6에서도 DHCPv6 서버를 구성하여 사용할 수 있습니다.

간단해진 헤더(Header)

IPv6의 주소 정보가 128비트로 크게 늘어났기때문에 헤더 정보를 IPv4에 비해 반 정도로 줄일 수 있게 됩니다. 패킷 처리가 간단해지는 장점은 있지만, 워낙 크게 늘어난 주소 정보 때문에 주소를 확인하는 데 문제가 발생할 수 있습니다.

보안

IPv6는 IPSec을 기본적인 보안 정책으로 채택하여 운용하고 있습니다.

이동성

모바일 장비가 네트워크 접속이 끊기지 않으면서 이동이 가능하도록 해 주는 기능입니다. IPv6에서는 이동성을 좀 더 효과적인 방법으로 제공합니다.

IPv4에서 IPv6로

위에서 IPv4와 IPv6가 서로간 호환이 되지 않는다고 했었습니다.

하지만 이 둘사이를 연결해주는 기술이 존재합니다.

  • 듀얼 스택
  • 주소 변환
  • 터널링

듀얼 스택

듀얼 스택(Dual Stack)은 하나의 시스템에서 IPv4와 IPv6 프로토콜을 모두 처리하는 기술입니다. 따라서 듀얼 스택을 지원하는 시스템은 물리적으로 하나이지만 논리적으로 IPv4와 IPv6를 둘 다 지원합니다.

IPv4/IPv6 듀얼스택 소프트웨어는 일반적으로 운영체제 커널에 소프트웨어 형태로 구현됩니다. 따라서 다양한 표준의 네트워크 카드(Ethernet, ATM, Wi-Fi, Wibro, WCDMA 등)와 독립적으로 동작합니다.

주소 변환

주소 변환 기술은 IPv4 네트워크와 IPv6 네트워크 사이에 주소변환기를 사용하여 상호 연동 시키는 기술입니다. IPv6 클라이언트가 IPv4 서버에 접속 하거나 반대로 IPv4 클라이언트가 IPv6 서버에 접속할 때 사용되는 기술입니다.

주소 변환 기술은 어떤 계층에서 변환하느냐에 따라 크게 세 가지로 나눌 수 있습니다.

  • 헤더 변환방식

네트워크 계층(IP)에서 변환

  • 전송 계층 릴레이방식

전송 계층(TCP)에서 변환

  • 응용계층 게이트웨이 방식

응용 계층(HTTP)에서 변환

터널링

터널링(Tunneling) 기술은 트래픽이 IPv6망에서 인접한 IPv4망을 거쳐서 건너편 IPv6 망으로 통신할 때 IPv4 망에 터널을 만들어 IPv6 패킷을 통과시키는 개념을 의미합니다.

IPv6 도입 초기에는 소규모 섬 형태의 IPv6 망들이 구축될 것이기 때문에 터널링 기술이 많이 활용될 것입니다. 전환기술 중에서도 터널링 기술에 대한 표준화 활동이 가장 활발히 진행됐으며, 그 결과 지금까지 다양한 터널링 기술이 표준으로 제안되었습니다.

IPv6 주소의 종류

유니캐스트(Unicast)

하나의 인터페이스에 부여되는 주소입니다. 그래서 컴퓨터에 복수의 인터페이스가 있는 경우는 그 수만큼 유니캐스트 주소가 할당됩니다. 일대일 통신에서는 이 주소를 사용해 데이터를 주고받습니다.

유니캐스트 주소는 통신 가능한 범위를 나타내는 스코프에 의해 3가지로 분류됩니다.

  • 글로벌 유니캐스트 주소
  • 유니크 로컬 유니캐스트 주소
  • 링크 로컬 유니캐스트 주소

멀티캐스트(Multicast)

멀티캐스트는 예를들어 200명에 사용자가 있는 네트워크에서 150명의 사용자에게만 데이터를 주고싶을 때 사용합니다. 즉 특정 그룹에게 데이터를 보내는 방식입니다.

유니캐스트로 150명에게 각각 150번씩 보낼 수있지만 이건 좀,,, 그렇다고 브로드캐스트로 한번에 할 수도 있지만, 이것 역시 50명에겐 불필요한 데이터를 주어 CPU에 영향을 줍니다. 따라서 멀티캐스트를 사용해야하는데 멀티캐스트는 라우터와 스위치가 멀티캐스트지원을 해줘야 가능합니다. (지원하지 않는 라우터는 멀티캐스트를 브로드캐스트마냥 무조건 버립니다. 라우터는 기본적으로 브로드캐스트를 막는 성질이있습니다. 지원하지 않는 스위치는 멀티캐스트를 브로드캐스트마냥 모든 포트에게 전부 뿌려줍니다.)

멀티캐스트 주소 일부를 사용해 같은 기능을 실현할 수 있습니다.

애니캐스트(Anycast)

애니캐스트를 이용하여 멀티캐스트를 더욱 효율적으로 구현 하여 고가용성 시스템트래픽을 구현할 수 있습니다.

멀티캐스트 주소와 마찬가지로 복수의 인터페이스에 할당할 수 있는 주소이지만, 애니캐스트의 경우는 그 주소를 가진 수신자 그룹 내에서 네트워크에 가장 가까운 인터페이스에 패킷이 도달합니다. 나머지 인터페이스에는 보내지 않습니다.

즉, 가장 가까이 있는 그룹내 노드에게 주는 것입니다.

네트워크 기기

케이블의 종류

동축 케이블

동선을 비닐 등으로 절연시켜 그 주위를 망 형태의 동이나 동박으로 둘러싸고, 바깥쪽을 비닐로 쌉니다. 망 형태 부분에 전류가 흐르게 함으로써 외부로부터의 전파를 차단합니다. 또 동축 케이블은 두께에 따라 두 종류가 있으며, 직경 10mm인 것을 Thick 케이블, 5mm인 것을 Thin 케이블이라 합니다.

트위스트 페어 케이블(꼬임 쌍선)

두 줄의 동선을 꼬아서 하나로 만들고, 그것을 몇 개씩 합쳐서 하나의 케이블을 만들어 갑니다. 외부 전파을 차단하기 위해 한 줄씩 금속으로 입혀 놓은 것을 STP(Shielded Twisted-Pair), 입히지 않은 것을 UTP(Unshieled Twisted-Pair)라고 합니다. 품질에 따라 카테고리 1~7/7A로 나눠지는데, LAN에서 사용되는 것은 카테고리 3 이상입니다.

광섬유 케이블

직경 0.1mm 정도릐 섬유 상태의 유리를 나일론 등으로 싸고, 그것을 수십 줄에서 수백 줄씩 묶어서 하나의 케이블로 만듭니다. 빛의 전달 방법에 따라 두 종류가 있으며, 빛을 직진시켜서 전달하는 것을 SMF(Single Mode Fiber), 반사시켜 전달하는 것을 MMF(Multi Mode Fiber)라고 합니다. 전자는 장거리 전송에, 후자는 단거리 전송에 적합합니다.

어댑터의 종류

PCI Express

데스크톱 PC용입니다.

컴퓨터 내부 기판(메인보드)에 있는 슬롯(PCI Express 슬롯)에 삽입하여 사용합니다.

USB 타입

데스크톱 PC나 노트북 PC의 USB 포트에 끼워서 사용합니다.

설치가 간단하지만, USB 버전에 따라 전송 속도가 달라지므로 주의가 필요합니다

USB1.1 : 12Mbps

USB2.0 : 480Mbps

USB3.0 : 5Gbps

Wi-Fi

무선 LAN(Wi-Fi) 가능을 내장하지 않는 PC용 입니다.

USB로 연결하는 형태가 일반적입니다.

지금까지 TCP/IP가 보이는 그림책을 공부한 포스팅의 마지막 장이었습니다.

너무 쉽게 설명하려는 의도가 있어서 세부적인 동작이나 깊은 공부에는 무리가 있었지만 책에 있는 주제를 가지고 구글링을 하며 공부를 진행하다보니 어느정도 깊이 있는 공부가 되었던거 같습니다.

감사합니다.

--

--