초기 여러 정보 통신 업체 장비들은 자신의 업체 장비들끼리만 연결이 되어 호환성이 없었다.
모든 시스템들의 상호 연결에 있어 문제없도록 표준을 정한것이 OSI 7계층이다.
즉, 표준(호환성)과 학습도구로써 제작되었다.
OSI 7 Layer 는 개방형 시스템 상호 연결 모델의 표준이다.
인터넷에서 사용되는 TCP/IP 는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화한 것이다.
동작 정리
OSI 7계층은 응용, 표현, 세션, 전송, 네트워크, 데이터링크, 물리계층으로 나뉜다.
전송 시 7계층에서 1계층으로 각각의 층마다 인식할 수 있어야 하는 헤더를 붙이고 (캡슐화)
수신 시 1계층에서 7계층으로 진행하며 각 계층에서 헤더를 떼어낸다. (디캡슐화)
그래서 전체 과정은 아래와 같이 보이며 각 계층은 다른 당치의 동등한 계층과 1:1 통신한다.
출발지에서 데이터가 전송될 때 헤더가 추가되는데 2계층에서만 오류제어를 위해 꼬리부분에 추가된다.
물리계층에서 1, 0 의 신호가 되어 전송매체 (동축케이블, 광섬유 등) 을 통해 전송된다.
HW/SW 기준의 OSI 7 계층 사용 부분 정리
컴퓨터 구성 요소에 따라 레이어를 처리하는 부분을 나눠보면 같다.
컴퓨터 구성 요소는 LAN 카드 및 Kernel 영역 및
소프트웨어 영역을 나누자면 User 영역과 Application 영역으로 구성되는데
어플리케이션에서 소켓은 일종의 파일로 프로세스가 통신을 위한 수신지 포트,
송신지 포트 및 송신지 IP 정보를 지정하게 되어 있다.
이 정보가 커널을 거쳐 수신지 IP 정보 및 랜카드의 MAC 주소를 더하며
스위치와 라우터를 거쳐 목적지 서버의 특정 프로세스로 데이터를 보내게 된다.
헤더 기준의 OSI 7계층 동작 상세
위 과정에서 각 계층별로 추가되는 헤더 정보를 기준으로 배열하면 아래와 같다.
Application
어플리케이션 계층에서는 데이터를 만들었다.
웹서버로부터 홈페이지를 요청하는 http Get Request 일수도 있겠다.
이것을 전송계층의 TCP가 처리를 하도록 아래로 내려보내고 있다.
이때의 PDU 는 data 이다.
Transport
TCP는 상위로부터 받은 데이터에다가 자신이 해야 할 추가작업을 하고 있다.
목적지 컴퓨터에서 이 데이터를 처리해야 할 포트번호, 자신의 포트 번호와
… 으로 표기가 해 놓은 그 밖의 추가 정보를 TCP헤더라는 이름으로 붙이고 있다.
포트 번호는 목적지 서버의 프로세스를 찾기 위해 사용하며 소켓에 이미 그 정보가 들어 있다.
이때의 PDU 를 세그먼트라고 한다.
Network
IP는 역시 TCP가 내려보낸 세그먼트에 소켓에 기재된 정보를 기반으로 IP 정보를 더한다.
받을 컴퓨터 IP주소, 자신의 IP주소 등 기타 추가로 많은 정보를 추가한 IP 헤더라는 것을 붙인다.
이 PDU 를 패킷 이라고 부른다.
Physical
보통 물리 계층에서는 이더넷(EtherNet) 프로토콜이 사용되며
이 프로토콜은 ARP를 이용해서 자신의 랜카드 MAC Address 와 접점에 있는
네트워크 장비의 MAC Address 를 알아내 패킷에 붙인다.
이를 통해 프레임이라고 부르는 PDU 가 구성된다.
이때 추가로 수신측에서 패킷의 손상유무를 확인하기 위한 CRC를 꼬리에 추가한 다음
비로소 물리적인 네트워크 장비로 이더넷 프레임을 보낸다.
이러한 과정을 거쳐서 네트워크로 나간 이더넷 프레임은 어떻게 될까?
이 이더넷 프레임의 헤더에는 목적지의 MAC 어드레스가 있으므로
이더넷 프레임을 받게 되는 네트워크 어댑터 카드들은
자신의 MAC 어드레스에 해당하는 이더넷 프레임 인지를 확인한 후
맞다면 받아들이게 되고, 자신의 이더넷 프레임이 아니라면 무시한다.
ARP 브로드캐스트는 네트워크의 모든 컴퓨터들이 받게 되는 메시지이다.
이것도 당연히 받아들이게 된다.
결국 자신의 MAC 어드레스에 해당하는 이더넷 프레임 과 브로드캐스드 주소를 가진 프레임이
네트워크 NIC 들이 받아 들이게 되는 패킷 이다.
프레임을 다른 네트워크에 전달하기
그렇다면 이더넷 프레임이 라우터를 경유해서 어떻게 다른 네트워크로 흘러가는가?
이것을 이해하는 것은 TCP/IP 통신을 이해하는 것에 있어서 아주 중요한 대목이다.
예를 들어 아래 그림과 같이 호스트 A 와 호스트 B 는 라우터로 분리된 서로 다른 네트워크에 있고,
TCP/IP 통신을 하고자 한다.
호스트 A 가 명령프롬프트에서 “ping IP4”라고 명령을 내렸다고 가정해 보겠다.
Step 1 > 네트워크 판단
호스트 A는 B호스트에게 데이터를 보내고자 할 때 가장 먼저 하는 작업은
호스트 B 가 자신과 같은 로컬 네트워크에 있는지, 라우터 건너의 원격지 네트워크에 있는지를 판단하는 것이다.
그 판단의 방법으로 로컬 서브넷 마스크를 이용해서
상대방의 IP 주소중에서 네트워크 ID를 구별해 내고, 자신이 속해있는 네트워크 ID와 비교작업을 한다.
Step 2 > ARP Broadcast
판단결과, 로컬 네트워크라는 결과가 나오면
직접 해당 호스트의 MAC 주소를 찾기위한 ARP 브로드캐스트를 사용하고,
원격지 네트워크라면 라우터에게 전송을 요청하기 위해
라우터의 네트워크 어댑터 카드에 해당하는 MAC 주소를 찾기 위한 ARP 브로드캐스트를 전파한다.
ARP (Address Resolution Protocol) 브로드 캐스트 요청은 말 그대로 주소 결정 프로토콜로
해당 IP 주소에 맞는 물리적인 주소인 MAC 어드레스를 조회하는 프로토콜로
예를 들어 아래와 같이 PC A 의 IP 프로토콜이 ARP 프로토콜에게 ARP Request 메시지를 생성하도록 요청한다.
이때 ARP Request 에는 PC A 의 IP 주소, PC A 의 MAC 주소,
목적지 IP 주소와, 목적지 물리 주소는 브로드캐스트 주소로 지정한다.
브로드캐스트 메시지를 받은 모든 호스트와 라우터는 프레임을 수신 후 자신의 ARP 프로토콜에 전달하고
목적지 IP 주소가 일치하는 시스템은 ARP Reply 를 통해 자신의 물리 주소를 포함하는 응답 메시지를
유니캐스트로 PC A 에게만 보내며 PC B, PC C 는 응답하지 않고 요청을 버린다.
전체 과정을 정리해 본다면 아래와 같다.
Step 3 > 라우팅 테이블 이용 목적지로 프레임 전송
라우터는 라우팅 테이블을 근거로 목적지로 가기 위한 최적의 경로를 판단하고
해당 네트워크로 새로운 물리적인 프레임을 만들어서 전송한다.
이때 라우터가 만드는 프레임의 목적지 MAC 주소는 또 다른 라우터의 MAC 주소일 수도 있고,
특별한 호스트의 MAC주소일 수도 있다.
예제에서는 직접 IP4의 MAC에 해당하는 MAC4 라는 주소를 목적지의 주소로 사용을 하였다. (⑤)
계층별 기능요약
Layer 1~4 는 네트워크 엔지니어 영역이고 Layer 5~7 은 개발자 영역이다.
Layer
|
PUD
|
Protocol
|
Device
|
Function
|
7 (Application)
|
Data
|
HTTP, FTP, DNS, DHCP, SMTP, NFS, RTSP
|
|
사용자가 네트워크에 접근할 수 있도록 해주는 계층이다.
사용자 인터페이스, 전자우편, 데이터베이스 관리 등 서비스를 제공한다.
|
6 (Presentation)
|
Data
|
JPEG, MPEG, SMB, AFP
|
|
데이터를 하나의 표현 형태로 변환한다.
필요한 번역을 수행하여 두 장치가 일과되게 전송 데이터를 이해할 수 있도록 한다.
|
5 (Session)
|
Data
(Payload)
|
SSH, TLS, ISO8327, Apple talk, NetBIOS
|
|
통신 세션을 구성하는 계층으로 포트(port) 연결이라고도 할 수 있다. 통신 장치 간의 상호 작용을 설정하고 유지하며 동기화한다. 사용자 간의 포트 연결(세션) 이 유효한지 확인하고 설정한다.
|
4 (Transport)
|
Segments
|
TCP, UDP, RTP, SCTP, SPX
|
Gateway
|
End to End Commnication
전체메시지를 발신지 대 목적지 간 제어와 에러를 관리한다. 패킷들의 전송이 유효한지 확인하고 실패한 패킷은 다시 보내는 등 신뢰성 있는 통신을 보장하며 머리 말에는 Segment 가 포함된다.
|
3 (Network)
|
Packets
|
IP, ARP, ICMP, IGMP, RIP, IPX, DDP,
OSPF, IS-IS, BGP
|
Router
|
다중 네트워크 링크에서 패킷을 발신지로부터 목적지로 최단 거리로 전달할 책임을 갖는다. 각 패킷이 시작지점에서 최종목적지까지 성공적으로 전달 되도록 한다.
|
2 (Data Link)
|
Frames
|
Ethernet, PPP, Wireless Len
|
Bridge, Switch
|
오류없이 한 장치에서 다른 장치로 프레임(비트의 모음)을 전달하는 역할로 스위치 같은 장비의 경우 MAC 주소를 이용하여 정확한 장치로 정보를 전달한다.
|
1 (Physical)
|
Bits
|
Ethernet, RS-232C,Modem
|
Hub, Reafiter
|
물리적 매체를 통해 비트 흐름을 전송하기 위해 요구되는 기능들을 조정한다.
케이블, 연결 장치 등과 같은 기본적인 물리적 연결기의 전기적 명세를 정하고
네트워크의 두 노드를 물리적으로 연결시켜준다.
|
* PDU(Process Data Unit) 은 각 계층에서 전송되는 단위이다.
Layer 기능 상세
각 계층별 기능을 요약하면 아래와 같다.
L1 물리 계층 (Physical Layer)
전기적, 기계적 특성을 이용하여 통신 케이블로 전기적 신호를 전송한다.
단지 데이터 전달의 역할을 할 뿐이라 알고리즘, 오류제어 기능이 없다.
네트워크 엔지니어는 감쇠 등의 열 손실과 IEEE 규격 등에 대해 알아야한다.
장비로는 케이블, 리피터, 허브가 있다.
L2 데이터 링크 계층 (Data Link Layer)
물리적인 연결을 통하여 인접한 두 장치 간의 신뢰성 있는 정보 전송을 담당한다.
전송단위는 Frame 이며 주소와 제어정보를 가지고 있다.
정보의 오류와 흐름을 관리하여 안정된 정보를 전달한다.
장비로는 브리지, 스위치가 있다.
L3 네트워크 계층 (Network Layer)
중계 노드를 통하여 전송하는 경우 어떻게 중계할 것인가를 규정한다.
전송단위는 패킷이며 목적지까지 경로 설정을 한다.
데이터를 목적지까지 가장 안전하고 빠르게 전달하도록 한다.
장비로는 라우터, L3 스위치가 있다.
L4 전송계층 (Transport Layer)
종단 간 신뢰성 있고 정확한 데이터 전송을 담당한다.
전송단위는 전체 데이터를 자른 정보인 세그먼트이며 종단 간의 에러 복구와 흐름 제어를 담당한다.
장비로 L4 스위치를 두는 경우가 있는데, 3계층에서 온 트래픽을 분석하여 서비스 종류를 구분해준다.
L5 세션 계층 (Session Layer)
통신 장치 간 상호작용 및 동기화를 제공한다.
연결 세션에서 데이터 교환과 에러 발생 시의 복구를 관리한다.
L6 표현 계층 (Presentation Layer)
데이터 표현에 차이가 있는 응용처리에서의 제어 구조를 제공한다.
ASCII, JPEG, MPEG 등의 번역을 말한다.
전송하는 데이터의 인코딩, 디코딩, 암호화, 코드 변환 등을 수행한다.
L7 응용 계층 (Application Layer)
사용자와 가장 밀접한 계층으로 인터페이스 역할을 한다.
응용 프로세스 간의 정보 교환을 담당한다.
예로는 전자메일, 인터넷, 동영상 플레이어 등의 어플리케이션이 있다.
Layer 별 장비
각 계층별 사용하는 장비는 아래와 같다.
1계층 장비 - 리피터 (중계기), 허브
리피터는 신호가 너무 약해지거나 잡음에 의해 훼손되기 전에 수신하여 신호를 증폭시키는 역할을 한다.
물리적인 길이를 확장시킬 수 있다.
변질된 신호도 증폭하기 떄문에 신호 변형 가능성이 크다.
허브는 다중 포트 리피터의 역할을 한다.
2계층 장비 - 브리지 , 스위치
브리지는 수신한 신호를 재생성한다.
패킷에 포함된 물리주소(MAC address) 를 검사할 수 있고 전달될지 폐기될지 결정할 수 있다. (Filtering)
인터페이스 주소를 대입한 테이블을 가지고 있고 스위치도 MAC 주소 테이블을 가지고 있다.
스위치의 사용목적은 허브와 유사하지만 향상된 네트워크 속도를 제공한다.
이는 허브처럼 다른 모든 컴퓨터에 전송되는 것이 아니라 필요한 컴퓨터에만 전송하기에 가능하다.
허브처럼 충돌현상 (충돌 도메인) 이 나타나지 않는다.
멀티포트 브리지 역할로 많은 포트수를 사용하기 위해서 사용된다.
3계층 장비 - 라우터
라우터는 패킷이 포함하고 있는 물리주소를 검사한다.
네트워크 계층 주소(IP 주소) 를 검사한다.
분리된 네트워크를 연결할 수 있다. (LAN-LAN, WAN-WAN, LAN-WAN)
분리된 네트워크 사이에서 패킷 전송을 하며 가능한 이유는 라우팅 테이블이 있기 때문이다.
1, 2, 3계층 장비의 본질적 차이
리피터는 신호를 연결되어 있는 모든 포트로 전파한다.
그렇기 때문에 다른 단말이 신호를 보낼 시 충돌이 발생한다.
스위치는 이런 문제를 해결한 장비로 브리지 주소 테이블 또는 MAC 주소 테이블을 가지고 있다.
스위치는 보내야할 곳과 보내지 말아야할 곳을 구분하므로 충돌 도메인을 해결할 수 있다.
하지만 브로드캐스트 도메인을 해결하지 않았고 세그먼트 구분을 못하므로 네트워크를 나누지 못한다.
라우터는 스위치의 문제를 해결한다.
출발지 주소와 도착지 주소를 설정하고 경로를 지정하여 다른 네트워크로의 전송이 가능해진다.
'Network > Basic' 카테고리의 다른 글
06. 간단한 Network 구성 (1) (0) | 2020.01.22 |
---|---|
05. IP 주소 (0) | 2020.01.22 |
04. Router 개념 (0) | 2020.01.22 |
03. Switch 개념 (0) | 2020.01.22 |
01. Overview (0) | 2020.01.22 |