[네트워크] 1장 OSI 7계층

이효린·2023년 4월 7일
0

Network

목록 보기
1/9
post-thumbnail

1.1 분산 컴퓨팅

  • 분산 컴퓨팅이란 다수의 컴퓨터가 공통의 문제를 해결하기 위해 협업하도록 만드는 방법이다.
  • 여러 대의 컴퓨터에서 프로세스들은 메시지를 주고 받으며 협업한다.
  • 이 프로세스들끼리 네트워크를 통해 통신하며, 이때 사용하는 규약이 프로토콜이다.
💡 프로토콜 : 통신 규약

1.2 OSI 7계층

  • OSI 7계층이란 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것이다.
  • 계층을 나눈 이유는 통신이 일어나는 과정에서 단계별로 파악할 수 있기 때문이다.
  • 만약 7단계 중 특정한 곳에 이상이 생기면 그 이상이 생긴 단계만 고칠 수 있기 때문이다.

1.2.1 단말 시스템간 소통구조

  • 각 단말 시스템들은 서로 소통을 해야한다.
  • 가까운 거리라면 직접 소통하면 되지만, 먼 거리라면 중개장치를 거쳐야만 한다.
  • 보통 단말시스템은 OSI 7계층을 모두 갖고 있지만 중개장치는 3계층이하만을 갖는다.
  • 라우터 : 1~3계층까지, 브릿지 : 1,2계층만, 리피터 : 1계층만을 갖는다.
  • 시스템간엔 전송매체라고 하는 전선, 공기, 광섬유 등으로 이어져있다.

1.2.2 계층별 핵심 기능

  1. 물리계층
  • 전선등의 물리 매체를 통해 0 또는 1의 비트를 데이터로 전달하는 역할을 한다.

  • 물리매체 : 전선(전기적신호를 통해), 광섬유(0/1을 빛으로 바꿔서), 공기(무선, 전파를 통해)
  • 물리매체에선 여러 부분에 대한 정의를 내려야 한다.
    • 전기적 정의 : 전압( 몇 V?), 주파수(몇 Hz ?) ,인코딩 방식 등
    • 기계적 정의 : 커넥터(암/수), 25핀/9핀
    • 기능적 정의 : +/-/접지(GND). Tx/Rx, Clock, DTR/DSR
  1. 데이터링크 계층
  • 인접 시스템간 신뢰성있느 정보 전달의 역할
  • 즉, 물리계층을 통해 0 / 1의 정보를 보내는데, 내가 보낸 정보를 올바르게 전달하는 역할을 한다. (0을 보냈는데 1이 도착하면 안되니까)
  • 데이터링크 : 데이터가 흐르는 시스템간의 물리적 연결을 의미한다.
  • 데이터를 바이트 단위 혹은 프레임으로 구성하여 전달한다. (이더넷의 경우 1500byte를 하나의 프레임으로 묶어서 전송한다.) 이러한 것들을 통째로 신뢰성을 검사하고 전송한다.
  • 신뢰성 보장을 위한 기능
    • 연결제어 : 데이터를 보내기 전에 미리 연결을 맺고, 맺어지면 데이터를 보내고 이후에 연결이 종료된다.
    • 오류제어 : 데이터를 보내면서 데이터가 오류없이 잘 들어갔나 검출하고, 오류가 생겼다면 어떻게 복구하며 정정할 것인지 정해야한다.
    • 흐름 제어 : 데이터 전달 속도가 너무 빠르거나 느리지 않게 조절한다. 수신자가 처리 가능한 속도로 데이터를 전달한다.
  1. 네트워크 계층

    • 전 세계에 수 억개의 컴퓨터가 서로 직접적으로 연결되는 것은 불가능하다. 컴퓨터간 소통시 중간매체 역할로서 네트워크가 그 기능을 수행한다.
    • 시스템의 수가 적고 가까이 있다면 하나의 네트워크로 구성하여 모든 컴퓨터들이 직접 데이터를 교환할 수 있다.
    • 그러나 여러 개의 컴퓨터가 지리적으로 떨어져있으므로 지역별로 네트워크를 구성하고, 이것들을 서로 연결한다. (Internet : 전 세계의 모든 네트워크를 연결한 네트워크)
    • 데이터가 향하는 목적지의 네트워크 주소를 보고 상대 시스템에게 데이터를 전달하는 역할을 한다.
    • Addressing: 각 시스템에 주소를 부여한다. (전화시스템이라고 하면 전화번호가 Addressing)
    • Routing: 목적지로 갈 수 있도록 경로를 찾아주는 것이다.
  2. 전송계층/수송계층

    • 종단 시스템 간 (end-to-end, Sender to Destination) 신뢰성 있는 정보 전달.
    • 인접시스템간 신뢰성 있는 정보 전달은 데이터링크 계층에서 한다. 그러네 전송계층에선 종단간의 추가적인 신뢰성 보장이 필요하다.
    • Source ↔ Network ↔ Destination
    • 신뢰성 보장 : 연결제어, 오류제어, 흐름제어 +) 네트워크 상태도 고려한 흐름제어가 필요하다.
  3. 세션계층

    • 응용 프로세스간의 연결제어
    • Sender 시스템의 프로세스, Destination 시스템의 프로세스 사이의 가상적인 연결을 맺고, 데이터를 전달하고, 연결을 끊어주고, 문제가 생기면 재 시작을 하는 등의 역할을 한다.
    • 즉, 세션의 수립, 관리 해제의 역할을 한다.
  4. 표현 계층

    • 데이터를 보낼 때 어떻게 표현해야 정확한 정보를 받을 것인가 정해준다.
    • Syntax, 데이터 형식, 암호화, 압축 등을 고려한다.
    • ASCII/Binary, gpf/gif, mpg/avi 등등..
  5. 응용 계층

    • 응용 프로세스에게 네트워크 서비스를 제공한다.
    • 네트워크 서비스의 종류
      • 웹 데이터 전달 (HTTP)
      • 파일 전송 (FTP)
      • 이메일 (SMTP)
      • 원격 접속 (Telnet)
      • 네트워크 관리 (SNMP)

1.3 데이터 전달

  • 전반적으로 위 그림과 같은 구조를 통해 프로세스끼리 데이터를 전달한다.
  • 각 프로세스의 Layer 7은 프로토콜을 통해 서로 통신하며 데이터를 전송하는데, Layer 7 끼리는 직접적으로 통신이 불가하기 때문에 점점 하위Layer로 데이터를 내려보내게 된다.
  • peer(Process A의 Layer N)와 peer(Process B의 Layer N)은 서로 직접적인 소통이 불가하다. 따라서 하위 Layer로 데이터를 내려 보내고, 이는 네트워크를 통해 상대 프로세스 최하위 계층으로 도달하게 된다.

1.3.1 캡슐화

  • 상대 peer 계층에 바로 데이터를 보낼 수 없는 경우, 하위 계층으로 데이터를 내려 보낸다.
  • 이때 하위 계층에 쌩 데이터를 그대로 보내줄 순 없고, PCI라는 헤더를 앞에 붙여 캡슐화 하여 내려보낸다.
  • 이제 peer 계층에 바로 데이터를 보낼 수 있는 Layer에 도착하면, 캡슐화한 데이터 PDU를 보내고, peer 계층은 다시 자신의 상위 계층으로 데이터를 올려보낼 때 역캡슐화를 하여 데이터를 올려보낸다.

cf) **패킷은 무엇이고 프레임은 무엇인고?**

PDU(Protocol Data Unit) : 계층별로 헤더와 데이터를 합친 부분을 일컫는 단어.

각 계층마다 이 PDU를 부르는 이름이 다르며 다음과 같다.

  • 1계층: 비트(Bits)
  • 2계층: 프레임(Frame)
  • 3계층: 패킷(Packet)
  • 4계층: 세그먼트(Segment)
  • 그밖에 애플리케이션에 속하는 3개 계층(5,6,7)은 데이터(Data)라 부른다.

1.3.2 TCP/IP 프로토콜 데이터 단위

  • TCP 계층은 보통 Layer 4에 해당한다.

  • 상위 계층에서 TCP 계층(L4)으로 Data를 내려 보낸다.
  • 그럼 TCP 계층에선 TCP 헤더를 붙여 TCP segment라는 PDU를 IP 계층(L3)으로 내려보낸다.
  • IP 계층(L3)에서도 IP 헤더를 붙여 IP packet이라는 PDU를 만든다.
  • lan에선 ethernet이 Layer 2이다. Layer 2에선 특별히 에러처리를 위해 헤더와 trailer를 붙여 양 끝에 Ethernet header, Ethernet footer을 붙여준다.

1.4 프로토콜 유형

1.4.1 분류 방식

  1. 연결처리 방식에 따른 분류
    • Connection - Oriented protocol (연결 지향) 데이터를 주고 받기 전에 먼저 연결을 맺는다. 가) Connection establishment phase (연결 수립) 나) Data transfer phase (데이터 송수신) 다) Disconnect phase (연결 끊기)
    • Connectionless protocol (비연결형) 오로지 data transfer phase만 가진다.
  2. 프로토콜의 종류에 따른 분류
    • TCP/IP 프로토콜
    • OSI 프로토콜
  3. 거리/기술에 따른 분류
    • WAN/LAN/PAN/BAN 등
    • WAN (Wider area network, 수 킬로 ~ 수십 킬로) > LAN (Local area network, 수십미터 ~ 100m)> PAN (personal area network, 10~15m 이내)> BAN (body area network, 수십센치 이내)

1.4.2 TCP/IP Protocol Stack

  • 인터넷, 컴퓨터를 통해서 서로 연결할 땐 LAN/WAN 프로토콜을 이용하는데, 이를 계층적으로 분류한 것이 아래 그림 모습이다.

  • OSI 7 Layer에선 각 계층이 정확히 분리되지만, TCP/IP 프로토콜에선 Layer 5~7은 명확히 구분되지 않고 적당히 섞여있다.
  • 인터넷에서 가장 주요한 계층은 Layer3, Layer 4이다.
  • 마지막 Layer 1~2가 어떤 네트워크냐에 따라 LAN/WAN 프로토콜 중 하나를 이용하게 된다.
  • TCP는 연결지향형 프로토콜이고, UDP는 비연결형 프로토콜이다.
  • 비연결형은 에러가 생길 확률도 있지만 훨씬 간편한 프로토콜이기 때문에 TFTP, SNMP, DNS 등 응용계층 내에서 에러를 복구할 능력이 있는 경우 비연결형인 UDP를 사용한다.

1.4.3 Web Server & Client

  • End System
    • 브라우저안 HTTP 프로토콜 (L5 ~ L7) > 유닉스, 리눅스 등 OS (L3 ~ L4) > Ethernet (L1~L2)
  • 웹 서버
    • 브라우저안 HTTP 프로토콜 (L5 ~ L7) > 유닉스, 리눅스 등 OS (L3 ~ L4) > Ethernet(L1~L2)

1.4.4 LAN Protocol

  • LAN Protocol은 주로 L1, L2로 구성되어있다.

  • L1은 물리계층으로, 물리 매체를 통해 0/1을 주고받는다

  • L2는 신뢰성있는 정보전달을 한다.

    • LAN은 여러 컴퓨터가 하나의 물리매체에 접속하는 구조이기 때문에 동시에 데이터를 주고받으려면 충돌이 날 수 있다.
    • LAN 프로토콜에서 Layer 2는 또 2개의 계층으로 구분했는데,
      • MAC Sublayer (Media Access Control) : 프레임 단위로 송수신을 하며 충돌 방지 역할을 한다.
      • LLC Sublayer (Logical Link Control) : 연결제어, 오류제어, 흐름제어
  • LAN Protocol Standard

    • IEEE 802 표준
    • IEEE 802.3 : CSMA/CD (우리가 주로 사용하는 프로토콜이다 !)
    • IEEE 802.11 : Wireless LAN (무선의 경우 이 프로토콜을 많이 사용한다. ex) 핸드폰, 노트북)
    • IEEE 802.15 : Wireless PAN (블루투스 등)
    • IEEE 802.2 : LLC (Logical Link Control)
    • IEEE 802.1 : Management, 상위 계층 접속, Spanning Tree, VLAN
  • Ethernet Protocol

    • 유선 랜카드를 사용하는 컴퓨터등 기기에 모두 구현되어있는 프로토콜이다.
    • Ethernet 랜카드 안에 MAC Protocol + Physical Protol이 구현돼있다.
    • Ethernet Protocol은 CSMA/CD라고 얘기한다.
      • 하나의 물리매체 안에 여러 개의 컴퓨터를 구성해서 데이터를 주고받는데 충돌이 생길 수 있다.
      • 따라서 물리매체를 사용하는 지 아닌 지 신호를 통해 확인해 데이터를 주고받는다.
      • 그럼에도 불구하고 충돌이 생기게 된다면 CSMA/CD 프로토콜을 통해 해결한다.
      • 과거엔 10Mbps, FastEthernet : 1000Mbps, GigaEthernet : 1Gbps
  • Frame 구조

    • Ethernet 안에선 data는 Frame이라는 단위를 사용한다.
    • 여기서 DA(Destination Address), SA(Source Address) ,Type(데이터의 유형, 주로 IP 유형)이 헤더이고, FCS(Frame Check Squence, 오류 체크를 위한 코드)가 Footer이다.
    • L2 프로토콜은 IEEE 802.3과 약간 다르다. (Type이냐 Length냐의 차이)

1.5 네트워크 장비

  • 보통 end system에선 L1 ~ L7까지 전부 있다.
  • 그러나 중간에 매개해주는 역할을 하는 장비는 보통 router, bridge, repeater을 많이 이용한다.
  • repeater (L1), bridge(L1~L2), router(L1~L3)이다.

1.5.1 Repeater

  • Layer1만 구현되어있다.
  • 포트가 여러 개 있어서 데이터가 들어오면 데이터를 0/1로 복원해서 다시 보내주는 역할을 한다.
  • 포트 A에서 들어온 신호는 멀리 갈 수록 약해진다. 이때 중간에 repeater을 끼워줌으로서 다시 신호를 증폭시켜 멀리 보내도 신호의 세기를 유지해줄 수 있다.
  • 즉, 신호 재생기 역할을 한다. Signal → 0/1 → Signam (cf. Amplifier)
  • 1 segment의 최대 길이 : 125m
  • Segment 확장 : Repeater 4개 → segment 5개 → 500m 확장 가능

1.5.2 Bridge

  • L1 ~ L2 장비이다.
  • 프레임 중계기이다.
  • 스테이션 증가 → 충돌이 늘어났기 때문에 성능감소 → 브릿지로 분리하여 충돌 감소
  • MAC 주소를 보고 포워딩/블럭킹을 한다.
  • 주로 소규모 네트워크를 연결할 때 주로 사용한다.
  • MAC 주소는 Flat한 주소 개념이다. 계층적인 개념이 아니기때문에 너무 많이 연결하면 성능이 떨어진 다.
  • MAC 주소 테이블에 목적지주소, 목적지의 포트, 시간정보가 있다.
  • 브릿지를 처음 켤 때는 테이블이 텅비어있지만 시간이 지남에 따라 수십, 수백개가 만ㅇ들어진다.
  • Promiscuous Mode 동작을 한다. 즉, 모든 프레임을 수용해서 만든다.
  • 만일 목적지 정보를 잘 모르거나 없을 때, 수신포트를 제외하고 모든 포트로 전송한다. (Flooding)
  • 만일 목적지가 여러 개일 경우, Flooding을 통해 모든 포트로 전달된다.
  • 브릿지 종류
    • Transparent Bridge (최근에 많이 사용된다)
    • Source Routing Bridge (최근엔 잘 사용하지 않는다)

1.5.3 Router

  • 패킷의 목적지 주소를 보고 해당 포트로 다시 데이터를 보내는 역할을 한다. 때문에 패킷 중계기라고도 한다.
  • L1 ~ L3까지 구현되어있다.
  • IP 주소를 보고 보낸다.

  • 최적의 경로로 데이터를 전달한다.
  • IP 주소는 계층적인 개념을 갖고있기 때문에 확장성이 있다.
  • 또한 대규모 네트워크를 구성한다고 해서 성능이 떨어지지 않는다.
  • Routing Table을 갖고 있다. 이 안엔 destination address, metric, next router에 대한 정보가 들어있다.
  • 목적지 정보가 없다면 default routing을 하거나 폐기한다.

1.5.4 Gateway

  • L1~L7까지 구현되어있다.
  • 프로토콜 사이에서 중개하는 역할을 한다.
  • TCP/IP ↔ OSI 인 경우 OSI Gateway, TCP/IP ↔ SNA 인경우 SNA Gateway라고 칭한다.

1.5.5 Switch

  • 고속으로 패킷, 프레임처리는 시간이 오래 걸리지만 하드웨어화하여 이를 처리하면 속도가 향상된다.
  • 또한 포트도 많이 사용한다.
  • L2 Switch : MAC 주소 및 다수 포트로 데이터를 처리한다.
  • L3 Switch : IP 주소로 데이터를 처리하며 고속 스위칭
  • L4 Switch : 포트 번호 이용 트레픽 제어. 로드 밸런싱.
  • L7 Switch : 로드밸런싱, QoS 지원. 보안, 바이러스/웜 차단

1.5.6 Hub

  • 초창기에는 멀티포트 Repeater을 지칭했다. 이때는 단순 플러딩이었고, 충돌 시 모든 포트에 영향을 준다.
  • 현재는 많은 포트가 있는 장치를 일컫는다.

1.5.7 기타 네트워크 장치

  • Proxy

  • Layer 7

  • Web Proxy (보안, 캐싱), E-mail Proxy

  • 프락시 서버를 중간에 두게되면 단말기들이 컨텐츠서버나 웹서버로부터 데이터 (특히 멀티미디어) 를 가져오는 것이 아니라, 프락시 서버에서 가져오게 된다.

  • 프락시 서버는 데이터를 캐싱해두기 때문에 직접 서버에 접근하여 데이터를 조회하는 것보다 속도가 더 빠르다

  • 서버에 프락시를 두는 경우 (reverse proxy)

    웹 서버의 load balancing을 돕는다. 예를들어 구글서버라하면 전세계에서 많은 클라이언트들이 서버에 접속하는데, 이는 load가 많기 때문에 proxy를 두면서 load balancing을 한다.

  • LAN Card (ethernet 카드, 무선 랜카드)

    • L1, L2

  • 공유기

    • Static Routing 지원. NAT 기능
    • 스위치 내장
    • 유/무선 인터페이스
    • DCHP 서버 내장
    • 다양한 기능이 탑제된 저가형 장비이다.
  • Transceiver

    • MAU (Medium Access Unit)

0개의 댓글