[데이터 평면과 제어평면]
- 데이터 평면
-입력 링크에서 출력 링크로 데이터그램 전달
-포워딩- 제어 평면
-라우팅 알고리즘(OSPF, BGP)
-데이터그램이 출발지 호스트에서 목적지 호스트까지 잘 전달되게끔 로컬포우딩, 라우더별 포워딩
- 네트워크 계층 구성요소와 서비스 설정, 관리하는 것을 제어
-경로설정
[네트워크 서비스 모델]
- 서비스 : 보장된 전달, 지연 제한 이내, 순서대로 패킷 전달, 최소 대역폭, 보안
- best-effort 서비스
-보장할 수 있는 서비스 없음
-매커니즘의 단순성 때문에 사용
-대역폭 충분 : 스트리밍 비디오 서비스 등에 많이 활용- ATM 네트워크 구조
- 보장할 수 있는 서비스O- Intserv 구조
- 인터넷 구조 서비스 모델
- 혼잡 방지 통신 목표
[목적지 기반 포워딩]
- 최장 프리픽스 매치 규칙
- 가장 긴 매치 엔트리에 매치
- TCAM
[스위칭]
- 포워딩과 기능 유사
- 메모리를 통한 교환
- 메모리 대역폭에 의해 제한된 속도 가짐
- 두 패킷 동시 전달 불가- 버스를 통한 교환
- 라우팅 없이 직접 출력포트로 패킷 전송
- 버스 대역폭에 의해 제한된 속도- 상호연결 네트워크를 통한 교환 ⭐
1. 크로스바 스위치
- 수직 버스, 수평 버스 : 여러 패킷 병렬 전달 가능
- 서로 다른 입력포트에서 같은 출력포트로 전달 불가
- 다단계(multy) 스위치
-서로 다른 입력포트에서 동일한 출력포트로 전달 가능
-데이터 그램을 고정된 길이의 셀로 분할
-출력 포트에서 원래 패킷으로 재조합
[큐잉]
- 출력포트 처리 : 스케줄링, 큐 제거, 필요한 링크 계층 및 물리 계층 전송
- 입력 큐잉 : HOL 차단 (블로킹)
-빨간박스가 초록박스 막음- 출력 큐잉 : 버퍼링
-도착 속도 > 출력 라인 속도- 버퍼 관리 ( 위 문제 해결법)
-drop-tail 정책 : 이미 대기중인 하나 이상의 패킷 제거
-스케줄링 정책 : 우선순위 스케줄링 (중요한 애부터 빼냄)
-버퍼링의 양 : 버퍼링의 양 RTT * 링크용량 C / 루트 흐름 N
[패킷 스케줄링]
- FCFS : 도착한 순서대로
- Priority : 우선순위 클래스 분류
- Round Robin : 클래스 번갈아서 (클래스 간 우선순위 존재 X)
- WFQ : 라우드로빈에서 클래스마다 다른 양의 시간 부여, 최소 대역폭 보장
[IPv4 데이터그램 포맷]
- 헤더에 가변길이 옵션 포함
- 20바이트 헤더 + TCP 20바이트 = 40바이트
[IPv4 주소체계]
- 32비트
- IP주소는 인터페이스에 할당
- IP주소 구조 : 서브넷 + 호스트 (CIDR) <- 구조 나눠서 표시
-서브넷 : 네트워크의 프리픽스,ISP
-호스트 : 같은 서브넷 안에서 구별,DHCP- 라우터와 호스트는 IP주소 왼쪽 24바이트가 동일 -> 서브넷
- 서브넷
-서브넷 마스크 : 223.1.1.0/24 에서 /24 -> 서브넷의 범위 표시
[DHCP]
- 호스트가 네트워크에 가입할 때 네트워크 서버에서 IP주소를 동적으로 가져옴
- 과정
-DHCP discover : 67, 68 포트
-DHCP offer : yiaddr(사용가능한 IP) 전송
-DHCP request
-DHCP ACK- IP주소 + first-hop 라우터 주소, DNS서버이름 IP주소, 네트워크 마스크
[ISP]
- ISP 블록 : 서브넷 주소 -3비트
- 최장 프리픽스 매치
- ISP가 주소 블록 얻는 방법
-ICANN 국제기관 : IP주소공간 관리
[NAT]
- 하나의 IP주소를 공유하는 여러개의 로컬 네트워크
- 보안 : 로컬 네트워크 내부의 장치는 직접 주소지정 X, 볼 수 X
- NAT 변환 테이블 : 나가고 들어오는 데이터그램 헤더 변경
[IPv6]
- 간소화된 40바이트 고정된 헤더 길이
- 플로우 : 패킷 단위가 아닌, 하나하나 어떤 서비스의 흐름들끼리 디테일한 제어 가능
- IPv4와의 차이점 : (체크섬, 단편화, 재결합, 옵션) 없음
- 터널링
-IPv4 -> IPv6 방법
-IPv4 데이터그램 내에 IPv6 데이터그램 포함
[SDN]
- 포워딩, 라우팅 기능 분리
- 매치 플러스 액션
- 목적지 기반 포워딩과 달리, 다른 헤더의 필드들이 기준(플로우) : 다양한 액션 가능해짐
- 원격 컨트롤러가 테이블 계산, 설치, 갱신
[오픈 플로우]
- 리모트 컨트롤러와 SDN 사이의 통신에 사용되는 프로토콜
- 기존에는 라우터가 포워딩테이블 계산 -> 이제는 리모트 컨트롤러가 포워딩
4.5 미들박스
- 소스 호스트와 목적지 호스트 사이의 데이터 경로에서 IP 라우터의 주된 기능 이외의 기능을 수행하는 모든 중개장치
- 라우터의 기능인 포워딩과 라우팅을 제외한 부분
- 유형 : NAT변환, 보안, 성능향상 등
CH05. 네트워크 계층 : 제어평면
[분류]
- Link State
-모든 라우터들이 가진 정보가 동일 : 브로드캐스팅
-네트워크 전체 정보 이용
-중앙 집중형 라우팅 알고리즘
-EX)다익스트라
-한계 : 진동 문제 (한쪽에 몰리면서 왔다갔다)- Distance Vector
-내 옆 이웃에게만 전달하면서 퍼져나감
-반복적, 비동기적, 분산적(나를 기준으로 주변으로 퍼져나가므로)
-한계 : 링크 변경 비용에 따른 라우팅 루프 <-비용 안좋게 변함
-포이즌 리버스 : 라우팅 루프 방지, 루프 안돌게 특정 경로 무한대로 설정
-수렴속도, 견고성이 LS보다 취약
[자율시스템 (AS)]
- 라우터의 그룹, 도메인 : 라우터를 조직화 해서 관리
- intra-AS
-같은 AS 내에서의 라우팅 (내부 목적지)
-동일한 라우팅 알고리즘 사용
- RIP, EIGRP : DV기반 / OSPF : LS기반
- inter-AS
-다른 AS 간의 라우팅 (외부 목적지)
-게이트웨이 라우터
[OSPF : 개방형 최단 경로 우선 프로토콜]
- LS 기반 프로토콜 : 견고성 굳
- 계층 구조 : local area, backbone
- border : 경계, 내부 -> 외부, 외부 -> 내부
[BGP]
- 목적지 주소가 아닌 CIDR 형식으로 표현된 주소의 프리픽스를 향해 전달
- inter-AS 라우팅 프로토콜
-수천개의 ISP(서브넷 주소)를 연결하는 프로토콜⭐
-CIDR 형식으로 표현된 주소의 프리픽스를 향해 전달- 역할
-서브넷 존재 알림
-경로 결정 프로시저- 연결
-eBGP : 인접 AS로부터 서브넷 도달 가능성 정보 획득(외부)
-iGBP : 모든 AS 내부 라우터에 도달 가능성 정보 전달(내부)
[BGP 경로 설정]
- prefix + attributes
-prefix : 브로드캐스트 중인 목적지
-attributes : AS-PATH, NEXT-HOP- 뜨거운 감자 라우팅 : 나한테 붙은 애 중에 최단길이 선택 (외부 길이 신경안씀)
- 정책에 띠라 경로 결정
[ICMP]
- 호스트와 라우터가 서로 간에 네트워크 계층 정보를 주고받기 위해 사용
-망 자체의 문제 발생 보고
-IP 데이터그램에 담겨서 전송- 메세지 형식 : Type + Code
-Type = 3 : 도달할 수 없음
-Type = 11, code = 0 : TTL expired- Tracerouter
-ICMP로 구현
-TTL expired 이용해서 어떤 호스트로의 경로라도 추적 가능
-타입3코드3 최종목적지~
[링크 계층 채널]
- 브로드캐스트 채널
-중앙 컨트롤러가 다수의 호스트 연결
-매체 접속 프로토콜(MAC) : 프레임 전송 조정- 점대점(point to point) 통신 링크
-원거리 링크에 의해 연결된 두 라우터 등에 사용
-PPP : 전화선, 고속 점대점 프레임 전송- 서비스 : 프레임화, 링크접속, 신뢰적 전달, 오류 검출 빛 정정
- 구현 위치 : NIC(네트워크 인터페이스 카드)
[패리티 검사]
- 단일 패리티 비트
-d+1번째 비트에 1의개수 짝/홀 되게 0,1 중 맞는 값 넣어줌- 2차원 패리티 비트
-가로세로 해서 1의 개수 짝/홀 ~
[체크섬 방법]
- 더한 값의 1의 보수
- 모두 1인 비트로 구성되어있는지 계산
-하나라도 0이면 오류 발생
-패킷 오버헤드 적다- CRC에 비해 오류에 취약
[CRC]
- 생성자 정해져있음 (G) R은 G-1
- XOR 연산 이용해서 계산
- 계산 결과 나머지 비트를 기존의 D의 뒤에 붙여서 보냄
- 실제 전송된 데이터 XOR 생성다항식이 모두 0이어야 오류X
[MAC 프로토콜]
- 다중 접속 프로토콜
-여러개의 노드를 동시전송 -> 간섭 발생
-채널을 어떻게 공유할 것인지 결정하는 분산된 알고리즘
1) 채널 분할 프로토콜
- 시분할,(TDMA), 주파수 분할(FDMA)
- 부하 높을수록 효율적
2) 랜덤 접속 프로토콜
- 분할 안하고 충돌 허용,감지 -> 충돌로부터 회복
- 부하 높을수록 비효율적
- ALOHA
-슬롯 안나눔 -> 회선 이용률 개손해
-간단- slotted ALOHA
-slot으로 시분할
-충돌 발생시 재전송
-자율적으로 전송 가능, 슬롯의 시작만 맞춤
-충돌 발생시 슬롯 낭비
-얘도 비효율적- CSMA
-전송하기 전에 확인 -> 누가 먼저 쓰고있으면 솔딩
-propagation delay문제
-확인했는데 없어서 보내기 시작했는데 충돌 -> 전체패킷 전송 시간 낭비
-비효율- CSMA/CD
-충돌 발생했을때 전송 멈춤 -> 회선 빠르게 정리 -> 충돌시 낭비되는 채널 줄어듬
-무선에서는 사용X
-binary backoff
효율 prop에는 반비례 trans에는 비례- CSMA/CA
-무선에서 사용
3) 순번 프로토토콜
- 가장 효율적
- polling
-round robin 이용
-마스터 노드 有
-빈 슬롯 없음 -> 높은 효율
-폴링 지연, 마스터 죽으면 다죽음- token passing
-토큰 : 작은 특수목적 프레임이 정해진 순서대로 노드 간 전달
-분산 방식 -> 효율적
-노드 하나 실패하면 전체 채널이 동작X
[DOCSIS]
- 케이블 접속 네트워크를 위한 링크 계층 프로토콜
- 주파수 채널을 통한 FDM -> 채널 분할 프로토콜 사용
- 하향 채널은 UDP만 가능 상향 태널은 TDM도 가능
- 상향채널에서만 다중 접속 문제 발생 -> 랜덤 접속 프로토콜 사용
[MAC]
- NIC ROM, 48비트
- MAC주소 : 주민등록번호, IP주소 : 집주소
- IEEE가 MAC 주소 공간을 관리해서 동일한 MAC주소는 존재할 수 없다
- IP주소는 휴대성이 X, MAC주소는 휴대성 좋음 (플랫한 주소)
[ARP]
- 3계층 IP 주소를 -> 2계층 MAC주소로 변환
- ARP 테이블
-IP주소에 해당하는 MAC주소 + TTL(MAC 주소 사용가능한 시간)- 랜 내에서의 라우팅 과정
-IP주소를 포함한 ARP 쿼리 브로드캐스트
-해당 노드가 자신의 MAC주소 담아서 응답 전송
-응답 받은 노드는 자신의 ARP 테이블에 정보 저장- 랜 밖에서의 라우팅 과정
[이더넷]
- 가장 우세한 유선 랜 기술 (근거리)
- 페이로드에 데이터그램 운반
- 비연결형 (handshaking x)
- 비신뢰적 : 오류검출 o, 정정 x
- CSMA/CD
[스위치]
- 2계층 장비
- 자가학습
- 다중 동시 전송 가능 (충돌X) -> full duplex 가능
- 목적지 같으면 충돌
- 스위치 테이블
-MAC주소
-스위치 인터페이스
-TTL
[가상 근거리 네트워크 VLAN]
- 스위치 계층구조 한계 : 트래픽 격리의 부족
- 논리적 망 분리
-트래픽 격리
-서로 다른 서브넷으로 간주- VLAN 트렁킹
-스위치에 대해 정의된 VLAN 간에 프레임 전달
-자신의 VLAN을 식별할 수 있는 포맷 필요 : 802.1Q 프레임 형식
[분류]
- 인프라스트럭처 방식
-기치국 존재
-handoff- 애드훅 네트워크
-기지국 존재x
-링크 커버리지 내의 다른 노드로만 전송 가능
[SNR]
- 측정된 수신 신호의 세기와 잡음의 상대적 비율
- 얘 커질수록 잡음에도 불구하고 원하는 신호 추출 가능
- BER : 오류검출확률
[무선 링크 문제]
- 숨은 터미널 문제
- 페이딩 현상
[채널과 결합]
- 개별 무선 단말기는 데이터 송수신을 위해 하나 AP와 결합 필수
- AP가 주기적으로 비컨 프레임 전송 요구
-AP의 SSID, MAC 주소 등 (비컨프레임)- AP탐색
-수동적 스캐닝 : AP로부터 비컨 프레임 수신
-능독적 스캐닝 : 내가 직접 요청, 탐사용 프로브 프레임 방송
[802.11 MAC 프로토콜 : CSMA/CA]
- DIFS : propagation delay 방지
- 채널 사용중이면 임의의 시간동안 대기
- SIFS후 ACK 반환
- ACK 없으면 BACKOFF 간격 늘리고 반복
[RTS와 CTS]
- 숨은 터미널 있어도 문제해결
- RTS패킷을 AP로 전송
- RTS가 충돌 가능하지만 짧다
- CTS : AP가 RTS에 대한 응답으로 브로드캐스트
[802.11 프레임]
- 주소 피드 4개 필요
-수신자의 MAC주소, 송신자의 MAC주소, 인터페이스의 MAC주소, 애드훅
- AP가 있기 때문