[네트워크] TCP/IP 인터넷, 네트워크 접근 계층
인터넷 계층(Internet Layer)
송신자의 IP주소와 수신자의 IP주소를 읽어서 경로를 결정하거나 전송하는 역할을 수행
다중 네트워크 링크를 통해 패킷의 발신지-대-목적지 전달에 대한 책임을 가진다.(데이터 링크 층은 노드간 전달 책임, Point-to-Point)
IP, ICMP의 TCP/IP 프로토콜 군이 존재하고 멀티캐스팅을 위한 IGMP, 라우팅을 위한 BGP, OSPF, RIP 존재
- 경로설정(Routing)
수신자의 IP주소를 읽어서 어떻게 목적기까지 가는 것이 최적의 경로인지를 판단하는 것. 라우터(Router)의 역할 - Point-To-Point 패킷 전달
- 논리 주소 지정 : IP주소로 변환하여 사용
- 주소 변환
- 데이터그램 : 기존 패킷에 IP Header를 붙이는 것을 의미
라우팅
목적지 IP주소를 읽어서 경로를 결정하는 작업이다. 이러한 경로를 결정할 때 사전에 고정한 정적 경로 방법과 네트워크 상태를 파악하여 최적의 경로를 결정하는 동적 경로 방법이 있다.
정적
경로 방법(Static Routing)
특정 목적지 네트워크로 가는 경로를 관리자가 직접 라우팅 테이블의 경로를 설정하는 방법
실시간으로 이루어지지 않기에 초기에 관리자가 다양한 라우팅 정보를 분석하여 최적의 경로 설정이 가능
라우터의 직접적인 처리 부하를 감소시킬 수 있어서 비교적 환경변화가 적은 형태의 네트워크에 적합- Floating static routing
동적
경로 방법(Dynamic Routing)
네트워크 상태를 파악해서 최적의 경로를 결정하는 방법
실시간으로 이루어지므로 네트워크 환경변화에 능동적인 대처가 가능
라우팅 알고리즘을 통해 자동으로 경로 설정이 이루어지며,
수시로 환경이 변화되는 형태의 네트워크에 적합
목적지에 대한 경로 정보를 인접한 라우터들과 교환하기 위한 규약이다.- Distance Vector routing
- Linked state routing
Ingress Filtering
로컬 네트워크로 들어가는(유입) 트래픽을 필터링
Egress Filtering
로컬 네트워크에서 나가는 트래픽을 필터링
라우팅 프로토콜
인터네트워크를 통해서 데이터를 근원지에서 목적지로 전달하는 기능 수행
경로 결정에서 최단경로 선정 및 전송 수행, 목적지에 대한 경로 정보를 인접한 라우터들과 교환하기 위한 규약
라우팅 프로토콜은 경로를 결정하는 알고리즘을 포함한 프로토콜이다. 라우팅 프로토콜은 한 도메인 내에서 경로를 결정하는 IGP와 도메인 간에 경로를 결정하는 EGP로 분류된다.
-
IGP(Internal Gateway Routing Protocol)
동일 그룹(기업 또는 ISP) 내에서 라우팅 정보를 교환 -
EGP(Exterior Gateway Routing Protocol)
다른 그룹과의 라우팅 정보를 교환
Distance Vector routing
최단 경로를 구하는 벨만 포드 알고리즘 기반 통과해야 하는 라우터의 수가 적은 쪽으로 경로를 결정. 일명 Hop Count 또는 TTL(Time to Live)
네트워크 변화 발생 시 해당 정보를 인접한 라우터에 정기적으로 전달하고, 인접 라우터에서는 라우팅 테이블 정보 갱신
- 라우팅 정보 : 모든 라우터까지의 거리 정보 보관
- 정보 전송 시점 : 일정주기(30초, 이웃 라우터와 공유)
- 대표 프로토콜 : RIP, IGRP, EIGRP(내부 라우팅), BGP
- 단점
변화되는 라우팅 정보를 모든 라우터에 주기적으로 갱신(브로드캐스팅)하므로 망 자체 트래픽 유발
라우팅 정보를 변경하는 문제 발생 시 Routing Loop가 발생할 가능성 존재
Linked state routing
최소 신상 트리를 구하는 다익스트라 알고리즘 기반
네트워크 대역폭, 지연정보 등을 종합적으로 고려해 Cost
를 산정하고 해당 Link의 Cost에 따라 경로를 결정하는 방법
네트워크 변화 감지 시 링크 상태 변경 정보를 인접한 라우터에게 즉각 전달하고 이를 저장
- 라우팅 정보 : 인정 라우터까지의 Link Cost 계산
- 정보 전송 시점 : 변화 발생 시에만
- 대표 프로토콜 : OSPF, IS-IS(소규모 네트워크)
-
단점
네트워크 전체 정보 유지를 위한 많은 메모리 소요
라우터의 CPU 사용량이 많아짐
라우터간 회선의 대역차이로 동기화 실패할 가능성 존재 -
RIP(Routing Information Protocol)
RFC 1058에 정의되어 있고 대표적인 거리 벡터 라우팅 프로토콜라우터 간 거리 계산을 위한 척도로
홉수
(Hop Count) 사용
16Hop 이상이면 패킷을 폐기
180초 이내에 새로운 라우팅 정보가 수신되지 않으면 해당 경로를 이상 상태로 간주
수신된 목적지의 거리 값과 현재 거리 값을 비교하여작은
것을 기준으로 라우팅 테이블을 변경라우팅 정보 변경 시
모든
망에 적용하므로 큰 규모의 망에는 부적합 -
OSPF(Open Shortest Path First)
RFC 1247에 정의되어 있는 IP 라우팅 프로토콜링크에서의 전송 시간을 링크 비용으로 사용하여 각 목적지별 최단 경로를 계산
네트워크에 변화가 발생했을 때 상대적으로 짧고 간단한 링크 상태 정보 교환Link의 delay, throughput, reliability를 이용하여 기본적인 throughput만 이용하고, Hop수에 대한 제약이 없음
네트워크를 Area로 구분하여 많은 라우팅 정보의 교환으로 인한 라우터의 성능저하를 예방(대역폭을 절약)
Link 변화 감지 시 해당 Link에 대한 정보만을 즉시 모든 라우터에 전달하며 Convergence가 매우 빠름
Supernetting된 형태로 Routing Information을 전달할 수 있어 라우터 메모리 절약, 성능 향상 및 대역폭 절약- ABR(Area Border Router)
Area에 백본망을 연결해주는 라우터 - ASBR(Autonomous System Boundary Router)
다른 AS(Autonomous System)에 속한 라우터와 경로 정보를 교환 - IR(Internal Router)
Area에 접속한 라우터 - BR(Backbone Router)
백본망에 접속한 모든 라우터
- ABR(Area Border Router)
-
BGP(Border Gateway Protocol)
AS 상호 간의 routing에 적용되는 라우팅 프로토콜.
ISP(Internet Service Provider) 사업자들 상호 간에 주로 사용EGP라고 하는 Inter-Domain routing Protocol
인터넷을 AS 상호 간 연결 Path로 이루어진 방향성 그래프의 집단으로 인식
경로 벡터 라우팅 방법(path vector routing)을 적용하며 경로 벡터 라우팅 테이블을 유지- Looping Free Routing
TCP
기반 라우팅
BGP 라우팅 정보는 라우터 간에 179번 포트를 통하여 TCP에 의해 신뢰성 있게 전달- 라우팅 정보의
점진적
갱신
BGP는 주기적으로 라우팅 정보를 갱신하지 않고, 변화가 있을 때 이웃 라우터에게 갱신 정보를 전달 - 다양한 라우팅 metric 사용
최상위 경로 선택을 위해 우선순위가 있는 각 metric을 참조 - Class 없는 주소체계 지원
CIDR
(Classless Inter-Domain Routing) 지원 - IBGP(Internal BGP) : 동일한 AS에 속한 BGP 라우터 간의 동작
- EBGP(External BGP) : 서로 다른 AS에서 동작하는 BGP 프로토콜
IP(Internet Protocol)
IP 주소 형태로 송신자와 수신자의 IP를 가지고 있고 IP주소를 읽어서 최적의 경로를 결정할 수 있게 해준다.
주소화
, 데이터그램 포맷, 패킷 핸들링 등을 정의해놓은 인터넷 규약- IPv4 :
32bit
주소체계를 사용. (네트워크 ID + 호스트 ID) - IPv6 : IP주소의 부족 문제를 해결하기 위해 주소 비트수를
128bit
로 확장.
IP Header 구조
- Version : IPv4 버전
- Header Length : Header의 전체 길이
- Type of Service : 서비스 유형
- Total Length : IP Datagram의 byte 수
- Identification : Host에서 보낸 DataGram 식별
-
Flags & Offset
IP Datagram 단편화 정보
네트워크에는MTU
(Maximum Transmission Unit)라는 것이 존재하는데, 한 번에 통과할 수 있는 패킷의 최대 크기(국제 표준:1500)를 의미한다.즉, MTU 값보다 크면 패킷은 분할(
단편화
: Fragmentation)되고 그 정보를 Flags & Offset이 가지고 있게 된다. - Time to Live
Datagram이 통과할 수 있는 라우터 수(Linux 기본 = 64, Window 기본 = 128)
IP 패킷이 통과할 수 있는 라우터의 수를 의미. 라우터를 하나 통과 시 1씩 감소하며 0이 될 경우 자동 폐기 - Protocol : IP헤더 위의 상위 프로토콜 종류. ICMP, TCP, UDP
- Header Checksum : IP Header 무결성 검사
IP 주소의 구조
클래스로 분류되며 클래스는 IP 주소를 분류하는 기준으로 사용.
Class | Content |
Class A | 첫 바이트 7bit가 네트워크 식별자 한 네트워크에 가장 많은 호스트 수용 가능 |
Class B | 14bit의 네트워크 식별자 한 네트워크에 약 216 대의 호스트 수용 |
Class C | 세 번째 바이트까지 네트워크 식별자 한 네트워크에 254대까지 수용 |
Class D | 멀티캐스트 주소로 사용 |
서브넷팅(Subnetting)
주어진 네트워크 주소를 작게 나누어 여러 개의 서브넷으로 구성
네트워크 식별자 부분을 구분하기 위한 Mask를 서브넷 마스크
라고 함
수퍼넷팅(Supernetting)
ISP(Internet Service Provider) 사업자가 많은 네트워크 망을 효율적을 관리하기 위해서 네트워크를 묶어 관리하는 방법
CIDR(Classless Inter-Domain Routing)
RFC 4632. IPv4의 IP 주소 고갈
및 라우팅 테이블 대형화
에 대한 해소책
기존의 클래스 A, B, C 네트워크 주소의 개념을 무시하고 IP주소와 서브넷 마스크를 이진 표기법으로 표현하여 기존의 고정크기 네트워크를 다양하고 세부적으로 분할한 것
인터넷 라우팅 테이블의 비대화를 막아준다. 즉, 인터넷을 여러 개의 addressing domain으로 나눔으로써 라우팅 정보량을 줄여준다. 한 도메인 내에서는 그 도메인내의 모든 라우팅 정보가 공유된다.
VLSM(Variable Length Subnet Mask : 가변길이 서브넷 마스크)
서브넷팅을 실시한 이후에도 IP 주소가 낭비되는 것을 방지하기 위해서 서브넷 마스크의 길이를 더 확장하여 늘리는 기능.
필요한 네트워크 ID를 지원하기 위해 필요한 비트 수를 계산하는 것이 아니라 필요한 호스트 ID를 지원하기 위해 필요한 비트 수를 먼저 계산해야 하며 호스트의 수가 많이 필요한 서브넷부터 먼저 계산한다.
ICMP(Internet Control Message Protocol)
TCP/IP 오류 제어 프로토콜
호스트 및 라우터는 다른 호스트나 라우터가 현재 도달 가능한지의 여부를 결정
라우터는 특정 목적지 네트워크로 후속 IP 데이터그램을 보냈는데, 사용할 수 있는 최적의 경로가 있을 때 근원지 호스트에게 통지
호스트나 라우터는 그들이 처리하기에 너무 빠른 IP 데이터그램이 도착하면 다른 시스템에게 통보
- 오류 보고 메시지 : IP 패킷 처리 도중 발견된 문제를 보고
- 질의 메시지 : 다른 호스트로부터 특정 정보를 획득하기 위해 사용
ICMP 메시지 구조
- Type : ICMP 메시지 유형 표시
- Code : Type과 같이 사용되며 세부적인 유형을 표현
- Checksum : IP Datagram Checksum
ICMP 메시지
Type | Message | Content |
3 | Destination Unreachable | 라우터가 목적지를 찾지 못할 경우 보내는 메시지 |
4 | Source Quench | 패킷을 너무 빨리 보내 네트워크에 무리를 주는 호스트를 제지할 때 사용 |
5 | Redirection | 패킷 라우팅 경로를 수정, SMURF 공격에서 사용 |
8 or 0 | Echo Request or Reply | Host의 존재를 확인 |
11 | Time Exceeded | 패킷을 보냈으나 시간이 경과하여 패킷이 삭제되었을 때 보내는 메시지 |
12 | Parameter Problem | IP 헤더 필드에 잘못된 정보가 있다는 것을 알림 |
13 or 14 | Timestamp Request and Reply | Echo와 비슷하나 시간에 대한 정보 추가 |
데이터 전송 방식
-
Unicast
1:1 전송 방식. -
Broadcast
1:N 전송 방식. 동일한 서브넷 상의 모든 수신자에게 전송 - Multicast
M:N 전송 방식. 하나 이상의 송신자들이 특정그룹
의 수신자에게 전송
IGMP
: 그룹에 등록된 사용자를 관리하는 프로토콜- IGMP 메시지 구조 (8byte)
- Version : IGMP 프로토콜의 버전
- Type : 메시지 유형. (1 = 보고, 2 = 질의메시지)
- Group ID
보고 메시지의 경우 호스트에서 신규 가입하고자 하는 멀티캐스트 서비스의 group id,
계속 받아보기를 원하는 멀티캐스트 서비스의 group id 질의 메시지인 경우는 ‘0’
- IGMP 메시지 구조 (8byte)
- Anycast
그룹에 등록된 노드 중에서 최단경로 노드 한 개에만 전송.
IPv6에서 사용 (Broadcast 대신)
ARP(Address Resolution Protocol)
IP주소를 물리적 하드웨어 주소인 MAC 주소로 변경하는 프로토콜
IP 주소와 이에 해당하는 물리적 네트워크 주소 정보는 각 IP 호스트의 ARP 캐시라 불리는 메모리에 테이블 형태로 저장된 후 다음 패킷 전송 시에 다시 사용
ARP Cache Table : MAC 주소와 IP 주소를 보유하고 있는 매핑 테이블
RARP(Reverse Address Resolution Protocol)
물리적인 주소 MAC을 기반으로 논리적인 주소 IP를 알아오는 프로토콜
운영체제도 없는 일종의 더미 터미널 Diskless Host에서 사용하는 것으로 자신의 물리적 주소인 MAC주소를 서버에 전송하고 IP주소를 수신 받아서 기동
네트워크 접근 계층
논리적 주소인 IP 주소를 물리적 MAC 주소로 변환
Physical Layer가 이해할 수 있는 헤더를 붙여주는 Layer, Frame
단위, MAC Address를 사용하는 계층
통신기기 사이의 연결 및 데이터 전송 기능을 한다.
Point-to-Point 간 신뢰성 있는 전송으로 흐름 제어 기능을 담당
에러 제어 : Error Detection, Error Correction
MAC(Media Access Control) : LAN 카드의 물리적 주소
CSMA/CD
Carrier Sense Multiple Access/Collision Detection
유선
LAN에서 메시지를 송수신하기 위한 접근 방법. IEEE 802.3
1) 각 호스트들이 전송매체에 경쟁적으로 데이터를 전송
2) 프레임을 전송하면서 충돌여부를 검사
3) 전송 중 충돌이 감지
되면 패킷의 전송을 즉시 중단
4) 충돌이 발생한 사실을 모든 스테이션들이 알 수 있도록 간단한 통보신호 송신
5) 통보신호에 따라 전송을 조절
Collision이 일어난 경우 Back off 알고리즘을 이용하여 재전송
리피터와 허브를 이용하면 Collision이 발생하나 Switch는 Collision을 막을 수 있다
Switch는 브로드캐스트를 막을 수 없고 Router가 브로드캐스트를 막을 수 있다.
- Non-Persistent
매채가 사용 중이 아니면 즉시 전송
매체가 사용 중이면, 확률분포에서 구한 재전송 지연시간만큼 대기- 임의 지연 사용은 충돌 확률을 감소
- 매체가 비었을 때 임의 지연 때문에 데이터 전송이 없는 채널 휴지 발생
- 1-Persistent
매체가 사용 중이 아니면 즉시 전송
매체가 사용 중이면 대기 후 채널이 비는 순간 즉시 전송- 채널 휴지 시간을 제거하기 위해 사용
- 임의 지연이 없게 하여 채널 휴지는 거의 없지만 충돌 확률이 높음
- p-Persistent
매체가 사용 중이 아니라면, 확률 p로 전송하고 (1-p)의 확률료 하나의 시간단위를 지연
매체가 사용 중이면 기다렸다가 채널이 비는 순간 확률 p로 전송하고 확률 (1-p)로 대기- 위 장단점을 상호보완하기 위해 사용
CSMA/CA
Carrier Sense Multiple Access/Collision Avoidance
무선
LAN에서 메시지의 송수신하기 위한 접근 방법
프레임 전송 이전에 제어 메시지를 이용하여 수신자로부터 간단한 전송 유발
제어 신호에 대한 응답이 도착하면 프레임 전송
댓글남기기