Computer Science/네트워크

[컴퓨터네트워크] 01. OSI 7계층과 TCP/IP

lumana 2024. 4. 7. 01:08

OSI 7계층과 TCP/IP


분산 컴퓨팅

  • process : 실행중인 프로그램
  • program : 실행 가능한 파일
  • 프로세스와 프로세스간에 네트워크를 통해 통신
  • 프로토콜 : 통신 규약

OSI 7계층

  • 1계층 : Physical Layer(물리 계층)
    • 물리 매체를 통한 0과 1의 비트를 전송
  • 2계층 : Data Link Layer (데이터 링크 계층)
    • 인접시스템(neighbor)의 신뢰성 있는 정보 전달
  • 3계층 : Network Layer (네트워크 계층)
    • 네트워크를 통한 데이터 전달
      • 2계층 까지 보면 신뢰성 있게 데이터를 전달하고 있음
      • 다양한 중계 장치를 통해 상대 시스템에 전달됨(네트워크)
  • 4계층 : Transport Layer (전송(수송) 계층)
    • 종단간(end-to-end) 신뢰성 있는 정보 전달
  • 5계층 : Sessioin Layer(세션 계층)
    • 응용 프로세스(세션)간의 연결 관리(가상적인 연결)
  • 6계층 : Presentation Layer(표현 계층)
    • 데이터의 표현 방식 정의 (ASCII, 압축, 암호화)
  • 7계층 : Application Layer(응용 계층)
    • 다양한 네트워크 서비스 제공(이메일, 파일 전송)

  • 중계 장치를 통해서 연결됨
  • 중계 장치는 7계층중 일부에만 존재
    • 라우터 : 3계층까지
      • 브리지 : 2계층까지
      • 리피터 : 1계층
  • 동축 케이블, 공기와 같은 전송 매체를 통해 전달됨

계층별 핵심 기능

물리 계층

  • 물리 매체를 통한 0 또는 1의 비트 데이터를 전달(10100100 와 같이 V = 0 과 V = 1 두가지 케이스로)
  • 물리 매체 : 전선(동축 케이블, twisted pair 등), 광, 공기(무선)
  • 전기적 정의 : 전압, 주파수, 인코딩방식(NRZ, Manchester, ...)
  • 기계적 정의 : 커넥터, 25핀/9핀, male/female
  • 기능적 정의 : +/-/접지(GND), Tx/Rx, Clock, DTR/DSR
    • Clock : clock에 맞춰 데이터 샘플링을 진행. 저속의 경우 알아서 Clock을 맞춤
      • Clock을 쓸지 말지를 정해야 함
      • 주로 고속통신에서 사용
    • DTR/DSR : Data Terminal Ready(ex. 컴퓨터) / Data Set Ready(ex. 모뎀), 전압으로 작동 여부를 판단함

Data Link 계층

  • 인접 시스템(neighbor)간 신뢰성 있는 정보 전달
  • 데이터 링크 : 데이터가 흐르는 시스템 간의 물리적 연결
  • 데이터를 바이트 단위 혹은 프레임(데이터의 묶음)으로 구성하여 전달
  • 신뢰성 보장 위한 기능 : 연결제어, 오류제어, 흐름제어
    • 연결 제어 : 연결을 맺고 데이터를 전달, 이후 연결 종료
    • 오류 제어 : 오류 검출, 오류 정정
    • 흐름 제어 : 데이터 전달 속도가 너무 빠르거나 느리지 않게 조절

네트워크 계층

  • 네트워크를 통한 데이터 전달 기능
  • 시스템의 수가 적고 가까이 있다면, 하나의 네트워크로 구성하여 모든 컴퓨터들이 직접 데이터를 교환
  • 컴퓨터의 수가 많고 지리적으로 떨어져 있으므로 지역별로 네트워크를 구성하고 이것들을 서로 연결
    • Internet : 전 세계의 모든 네트워크를 연결한 네트워크
  • 어드레싱(Addressing): 각 시스템에 주소 부여
  • 라우팅 : 목적지로 갈 수 있도록 경로를 찾아주는 것(최적의 경로)

전송 계층

  • 종단 시스템간 신뢰성 있는 정보 전달
    • 구간별로 데이터링크 계층에서 담당하지만, 종단간의 추가적 보장이 필요
  • 종단 시스템 - 네트워크 - 종단 시스템
  • 신뢰성 보장 : 연결 제어, 오류 제어, 흐름 제어
    • 네트워크의 상태도 고려한 흐름 제어 필요

세션 계층

  • 응용 프로세스 간의 연결 제어
  • 세션(session) : 응용 프로세스 간의 연결
  • 세션의 수립, 관리, 해제

표현 계층

  • 데이터의 표현 계층(Syntax)
  • 데이터의 형식, 암호화, 압축
  • ASCII/binary, jpg/gif, mpg/avi

응용 계층

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

캡슐화

  • 상위 계층에서 바로 전송할 수 없으므로 하위 계층으로 내려옴(N + 1 -> N)
  • SDU : Service data unit(현재 계층에서 상위 계층에 서비스 할 데이터 유닛)
    • 이 데이터를 상대방한테 보낼 때는, 헤더를 붙혀서 전송하게 됨
    • 데이터가 길면 데이터를 잘라서 보낼 수도 있음(짧으면 그냥 보내도 됨)
    • 데이터를 짧게 보내면 에러 확률은 줄어들지만, 전송 속도 또한 줄어든다
    • 실제 서비스되는 Data Unit을 의미합니다.
    • PCI가 더해진, 즉 캡슐화가 되어 하위 계층으로 넘겨주는 대상입니다.
  • PDU : protocol data unit
    • 이 계층이 다루는 데이터
      • 즉, 같은 계층끼리 주고받는 대상입니다.
    • 상위 계층에서 온 데이터에 헤더(PCI, Protocol Control Information)를 붙혀 PDU를 만든다 (이를 캡슐화라고 한다)
      • PCI + SDU --> PDU
  • PCI
    • Header와 Trailer 형태로 PDU에 더해지는 제어 정보를 의미합니다. 
    • 흐름 제어 정보, 오류 제어 정보, 주소 정보(발신지, 수신지) 등이 포함되어있습니다.

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

  • Application program 에서 메시지를 보낸다고 하자
  • 4계층에서는 Application data에 TCP header를 붙혀서 전송한다(TCP segment)
  • 3계층에서는 IP header를 붙혀서 전송한다(PDU : IP packet)
  • 2계층에서는 Ethernet header를 붙이고, Ethernet footer(데이터 뒤에 에러 처리를 목적으로 붙힘)를 붙혀 전송한다(Ethernet frame)

프로토콜 유형

  • 연결(Connection)
    • 연결 지향 (Connection-oriented) protocol
      • Connection establishment phase
      • Data transfer phase
      • Disconnect phase
    • 비연결(Connectionless) protocol
      • data transfer phase
  • 프로토콜 종류
    • TCP/IP 프로토콜 (ex. world wide web)
    • OSI 프로토콜
      • 강력하지만 무거워서, 사실상 concept만 남아있음
  • 거리/기술
    • WAN/MAN/LAN/PAN/BAN

TCP/IP Protocol Stack

  • Layer 5-7
    • TCP로 : FTP / Telnet / HTTP / SMTP
    • UDP로 : TFTP / SNMP / DNS
  • Layer 4 : TCP(연결 지향) / UDP(비연결 지향)
  • Layer 3 : IP
  • Layer 1-2 : Network Access --> LAN/WAN

Web Server & Cleint

  • End System은 Browser(HTTP) - OS(OS 내부에 TCP / IP) - Ethernet을 거쳐 Network에 연결
  • Web Server는 HTTP - OS(TCP / IP) - Ethernet을 거쳐 Network에 연결
  • 1, 2계층의 경우 Lan card가 데이터를 주고 받을 수 있는 Interface를 제공

 

LAN Protocol

  • GPT : 지역적으로 제한된 범위 내에서 컴퓨터 및 기타 네트워크 장비들 사이의 데이터 통신을 가능하게 하는 프로토콜
    • 네트워크의 기반을 이룸
  • 이 프로토콜들은 하드웨어 장치들이 서로 정보를 주고받을 수 있게 하는 데 필수적임
  • Layer 1
    • Physical : 물리 매체 접속
  • Layer 2
    • 충돌 방지를 위해서 Protocol이 Layer2를 sub layer로 나눔
    • LLC Sublayer : Logical Link Control
      • 연결 제어, 오류 제어, 흐름 제어
      • 다양한 네트워크 프로토콜과 상호 운용할 수 있도록 추상화된 인터페이스를 제공
      • GPT : LLC 서브레이어는 데이터 링크 계층의 상위 부분에 위치하며, 네트워크 계층과 데이터 링크 계층 사이의 인터페이스 역할을 합니다
      • GPT : 상위 계층(네트워크 계층)으로부터 받은 데이터에 대한 신뢰성 있는 전송을 보장
      • GPT : LLC는 네트워크 계층으로부터의 데이터를 동일한 방식으로 처리하여, 네트워크 계층이 물리적 링크의 차이를 신경 쓰지 않도록 해줍니다
    • MAC Sublayer : Media Access Control
      • GPT : MAC 서브레이어는 데이터 링크 계층의 하위 부분에 위치하며, 물리적 매체에 접근하는 방법을 제어
      • 프레임 단위 송수신, 충돌 방지
        • 이를 위해 CSMA/CD(이더넷에서 사용) 또는 CSMA/CA(무선 LAN에서 사용) 같은 매체 접근 제어 메커니즘을 사용
        • 충돌이 감지되면 STOP 후 Random 시간 후 다시 보냄
    • 이더넷 프로토콜에는 LLC는 없고, MAC만 존재한다
      • 초기 이더넷에는 LLC가 없었음 
      • LLC는 IEEE 802 표준의 일부
      • 이더넷은 자체적인 프레이밍 방식을 사용하는데, 이더넷의 프레임에 있는 Type 필드가 이더넷 프로토콜이 운반하는 데이터의 프로토콜을 식별하는 데 사용되며, 이는 LLC의 식별 기능과 유사함
        • 참고로 IEEE 802.3은 초기 이더넷 + 802.2로 만들다 보니 LLC가 있음
  • 번외) Layer 7(Application layer)
    • SNMP : Simple Network Management Protocol
      • 허브와 같은 네트워크 장비 정보를 수집하고 관리함

LAN Protocol Stand

  • LAN(Local Area Network) 프로토콜 표준은 네트워크 장비와 장치들이 데이터를 주고받을 수 있도록 하는 프로토콜
  • IEEE 802 표준
  • IEEE 802.3 : CSMA / CD(collision detection)
    • 802.3 부터 MAC Sublayer 사용
  • IEEE 802.11 : Wireless LAN
  • IEEE 802.15 : Wireless PAN
  • IEEE 802.2 : LLC (Logical Link Control)
  • IEEE 802.1 : Management, 상위 계층 접속, Spanning Tree(물리적으로 loop가 발생할 수 있는 구조에서 loop가 발생하지 않도록 해줌), VLAN(virtual Lan)

이더넷 (Ethernet) Protocol

  • MAC Protocol + Physical Protocol
  • CSMA/CD(Carrier Sense Multiple Acess / Collision Detect)
    • CSMA : Carrier Sense, 즉 신호가 있는지 없는지 확인 후 신호가 존재하면 일정시간 후 재시도 --> Multiple Access
    • 여러 장치가 같은 전송 매체를 공유할 때 데이터 충돌을 관리하는 방법
      • 동시에 같은 네트워크 세그먼트나 충돌 도메인에 데이터를 전송하려고 할 때 충돌이 발생한다
    • 오늘날 스위치 환경에서는 충돌이 거의 발생하지 않음
  • Ethernet : 10Mbps
  • FastEthernet : 1000Mbps
  • GigaEnthernet : 1Gbps (1000Mbps)

Ethernet Protocol의 Frame 구조

  • Ethernet과 IEEE 802.3 (우리는 주로 Ethernet을 사용)
    • DA : Destination Address(6바이트)
    • SA : Source Address(6바이트)
    • Type / Length (2바이트)
    • Type : Ethernet의 경우 프로토콜의 타입을 나타냄(따라서 이더넷에 LLC가 존재하지 않음)
      • Length : IEEE 802.3의 경우 데이터 필드의 길이를 나타냄
    • Data : ~1500 byte의 범위를 가짐
    • FCS : Frame Check Sequence
      • 4바이트로 이루어져있으며, 프레임 끝에 위치함.
      • 프레임의 나머지 부분에 대한 오류 검사를 위한 CRC 값이 포함되어있다.

네트워크 장비

Repeater

  • Layer 1 장비
  • 신호 재생기
  • Signal을 0과 1을 이용한 신호로 바꾸고, 다시 Signal로 변경
    • cf) Amplifier는 신호의 세기를 키워줌(증폭)
  • 1 Segment의 최대 길이는 125m
    • Segment는 Repeater를 사용하여 확장 가능하다
    • ex) Segment 5개가 Repeater 4개를 통해 연결 --> 기존 125m + 500m 확장하여 625m 연결 가능

Bridge

  • Layer 2 장비
    • 프레임 중계기
      • GPT : 브리지는 네트워크 상의 프레임을 받아서, 그것이 전송될 목적지의 MAC 주소를 분석한 후, 해당 프레임이 목적지 세그먼트로만 전송되도록 함
  • 스테이션(호스트, 스테이션, 노드)이 증가하면 성능이 감소함에 따라, 브리지로 분리함
    • 스테이션의 수가 증가하면 네트워크 트래픽이 증가하고, 충돌이 발생할 가능성이 높아짐
  • 주소 지정 방식
    • Unicast : 단일 송신자와 단일 수신자 사이의 통신 방식입니다. 데이터 패킷은 한 소스로부터 한 목적지로만 전송
      • 대부분의 인터넷, 이메일이 이에 해당
    • Multicast : 하나의 송신자와 특정 멀티캐스트 그룹에 속하는 여러 수신자 사이의 통신 방식
      • IPTV, 비디오 스트리밍
    • Broadcast : 송신자가 단일 패킷을 네트워크에 속한 모든 목적지로 전송
      • 네트워크상의 모든 장치에 대한 알림, ARP(Address Resolution Protocol) 요청
    • Anycast : 데이터 패킷을 동일한 목적지 주소를 공유하는 여러 장치 중 하나로 전송하는 방식(특정한 조건에 맞는 일부에게 전송)
    • DNS 서버에 대한 요청 처리, CDN 컨텐츠 전송
    • MAC 주소의 LSB를 확인하여 구별할 수 있음
      • 유니캐스트 (Unicast) MAC 주소: 첫 번째 옥텟(8비트 데이터를 의미함)의 LSB가 0이면 유니캐스트 주소
        • ex) 00:1A:2B:3C:4D:5E
      • 멀티캐스트 (Multicast) MAC 주소: 첫 번째 옥텟의 LSB가 1이면 멀티캐스트 주소
        • ex) 01:00:5E:00:00:FB
      • 브로드캐스트 (Broadcast) MAC 주소: 브로드캐스트 MAC 주소는 모든 비트가 1로 설정된 특별한 주소
        • FF:FF:FF:FF:FF:FF
  • 브릿지는 MAC 주소를 보고 fowarding / blocking을 함
    • MAC 주소는 Flat address(계층적 구조를 가지지 않음)이므로, 소규모 네트워크에 적합
  • MAC 주소 테이블
    • DA(Destination Address), 포트, 시간정보
    • 프레임의 송신지 주소를 이용해 만듬
    • GPT : 네트워크 통신을 통해 송신된 프레임의 소스 MAC 주소를 학습하고, 해당 주소와 프레임을 받은 포트를 테이블에 저장
  • Promiscuous(무차별) Mode 동작
    • 모든 프레임 수신
  • 목적지 정보가 없을 때
    • Flooding(수신 포트, 즉 들어온 포트 제외 모든 포트로 전송)
  • 브릿지 종류
    • Transparent Bridge : 브릿지들이 경로를 판단
      • GPT : 투명 브릿지 --> 사용자가 고려할 필요가 없음
    • Source Routing Bridge : 처음부터 정해진 길로 (지금은 거의 사용 X)
      • GPT : 데이터가 전송될 때, 전체 경로(어떤 브리지를 통과할지)가 데이터 프레임 내에 포함

Router

  • Layer 3 장치
  • Bridge에 비해 조금 느림
  • Packet을 복원하여 ip 주소 확인 가능
  • 패킷 중계기
  • IP 주소 : 계층적 주소를 가짐
    • Hierarchical --> 확장성 --> 대규모 네트워크
  • 최적의 경로로 전달
  • Routing Table
    • DA, metric(목적지까지의 경로를 선택할 때 사용되는 비용 또는 거리, 가장 효율적인 경로를 선택하는 데 사용됨), next router
    • 목적지 정보가 없을 땐, default routing을 하거나 폐기한다

Gateway

  • 7계층 장비 (Layer 1-7)
  • 프로토콜 중계
    • ex) Network와 Local Area Network 중계
  • OSI Gateway (TCP/IP <-> OSI)
  • SNA Gateway (TCP/IP <-> SNA)

Switch

  • 하드웨어화 하여 처리하기 때문에 고속이고, 다수의 포트를 가지고 있음
  • L2 Switch : MAC 주소, 다수 포트
    • GPT : 네트워크 내에서 데이터 프레임을 적절한 포트로 전달합니다.
  • L3 Switch : IP 주소, 고속 스위칭
    • GPT : 이러한 스위치는 라우터의 기능을 수행할 수 있으며, 내부적으로 라우팅 테이블을 유지하여 패킷의 경로를 결정함
  • L4 Switch : 포트 번호를 이용한 트래픽 제어, 로드 밸런싱(데이터를 여러 서버로 분배)
    • GPT : TCP/UDP 포트 번호를 기반으로 트래픽을 제어
    • 이러한 스위치는 특정 유형의 트래픽을 인식하고, 로드 밸런싱을 통해 데이터를 여러 서버로 분배
  • L7 Switch : 로드밸런싱, QoS 지원, 보안, 바이러스/웜 차단
    • GPT : 스위치는 URL, 쿠키, 세션 정보 등을 분석하여 트래픽을 관리
    • 로드 밸런싱, QoS(Quality of Service), 보안 기능(바이러스/웜 차단) 등을 제공

Hub

  • 초창기에는 멀티포트 Repeater를 지칭
    • 단순 플러딩
    • 충돌 시 모든 포트에 영향
  • 많은 포트가 있는 장치임 (Multiport device)

Other Network Devices

Proxy

  • Layer 7
  • Web Proxy (보안, 캐싱), E-mail Proxy
    • client와 Web Server가 Web Proxy를 통해 연결되어 있을 때, client가 보기에는 Web proxy가 server처럼 보이고, Web server가 보기엔 client처럼 보임 (트래픽의 출처와 목적지를 숨길 수 있음)

LAN Card

  • L1, L2에 해당

공유기

  • Static Routing 지원, NAT(Network Address Translation) 기능
  • 스위치 내장
  • 유/무선 인터페이스
  • DHCP(Dynamic host control protocol)

<-- 서버 내장 다시 나오는 내용임 -->

  • 네트워크 상의 장치들에게 동적으로 IP 주소와 기타 네트워크 구성 정보를 자동으로 할당하는 프로토콜
  • DHCP를 사용하면 네트워크 관리자는 수동으로 각 장치에 IP 주소를 할당할 필요 없이, 네트워크 장비들이 자동으로 IP 주소를 받을 수 있도록 할 수 있다

Transceiver

  • MAU(Medium Access Unit)
  • GPT : 트랜시버는 데이터를 전기 신호로 변환하여 네트워크 케이블을 통해 전송하고, 수신된 신호를 다시 데이터로 변환

Reverse Web Proxy (Load Balancer)

  • GPT : 클라이언트와 백엔드 서버 사이에서 중개자 역할을 수행하는 네트워크 장치나 서비스
  • 구글과 같이 많은 트래픽을 처리해야 하는 경우, 여러 서버로 데이터를 분배하여 처리함