반응형
참고서적 : 컴퓨터 네트워킹 하향식 접근 제 6판 Kurose, Ross
1. 개요
1.1 포워딩과 라우팅
- 포워딩(전달)
- 패킷이 라우터의 입력 링크에 도달했을 때 라우터는 그 패킷을 적절한 출력링크로 이동시킴
- 목적지로 향하는 다음 라우터로 이동시키는 것
- 라우터가 입력 링크 인터페이스에서 적당한 출력링크 인터페이스로 데이터그램을 전송하는 내부적인 동작
- 라우팅
- 송신자가 수신자에게 패킷을 전송할 때 네트워크 계층이 패킷 경로를 계산하고 결정
- 네트워크 전반에 걸쳐 출발지에서 목적지까지 데이터그램의 종단간의 경로를 설정하는 것
- 각 라우터는 포워딩 테이블(forwarding table)을 가지고 있음
- 도착하는 패킷 헤더의 필드값을 조사하여 패킷을 포워딩함
- 포워딩 테이블 엔트리에 저장되어있는 헤더의 값은 해당 패킷이 전달되어야 할 라우터의 외부링크 인터페이스를 나타냄
3. 라우터 안에는 무엇이 있을까?
- 입력 포트
- 라우터로 들어오는 입력 물리 링크의 종단으로 물리 계층기능을 수행
- 들어오는 링크의 반대편에 있는 링크 계층과 상호 운용하기 위해 필요한 링크 계층 기능을 수행
- 검색 함수(Look up) 수행
- 스위칭 구조
- 라우터의 입력 포트와 출력 포트를 연결
- 출력 포트
- 스위칭 구조를 통해 전달될 패킷을 저장한 다음 필수적인 링크 계층 및 물리 계층 기능을 수행, 외부링크로 패킷을 전송
- 라우팅 프로세서
- 라우팅 프로토콜을 수행
- 라우팅 테이블과 연결 상태 정보를 유지, 라우터의 포워딩 테이블을 계산
- Data plane (= forwarding plane)
- 입력포트, 출력포트, 스위치 구조는 전달기능을 구현
- 거의 하드웨어에 구현되어있음.
- 나노초 시간으로 작동
- Control plane
- 패킷이 전달되는 방식, 데이터가 한 위치에서 다른 위치로 전송되는 방식을 제어
- 밀리초 단위로 작동
- 라우팅 프로세서에서 실행
3.2 스위칭
- 메모리를 통한 교환
- cpu가 직접 패킷을 제어하는 고전적인 방법
- 패킷이 도착하면 입력 포트는 라우팅 프로세서에게 인터럽트를 보내서 패킷을 프로세서 메모리에 복사
- 버스를 통한 교환
- 라우팅 프로세서의 간섭 없이 패킷을 공유 버스의 출력 포트로 직접 전달
- 동시에 여러 패킷들이 도착하면, 패킷하나만 한 번에 버스를 건널 수 있어 각자 다른 입력포트에 있는 모든 패킷들은 기다려야 함.
- 라우터의 스위칭 속도는 버스 속도에 의해 제한
- 인터커넥션 네트워크를 통한 교환
- N개의 입력포트와 출력포트로 연결
- 각 수직 버스는 교차점에서 각 수평 버스로 교차
3.3 출력 처리
- 출력 포트 처리는 출력포트의 메모리에 저장되어 있던 패킷을 출력 링크로 전달하는 것
3.4 어디에서 큐잉이 일어날까?
- 간단히 말하자면 : 입력 포트의 속도보다 스위치의 속도가 느리거나, 스위치의 속도보다 출력포트의 속도가 느리면 규잉이 발생
- 라우터의 메모리가 가득 차 더이상 도착하는 패킷을 저장하지 못할 때 패킷 손실이 일어남
- HOL (head - of - the - line) blocking : 앞쪽에서 다른 패킷이 막고 있어, 입력큐에서 대기중인 패킷은 사용한 출력 포트가 놀고 있더라도 기다려야 할때.
스케줄링 매커니즘
- FIFO (first in first out) scheduling : 선입선출
- 먼저온걸 먼저 처리
- priority scheduling : 우선순위 스캐줄링
- 우선순위를 구별하여 큐를 분류하고 우선순위가 높은 패킷을 먼저 전송
- 우선순위가 낮은 패킷이 하염없이 밀릴 수 있음
- Round Robin (RR) scheduling :
- 우선순위가 낮은 패킷이 너무 많이 밀리면 안되기에 우선순위별로 번갈아가면서 전송
- Weighted Fair Queuing (WFQ) :
- RR scheduling을 보완
- 큐마다 우선순위 가중치를 두어 스케줄링
4. 인터넷 프로토콜 (IP):인터넷에서의 포워딩과 주소체계
- 주요요소 3가지
- IP 프로토콜
- 라우팅 요소
- ICMP(Internet Control MEssage Protocol)
- 데이터 그램 형식
- 데이터 그램 형식
- 버전 번호 : 4비트로 데이터그램의 IP프로토콜 버전을 명시
- 헤더 길이 : IPv4 데이터그램은 옵션을 포함하므로, 4비트로 IP데이터 그램에서 실제 데이터가 시작하는 곳을 결정 일반적으로 20바이트
- TOS : 서비스 타입(TOS)비트는 다양한 '타입'의 IP데이터그램을 허용하고, 과부하가 발생했을 때 각각을 구별해서 다르게 관리
- 데이터 그램 길이 : 바이트로 계산한 IP 데이터그램의 전체 길이(헤더포함)
- 인식자 , 플래그, 단편화 오프셋 : IP단편화와 관련이 있음
- TTL (Time to live) : 데이터그램이 네트워크에서 무한히 순환하지 않음을 보장,라우터가 데이터그램을 처리할 때마다 감소, TTL필드가 0이되면 데이터그램 폐기
- 프로토콜 : IP데이터그램이 최종 목적지에 도착했을 때만 사용, TCP/ UDP 구별 등
- 해더 체크섬 : 라우터가 IP데이터그램을 받을 때 비트 오류를 찾는데 도움을 줌, 각각의 라우터에서 재계산됨.
- 출발지와 목적지 IP주소 : 출발지가 데이터그램을 생성할 때, 자신의 IP 주소를 출발지 IP 주소 필드에 넣고, 목적지 IP주소를 목적지 IP주소 필드에 넣음.
- 옵션 : IP헤더의 확장
- 데이터 (페이로드) : 트랜스포트 계층 세그먼트나 ICMP메시지를 포함
- IP데이터그램 단편화
- MTU(maximum transmission unit) : 링크 계층 패킷이 전달할 수 있는 최대 양
- MTU가 IP 데이터그램의 길이에 제약을 두기때문에 IP데이터그램을 여러 조각으로 나누어 전송
- 조각들은 목적지 트랜스포트 계층에 도달하기 전에 재결합 되어야 함.
- 종단 시스템에서 데이터그램 재결합을 진행
- 인식자(ID): 인식자로 하나의 메시지 인지 판별
- 오프셋 : 데이터의 위치를 나타냄 ex) 0이면 시작 ,185면 185바이트부터 시작한다는 의미
- 플래그 : 1이면 뒤에 메시지가 더있다는 의미 , 0이면 뒤에 메시지가 없다는 의미
4.2 IPv4 주소체계
- IP 주소 : 호스트, 라우터 , 인터페이스의 32비트 주소체계
- 인터페이스 : 호스트와 물리적 링크 사이의 경계
- 라우터는 여러개의 인터패이스를 가질 수 있음
- 서브넷 마스크
- 223.1.1.0/24 의 경우 32비트 주소의 왼쪽 24비트가 서브넷 주소라는 것을 의미
- 여기에서 '24'가 서브넷 마스크
- 서브넷 : 호스트들의 인터페이스들과 라우터 인터페이스로 연결된 네트워크. 라우터에서 인터페이스를 분리하여 고립된 네트워크를 서브넷이라고 함.
- CIDR( Classless Interdomain Routing ) : a.b.c.d/x 형태를 가짐 x는 주소 첫부분의 비트 수
- Destination -based forwarding
- IP주소의 범위를 정해서 IP주소가 해당 범위안에 있을 시 해당Link 인터페이스로 전송
- Longest prefix matching
- 목적지 주소의 범위가 겹칠 때, 더 작은 범위안에 해당되는 link로 보내야 한다.
- DHCP ( Dynamic Host Configuration Protocol) : 동적 호스트 구성 프로토콜
- 해당 호스트가 네트워크에 접속하고자 할 때마다 동일한 IP주소를 받도록 하거나, 다른 임시 IP주소를 할당하게 할 수 있음.
- DHCP서버는 호스트가 연결하고 끊을 때마다 쓸수 있는 IP주소의 목록을 갱신.
- 호스트가 연결할 때마다 DHCP 서버는 쓸 수 있는 주소 집합에서 임의 주소를 할당, 호스트가 연결을 끊을 때는 주소를 집합으로 되돌림.
- 클라이언트/서버 프로토콜
- DHCP 발견(클라이언트) ->DHCP 제공(서버) ->DHCP 요청(클라이언트) ->DHCP ACK (서버) 순으로 연결이 이루어짐
- DHCP ACK 안에는 클라이언트의 IP주소, 가장 가까이에 있는 라우터의 주소, DNS서버의 ip주소와 이름을 보내준다
- 네트워크 주소 변환 (NAT)
- it장치가 늘어나 ip주소가 부족해짐 => Public망과 Private망을 구별해 네트워크 주소를 할당
- NAT 라우터는 외부 세계로는 하나의 IP주소를 갖는 하나의 장비로 동작
- 모든 홈 네트워크로 들어오는 트래픽은 NAT라우터를 거쳐감
- NAT라우터에서 NAT 변환 테이블을 사용하여 홈 네트워크의 장치들에게 데이터를 뿌려
4.3 인터넷 제어 메시지 프로토콜(ICMP)
- 일반적으로 오류 보고에 사용
- 타입과 코드 필드가 있음
4.4 IPv6
- IPv4에서 32비트 IP주소 공간이 빠른속도로 고갈되어 가고 있어 개발됨.
- IPv6 데이터그램 포맷
- 확장된 주소기능 : ip 주소 크기를 32비트에서 128비트로 확장
- 간소화된 40바이트 헤더 : 40바이트의 고정 길이 헤더로 IP데이터그램을 더 빨리 처리할 수 있음
- 흐름 라벨링과 우선순위 : 패킷에 우선순위를 부여할 수 있음
- 트래픽 클래스 (8비트 ): IPv4의 TOS 필드와 비슷한 의미로 만든 필드
- 흐름 라벨 (20비트): 데이터그램의 흐름을 인식하는데 사용
- 페이로드 길이 (16비트): 고정 길이 40바이트 패킷 헤더 뒤에 나오는 바이트 길이, 부호없는 정수
- 다음 헤더 : 데이터그램의 내용을 구분 EX) TCP,UDP 구분
- 홉 제한 : 라우터가 데이터그램을 전달할 때마다 1씩 감소. 0보다 작아지면 데이터그램을 버림
- 출발지와 목적지 주소
- 데이터 : IPv6 데이터그램의 페이로드
- IPv4와 비교
- 단편화/재결합 : IPv6에서는 단편화와 재결합을 출발지와 목적지만이 수행. 데이터그램이 너무 클 경우 ICMP 오류 메시지를 송신자에게 보내, 송신자가 데이터그램 크기를 줄여 재전송
- 헤더 체크섬 : IPv4에서는 라우터 마다 체크섬을 재 계산해야되어 비용이 많이 듬(TTL이 계속 변하기 때문에), 기술의 발전으로 오류가 줄어듬 과, 트랜스포트 계층 프로토콜, 데이터 링크 프로토콜에서 체크섬을 수행하므로 네트워크 계층에서는 필요 없다고 판단
- 옵션 :40바이트의 고정길이 헤더로 인하여 표준 헤더필드에서 빠짐.
- IPv4에서 IPv6로의 전환
- 플래그 데이 방식 : 전환되는 날짜를 정하고 한번에 전환
- 이중 스택 방식 : IPv6 노드에 IPv4를 처리할 수 있게 구현. DNS노드가 요청하고 있는 노드의 상태에 따라서 주소를 답변해 줌
- 터널링(Tunneling) : IPv6 데이터그램이 IPv4노드를 지나가야 할때, IPv4에 맞는 추가 헤더를 붙여 이동시킴
반응형