네트워크 레이어의 핵심 2가지
forwarding
routing
IP 헤더
TTL (Time To Live) : 라우터를 거칠때마다 -1 씩해줌 0 되면 버림.
IP address
IPv4 : 32비트 8 비트씩 끊어서 10진수로 바꾼게 우리가 아는 아이피 주소
아이피 주소는 네트워크 인터페이스 카드(NIC) 를 지칭하는 주소
따라서 여러개 꽂으면 여러개 아이피 가질 수 있음. ( 라우터가 여러개 아이피를 가지는 대표적인 예)
라우터는 forwarding table을 보고 어디로 보낼 지 결정한다.
Hierarchical addressing
12.34.158.0/24 라는것은 앞에 24피드가 네트워크 어드레스 라는것이고, 뒤에 8비트가 호스트 아이피라는 것이다.
포워딩 테이블이 단축되는 장점이있다. 아니면 무한정 늘어남
서브넷 마스크 Subnet Mask: 아이피 주소랑 항상 같이 다님. 네트워크의 주소의 범위를 알려줌
255.255.255.0 이라는것은 네트워크의 크기가 24비트라는것임
CIDR ( Classless Inter-Domain Routing)
class를 사용하지 않음. 기존에는 네트워크 어드레스 비트 , 호스트 비트를 정하여 그룹 A,B,C등으로 나뉘었음.
하지만 호스트 비트를 유연하게 바꾸면서 포워딩 테이블이 필요하다면 크기가 줄어들게 함
Longest Prefix Match Forwarding: 라우터가 하는일 앞의 비트가 가장 길게 매치되는 곳으로 이동시킨다.
포워딩 테이블의 네트워크는 누가 채우냐? 라우팅 알고리즘이 채움
Subnets 서브넷
정의 : 라우터를 거치지 않더라도 접근할수 있는 집합. 같은 prefix를 가진 집합 .
라우터는 하나의 서브넷에 속한것이 아니라 여러가지 서브넷에 속해있다고 볼 수 있다.
위 사진에서 서브넷은 6개임. 특히 라우터는 각기 다른 서브넷을 3개씩 가짐.
NAT : Network Address Translation
IPv4는 이론상 32비트임으로 2^32 개의 호스트 아이피를 지원가능 ( 약 40억개) 하지만 부족함
그래서 나온게 IPv6 하지만 현재까지 IPv4를 쓰고 있음 .
IPv4의 문제점: 아이피 주소 부족 문제, 보안문제.
어떠한 트릭을 쓰기 때문에 가능한것인데, 그것이 NAT임.
NAT ( network address translation):
NAT을 거치기전에에 내부에서만 유일한 아이피 주소를 사용함.외부에서는 유일한 주소 아님. 하지만 nat을 거치면서 전체에서 유일한 하나의 아이피 주소를 바꿔준다(단, 또 다시 밖에 NAT을 거칠수 있음 그래서 또 다시 하나의 작은내부에서만 유일한 아이피 일 수 있음 ) . 포트 까지 바꿔준다.NAT을 기준으로 WAN ,LAN을 나눈다.
NAT으로 다시 들어오는 아이피들은 NAT translation table의 포트번호 참조하여 알맞은 호스트로 들어가게 된다.
문제점: NAT이 헤더에 해당하는 IP를 바꾼격이 된다. 그래서 내부에서 서버를 운영할수 없다. 포트넘버를 찾을수 없기 때문. 그리고 패킷을 뜯으면 안되는데 뜯게되는 룰을 어기는것. 그래서 사실은 근본적인 해결책으로 볼 순 없다.
DHCP (dynamic host configuration protocol)
처음에 뚜껑을 열면 호스트에게 일정시간동안 아이피를 잠시 주는 역할과 정보를 주는 역할을 함.
동작: 호스트는 맨처음 자기자신의 대한 정보도 알지 못한다. DHCP에게 아이피를 받아야 하는데 이때, 브로드캐스트로 서브넷에 있는 모든 아이피에게 DHCP discover메세지를 보낸다. 나머지들은 이 메세지를 무시하지만 DHCP서버만 의미있게 받는다. 그리고 DHCP offer메세지를 호스트에게 보내기 위해 또 브로드 캐스트로 보낸다. 그리고 여기에 부여할 IP주소를 부여한다.
호스트가 이 아이피가 맘에들어 수락하려면 DHCP request를 보낸다.( 여러 DHCP서버에서 올수 있기 때문에 수락하려면 offer를 보내야됨). 역시나 브로드캐스트
DHCP discover -> DHCP offer -> DHCP request -> DHCP ACK
보통은 Gateway Router에 DNS, DHCP,NAT ..등등 다 있다.
IP fragmentation
MTU ( Max tranfer unit size ) : 라우터가 보낼 수 있는 링크레벨의 맥시멈 프레임 사이즈
각각의 링크계층의 종류에 따라 다르기때문에 때론 나누어져야 하는 경우도 있다.
이 때문에 필요한것이 IP datagram의 헤더에 flags, fragment offset
ICMP internet control message protocol
TTL이 다됬다는등등 네트워크에서 발생한 사건을 알려주기 위한 메시지가 필요하고 그것에 대한 프로토콜이 필요하다.
IPv6
주소가 128비트이다.
아직 널리 쓰이지 않기 때문에 IPv4랑 같이 쓰임 . 같이 쓰이기 위해서 터널링이 필요하다.
터널링 IPv4 와 IPv6를 이용하기 위해 변환 해주는것
라우팅 알고리즘
forwarding table: longest prefix matching
그런데 이 테이블을 어떻게 만들었는가? 라우팅 알고리즘
>>라우팅 알고리즘
- 네트워크 전체를 아는경우 : link state 알고리즘 (다익스트라)
- 이웃의 라우터경로만 알고있다는 가정이있는 경우 : distance vector 알고리즘 (베르만포드)
두가지 모두 AS안에서의 네트워크 알고리즘. 즉, intra-AS routing 알고리즘임
링크 스테이트 알고리즘을 적용하는 범위는 전체 네트워크가 아니라 하나의 도메인이 속한 네트워크이다( 예를들어 한양대학교 네트워크 , 중앙대학교 네트워크 등등)
distance vector 알고리즘
표가 변화가 없을때 까지 반복하는데, 만약 업데이트가 일어난다면.
작은 수는 금방 끝나지만,
큰 수로 업데이트가 되었을때에는 많은 수를 반복하게된다 (counting infinity)
그것을 해결하기위해 되돌아 가는길이라면! 무한대로 넘겨주어야 한다. (Poison reverse)
AS ( autonomous systems 또는 ASes)
예를 들어 한양대학교 네트워크 등등 그룹적인 네트워크 . 다른말로 하나의 네트워킹에 대하여 자치권을 가진 시스템
AS끼리 네트워크를 형성하여 거기에도 라우팅 알고리즘이 필요함 그것이 inter-AS routing protocol
각각의 as는 각자 자기자신의 번호를 부여받는다. 하버드는 11번 한양대 9322
전체 전세계에는 7만개에 해당하는 AS가있다.
AS끼리는 갑을 관계 같이 제공자와 사용자 관계가 존재한다.비슷한 경우에는 Peering 관계라고함. 나보다 갑인 관계에서는 사용자가 제공자에게 돈을 내고 사용해야됨.
따라서 여기서 생기는 네트워크는 라우팅 프로토콜로는 안됨
그래서 나온것이 BGP가 나옴
BGP ( border Gateway Protocol) : AS경계에서 라우팅을 하는것
as같의 정책에 따라서 적용된다.
파란색길로가면 돈을 안내고 갈 수 있음. peer 보다 customer를 더 선호함.
>> 정리
RIP , OSPF : intra-AS 알고리즘을 이용한것
BGP : inter-AS 프로토콜
'📗 Computer Science' 카테고리의 다른 글
[2장] 운영체제 - Operating System Concepts 공룡책 (0) | 2021.01.13 |
---|---|
[네트워크] Link Layer - 링크 계층 (0) | 2021.01.07 |
[1장] 운영체제 - Operating System Concepts 공룡책 (0) | 2021.01.07 |
[네트워크] TCP 개념 (0) | 2021.01.01 |
알고리즘 정리 (0) | 2020.12.14 |