일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 그리드 알고리즘
- 그리드
- 재귀
- 도커
- 역방향 반복자
- 순열
- SQL
- 자바
- 알고리즘
- 자료구조
- AWS
- CI/CD
- 다이나믹 프로그래밍
- 이분탐색
- 스프링
- 그래프
- 분할정복
- GIT
- 컴퓨터 네트워크
- Spring
- BFS
- 트리
- TCP
- 백준
- 다이나믹프로그래밍
- 분할 정복
- HTTP
- 브루트포스
- dfs
- github action
- Today
- Total
코딩성장스토리
컴퓨터 네트워크 개념 정리(CH.4 Network Layer:Data Plane) 본문
네트워크 계층
Network Layer: Data Plane
3계층은 네트워크 코어에도 다 들어있음
forwarding:input link → outputlink
routing: 패킷을 목적지에 갈 길 결정해주는 것
1. data plane
-local
-input link에서 받은 데이터그램을 어떤 output link 로 결정해줌
-알고리즘으로 받은 값 테이블로 저장후 데이터 이동
2.control plane
-네트워크 전반적
-라우터 사이에서 목적지까지 길을 정해줌
-라우터 각자 개개인 라우팅 알고리즘 공유함 (알고리즘으로 길 정함)
SDN control plane
알고리즘이 라우터에 없고 remote controller에서 알고리즘 값을 라우터에 내려줌
라우터 아키텍쳐
- 프로세서-control plane
- 스위칭 fabric -data plane하드웨어)
- router input port -data plane하드웨어)
- router output port-data plane하드웨어)
input port
- line terminal
- link layer protocol
- decentralized switching
-테이블을 찾아본다
- 목적지(ip)보고 포워딩
- 헤더에 다른 필드 참조 포워딩
switching fabrics
-input port를 어느 output port에 연결할지 결정
-속도가 중요하다 (input n개 r개의 q를 가지고 있으면 최소 nr 속도를 내야함)
첫번째 generetion 라우터 -병목현상, 더 느림
swithcing bus -버스가 주소지로 데려다 주는 느낌 but bus contention 대역폭에 속도 제한 , 각 포트 별 영향을 받음
swithcing via interconnection network - 회선 수를 늘림 서로 영향을 안받음,multiprocessor , multistage swith 로 데이터를 더 쪼개고 보냄으로 더 속도 빠름 (동시성 적용)
input port queing
- Head of the line (HOL) blocking - 갈 수 있는데 앞에 있는 애 때문에 못감
output port
- buffering - 혼잡이나 버퍼 공간 부족하면 데이터 손실
- scheduling discipline -네트워크 최우선 스케줄림 선택
-너무큰 버퍼는 딜레이가 증가할 수 있다
-어느정도 버퍼크기를 유지해야하나 : (RTT*c)/루트(n) ,
buffer management:
- drop: 버려도 어떤걸 버려야 효율적인가 1.tail drop 2.priority
- marking: 어느 패킷에 혼잡신호를 마킹하나
packet scheduling
FCFS - 먼저 온 녀석 먼저 보내기, 우선순위, round robin(일부일부 뺴서 기다리는거 방지-문제점 우선수순위를 정해서 먼저들어왔음에도 밀릴 수 있음), weighted fair queueing(가중치에 의거해서 골고루 보내기)
망 중립성(Network Neutrality)
누구나 공평하게 망 사용하자
IP address: 32bit host or router interface(host/router 와 물리적 link 사이의 연결)에 할당
subnets- router를 통과하지 않고 갈 수 있는 범위
서브넷 마스크 -어디까지가 네트워크 범위인지 체크 and 연산후 subnet part host part 구분지음
라우터-라우터 사이도 subnet
ip addressing :CIDR (Classless InterDomain Routing) (클래스방식을 없앰)
a.b.c.d/x - a클래스 .b클래스 등 구분지음 그리고 x만큼 서브넷 부분
-그럼 클래스 방식이란? 원래 ip는 a.b.c.d 로 a클래스 b 클래스 구분지음 즉 host는 고정적으로 주어짐- ip 낭비 또는 부족
DHCP(Dynamic Host Configuration Protocol) 자동으로 ip 를 받아옴
route aggregation - 서로 다른 subnet을 알려주기 위해 상위 Provider ISP router에게 메시지를 보내 줘야 함. 이를 활용해서 관리 하는 라우터 범위 변경가능
NAT
private IP address는 인터넷에 나가지 못 하는 non-routable address. 이를 routable한 Public IP address로 convert해주는 것을 NAT라고 한다.
10/8~ , 172.16/12~ , 192.168/16.~. 인건 다 사설 ip
이점: 호스트의 주소가 바뀌어도 사설 주소는 안 바뀌어도 됨 , 보안적으로도 오름
단점
- 라우터는 원래 3계층임 근데 NAT를 사용하려면 port까지 가야해서 4계층까지 가야함 즉 규약을 어길 수 밖에 없음
- NAT 뒤에 서버가 존재하면 클라이언트는 들어오기 힘듬
IPv6
주소 부족 문제 해결 하지만 갑자기 모든 것을 바꾸기 힘듬
checksum 없음
fragmentation/reassembly 없음
옵션 없음
IPv4 에서 IPv6로 어떻게 이동하나
tunneling - IPv6 datagram 위에 IPv4의 헤더를 붙인다
Generalized forwarding : 패킷을 핸들링 할 수 있는 간단한 룰 (match : 똑같은 애를 받아서 → action : 이런이런 행동을 한다.)
flow: 헤더 필드 값들을 정의하는 것 (link , network, transport-layer 필드)
OpenFlow
router switch firewall nat — match , action 이용해서 처리
Middleboxes :서로 통신하는 두 개의 최종 호스트 사이의 경로에 있는 네트워크 내 디바이스
- 하드 웨서 솔루선 → 소프트웨어 쪽으로 이동
'CS' 카테고리의 다른 글
컴퓨터 네트워크 개념 정리(CH.06 The Link Layer and LANs) (0) | 2022.12.03 |
---|---|
컴퓨터 네트워크 개념 정리(CH.05 Network Layer:Control Plane) (0) | 2022.12.03 |
컴퓨터 네트워크 개념 정리(CH.3 Transport layer) (0) | 2022.11.26 |
컴퓨터 네트워크 개념 정리(CH.2 Application Layer) (1) | 2022.11.26 |
컴퓨터 네트워크 개념 정리 (CH.1 네트워크란) (2) | 2022.11.26 |