테마.log/우아한 Tech Talk

OSI7 & TCP/IP

_2J 2022. 1. 4. 17:39

 

우아한 테크코스 테코톡 정주행 중

유익한 정보들이 많이 있어서 발표내용+a 로 정리하는 게시물입니다.

 

 

 

[10분 테코톡] 🔮 히히의 OSI 7 Layer

 

 

 

 

💡데이터 & 패킷 & 프로토콜 개념

더보기

📚 데이터(Data)

컴퓨터는 2진법으로 숫자를 표기하는데 0을 꺼짐, 1을 켜짐으로 구분한다. 데이터는 0과 1로 이루어진 긴 전기 신호를 말한다. 가장 작은 단위로 bit를 사용한다. 0 또는 1 하나가 1 bit를 차지한다. 8 bit를 1 byte라고 부르며, 보통 byte 단위를 사용한다.

📦 패킷(Packet)

네트워크 통신 시 데이터를 한꺼번에 전송하는 것이 아닌, 데이터를 작게 조각내어 주머니에 담아 전송하는데 이 주머니를

패킷

이라고 한다. 패킷에는 조각으로 나누어진 파일 데이터와 주소와 에러 데이터 및 목적지 등이 기록된다.

패킷(Packet)은

Package(상자) + Bucket(덩어리)의 합성어다.

 

🤝 프로토콜(Protocol)

프로토콜은 '규약'이라는 뜻이다. 통신에서 프로토콜이란, 기기 간에 데이터가 전달되기 위해 정한 규칙을 말한다. 무작정 데이터가 전달되는 것이 아닌, 서로 특정한 약속 아래에서 데이터가 전달된다. 프로토콜에는 다양한 종류가 있는데, 사람들이 잘 알고있는 HTTP도 웹을 위한 프로토콜이다.

예시를 들어 정리해보자. 내가 친구에게 사진을 보내려고 한다. 컴퓨터에서 사진은 2진수로 구성된 데이터다. 사진이 00011011 이라고 가정하자. 친구에게 00011011을 한꺼번에 보내는 것이 아니라, 이를 잘게 나누어 패킷에 담은 후 보낸다. 이때 패킷만을 보내게 되면, 받는 사람은 이 패킷들을 어떤 순서로 조합해야 하는지 모른다. 00, 01, 10, 11으로 2자리씩 쪼갠다고 가정하자. 이때 무조건 패킷이 00, 01, 10, 11 순으로 전송되는 것이 아니다. 각 패킷들은 서로 다른 경로로 전송될 수 있는데, 10 패킷이 01 패킷보다 먼저 도착할 수도 있다. 그렇게 되면 수신자는 00100111으로 잘못된 데이터를 전달 받을 수 있다. 이를 방지하기 위해 패킷에 특정 규칙에 따라 고유 번호를 매겨 전송한다. 그러면 친구는 패킷들을 받아 나와 같은 규칙에 따라 데이터를 조합하는데, 이 규칙이 프로토콜이다.

 

 

 

📝 OSI Model

 

OSI(Open Systems Interconnection Reference Model)모델 또는 개방형 시스템 상호 연결 모델은 데이터가 컴퓨터 네트워크 내의 다른 하나 개의 장치 사이의 통신 방법을 이해하는 데 사용되는 개념 모델이다.

1984년 ISO( International Organization of Standardization )에서 개발. OSI 모델은 7개의 추상화 계층으로 구성되며 각 계층은 특정 기능을 수행하도록 특별히 설계된 표준 통신 프로토콜 패키지다.

OSI 표준 모형은 7계층으로 이루어져 있다. 계층별로 역할을 분리해서 각 계층이 독립적으로 기능을 수행하고, 계층 간 통신을 통해 전체 통신 프로세스를 가능하게 한다.

 

 

L7 – Application Layer (응용 계층)

: User Interface 를 제공하는 계층, 사용자의 입출력(I/O)부분

  1. 장비 : 게이트웨이
  2. 사용자 인터페이스, 전자우편, 데이터베이스 관리 등 서비스 제공
  3. 사용자, 응용 프로그램이 네트워크에 접근 가능하게 해준다.
더보기

OSI 모형에서는 “최종 사용자에게 가장 가까운” 계층이다. 7층에서 작동하는 응용프로그램은 사용자와 직접적으로 상호작용한다. 구글 크롬(Google Chrome), 파이어폭스(Firefox), 사파리(Safari) 등 웹 브라우저와 스카이프(Skype), 아웃룩(Outlook), 오피스(Office) 등의 응용 프로그램이 대표적이다.

  • 사용자와 가장 밀접한 계층, 인터페이스(Interface) 역할
  • 응용 프로세스 간의 정보 교환 담당 / 전송 단위 : Message
  • EX : 전자 메일, 인터넷, 동영상 플레이어 등의 Applicasation

 

 

L6 – Presentation Layer (프레젠테이션 계층)

: 데이터의 변환 작업을 하는 계층, 사용자의 명령어를 완성및 결과 표현. 포장/압축/암호화

  1. 장비 : 게이트웨이
  2. 두 시스템간 교환되는 데이터의 구문(Syntax), 시맨틱과 관련된 인코딩 변환(Translation)과 암호화(Encryption) 지원
더보기

표현 계층(Presentation layer)은 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어 준다. MIME 인코딩이나 암호화 등의 동작이 이 계층에서 이루어진다.

  • 데이터 표현에 차이가 있는 응용처리에서의 제어구조를 제공 ※ 데이터 표현에 차이 : ASCII, JPEG, MPEG 등의 번역
  • 전송하는 데이터의 인코딩, 디코딩, 암호화, 코드 변환 등을 수행/ 전송 단위 : Message

예를 들면, EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것, 해당 데이터가 TEXT인지, 그림인지, GIF인지 JPG인지의 구분 등이 표현 계층의 몫이다.


 

 

L5 – Session Layer (세션 계층)

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

  1. 장비 : 게이트웨이
  2. 통신 세션을 구성하는 계층으로, 통신장치 간의 상호작용(연결)을 설정하고 유지, 동기화
더보기

이 계층은 TCP/IP 세션을 만들고 없애는 책임을 진다.세션 설정, 유지, 종료, 전송 중단시 복구 등의 기능이 있다. 세션 계층(Session layer)은 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다. **동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)**의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행한다.

  • 통신장치 간 상호작용 및 동기화를 제공
  • 연결 세션에서 데이터 교환, 에러 발생 시 복구 관리 => 논리적 연결 담당 / 전송 단위 : Message
  • 4계층 장비 : NetBIOS (세션 내 연결관리 및 에러감지, 복구 수행), SSH, Appletalk (Port는 4~5계층 경계 모호)

데이터가 통신하기 위한 논리적인 연결을 말한다. 통신을 하기위한 대문이라고 보면 된다. 하지만 4계층에서도 연결을 맺고 종료할 수 있기 때문에 우리가 어느 계층에서 통신이 끊어 졌나 판단하기는 한계가 있다. 그러므로 세션 계층은 4 계층과 무관하게 응용 프로그램 관점에서 봐야 한다.


 

 

L4 – Transport Layer (전송 계층)

: 서비스를 구분하고 데이터의 전송 방식을 담당하는 계층 (TCP/UDP)

  1. 장비 : 게이트웨이
  2. 종단 프로세스 간 신뢰성 있는 메시지 전송과 오류제어 기능을 제공
더보기

전송 계층은 OSI 모델 의 핵심이며 애플리케이션/세션 계층과 네트워크 계층 간에 전송 서비스를 제공하는 역할을 합니다. 데이터가 올바른 애플리케이션 서비스로 전달되고 종단 간 데이터 통신이 성공하며 데이터 전달에 오류가 없는지 확인합니다. 기능을 수행하기 위해 전송 계층은 전송 제어 프로토콜(TCP) 및 사용자 데이터그램 프로토콜(UDP)과 같은 전송 계층 프로토콜을 사용 합니다.

  • 종단 간(End-to-End)에 신뢰성 있고 정확한 데이터 전송을 담당/ 전송 단위 : Segment
  • 4계층에서 전송 되는 단위 => 세그먼트(Segment), 종단 간의 에러 복구와 흐름 제어 담당 ex) TCP/UDP
  • 4계층 장비 : L4 스위치 (3계층 트래픽 분석, 서비스 종류 구분)

 

 

L3 – Network Layer (네트워크 계층)

: 네트워크를 논리적으로 구분하고 연결하는 계층 → 주소부여(IP), 경로설정(Route)

  1. 장비 : 라우터
  2. 발신지 - 목적지까지 네트워크간 패킷 전송 지원
  3. 라우팅 기능을 제공하여 패킷이 출발지에서 목적지까지 찾아갈 수 있도록 한다.
더보기

네트워크 계층은 한 네트워크의 한 장치/호스트에서 다른 네트워크의 다른 장치/호스트로 수신된 데이터의 전송을 담당합니다. 네트워크 계층이 하는 일은 전송 계층에서 수신한 각 데이터 세그먼트를 보낸 사람과 받는 사람의 IP 주소 와 마스크를 포함하는 네트워크 헤더로 캡슐화 하여 IP 패킷 을 형성하는 것 입니다.

 

논리적 주소 지정을 기반으로 네트워크 계층은 소스 네트워크에서 대상 네트워크로 IP 패킷을 이동하는 데 적합한 경로를 결정합니다. 이 경로 결정을 라우팅이라고 합니다.  라우팅을 설명하기 위해 IP 주소가 192.168.10.1인 장치 A가 네트워크 A에 연결되어 있고 IP 주소가 192.168.20.1인 장치 B가 네트워크 B에 연결되어 있다고 가정합니다.

예를 들어

  1. 장치 B는 다음에서 mlytics.com에 대한 액세스를 요청했습니다.
  2. mlytics 서버(192.168.30.1의 IP 주소를 가짐) 는 IP 패킷 형태로 장치 B에 응답을 보냅니다. 각 장치에는 고유한 IP 주소가 있기 때문에 mlytics 서버의 네트워크 계층은 보낸 사람과 받는 사람의 IP 주소와 마스크를 해당 패킷에 추가합니다. 이 패킷은 장치 b에만 전달되어야 합니다. 사용된 마스크가 255.255.255.0(처음 세 숫자는 네트워크를 나타내고 마지막 숫자는 호스트 또는 장치를 나타냄)라고 가정. 주어진 논리적 주소 지정에 따라 IP 패킷은 네트워크 B로만 라우팅되고 결국에는 장치 B로 라우팅됩니다.
  • 중계 노드를 통하여 전송하는 경우, 어떻게 중계할 것인가를 규정 / 전송 단위 : Packet
  • 데이터를 목적지까지 가장 안전하고 빠르게 전달 => 라우팅
  • 3계층 장비 : 라우터, L3 스위치

 

 

L2 – DataLink Layer (데이터링크 계층)

: 물리적 매체에 패킷 데이터를 실어 보내는 계층

  1. 장비 : 브리지, 스위치
  2. 오류없이 홉(Hop) 간 프레임(Frame)을 전달하는 기능 제공
  3. 물리적 계층 사이의 데이터 전송을 담당하며 데이터 전송 오류를 감지하고 재전송하는 기능을 제공한다.
더보기

이 계층에서는 맥 주소를 가지고 통신하게 된다.

 

 

데이터 링크 계층은 물리적 계층을 통해 한 노드에서 다른 노드로 데이터 전송에 오류가 없는지 확인하는 역할을 합니다. 데이터 링크 계층은 스위치, 브리지 및 장치의 네트워크 인터페이스 카드(NIC)와 같은 데이터 링크 장치에 의해 구현됩니다. 작동하기 위해 데이터 링크 계층은 이더넷, Wi-Fi, ARP, PPP, NDP 등과 같은 데이터 링크 프로토콜을 사용합니다.

→ 브릿지나 스위치를 통해 맥주소를 가지고 물리계층에서 받은 정보를 전달함.\

 

 

데이터 링크 계층(Data link layer)은 포인트 투 포인트(Point to Point) 간 신뢰성있는 전송을 보장하기 위한 계층으로 CRC 기반의 오류 제어와 흐름 제어가 필요하다. 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아 내고, 수정하는 데 필요한 기능적, 절차적 수단을 제공한다.

 

주소 값은 물리적으로 할당 받는데, 이는 네트워크 카드가 만들어질 때부터 맥 주소(MAC address)가 정해져 있다는 뜻이다. 주소 체계는 계층이 없는 단일 구조이다. 데이터 링크 계층의 가장 잘 알려진 예는 이더넷이다. 이 외에도 HDLC나 ADCCP 같은 포인트 투 포인트(point-to-point) 프로토콜이나 패킷 스위칭 네트워크나 LLC, ALOHA 같은 근거리 네트워크용 프로토콜이 있다. 네트워크 브릿지나 스위치 등이 이 계층에서 동작하며, 직접 이어진 곳에만 연결할 수 있다.

→ 프레임에 주소부여(MAC - 물리적주소), 에러검출/재전송/흐름제어

  • 물리적인 연결을 통하여 인접한 두 장치간의 신뢰성 있는 정보 전송을 담당 / 전송 단위 : Frame
  • 정보의 오류와 흐름을 관리. 안정된 정보 전달
  • 2계층 장비 : 브리지, 스위치(여기서 MAC주소를 사용한다.)

 

 

L1 – Physical Layer (물리 계층)

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

  1. 장비 : 허브, 리피터
  2. 물리적 매체를 통해 전기신호를 이용하여 실제로 비트(bit) 흐름 전송
더보기

→ 케이블, 리피터, 허브를 통해 데이터 전송한다.

 

이 계층에서는 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하게 된다. 이 계층에서 사용되는 통신 단위는 비트이며 이것은 1과 0으로 나타내어지는, 즉 전기적으로 On, Off 상태라고 생각하면 된다.

 

이 계층에서는 단지 데이터를 전달만 할 뿐 전송하려는(또는 받으려는) 데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다. 단지 데이터 전기적인 신호로 변환해서 주고받는 기능만 할 뿐이다. 이 계층에 속하는 대표적인 장비는 통신 케이블, 리피터, 허브등이 있다.

 

  • 전기적, 기계적 특성을 이용하여, 통신 케이블로 전기적 신호(에너지)를 전송 / 전송 단위 : bit
  • 단지 데이터 전달 역할만을 하고, 알고리즘, 오류 제어 기능 존재 X
  • 1계층 장비 : 리피터, 허브, 케이블

 

 

 

 


 

 

📝 TCP/IP Model

 

5단계 응용 계층 (Application Layer)
4단계 전송 계층 (Transport Layer)
3단계 네트워크 계층 (Network Layer)
2단계 링크 계층 (Data Link Layer)
1단계 물리 계층 (Physical Layer)

 

 

데이터 송신

데이터의 송신 과정

  1. 응용 계층에서 요청 데이터가 만들어진다.
  2. 전송 계층에서 신뢰할 수 있는 통신을 구현하기 위한 헤더를 데이터에 붙인다. 이렇게 만들어진 데이터를 세그먼트라고 한다.
  3. 네트워크 계층에서 다른 네트워크와 통신하기 위한 헤더를 세그먼트에 붙인다. 이렇게 만들어진 데이터를 패킷 또는 데이터그램이라고 한다.
  4. 데이터 링크 계층에서 물리적인 통신 채널을 열기 위해 패킷에 헤더와 트레일러를 붙인다. 여기서 트레일러는 데이터를 전달할 때 데이터 끝부분에 붙이는 정보로, 주로 에러 검출에 쓰인다. 이렇게 만들어진 데이터를 프레임이라고 한다.
  5. 이렇게 만들어진 프레임을 최종적으로 물리 계층에서 0, 1의 비트로 구성된 전기 신호로 변환해 수신 컴퓨터 쪽에 전송한다.

 

 

데이터 수신

데이터의 수신 과정

데이터를 수신할 땐 반대로 헤더를 차례대로 제거하면서 데이터를 전달하는 역캡슐화가 발생한다.

 

 

  1. 응용 계층 (Application Layer)
    • 통신망으로 연결된 응용 프로세서들의 정보교환 이루어지는 곳
    • 클라이언트의 메시지가 메일인지, 파일인지, 웹전송인지 에 따라 프로토콜 설정
    • ex) HTTP, FTP, SMTP
  2. 전송 계층 (Transport Layer)
    • 설정된 프로토콜 전송
    • Flow Control, Congestion Control
    • 전송 방식 설정
    • ex) TCP, UDP
  3. 네트워크 계층 (Network Layer)
    • 연결된 시스템의 데이터 전송과 교환 기능 담당
    • Routing
    • 실제 네트워크 담당
    • ex) IP (addressing, packet routing 담당)
  4. 링크 계층 (Data Link Layer)
    • 물리 계층에서 사용되는 통신매체를 통해 데이터 블록의 전송 에러 검출, 에러 제어 관리 규정
    • 완전한 실제 전달 역할
    • 한 노드에서 다른 노드로 패킷이 이동할 때 거쳐야함
    • ex) 스위치, 브릿지
  5. 물리 계층 (Physical Layer)
    • 노드에서 노드로 갈 때 실제 전송 매체
    • ex) 동축 케이블, 광케이블

 

 

 

 

 

 

 

 

Ref.

 

OSI 7계층

https://learning.mlytics.com/the-internet/what-is-the-osi-model/

https://ryusae.tistory.com/4

https://velog.io/@jwkim/cs-nw-osi-tcp-ip

https://skytitan.tistory.com/32?category=939035

 

TCP/IP 5계층

https://zion830.tistory.com/104

https://zion830.tistory.com/105

https://zion830.tistory.com/106

https://velog.io/@scv1702/네트워크-OSI-모형이란