포스트

33. 네트워크 기초 활용 2

33. 네트워크 기초 활용 2

흐름 제어와 오류 제어

흐름 제어

개념

  • 수신측의 처리 능력에 따라 송신측에서 송신하는 데이터의 전송량이나 전송 속도를 조절하는 기능

  • 송신측과 수신측의 데이터 처리 속도 차이를 해결하기 위한 기법

Stop and Wait 방식

  • 매번 패킷을 보낼 때마다 확인을 한 후, 다음 패킷을 전송하는 방법

  • 오버플로우가 일어날 수 없지만, 너무 느리다는 단점

  • Stop and Wait는 거의 사용되고 있지 않음

Sliding Window 방식

  • 수신측에서 설정한 윈도우 크기만큼 송신측에서 확인응답 없이 세그먼트를 전송할 수 있게 하여 데이터 흐름을 동적으로 조절하는 제어기법

  • 윈도우에 포함되는 모든 패킷을 전송하고, 전송이 확인되는 대로 윈도우를 옆으로 옮겨(Slide) 다음 패킷들을 전송하는 방식

Piggybacking

  • 양방향으로 동시에 정보 프레임과 응답 프레임을 교차하여 전송하는 경우를 사용하는 방식

  • 수신측이 별도의 ACK를 보내지 않고 상대편으로 향하는 데이터 전문을 이용하여 응답하는 방식

  • 정보 프레임을 전송하면서 응답 기능까지 동시에 수행하도록 프레임 구조를 변형시킨 것

  • 응답 프레임의 전송 횟수를 줄이는 효과가 있어 전송 효율을 높일 수 있음

오류 제어

개념

  • 전송 중에 발생하는 오류를 검출하고 정정하여 데이터나 제어 정보의 파손에 대비하는 기능

  • TCP는 기본적으로 ARQ(Automatic Repeat Request), 재전송 기반 오류 제어를 사용

Stop and Wait ARQ

  • 한 번 데이터를 보내면 제대로 받았다는 응답이 올 때까지 대기하고 있다가 다음 데이터를 보내는 방식

Go Back N ARQ

  • 오류가 난 지점부터 전송한 지점까지 모두 재전송하는 기법

  • 데이터에서 에러가 발생했음을 감지하면 NACK 신호를 보내고, 오류 발생 이후 데이터를 모두 폐기

  • 중복전송의 단점

Selective Repeat ARQ

  • 여러 프레임을 연속적으로 전송하고, 수신측에서 NACK을 보내면 송신측에서는 오류가 난 부분의 프레임만 재전송

  • 별도의 데이터 재정렬을 수행해야 하며, 별도의 버퍼를 필요로 함

Adaptive ARQ

  • 전송 효율을 최대로 하기 위해 데이터 프레임의 길이를 동적으로 변경

  • 전송 효율이 제일 좋으나, 제어 회로가 복잡하고 비용이 많이 듬

오류 발생 원인

감쇠 | Attenuation

  • 전송 신호가 전송 매체를 통과하는 과정에서 거리에 따라 점차 약해지는 현상

  • 주파수가 높을수록 감쇠현상이 심해짐

  • 중계기를 이용하여 감쇠현상을 해결

지연 왜곡 | Delay Distortion

  • 주로 유선 전송 매체에서 발생

  • 하나의 전송 매체를 통해 여러 신호를 전달했을 경우 주파수에 따라서 속도가 틀려져 생기는 오류

상호 변조 잡음 | Intermodulation Noise

  • 서로 다른 주파수들이 하나의 전송 매체를 공유할 때 주파수 간의 합이나 차로 새로운 주파수가 생성

충격 잡음 | Impulse Noise

  • 순간적으로 높은 진폭이 발생하는 잡음

  • 번개와 같이 외부적인 충격이나 기계적인 통신 시스템에서의 결함이 원인

전송 오류 제어 방식

전진 오류 수정 | Forward Error Correction

  • 재전송 요구 없이 수신측에서 스스로 오류 검출 및 수정하는 방식

  • 에러 발생 후 송신측에 통보하지 않음

  • 오류정정을 위한 제어비트가 추가되어 효율이 떨어짐

  • 해밍코드, 상승코드 방식

후진 오류 수정 | Backward Error Correction

  • 송신측에 재전송을 요구하는 방식

  • 패리티 검사, CRC, 블록 합 방식으로 오류를 검출하고, 오류 제어는 ARQ에 의해 이루어짐

오류 검출

패리티 검사 | Parity

  • 데이터 한 블록 끝에 1비트의 검사 비트인 패리티 비트를 추가하여 전송 에러를 검출하는 방식

  • 홀수 개의 오류만 검출할 수 있고, 짝수 개의 오류는 검출하지 못하는 문제점이 발생

  • 이를 해결하기 위해 2차원 패리티 검사(Two-dimensional Parity Check)가 있음

순환 중복 검사 | Cyclic Redundancy Check

  • 데이터에 오류가 발생했는지 확인하는 코드를 데이터 뒤에 확장 데이터를 덧붙여 보내는 방식

  • 프레임 단위로 오류 검출을 위한 코드를 계산하여 프레임 끝에 FCS(Frame Check Sequence)를 추가

  • 집단적으로 발생하는 오류에 대해 신뢰성 있는 오류 검출

Checksum

  • 간단하게 에러검출을 하는 방법

  • 간단한 방식이기는 하나, 워드의 순서가 바꾸어지는 오류에 대한 검출은 하지 못함

Hamming code

  • 수신측에서 직접 자기 정정 부호의 하나로 오류를 검출하고 수정까지 함

  • 1Bit의 오류만 수정가능

  • 검출 가능한 최대 오류의 수 : 해밍거리 - 1

  • 정정 가능한 최대 오류의 수 : (해밍거리 - 1) / 2

상승코드

  • 순차적 디코딩과 한계값 디코딩을 사용하여 오류수정

  • 해밍코드처럼 검출과 정정 가능

  • 여러 비트의 오류도 수정 가능


OSI 7계층 | Open System Interconnection

개념

  • 네트워크 프로토콜 디자인, 통신을 7개의 계층으로 나누어 설명한 모델

  • 국제표준화기구(ISO)에 의해 정립

  • 통신이 일어나는 과정이 단계별로 파악 가능

구조

물리 계층 | Physical Layer

  • 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송

  • 통신 단위는 비트이며 이것은 1과 0으로 나타내어지는, 즉 전기적으로 on, off 상태

  • 데이터를 전달할 뿐, 데이터가 무엇인지 어떤 에러가 있는지 신경쓰지 않음

  • 장비 : 통신 케이블, 리피터, 허브

데이터 링크 계층 | Data Link Layer

  • 포인트 투 포인트 간 신뢰성 있는 전송을 보장하기 위한 계층

  • CRC 기반의 오류 제어와 흐름 제어가 필요

  • 물리 계층에서 발생할 수 있는 오류를 찾아내고, 수정하는데 필요한 기능적, 절차적 수단을 제공

  • 물리주소인 MAC주소가 이 계층에 해당

  • 장비 : 스위치, 브리지

네트워크 계층 | Network Layer

  • 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)

  • 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할을 하는 계층

  • 주소부여(IP), 경로설정(Route)

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

전송 계층 | Transport Layer

  • 양 종단(End to end)간의 사용자들이 신뢰성 있는 데이터를 주고받을 수 있도록 해줌

  • 시퀀스 넘버 기반의 오류 제어 방식을 사용

  • TCP, UDP 프로토콜이 있는 계층

  • 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송

  • 오류검출 및 복구와 흐름제어, 중복검사 등을 수행

세션 계층 | Session Layer

  • 양 끝단의 응용프로세스가 통신을 관리하기 위한 방법을 제공

  • 이 계층은 TCP / IP 세션을 만들고 없애는 책임을 가짐

표현 계층 | Presentation Layer

  • 데이터 표현이 상이한 응용프로세스의 독립성을 제공하고 암호화

  • MIME 인코딩이나 암호화 등의 동작이 이계층에서 이루어짐

응용 계층 | Application Layer

  • 데이터의 최종 목적지로서 HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있음

  • 브라우저나 메일 프로그램은 프로토콜을 보다 쉽게 사용하게 해주는 응용프로그램

네트워크 장비

LAN card

  • PC 혹은 네트워크에서 전달되어 오는 정보를 상호교환할 수 있도록 만들어줌

  • 랜카드에 MAC Address가 들어가는데, 랜카드에 할당된 48비트 물리적 주소

Hub

  • 집중화 장비라고도 하며, 단순히 노드들을 연결시켜주는 역할

  • 네트워크에 붙어있는 PC들을 한 곳으로 모아주는 역할

Repeter

  • 디지털 신호를 증폭시켜주는 역할

  • 신호가 약해지지 않고, 컴퓨터로 수신되도록 하는 장비

Bridge

  • 두 개의 근거리 통신망을 서로 연결해주는 장치

Switching hub

  • 스위치 기능을 가진 허브

Router

  • 패킷의 위치를 추출하여, 그 위치에 대한 최적의 경로 지정

  • 원하는 목적지까지 지정된 데이터가 안전하게 전달되도록 하는 역할

Gateway

  • 프로토콜을 서로 다른 통신망에 접속할 수 있게 해주는 장치

TCP / IP | Transmission Control Protocol / Internet Protocol

개념

  • 현재 인터넷에서 사용되는 프로토콜로 시스템 간 네트워크 연결과 데이터를 전송하는 데 사용하는 모델

  • 현재 대부분의 통신 프로토콜이 TCP / IP가 사용되고 있음

  • TCP / IP는 단순히 인터넷 통신을 위한 표준 프로토콜, 모델을 가리키는 용어

4계층 구조

OSI 7계층TCP/IP 4계층프로토콜
응용 계층표현 계층세션 계층응용 계층HTTP, FTP, SMTP, DNS, RIP, SNMP, DHCP
전송 계층전송 계층TCP, UDP
네트워크 계층인터넷 계층IP, ICMP, IGMP, ARP, RARP
데이터 링크 계층물리 계층네트워크 액세스 계층Ethernet, X.25, RS-232C

계층별 특징

네트워크 액세스 계층 | Network Access Layer

  • OSI 7계층의 물리계층과 데이터 링크 계층에 해당

  • 물리적인 주소로 MAC을 사용

프로토콜

Ethernet

  • 물리 계층과 데이터 링크 계층의 통신 회선의 접근 제어를 정의하는 IEEE 표준

X.25

  • DTE와 DCE간의 인터페이스를 제공, 패킷 교환망을 통해 패킷을 원활히 전달하기 위한 통신 프로토콜

RS-232C

  • 공중전화 교환망(PSTN)을 통한 DTE / DCE 접속 규격

인터넷 계층 | Internet Layer

  • OSI 7계층의 네트워크 계층에 해당

  • 여러 개의 패킷 교환망들의 상호 연결을 위한 비연결성 프로토콜

  • 통신 노드 간이 IP패킷을 전송하는 기능과 라우팅 기능을 담당

프로토콜

IP

  • 여러 개의 패킷 교환망들의 상호 연결을 위한 비연결성 프로토콜

ICMP

  • 인터넷 제어 메시지 프로토콜
  • IP 패킷 전송 중 에러 발생 시, 에러 발생 원인을 알려주거나 네트워크 상태를 진단해주는 기능 제공

IGMP

  • 호스트가 멀티캐스트 그룹 구성원을 인접한 라우터에게 알리는 프로토콜

ARP

  • IP 주소를 MAC 주소로 변환
  • 네트워크상에서 IP주소를 물리적 네트워크 주소(MAC)로 대응시키기 위해 사용되는 프로토콜

RARP

  • 호스트의 물리적 주소로부터 IP주소를 구할 수 있도록 하는 프로토콜

전송 계층 | Transport Layer

  • OSI 7계층의 전송 계층에 해당

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

프로토콜

TCP

  • 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 프로토콜
  • TCP는 데이터를 정확하고 안정적으로 전달할 수 있음
  • 데이터의 전송 순서를 보장
  • 연결의 설정(3-way handshaking)
  • 연결의 해제(4-way handshaking)
  • UDP보다 전송 속도가 느림
  • 헤더 정보 : 송수신자의 포트번호, 시퀀스 번호, 응답번호, 데이터 오프셋, 예약필드, 제어비트, 윈도우 크기, 체크섬, 긴급위치

UDP

  • 데이터를 주고받을 때 연결 절차를 거치지 않고 발신자가 일방적으로 데이터를 발신하는 프로토콜
  • TCP보다는 빠른 전송을 할 수 있지만 데이터 전달의 신뢰성을 떨어짐
  • 중간에 패킷이 유실이나 변조가 되어도 재전송을 하지 않음
  • 헤더정보 : 송수신자의 포트번호, 데이터의 길이, 체크섬

응용 계층 | Application Layer

  • 사용자와 가장 가까운 계층으로 사용자가 소프트웨어 응용프로그램과 소통할 수 있게 해줌

  • 응용프로그램들이 데이터를 교환하기 위해 사용되는 프로토콜

TCP 프로토콜

HTTP

  • 서버와 클라이언트 간에 하이퍼텍스트 문서를 송수신하는 프로토콜
  • 80 포트 사용

FTP

  • 인터넷에서 파일을 전송하는 기본 프로토콜
  • Data 전달 시 : 20 포트
  • 제어정보 전달 시 : 21 포트

SMTP

  • 이메일 전송에 사용되는 네트워크 프로토콜
  • 25 포트 사용

UPD 프로토콜

DNS

  • 호스트의 도메인 이름을 네트워크 주소로 바꿔주는 프로토콜
  • 53 포트 사용

SNMP

  • 네트워크에 있는 장비들을 관리하기 위한 프로토콜

DHCP

  • IP 자동 할당과 분배 기능

TCP / IP 헤더

IP | Internet Protocol

특징

  • 호스트 간의 통신만을 담당

  • 송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 정보를 주고받는 데 사용하는 정보 위주의 규약

  • 비신뢰성(unreliability)과 비연결성(connectionlessness)

  • 흐름제어, 오류 복구 기능은 없음

헤더

버전 | Version

  • IP 프로토콜의 버전

헤더 길이 | Header Length

  • IP 헤더의 길이
  • 헤더의 길이 20Byte ~ 60Byte

서비스 유형 | Type Of Service

  • 요구되는 서비스 품질

전체 길이 | Total Packet Length

  • IP 헤더 및 데이터를 포함한 IP 패킷 전체의 길이를 바이트 단위로 길이 표시

식별자 | Identifier

  • 각 데이터 그램을 식별
  • 데이터그램이 단편화되었을 때 단편화된 데이터그램이 원래 어떤 데이터그램에 속해 있는지를 확인

플래그 | Flags

  • IP 데이터그램이 단편화됐는지를 나타내는 필드

단편 오프셋 | Fragmentation offset

  • 단편화된 데이터그램의 순서

수명 | Time to Live

  • 패킷이 라우터를 최대 몇 번 걸쳐서까지 살아남을 것인지를 나타내는 필드
  • 패킷이 라우터를 거칠 때마다 이 필드의 값이 1씩 감소되며 0이 되면 버려짐

프로토콜 | Protocol

  • IP 데이터그램의 데이터(페이로드)에 담겨져 있는 상위 계층의 프로토콜을 알려줌
  • ICMP가 1번, IGMP가 2번, TCP가 6번, UDP가 17번

체크섬 | Header checksum

  • Header 필드의 오류를 검출할 수 있는 정보가 담긴 필드

발신지 주소 | Source IP address

  • 패킷을 보낸 노드의 IP 주소

목적지 주소 | Destination IP address

  • 패킷이 도착해야하는 목적지의 IP 주소

TCP | Transmission Control Protocol

특징

  • 연결형 서비스를 지원하는 전송 계층 프로토콜

  • 양 종단 간의 신뢰성 있는 데이터 전달과 흐름제어를 함

  • 인터넷 상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜

  • IP가 데이터의 배달을 처리한다면, TCP는 패킷을 추적 및 관리함

헤더

송신지 포트 | Source Port

  • 출발지 포트

수신지 포트 | Destination Port

  • 수신지 포트

순서 번호 | Sequence Number

  • 바이트 단위로 순서화되는 번호
  • 이것을 통해 신뢰성(3-Way Handshake) 및 흐름제어(sliding Window) 기능 제공

확인 응답 번호 | Acknowledgment Number

  • 수신하기를 기대하는 다음 byte 번호(마지막으로 수신에 성공한 번호의 +1)

헤더 길이 | Header Length

  • TCP 헤더 길이

예약된 필드 | Reserved

  • 예약된 필드, 현재 사용되지 않음

윈도우 크기 | Window

  • 자신의 수신 버퍼 여유 용량

검사합 | Checksum

  • 패킷이 유효함을 계산하기 위한 필드

긴급포인터 | Urgent Pointer

  • 어디서부터 긴급 값인지 알려주는 플래그(TCP Flags의 U와 세트)

TCP Flags

  • U(Urgent) : 긴급 비트, 내가 지금 보내는 데이터가 우선순위가 높음, Urgnet Pointer와 세트
  • A(Ack) : 승인 비트, 물어본 것에 대한 응답을 해줄 때 사용됨
  • P(Push) : 밀어넣기 비트, 데이터를 계속 밀어넣음
  • R(Rest) : 초기화 비트, 연결 상태를 리셋하게 됨
  • S(Syn) : 동기화 비트, 상대방과 연결을 시작할 때 무조건 사용되는 플래그
  • F(Fin) : 종료 비트

라우팅 프로토콜

Router

  • 경로설정(Path Determination)과 스위칭(Switching)을 하는 장비

  • 데이터 패킷이 목적지까지 이동할 때 최적의 경로를 판단하는 장비

라우팅 프로토콜

  • 패킷이 목적지까지 가는 방법을 결정해주는 프로토콜

  • RIP, OSPF, IGRP, BGP 등이 있음

라우팅 프로토콜의 종류

라우팅 경로 고정 여부

정적 라우팅 프로토콜 | Static Routing Protocol

  • 관리자가 경로를 직접 지정하는 수동형 방식
  • 라우터 부하경감
  • 고속 라우팅 가능
  • 관리자의 관리부담 증가
  • 정해진 경로 문제 발생 시 라우팅 불가능

동적 라우팅 프로토콜 | Dynamic Routing Protocol

  • 라우터가 스스로 라우팅 경로를 동적으로 결정
  • 종류 : RIP, IGRP, OSPF, EIGRP

내 / 외부 라우팅

IGP | Interior Gateway Protocol

  • AS(Autonomous System) 내에서의 라우팅을 담당하는 라우팅 프로토콜
  • 종류 : RIP, IGRP, OSPF, EIGRP

EGP | Exterior Gateway Protocol

  • 서로 다른 AS 사이에서 사용되는 라우팅 프로토콜
  • 종류 : BGP, EGP

라우팅 테이블 관리

거래 벡터 알고리즘 Distance Vector Algorithm

  • 라우팅 Table에 목적지까지 가는데 필요한 거리와 방향만을 기록(인접 라우터)
  • 종류 : RIP, IGRP

링크 상태 알고리즘 | Link State Algorithm

  • 라우터가 목적지까지 가는 경로를 SPF(Shortest Path First)알고리즘을 통해 모든 라우팅 테이블에 기록해 두는 것(모든 라우터)
  • 종류 : OSPF

주요 라우팅 프로토콜

RIP | Routing Information Protocol

  • 벨만 포드 거리벡터 알고리즘을 사용한 HOP 수 기반 라우팅 프로토콜
  • 최대 15홉을 지원하며, 소규모망에 적합
  • 30초마다 라우팅 테이블을 이웃 라우터들과 공유
  • 네트워크 속도나 안정성을 고려하지 않고, HOP 수만을 고려하여 설계

OSPF | Open Shortest Path First

  • 다익스트라 알고리즘기반 방식
  • 최적 경로 선택을 위해 흡수, 대역폭, 지연시간 등 고려
  • 링크상태 변화 시에만 라우팅 정보 전송

BGP | Border Gateway Protocol

  • RIP나 OSPF등의 라우팅 방식에 비해 규모가 큰 망을 지원할 수 있는 Path Vector기반 라우팅 프로토콜
이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.