course Outline
- OSI layer에서의 Layer 3 protocol 개념 및 역할에 대해 이해
- Layer 3 역할 및 개념
- internet protocol 개념 및 동작 매커니즘
Layer 3
- network layer라고도 부름
- 1:1 이 아닌 여러 구성들이 얽혀있는 네트워크 구조에서 제 역할을 하는 layer
- 1:1관계는 L1과 L2의 관계이다
- 1:1 관계는 친구가 직접 만나는 경우로 network layer가 불필요하다 → device 두 개가 서로 연결 되어있다면 ip address(집주소)가 필요없다.
- network에서의 end to end로 packet을 전달을 해주는 역할
- 각 packet이 얽혀있는 network 환경에서 제 경로를 찾는 역할
- 멀리 떨어진 친구를 만나러 가는 길은 여러 경우의 수가 존재하므로 network layer가 필요하다.
- internet에 있는 device는 destination을 보고 전달해준다. → L3는 받는 사람, 보내는 사람의 주소를 보고 전달해준다.
- sub network간 이동
- Router
- packet forwarding을 주 역할로 하는 구성요소
- packet forwarding은 패킷을 전달하는 주 역할
- router가 network 내에서 적절한 방향으로 packet전달
- sub network 간 packet 전달 (라우터가 sub network를 연결한다)
Network Layer(L3) 의 역할은 간단
network layer는 forwarding과 routing을 한다.
forwarding
input port로 들어오는 packet을 다른 out port로 전송하는 동작
- forwarding을 data plane이라고도 함. 데이터만 주고 받는 경로
- router local action (= 내 주변 얘들한테 전달한다)
Routing
paht를 파악하기 위한 제어 동작 (경로 찾기)
- routing을 control plane이라고도 함. 제어정보만 주고 받는 경로. (rout 를 파악하기 위해서..)
- network wide process (= 전체 경로를 보기 위함)
하지만 protocol은 그 어느 layer 보다 복잡하다.
routing 알고리즘은 목적지 까지 하는데 수 많은 알고리즘이 있기때문에 길을 알아가는 과정이 복잡하다
forwording: 정해진 길을 따라 가는 과정.
routing: 네비게이션이 길을 검색하는 과정, paht 파악
Router
라우터는 L3 관점에서 능동적인 역할을 하는 network요소
- applicatoin이 동작하지 않으며 packet을 전달하는 역할만 수행한다.
- packet 생성 혹은 소비하는 일 없이 중간에서 packet을 전달하는 역할만 수행
- 계층도 physical layer, data layer, network layer로 3개의 계층만이 존재한다.
- L1과 L2는 하나의 기기에서 하나의 기기로 1 hop의 전달만을 수행한다
- L3에서 그렇게 온 패킷에 대해 자기껀지 아닌지를 판단 후 적절한 길을 찾아서 전송하게 되는것이다.
Forwarding table (= routing table)
- router들이 각각 보유한 것으로 inport로 들어온 packet에 대해 outport로 내보낼 규칙을 가짐
- router는 forwarding table을 보고 동작한다.
router는 forwarding 할때
- packet의 header내 정보를 보고, forwarding table와의 대조를 통해 어느 경로로 packet을 보낼 지 정한다.
router는 이 table(=forwarding table)을 어떻게 만들까?
- routing protocol 및 routing algorithm을 통해 이루어짐.
- table은 주변 router들과 협업을 통해 구축된다.
- 방대한 양의 rotuer들이 스스로 협력해서 network를 구성해서 forwarding을 하는 것을 실현해 준다. shortest path로 목적지와 가장 가까운 라우터를 선택하도록 서로 협력을 한다.
- 협력은 주변에 어떤 ip address가 있는지 알려줘서 내 주변에 있다면 내가 보내고 아니면 그 ip address가 주변에 있는 protocol로 forwarding한다.→ routing algorithm이나 routing protocol이 이런 식으로 동작해서 table을 만든다.
Routing algorithm
- forwarding table을 만들기 위한 각 router의 동작 메커니즘
- routing protocol에 의한 메시지를 수신하여 생성
- human engineer가 일일이 설정해야하는 부분을 자동으로 해줌
- centralized vs. distributed
- centralized: 작은 규모의 subnet 같은 경우 사용
- distributed: 일반적인 인터넷에서 작용하는 환경이다. 분산적인 환경, routing algirithm이 분산적으로 잘 설계되어 있음
routing protocol은 routing algorithm이 돌아가게끔 해주는 장치이다.
router vs. hub
hub
- L1 switch하고도 한다.
- L1에서 동작한다
- layer1 domain device
- physical layer 신호가 여과 없이 그대로 연결된 모든 end node에 전달됨 → 물리신호를 여과 없이 전달
- hub의 예시 : 엘리베이터 안에서는 인터넷 연결이 안되는데 증폭기를 달면 인터넷이 잘된다. 왜? 바깥의 신호를 받아서 엘리베리터 안에 전달하므로 → 신호를 그대로 보내주는 것이 허브의 역할이다
Router
- L3 switch라고도 한다.
- L3에서 동작한다.
- device라고하는 것은 여러개의 주소가 있는데 IP address가 네트워크 상에서 보는것이고 물리적 주소라고하는 mac address가 물리적인 link 연결상황에서 보는 주소
- 전달 받은 패킷의 헤더를 통해 IP Address를 보고 판단해서 어느쪽 네트워크로 보낼지 판단한다.
MAC 주소는, 무선 LAN 카드 또는 무선 LAN 기능 내장 기기에 개별적으로 부여되는 16진수 12자리의 단말 식별 번호(예:12:34:56:78:90:AB)입니다.
IP 주소는 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호이다
Router vs .Switch
Switch
- L2 switch 라고도 한다.
- L2에서 동작한다.
- Layer 2 domain device
- link interface 수준에서 전달
- link address 기반으로 보고 전달
- 컴퓨터에 연결된 공유기에서 유선 (연결된 link)을 통해 전달되게 하는 역할
- medium access control address (MAC address)를 기반으로 전달하게 된다
- 예를 들어서 local network에서 와이파이 등 한 링크를 통해서 스위치로 들어오면 L2에서 다른 link로 전달할 때 사용하는 것이 packet switch
link local address: 브로드 캐스트 도메인 내의 통신에 대해서만 유효한 네트워크 주소169.254.1.0 ~ 169.254.254.255 의 범위로 특별히 예약되어 있는 네트워크 주소 (IPv4)
Router
- Layer 3 device
- network wide 관점에서 path 결정
Network Service Model
forwarding & routing 말고도 L3가 제공하는 기능이다.
일반적으로 network layer (L3)이 상위 계층에게 보장해주는 service는 아래의 경우가 있다.
- Guaranteed delivery: packet이 상대방에게 전달 → 당연히 제공되야하는 서비스
- Guaranteed delivery with bounded delay: 상대방에게 전달될 뿐 아니라 특정 지연시간 기준 내에 반드시 전달
- In order packet delivery: packet이 순서대로 전달
- Guaranteed minimal bandwidth: 최소한의 전송률 보장
- Guaranteed maximum jitter: packet의 inter-arrival이 일정하게 들어오는 수준 보장 (최대 inter-arrival time 제한)
- Datagram networks
- L3에서 보장해주는 service를 잘 해주기 위해서 datagram (L3에서의 PDU (=packet)) 기준으로 전달
- Connectionless service 를 제공하는 L3 → 왜 connectionless인가? router끼리 전달할 때는 항상 연결 되어 있어서 연결에 대한 약속을 하지 않는다.
- datagram을 전달을 할 때, 네트워크 상에서 어떤 경로를 거쳐서 전달할지 정해 놓는 것이 아니라, 단지 첫 출발 노드에서 도착 노드의 ip address만 명시해주면 알아서 중간에 라우터들이 전달해주게 되는 것
- Datagram (=packet)을 기준으로 전달
- Vs. connection-oriented services (virtual-circuit network) : 우연하게 동작하기 위해 가상의 circuit이 있다고 가정
- TCP에서는 connection-oriented services를 제공
Internet Protocol
Layer 3 protocol의 한예시 (IETF 표준)
- DARPA internet project를 통해 최초로 개발
- 우리에게 익숙한 internet이 IP를 layer 3 protocol로 사용
- 거의 대부분의 통신 시스템 / 네트워크가 IP를 사용하므로, 오늘날 network상에서 통신을 하려면 반드시 필요한 protocol이다.
Connectionless operation
- IP의 특징
- 상대방 entity와 연결을 맺는 개념이 없고, 그때그때 도달하는 packet을 기준으로 동작
- Flexible하면서도 동작 측면에서 overhead가 덜함 → connection 맺고 끊음의 시간 낭비가 덜하다.
동작예시로는 서로 다른 링크 환경 (L1 / L2)도 IP는 network를 형성시켜줄 수 있는 강력한 호환성을 지님 → 하위 layer와 호환이 잘 된다.
Routing protocol
forwarding table 형성
IP protocol
datagram 전달
ICMP protocol
관리를 위한 부가적 절차
핑을 해주는 것이라고 생각하면된다
- 핑이란? 상대편 ip address가 본인 시점에서 사용가능한지 연결가능한지를 판단해서 signaling
Datagram Format
IPv4 datagram
IP protocol 동작 상의 핵심 존재
헤더는 고정 20byte(option제외)와 가변 option을 가진다.
- version number : IPv4 or IPv6
- Header length: option 부분을 포함한 header 길이, header가 언제 끝나는지 명시(언제 끝나는지 알기 위해서)
- type of service (TOS): IP datagram 유형, L3의 network 서비스에 대한 정보
- datagram length: data를 포함한 길이, 2^16bit로 표현, data가 언제 끝나는지 알아댜 다음 data 수행가능
- Identifier, flag, fragmentation offset: IP fragmentation 관련 제어 정보
- Time to live (TTL): lifetime, 많은 시간동안 죽은 datagram이 계속 떠돌아다니는걸 discard하기 위함
- protocol: 상위 protocol의 종류, 상위 layer가 어떤 프로토콜을 사용하냐
- Header checksum: header 의 parity, header에게 에러가 발생하면 안되기때문에 checksum으로 자가치유 가능하게 ...
IP address
IP protocol에서 사용하는 주소, 아래는 IP address의 종류이다.
- source IP address : 보내는 end node 의 주소
- destination IP address : 받는 end node의 주소
- domain name server(DNS)(=URL)에 의해 전환되는 주소
- DNS: domain을 IP로 바꿔주는 역할
- www.naver.com → 125.209.222.141
IPv4 addressing
ip에서 사용하는 32bit (4bytes) 주소
- host나 router의 interface별로 존재 (인터페이스는 유선과 무선으로 나뉨)
- 2^23, 40억개 존재
Dotted decimal notation
- x.y.z.w 형태이며, 각 숫자는 8bit, 0~255
일반적으로 internet 내에서 globally unique함
- NAT 영역은 locally unique하면됨
- wifi, LTE같은 경우 locally unique하다
IP망 구성 예시
- subnet: network관점에서 그룹으로 묶이는 주변의 host 그룹, routing을 수월하게 하기 위해 prefix를 동일하게 한다. MAC address는 유일하고, IP address는 subnet끼리 비슷하다.
- subnet은 물리적으로 비슷한 위치에 있고 L1/L2 수준에서 같은 영역에 있음 → 비슷한 위치에 있다면 비슷한 IP address로 구성되어야함
Classless interdomain Routing (CIDR)
subnet
- IP 주소 앞부분(prefix)로 지칭
- 223.1.1/.024: 앞부분 24bit(223.1.1)의 IP가 subnet 주소에 해당 → 앞부분 24bit의 IP가 subnet안에서 공유되어야함.
- subnet에 속하는 host들의 IP 주소 앞부분은 subnet IP주소와 동일하다.
- subnet간 routing은 이 subnet prefix로만 판단될 수 있음.
Gateway
- gateway는 같은 subnet안에 있어야한다.
- subnet에서의 대문 역할 → subnet안에서 들어가고 나가는 방향
- subnet에 유입되는 패킷을 가장 먼저 받아서 처리 → 패킷을 뿌려준다
- subnet에서 생성된 패킷 최종적으로 나가는 관문 → 패킷을 내보낸다.
- 같은 네트워크(=같은 subnet)에서는 MAC address를 이용해서 통신하므로 gateway필요하지 않음.
- 보통 IP 끝자리가 1이다. → 223.1.1."1"
IP Assignment
한 subnet안에 포함될 수 있는 host 수
- prefix를 제외한 나머지 IP주소 bit가 표현 가능한 개수
- prefix를 제이한 나머지 IP주소로 표현가능한 개수 중 하나는 gateway이고, 255는 브로드캐스트를 위해 사용
- 따라서 서브넷마스크가 24bit라면 253개의 host가 할당가능 (255에서 gateway하나 빼고 브로드캐스트 하나빼서 253)
- 보통 0, 1, 255(8bit 시)은 사용하지 않음
block of address 에 대한 할당
- ISP가 가진 IP를 기관이 할당 받음
각 host가 ip 주소를 받는 방식이다
- 기관 담당자에게 직접 신청해서 수동으로 설정하거나
- dynamic host configuration (DHCP)에 의해 자동으로 할당 받을 수 있다
IP Datagram Fragmentation
IP는 공통된 layer인 반면 하위 계층은 다양한 방식이 존재함
- L1과 L2 방식에 따라 기본 전송 단위 bit수가 다를 수 있음
- L2별로 서로다른 Maximum Transmission Unit (MTU) 존재
- IP datatgram은 MTU보다 작아야 L2에 전송이 가능해짐
router입장에서는 서로 다른 MTU의 Link가 각 interface에 존재하면 한쪽에서 큰 IP datagram이 들어와서 더 작은 MTU의 interface로 전달해야하는 경우 발생 → 이 경우 router는 fragmentation을 해야한다.
필요시 rotuer는 IP datagram을 쪼갬 → 여러개의 fragment로 나눔
destination 의 IP의 service 계층으로 올리기 전에 reassemble 되어야함. → protocol transparency 때문에
- destination host 측 IP layer는 fragment를 모두 수신해서 original datagram을 복구해야 함
- IP header의 Identification, flag, fragmentation offest field 이용
Internet control Message Protocol (ICMP)
host 혹은 router간 L3수준에서 message를 주고받게 하는 프로토콜
실제 data를 전달하는 용도가 아닌 , network관리 측면에서 주로 활용됨
- 주로 network layer관점에서의 IP연결성 상태를 확인해 보기 위해 활용
- 예를들어서 application이 network 문제로 인해 동작을 안하는 것처럼 보이는 경우 → icmp (=핑)를 이용해서 IP단 에서 packet송수신이 되는 지 확인 가능, network 관리 측면에서 network 죽었냐 살았냐를 확인한다.
ICMP message
- 일반 IP datagram 형태의 payload 부분에 담겨 있음
- 예를 들어서 Ping: echo
- ICMP type에 따라서 code가 존재하는데 ,link상황에 맞게 존재한다.
Next IP : IPv6
- address space exhaustion : IP 주소가 턱없이 모자름
- 2 level addressing (network / host)은 비효율적임
- 연결되지 않은 IP는 사용 못함
- IP를 사용하고자 하는 host가 점점 많아짐
- Requirements for new types of service
- 다양한 service에 대한 Quality of Service (QoS) 지원 필요
- e.g.) voice, video streaming
IPv6 Datagram Format
IP address의 길이 늘리는 용도로 나왔고, 이런게 있었다 정도만 알기
- Expanded addressing capabilities → IPv4에서 주소가 부족하니까 확장해야한다는 개념에서 나온것
- IP 주소가 32bit -> 128bit로 확장
- 40bit 고정 크기의 header로 정의 : option mechanism 개선
- Flow labeling and priority
- Flow 별 quality of service 관리
- Fragmentation : source/destination에서만 가능
- Header checksum 없음
- overhead가 크고 사용을 잘 하지 않음. 호환성에 문제가 있음
※참고자료
'CS > 컴퓨터네트워크' 카테고리의 다른 글
10. Layer4: Transport Layer (0) | 2023.05.22 |
---|---|
9. Layer 3: Routing (0) | 2023.05.16 |
Layer 1 & 2 (0) | 2023.04.12 |
Protocol Functions 2 (0) | 2023.04.11 |
Protocol Functions (0) | 2023.04.10 |