네트워크

OSI 7계층

tcp_osi_layers

우선은 OSI 7계층과 TCP/IP 4 계층(혹은 5계층)의 차이를 먼저 설명할까 합니다.

ISO(International Organization for Standardization, 국제 표준화기구)에서 1983년에 OSI(Open Systems Interconnection) 7계층으로 표준화하여 발표하였습니다.

1960년대 말 미 국방성 산하 방위고등연구계획국(DARPA : Defense Advanced Research Projects Agency)에서 연구가 시작된 TCP/IP통신 방식을 미 국방성(DoD : Department of Defence)의 통신 표준으로 채택하면서 1980년 초 인터넷 프로토콜 스위트(Internet Protocol Suite) 또는 DoD모델이라고 부르는 TCP/IP 4계층으로 프로토콜 모델이 공개되었습니다.

비교

TCP/IP 프로토콜의 계층과 OSI모델의 계층은 정확하게 일치하지 않습니다. 두 모델 모두 계층형이라는 공통점을 가지고 있으며, TCP/IP는 인터넷 개발 이후 계속 표준화되어 신뢰성이 우수한 반면에, OSI모델은 표준이 되기는 하지만 실제적으로 구현되는 에가 거의 없어 신뢰성이 저하되었습니다. OSI모델은 장비 개발과 통신 자체를 어떻게 표준으로 잡을지 사용되는 반면에 실질적인 통신 자체는 TCP/IP 프로토콜을 사용합니다.

OSI 7계층

osi_7layers

네트워크를 이루고 있는 구성 요소들을 7단계의 계층적 방법으로 나누고, 각 계층의 표준을 정한 네트워크 모델.

통신이 일어나는 과정을 단게적으로 파악하기 쉽다.

1 계층 - 물리 계층 (Physical Layer)

시스템의 전기적, 물리적 표현을 나타냅니다. 사용되는 통신 단위는 비트 스트림이며, 0과 1, 즉 전기적으로 on, off 상태라고 생각하면 됩니다. 이 계층에서는 단지 데이터를 전달만 할 뿐, 전송하려는(또는 받으려는) 데이터가 무엇인지, 어던 에러가 있는지 등은 전혀 신경쓰지 않습니다. 데이터를 전기적인 신호로 변환해서 주고 받는 기능만을 할 뿐입니다.

· 전기적, 기계적인 특성을 이용해서 통신 케이블로 전기적 신호를 전송한다.

· 데이터 전달 역할만 할 뿐, 데이터 제어, 오류 제어 기능 등은 없다.

· 전송 단위 : Bit Stream

· 장비 : 리피터, 허브

· 리피터 : 긴 케이블일수록 신호가 약해지기 대문에 신호를 멀리 보내기 위한 증폭 장치이다. 지금은 다른 네트워크 장치에 기본적으로 리피터 기능이 탑재되서 사용하지 않는다.

· 허브 : 리피터 역할을 하며, 기존 리피터와 다르게 여러 장비를 연결할 수 잇다. 특징으로는 CSMA/CD방식을 적용하고 있기에 여러 장비에서 동시에 데이터를 전송하지 못한다. 예를 들어 A가 데이터를 전송 중일때 B도 데이터를 보내면 충돌이 일어난다. 하나의 허브에 연결되어 있는 모든 장비들은 같은 콜리전 도메인(Collision Domain)안에 잇기 때문에 사용하는 장비가 많아지면 콜리전 도메인의 크기는 커지고, 허브는 들어온 데이터를 모든 포트로 플러딩하기 때문에 자주 발생한다.

신호로 변환하여 전송하는 계층

2계층 **- **데이터 링크 계층(Data Link Layer)

두 개의 직접 연결된 노드 간 데이터 전송을 제공하며, 물리 계층의 오류 수정도 처리한다. 여기에는 두 개의 서브 레이어가 존재합니다.

매체 접근 제어(Media Access Control, MAC)계층과 논리적 연결 제어(Logical Link Control, LLC)계층입니다.

L3, L4, L7에도 스위치가 존재합니다.(기능은 차이가 있다.)

· 물리적인 연결을 통해 인접한 두 장치간의 신뢰성 있는 정보 전송을 담당한다.

· 정보의 오류와 흐름을 관리한다.

· 안정된 정보 전달한다.

· 전송 단위 : Frame

· 장비 : 브릿지, 스위치

· 브릿지 : 네트워크 세그먼트를 서로 연결해 주는 장치이다. 세그먼트라고 하면 경우에 따라서 의미가 다르다. 여기서 세그먼트란 하나의 큰 네트워크를 구성하는 작은 네트워크들을 세그먼트라고 한다.

· 스위치 : 브릿지랑 비슷하지만, 처리방식이 스위치는 하드웨어, 브릿지는 소프트웨어 방식이라는 차이점이 있다. 속도는 스위치가 훨씬 빠르다. 또한, 브릿지에 비해 제공되는 포트 수도 많고, 포트 별로 속도를 지정할 수 있다. 여러모로 브릿지의 상위 호환 장비이므로 브릿지는 현재 사용되지 않는다. 맥 주소를 기반으로 패킷을 전달한다.

· LLC : IEEE802.2, 두 장비간의 링크를 설정하고, 프레임을 송수신하는 방식과 상위 레이어 프로토콜의 종류를 알리는 역할.

· MAC : 네트워크 세그먼트의 데이터 링크 계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유의 번호이다. 이더넷과 같은 브로드캐스트 네트워크에서 MAC주소는 해당 세그먼트의 각 노드를 공유하게 식별하며 프레임들을 특정 호스트를 위해 구별할 수 있게 도와준다. 고유 식별을 위해 만들어졌지만 변경할 수 있다.

물리적 매체에 패킷 데이터를 실어 보내는 계층, 환경에 맞는 다양한 통신 프로토콜 지원

data_link_layer

ethernet_header

3계층 - 네트워크 계층(Network Layer)

네트워크 계층에서 가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)입니다. 이곳에서 사용되는 프로토콜의 종류도 다양하고, 라우팅하는 기술도 다양합니다. 경로를 선택하고 주소를 정하고, 경로에 따라 패킷을 전달해주는 것이 네트워크 계층의 역할입니다.

· 중계 노드를 통해 전송하는 경우, 어떻게 중계할 것인가를 규정.

· 데이터를 목적지까지 가장 안전하고 빠르게 전달 -> 라우팅

· 전송 단위 : Packet

· 장비 : 라우터, L3스위치

· 라우터 : 네트워크 간 데이터 전송을 위해 최적 경로를 설정하며, 이 경로를 따라 데이터를 전송하는 장비를 말한다.

네트워크를 논리적으로 구분하고 연결하는 계층 - 논리적 주소 IP 사용

network_layer_header

4계층 - 전송 계층(Transport Layer)

통신을 활성화하기 위한 계층입니다. 최종 시스템 및 호스트 간의 데이터 전송을 조율합니다. 보낼 데이터의 용량, 속도, 목적지 등을 처리합니다. 전송 제어 프로토콜(Transmission Control Protocol,TCP)가 전송 계층에서 동작합니다. TCP는 인터넷 프로토콜(IP) 위에 구축되는데 흔히 TCP/IP로 알려져 있습니다.

· 종단 간(End-to-End)에 신뢰성 있고 정확한 데이터 전송을 담당

· 프로세스를 식별하기 위한 Port Number을 사용한다.

· 전송 단위 : Segment

· 프로토콜 : TCP, UDP 등

· TCP : 연결지향성 프로토콜/신뢰성 보장, UDP : 비연결지향성 프로토콜/비신뢰적

· 장비 : L4 스위치

서비스를 구분하고 데이터의 전송 방식을 담당하는 계층

tcp_udp

network_header

5계층 - 세션 계층(Session Layer)

데이터가 통신하기 위한 논리적인 연결을 담당합니다. 4계층에서도 연결을 맺고 종료할 수 있기 때문에 우리가 어느 계층에서 통신이 끊어졌는지 판단하기에는 한계가 있습니다. 그러므로 세션 계층은 4계층과 무관하게 응용 프로그램의 관점에서 봐야 합니다. 세션 설정, 유지, 종료, 전송 중단 시 복구 등의 기능을 합니다.

· 통신 장치 간 상호 작용 및 동기화를 제공

· 데이터 교환, 에러 발생 시 복구 관리 -> 논리적 연결 담당

· 전송 단위 : Message

응용 프로그램 간의 연결을 지원해주는 계층

6계층 - 표현 계층(Presentation Layer)

데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고, 암호화와 압축을 담당합니다. 표현 계층은 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식 상 차이를 다루는 부담을 응용 계층으로부터 덜어줍니다. 예를 들어, EBCDIC로 인코딩된 문서 파일을ASCII로 인코딩된 파일로 바꿔주는 것이나 해당 데이터가 텍스트인지 그림인지, GIF인지, JPG인지 등의 구분이 표현 계층의 몫이라 볼 수 있습니다.

· 데이터 표현에 차이가 있는 응용 처리에서 제어 구조를 제공

· 데이터 표현의 차이 - ASCII, JPED, MPEG 등의 번역

· 전송하는 데이터의 인코딩, 디코딩, 암호화, 코드 변환, 압축 등을 수행

· 전송 단위 : Message

7계층 - 응용 계층(Application Layer)

사용자에게 보여지는 부분입니다. 각종 응용 서비스를 제공합니다. 웹 브라우저 같은 응용 프로그램이 대표적입니다.

· 사용자와 가장 밀접한 계층, 인터페이스 역할

· 응용 프로세스 간의 정보 교환 담당

· 전송 단위 : Message

· 프로토콜 : HTTP, FTP, SMTP, POP3, IMAP, Telnet 등

네트워크 소프트웨어 ui 부분, 사용자의 입출력 부분

TCP/IP 4계층

tcp_ip_model

현재의 인터넷에서 컴퓨터들이 통신하는데 쓰이는 통식 규약이다. 하드웨어, 운영체제, 접속 매체에 관계없이 동작할 수 있는 개방성을 지닌다.

OSI 7계층에서 세션 계층, 표현 계층, 응용계층이 응용계층으로 합쳐졌다고 생각하면 된다.

문서에 따라서 Network Interface를 물리 계층과 데이터 링크 계층으로 나누어 5계층으로 부르기도 한다.

1 계층 - Network Interface

OSI 7 계층에서 물리 계층과 데이터 링크 계층에 해당한다. OS의 네트워크 카드와 디바이스 드라이버 등과 같이 하드웨어적인 요소와 관련되는 모든 것을 지원하는 계층이다. 물리적인 주소로 MAC 주소를 사용한다.

· CSMA/CD, MAC, LAN 등 전송에 사용

· 프로토콜: Ethernet, Token Ring, PPP

2계층 - Internet Layer

OSI 7 계층에서 네트워크 계층에 해당한다. 인터넷 계층의 주요 기능은 3계층으로부터 받은 데이터에 IP 패킷 헤더를 붙여 IP 패킷을 만들고 이를 전송하는 것이다.

· 통신 노드간의 IP 패킷을 전송하는 기능 및 라우팅 기능을 담당

· 프로토콜: IP, ARP, RARP, ICMP, OSPF 등

3계층 - Transport Layer

OSI 7 계층에서 전송 계층에 해당한다. 네트워크 양 단의 송수신 호스트 사이에서 신뢰성있는 전송 기능을 제공한다. 시스템의 논리 주소와 포트틀 가지고 있어서 각 상위 계층의 프로세스를 연결해서 통신한다. 정확한 패킷의 전송을 보장하는 TCP나 정확한 전송을 보장하지 않지만 더 빠른 속도를 내는 UDP 프로토콜을 이용한다.

· 통신 노드간의 연결을 제어하고, 자료의 송수신을 담당

· 신뢰성 있는 데이터를 전송

· 프로토콜: TCP, UDP, QUIC 등

4계층 - Application Layer

OSI 7 계층에서 세션 계층, 표현 계층, 응용 계층에 해당한다. 응용 프로그램들이 네트워크 서비스, 메일 서비스, 웹 서비스 등을 할 수 있도록 표준적인 인터페이스를 제공한다.

· TCP/IP 기반의 응용 프로그램을 구분할 때 사용

· 프로토콜: TTP, FTP, Telnet, DNS, SMTP, SSH 등

본 글은 아직 정리중