728x90
라우터의 역할
- forwarding : 패킷의 목적지와 forwarding table을 보고 어느 링크로 보낼지를 결정하는 일
- routing : forwarding table을 만드는 일
- longest prefix match forwarding : forwarding table의 목적 주소 항목은 IP의 prefix로 함으로써 forwarding table의 항목 수를 최대한 줄인다. 단, 두 항목 이상의 주소가 matching되는 경우 prefix가 가장 긴 경우를 선택한다.
- 이외에도 DNS server, NAT, DHCP, firewall 등의 기능을 가지고 있다.
IP 헤더
- source IP 주소, destination IP 주소
- length
- IP version : 현재 version은 4
- TTL(Time To Live) : 네트워크 내에서 가능한 hop의 수
- Upper Layer : transport layer에서 사용하는 protocol이 TCP인지 UDP인지를 나타낸다.
- MTU(Maximum Transfer Unit)의 크기는 링크마다 다르기 때문에 중간에 여러 패킷으로 분리될 수 있다. 이러한 경우를 대비해 필요한 헤더 내 필드가 identifier, fragFlag, fragment offset이다.
- identifier : 분리된 패킷이 원래 어떤 패킷에 속했는지를 알려준다.
- fragFlag : 뒤에 분리된 패킷이 남아있으면 1, 아니면 0이다.
- fragment offset : 현재 패킷이 어떤 부분부터 포함하는지를 나타낸다.
IP 주소
- IP 주소는 네트워크 인터페이스를 지칭하는 주소
- 라우터는 서로 다른 네트워크와 연결된 여러 개의 네트워크 인터페이스를 가지고 있다.
- 계층적 주소 : IP 주소는 네트워크(subnet, prefix) ID와 호스트 ID로 나눠 같은 네트워크에 속하면 같은 네트워크 ID를 가지도록 한다.
- subnet mask : 어디까지가 네트워크 ID인지를 알려준다.
- CIDR(Classless Inter-Domain Routing) : 기존의 class 개념을 없애고 네트워크 ID의 범위(subnet mask)를 임의로 조정한다.
Subnet
- 같은 prefix를 가지는 네트워크 인터페이스들의 집합
- 라우터를 거치지 않고 도달할 수 있는 호스트들의 집합
- 라우터는 여러 개의 subnet에 걸쳐 있는 장치로 여러 subnet을 연결한다.
NAT
- Network Address Translation
- IPv4의 IP 충돌 문제를 해결하기 위한 방법
- source IP address를 라우터를 거치면서 해당 라우터의 gateway IP로 바꾸고, source port도 후에 적절한 호스트에게 응답 패킷을 보내기 위해 적절한 port 번호로 바꾼다.
- 이후 응답이 오면 라우터에서 요청한 호스트가 받을 수 있도록 적절한 destination IP와 port를 바꿔준다.
- NAT를 사용하는 네트워크는 서버를 사용할 수 없다. NAT는 port number를 네트워크 내 어떤 호스트에게 데이터를 전달할지를 결정할 용도로 사용해서 호스트 내 어떤 process에게 데이터를 전달할지를 결정할 수 없기 때문이다.
DHCP
- Dynamic Host Configuration Protocol
- 동적으로 호스트를 인식하는 프로토콜
- address pool을 유연하게 사용할 수 있지만 대여해 준 address는 반드시 회수해야 한다.
- DHCP discover → DHCP offer → DHCP request → DHCP ACK 순서로 이루어진다.
ICMP
- Internet Control Message Protocol
- 네트워크에서 일어난 이벤트를 source에게 전달하기 위한 프로토콜
Tunneling
- IPv4에서 IPv6로 넘어가는 과도기에서 아직 IPv6를 이해하지 못하는 라우터를 위해 IPv4 헤더로 감싸서 변환하는 것
Routing Algorithm
- graph abstraction : routing을 위해 라우터를 노드로, 링크를 간선으로 추상화한 것
- routing algorithm의 범위는 전체 인터넷이 아닌 하나의 도메인에 속한 라우터들이다.
- link state algorithm
- 전체 네트워크 상태를 이용해 routing을 하는 algorithm
- dijkstra 알고리즘을 이용한다.
- broadcast를 통해 네트워크 내 모든 라우터에게 link state를 전달한다.
- distance vector algorithm
- 이웃한 라우터와 정보를 교환해 routing을 하는 algorithm
- 이웃한 라우터에게 특정 노드까지의 거리를 vector 형태로 전달한다고 해서 distance vector algorithm이라고 한다.
- d_x(y)를 x에서 y로 가는 경로 중 최소 비용이라 하면,
- d_x(y) = min (c(x, v) + d_v(y))를 통해 최소 경로를 찾는다.
- count-to-infinity
- distance vector algorithm의 취약점
- 일부 특수한 상황에서 어떤 간선의 비용이 증가하는 경우 두 라우터 사이에서 서서히 경로의 비용이 증가하는 현상으로 실제 경로를 바로 반영하지 못하는 문제가 발생한다.
- 이를 해결하기 위해 a → b로 가는 최단 경로에 이웃한 라우터 c가 포함되어 있을 때, 이 정보를 c에 전달하는 경우 이 경로의 비용을 무한대로 한다.
- 이를 poisoned reverse라고 한다.
Autonomous System(AS)
- 네트워크 내 자치권을 가지고 있는 routing domain
- intra-AS routing : AS 내에서의 routing으로 최소 cost를 가지는 경로를 찾는 것이 목적이다.
- inter-AS routing : AS 간의 routing으로 BGP를 이용해 경로를 찾아 나간다.
- AS를 제공하는 제공자와 AS를 제공받아 사용하는 customer가 존재한다.
- 서로 동등한 위치에 있는 peering 관계가 존재한다.
- BGP(Border Gate Protocol) : link state algorithm, distance vector algorithm과는 달리 경제적, 정치적 목적에 의해 경로를 설정하는 규약을 의미한다.
출처 : 컴퓨터네트워크 강의
728x90
'네트워크' 카테고리의 다른 글
6. Wireless and Mobile Networks (0) | 2021.10.06 |
---|---|
5. Link Layer (0) | 2021.10.06 |
3. Transport Layer (0) | 2021.10.05 |
2. application layer (0) | 2021.10.04 |
1. 컴퓨터 네트워크 기본 (0) | 2021.10.04 |