[iOS CS Study] (네트워크) OSI 7 Layer 개념 및 기능, TCP/IP 4계층 개념 및 기능

Oxong·2021년 8월 10일
0

iOS CS Study

목록 보기
13/18

21.08.03

공부한 것을 정리하는 용도의 글이므로 100% 정확하지 않을 수 있습니다.
참고용으로만 봐주시고, 내용이 부족하다고 느끼신다면 다른 글도 보시는 것이 좋습니다.
+ 틀린 부분, 수정해야 할 부분은 언제든지 피드백 주세요. 😊

                                                 by. ryalya





OSI 7 Layer (OSI 7 계층)


OSI는 Open System Interconnection의 약자로 개방형 시스템을 뜻한다.

국제 표준기구인 ISO(International Organization for Standardization)에서 개발한 모델로서, 네트워크 통신의 7단계 과정을 말한다.

초기의 정보 통신 업체 장비들은 자신의 업체 장비들끼리만 연결이 되어 호환성이 없었다.

모든 시스템들의 상호 연결에 있어 문제가 없도록 표준을 정한것이 OSI 7계층이다.


OSI 7계층으로 나눈 이유


서로 이질적인 네트워크 간의 연결에 어려움이 많아 호환성의 결여를 막기 위한 것으로, ISO(국제 표준화 기구)에서는 OSI 참조모델을 제시했다.

그런데 그렇다고 해도 7개씩이나 나눴다고...?
왜 이렇게나 많은 계층으로 나눠야만 했을까?

통신이 일어나는 과정을 단계별로 파악할 수 있기 때문이다.

특정한 곳에 이상이 생긴다면 다른 단계의 장비 또는 소프트웨어를 건들이지 않고 이상이 생긴 단계만 고칠 수 있다.


OSI 7계층 구성/기능


계층들은 상하구조를 가진다.

당연히 7계층이 가장 상위층인데, 상위 계층의 프로토콜이 잘 동작하기 위해서는 하위 계층이 문제 없이 잘 동작되어야 한다.

위의 표는 간단하게 계층과 기능을 정리한 것이다.

그림 출처 : 해시넷

각 계층마다 위의 사진과 같이 헤더를 붙여서 캡슐화를 진행하게 되고, 수신 측에서는 물리 계층(1계층)부터 차례대로 올라가면서 헤더를 떼어낸다.

헤더 정보
프로토콜 스택의 맨 위에 있는 일반 사용자는 전송 데이터가 있으면 이를 응용 계층에 보내 전송을 요청한다. 응용 계층에서는 데이터에 자신의 프로토콜에서 정의한 헤더 정보를 추가해 표현 계층에 보낸다. 표현 계층도 표현 계층에서 사용하는 프로토콜의 헤더 정보를 추가해 하위 계층으로 보낸다. 이러한 일련의 과정은 물리 계층에서 데이터가 물리적으로 전송될 때까지 반복된다. 물리 계층에서는 수신 호스트에 데이터를 실제로 전송하고, 이를 수신한 호스트에서는 송신 절차와 반대 방향으로 헤더를 제거하는 과정이 반복된다. 즉, 계층별로 해당 계층의 헤더 정보를 해석하여 적절히 처리한 후에 상위 계층으로 올려준다. 따라서 송신 호스트에서 계층별로 추가된 헤더 정보가 수신 호스트에서 해석 및 삭제되어 최상위 수신자는 원래의 전송 데이터만 받는다. 이때 각 계층의 프로토콜은 정해진 기능을 수행하여 데이터 송신 과정에서 발생하는 문제점을 해결해준다.

이렇게 디캡슐레이션을 진행하면서 목적지에 원하는 데이터가 전송되게 되는 것이다.

그렇다면 1계층부터 하나씩 살펴보자.



Layer 1 : 물리 계층 (Physical Layer)


물리 계층은 7계층 중 가장 최하위의 계층이다.

통신 케이블을 통해 전기 신호를 사용하여 비트 스트림(데이터)을 전송한다.

비트(bit)는 물리 계층에서 사용하는 단위를 말한다.

전기 신호는 0과 1, ON과 OFF의 전기적 신호를 사용한다.

즉, 이진 데이터를 어떤 시그마로 만드는지
신호를 주고 받기 위해 전기적, 전파적 특성을 정의하는 계층이 1계층인 물리적 계층인 것이다.

물리 계층에서는 단지 데이터 전달만 하기 때문에 오류(에러)확인은 하지 않는다.

미디어 타입, 커넥터 타입, 신호 표현 방법(시그널링/속도 등)을 정의하며 케이블, 리피터, 허브등의 장비가 있다.

PDU : 비트(Bit)
프로토콜 : Modem, Cable, Fiber, RS-232C
대표장비 : 허브, 리피터
프로토콜 데이터 단위(PDU, Protocol Data Unit)는 데이터 통신에서 상위 계층이 전달한 데이터에 붙이는 제어정보를 뜻한다.



데이터 링크 계층은 물리적 계층과 네트워크 계층 사이에서 데이터 전송을 담당하는 계층이다.

그림 출처 : includehelp.com


데이터 링크 계층은 직접 연결된 서로 다른 2개의 네트워크 장치간 데이터 전송을 담당(Point-To-Point 전송)한다.

그림 출처 : www.net.t-labs

여기서 핵심은 '직접 연결된'이다.

직접 연결되지 않은 장치에는 데이터를 보낼 수 없지만, 위의 그림에서처럼 직접 연결된 장치들을 통해 목적지까지 가는 것이다.


이 계층에서 전송되는 데이터를 프레임(frame)이라고 한다.

데이터 링크 계층 → 물리 계층으로 데이터를 전송할 때, 데이터 전송 오류를 감지하는 기능을 제공한다. (오류를 감지하면 재전송 한다.)

MAC(Media Access Control)주소를 통해 통신한다.

또한, 48비트 길이의 주소를 가진다.

  • Mac 주소
  • 물리 주소 (Physical Address)
  • 하드웨어 주소 (Hardware Address)
  • Burned-in Address

또한 데이터 링크 계층은 아래와 같은 역할들을 한다.

  • 프레이밍(Framing) : 물리 계층을 통해 수신한 신호를 조합하여 프레임(Frame) 단위의 정해진 크기의 데이터 유닛으로 만들어 처리.

  • 흐름 제어(Flow Control) : 송신 측과 수신 측 간에 데이터를 주고받을 때, 너무 많거나 너무 적게 데이터를 송수신하지 않도록 데이터 흐름을 적절히 제어

  • 오류 제어(Error Control) : 프레임 전송 시 발생한 오류를 복원하거나 재전송

  • 접근 제어(Access Control) : 매체 상에 통신 주체(장치)가 여럿 존재할 때, 데이터 전송 여부를 결정

  • 동기화(Synchronization) : 프레임 구분자

PDU : 프레임(Frame)
프로토콜 : 이더넷, MAC, PPP, ATM, LAN, Wifi
대표장비 : 브릿지, 스위치


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


네트워크 계층은 전송 데이터를 목적지까지의 경로를 찾아 전송하는 계층을 말한다.

중계 노드를 통하여 전송하는 경우 어떻게 중계할 것인가를 규정한다.

쉽게 말해, 주소(IP)를 정하고 경로(Route)를 선택하여 패킷(네트워크 계층의 데이터 단위)을 전달하는 핵심적인 계층인 것이다.

PDU : 패킷(Packet)
프로토콜 : IP, ICMP 등
대표장비 : 라우터, L3 스위치


Layer 4 : 전송 계층 (Transport Layer)


전송 계층은 통신을 할성화하기 위한 계층, 하위 계층에 신뢰할 수 있는 데이터 전송 서비스를 제공하는 계층으로 보내고자 하는 데이터의 용량과, 속도, 목적지를 처리한다.

양 끝단의 사용자들이 신뢰성 있는 데이터를 주고 받게 해주는 역할을 한다.

송신자와 수신자 간의 신뢰성있고 효율적인 데이터를 전송하기 위하여 오류검출 및 복구, 흐름제어와 중복검사 등을 수행한다.

데이터 전송을 위해서 Port 번호가 사용 된다.

대표적인 프로토콜로는 TCP와 UDP가 있다.

이 계층에서 사용하는 데이터 단위는 세그먼트(Segment)이다.

또한 시퀀스 넘버 기반의 오류 제어 방식을 사용한다. 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고(stateful), 연결 기반(connection oriented)이다.

즉, 전송 계층은 패킷 생성(Assembly/Sequencing/Deassembly/Error detection/Request repeat/Flow control) 및 전송 역할을 한다.

PDU : 세그먼트(Segment)
프로토콜 : TCP, UDP , ARP, RTP
대표장비 : 게이트웨이, L4 스위치


Layer 5 : 세션 계층 (Session Layer)


세션 계층은 실제 네트워크 연결이 이루어지는 계층으로 네트워크상의 양쪽 연결을 관리하고, 연결을 지속시켜 주는 계층이다.

통신 세션을 구성하는 계층으로 포트(Port)번호를 기반으로 연결하며, 통신 장치간의 상호 작용을 설정하고, 유지하며, 동기화 한다.

(= 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행한다.)

PDU : 데이터(Data)
프로토콜 : NetBIOS, SSH, TLS

세션(Session)이란?
네트워크 환경에서 사용자 간 또는 컴퓨터 간의 대화를 위한 논리적 연결.
프로세스들 사이에 통신을 수행하기 위해서 메시지 교환을 통해 서로를 인식 한 이후부터 통신을 마칠 때까지의 기간.


Layer 6 : 표현 계층 (Presentation Layer)


표현 계층은 데이터를 어떻게 표현할 지 정하는 역할을 하는 계층이다.

표현 계층은 3가지의 기능을 가지고 있다.

  • 송신자에서 온 데이터를 해석하기 위한 응용계층 데이터 부호화, 변화
  • 수신자에서 데이터의 압축을 풀수 있는 방식으로 된 데이터 압축
  • 데이터의 암호화와 복호화
    (MIME 인코딩이나 암호화 등의 동작이 표현계층에서 이루어짐. EBCDIC로 인코딩된 파일을 ASCII 로 인코딩된 파일로 바꿔주는 것이 한가지 예임)

즉, 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어 준다.

응용 계층에서 Data를 이해할 수 있게, 응용 프로그램에 맞춰 다양한 포멧에 맞게 변환하여주는 것이다

예를 들어 EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것이 표현 계층의 몫이다.

PDU : 데이터(Data)
프로토콜 : JPG, MPEG, SMB, AFP


Layer 7 : 응용 계층 (Application Layer)


응용 계층은 사용자와 바로 연결되어 있으며 응용 SW를 도와주는 계층으로 사용자가 네트워크에 접근할 수 있도록 인터페이스를 제공하는 계층이다.

사용자에게 가장 직접적으로 보이는 부분(사용자에게 보이는 유일한 계층)이 바로 이 응용 계층에 해당한다.

구글의 크롬과 같은 브라우저나 스카이프, 아웃룩 등의 응용프로그램이 이 응용 계층에서 동작한다.

파일 전송, DB, 메일 전송 등 여러가지 응용 서비스를 네트워크에 연결해주는 역할을 한다.

즉, 응용 계층은 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.

PDU : 데이터(Data)
프로토콜 : DHCP, DNS, FTP, HTTP



TCP/IP 4계층


네트워크 전송 시 데이터 표준을 정리한 것이 ISO 7계층이라고 한다면, 이 이론을 실제 사용하는 인터넷 표준이 TCP/IP 4계층이라고 생각할 수 있다.

즉, 실제 사용되는 TCP/IP는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화된 모형인 것이다.


Layer 1 : 네트워크 연결 계층(Network Access Layer/Network Interface Layer)


네트워크 연결 계층은 OSI 7계층의 물리계층과 데이터 링크 계층에 해당한다.

물리적으로 데이타가 네트워크를 통해 어떻게 전송되는지를 정의한다.

여기서 논리주소(IP주소 등)이 아닌 물리주소(예. MAC주소(Media Access Control Address))을 참조해 장비간 전송한다.

MAC주소란 컴퓨터의 하드웨어의 주소로
기본적으로 에러검출/패킷의 프레임화 담당
프레임(Frame)단위의 데이타 구성한다.

또한, 최종적으로 데이터 전송을 하기 전 패킷헤더에 MAC주소와 오류 검출을 위한 부분을 첨부한다.

PUD : Frame
물리 주소(전송 주소) : MAC
MAC, LAN, 패킷망 등에 사용되는 것
예) Ethernet, PPP, Token Ring 등


Layer 2 : 인터넷 계층(Internet Layer)


인터넷 계층은 OSI 7계층의 네트워크 계층에 해당한다.

통신 노드 간의 IP패킷을 전송하는 기능과 라우팅 기능을 담당한다.

  • 네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공한다.

  • 단말을 구분하기위해 논리적인 주소(Logical Address) IP를 할당한다.

    • 출발지와 목적지의 논리적 주소가 담겨있는 IP datagram이라는 패킷으로 데이타를 변경하고, 데이터 전송을 위한 주소 지정한다.
  • 라우팅(Routing) 기능을 처리

PUD : 패킷 (세그먼트를 목적지까지 전송하기 위해 시작 주소와 목적지의 논리적 주소를 붙인 단위. 데이타 + IP Header)
물리주소(전송 주소) : IP
예) IP, ARP, ICMP, RARP, OSPF


Layer 3 : 전송 계층(Transport Layer)


전송 계층은 OSI 7계층의 전송 계층에 해당한다.

통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다.

또한, 애플리케이션 계층의 세션과 데이터그램 통신서비스 제공한다.

PUD : Segment (실질적인 데이터 전송을 위해 데이타를 일정 크기로 나눈 것. 발신, 수신, 포트주소, 오류검출코드가 붙는다.)
물리주소(전송 주소) : Port
예) TCP, UDP, RTP, RTCP 등


Layer 4 : 응용 계층(Application Layer)


OSI 7계층의 세션 계층, 표현 계층, 응용 계층에 해당한다.

사용자와 가장 가까운 계층으로 사용자가 소프트웨어 application과 소통할 수 있게 해준다.

응용프로그램(application)들이 데이터를 교환하기 위해 사용되는 프로토콜이며, 사용자 응용프로그램 인터페이스를 담당한다.

PUD : Data/Message
예) 파일 전송, 이메일, FTP, HTTP, SSH, Telnet, DNS, SMTP 등



Reference

[네트워크 OSI] 2계층 데이터링크 계층 Data Link Layer
네트워크 기초 - OSI 7 계층과 TCP/IP 계층
[네트워크] OSI 7 계층 (OSI 7 LAYER) 기본 개념, 각 계층 설명
OSI
[개발자 인터뷰] TCP/IP 4계층
TCP/IP 4계층(TCP/IP 4 Layer)
DNS 는 어떻게 동작하는가? :: 마이구미

0개의 댓글