[컴퓨터네트워크] Chapter 5. Network Layer
Layer 3 : Network Layer.
- L3, L4는 모든 기술을 흡수 할 수 있도록 안정적이다.
- L1 은 1홉에서 1대 1
- L2 도 mac에서 1대1로
- L 3 는 다수에게. 전달하는 역할. 모든 노드에서 네트워크 레이어가 동작한다.
- 1:1이 아닌 여러 구성들이 얽혀있는 네트워크 구조에서 제역할을 하는 layer
- Network에서의 end-to-end로 packet 전달을 해주는 역할
- 각 packet이 제 경로를 찾는 역할
- Forwarding
- input port로 들어오는 packet을 다른 outport로 전송하는 동작 (경로 상에서의 특정 부분 통과)
- Data plane(어느 링크를 선택할 것인가), Router-local action
- Routing
- path를 파악하기 위한 제어 동작 (경로찾기)
- Control plane(네트워크가 어떤 네터워크로 가야하는지에 대한 모든 것), network wide process
라우팅을 통해 포워드 테이블 만듦.
Router
- Packet 생성 혹은 소비하는 일 없이 중간에서 packet 전달
L1, L2가 이더넷, 와이파이 처럼 둘이 다르다면 L3는 같기때문에 전달이 가능하다.
- Forwarding table (혹은 routing table)
- Router들이 각각 보유한 것으로, inport로 들어온 packet 에 대해 outport로 내보낼 규칙을 가짐
- Router는 forwarding을 할 때, Packet의 header 내 정보를 보고, Forwarding table와의 대조를 통해 어느 경로로 packet을 내보낼 지 정함
- 라우팅 알고리즘
- 라우팅 프로토콜(라우팅 알고리즘을 모와서 프로토콜)을 통해 이루어짐.
- 라우터들과 협업을 통해 구축(데이터 주고 받는 것처럼 자주 정보를 주고 받지 않음 약 30초정도)
- 서브넷을 통해서 몇홉이 있느냐 파악하고 그 정보를 주고 받음. → 업데이트
Centralized(중앙 집중) vs distributed(분산)
- 정적인 라우팅을 해줘야 할 때(기업)는 중앙 집중
- 세계적인 라우팅은 분산
Router vs Hub
- Hub : L1 (Layer 1 domain device)
- L1입장에서 그대로 전달해준다. ex) usb hub
- Multiport Repeater라고 불린다.
- 엘리베이터에 리피터를 달아서(안테나 달아서) 통신을 바로 연결해준다.
- Switch : L2
- 같은 이더넷, 와이파이를 사용한다면 전달해준다. MAC address기반. (ip adrress L3 가 없어도 LAN안에서 연결 되어있는 기기간 통신이 가능하다.)
- Router : L3
- 서로 다른 네트워크 까지 연결 가능하다.
- network-wide관점에서 path 결정
Network Service Model
네티워크의 선택 사항은 다음과 같다.
- 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
- Connectionless service를 제공하는 L3
- Datagram (=packet)을 기준으로 전달
- L3 입장에서는 connection을 맺지 않고 각각을 따로따로 보낸다.( = 패킷은 여러 방면으로 간다.
- 반대는 sercuit switch network
- 우리에게 익숙한 internet이 IP를 layer 3 protocol로 사용
- 거의 대부분의 통신 시스템/네트워크가 IP를 사용하므로, 오늘날 network 상에서 통신을 하려면 반드시 필요한 protocol임
-
Connectionless operation
- 상대방 entity와 연결을 맺는 개념이 없고, 그때그때 도달하는 packet을 기준으로 동작
- Flexible하면서도 동작 측면에서 overhead가 덜함
L1, L2 가 다르지만 L3는 같기때문에 호환 가능.
L2층을 살펴보면 LAN1 , MAC - WAN, LAPF
Routing protocol : forwarding table 형성
IP protocol : datagram 전달
ICMP protocol : 관리를 위한 부가적 절차
가 묶여서 L3에 속한다.
Datagram Format
32bits = 4bytes
데이터는 32bit가 아니라 밑으로 쭉 더 커질 수 도 있음.
32 bit 헤더 5개가 있으니깐(Options 제외) 헤더는 총 20bytes
Version number | IPv4 or IPv6 |
---|---|
Header length | • option 부분을 포함한 header 길이 보통 20 bytes를 쓰긴함. |
Type of Service (TOS) | Network Service Model의 서비스 종류가 들어있음. ex)Guaranteed delivery, Guaranteed maximum jitter |
Datagram length | data를 포함한 길이 (데이터그램은 2^16 까지 표현 가능하다. = 65000 65kb) |
16 - bit - Identifier | 순서대로 데이터 전송을 위해 몇번째 패킷인지 정의 |
flag / fragmentation offset | 잘라진 패킷이 있는지 / 데이터 자를 때 파편이 어디서 부터 시작하는지 |
Time-to-live(TTL) | 데이터 전달시 몇 홉까지 전달할건지(L1, L2 는 1홉만 가능하지만, L3 는 다 가능) 하지만 너무 많은 홉은 불가능하기때문에 |
Protocol | 상위 protocol의 종류 |
Header checksum | 헤더의 패리티. |
Source IP address | 어디서 출발해서 어디까지 가느냐 |
Destination IP address | 경로 |
IP address
- ip protocol에서 사용하는 주소
- Source IP address : 보내는 end-node의 주소
- Destination IP address : 받는 end-node의 주소
- Domain Name Server(DNS)에 의해 전환되는 주소
- www.naver.com -> 125.209.222.141
IPv4 Addressing
- IP에서 사용하는 32bit (4 bytes) 주소
- Dotted-decimal notation
- x.y.z.w 형태이며, 각 숫자는 8bit, 0 ~ 255
- LTE, 와이파이, 이더넷 다 ip address 가 다르다.
- 2^32, 40억개가 존재.(너무 적다) → NAT 기술로 해결.
- NAT 우리가 사용하는 기기의 ip는 사설망에서만 동작, 공인 IP가 아니다.
subnet
- network 관점에서 그룹으로 묶이는 주변의 host 그룹 (L1, L2를 공유하는 그룹을 의미함)
- 물리적으로 비슷한 위치에 있고 L1/L2 수준에서 같은 영역에 있음
- IP 주소의 상위 부분을 공유한다. ex) 223.1.1 , 223.1.2,
Subnet : IP 주소 앞부분(prefix)로 지칭
- 223.1.1.0/24 : 앞부분 24bit의 IP가 subnet 주소에 해당
- Subnet에 속하는 host들의 IP 주소 앞부분은 subnet IP 주소와 동일
- 223.1.1.xxx 형태
- Subnet간 routing은 이 subnet prefix로만 판단될수 있음
- Subnet에 속하는 host들의 IP 주소 앞부분은 subnet IP 주소와 동일
문제
223.1.1.0/24 다. 이 서브넷이 없는 호스트는?
- 223.1.1
- 223.1.2
이때 24가 prefix이다. 빨간 부분을 의미한다. (서브넷이 공유하는 값)
223.1.1.0 을
11011111000000010000000000000
값이 23으로 바뀌면 2번이 정답이다.
kt를 이용하면 ip를 4개 준다했을때. 32비트중 30개를 주면 4개의 host를 줄 수 있다.
[ 30개 ]00 01 10 11 → 4개의 Host
이렇게 주면 효율적이다.
[ 29개 ]000 001 010 ….. 111 →8개의 Host
8개를 줄 수 있는 것같지만 브로드 캐스트 채널 111 (모든 host가 다 들어야함) 이다.
223.1.1.0/30
223.1.1.4 0100
223.1.1.3 0011
223.1.1.4/30
223.1.1.7 [정답]
223.1.1.8
prefix 로 서브넷 마스크 로 바꿀 수 있다.
- Gateway : subnet에서의 대문 역할
- subnet에 유입되는 packet을 가장 먼저 받아서 처리
- subnet에서 생성된 packet이 최종적으로 나가는 관문
- 보통IP끝자리가1 (굳이 지키지 않음)
ip주소와 기본 게이트 주소는 다르지만 같은 서브넷에 있다.
IP Assignment
- 한 subnet 안에 포함될 수 있는 host 수
- prefix를 제외한 나머지 IP 주소 bit가 표현 가능한 개수
- Block of address에 대한 할당
- ISP가 가진 IP를 기관이 할당받음 (isp는 prefix가 짧은 ip를 갖고 있어서 ip address를 나눠준다)
- 각 host가 IP 주소를 받는 방식
- 기관 담당자에게 직접 신청해서 수동으로 설정
- Dynamic Host Configuration Protocol (DHCP)에 의해 자동으로 할당 받음
IP Datagram Fragmentation
L1-L2 방식에 따라 기본 전송 단위 bit수가 다를 수 있음
- L2별로 서로 다른 Maximum Transmission Unit (MTU) 존재
- IP datagram은 MTU보다 작아야 L2 전송이 가능해짐
- 필요 시 Router는 IP datagram을 쪼갬
- 여러개의 fragment로 나눔
- Destination의 IP의 service 계층으로 올리기 전에 reassemble이 되어야 함 (protocol transparency)
- Destination host측 IP layer는 fragment를 모두 수신해서 original datagram으로 복구해야 함
- IP header의 Identification, flag, fragmentation offset field 이용
L3입장에서는 헤더가 20바이트(옵션제외) 가 있고, mtu가 1500바이트면 1480바이트가 들어갈 수있음.
전체 데이터가 4000바이트
3980byte의 데이터 + 20 byte의 헤더
Fragementation
3980 = 1480 + 1480 +1020
first datagram(packet) : flag 1, offset = 0,
2nd : flag(다음 데이터가 남아있는지) = 1, offset(다음 시작 번호에다가 8로 나누기) = 1480 / 8 = 185
16비트중 13-bit를 offset이 쓰는데 3비트가 남으니깐 8바이트로 나타내야함
3nd : flag = 0, offset = 2960/8 = 370
나머지 1020은 Datagram length에 적혀있음.
Internet Control Message Protocol (ICMP)
- Layer 3 수준에서 message를 주고받게 하는 프로토콜, 데이터 전달 용도는 아님.
- 실제 data를 전달하는 용도가 아닌, network 관리 측면에서 주로 활용됨
- 주로 network layer 관점에서의 IP 연결성 상태를 확인해보기 위해 활용
- e.g.) application이 network 문제로 인해 동작을 안하는 것처럼 보이는 경우
- ICMP를 이용해서 IP 단에서 packet 송수신이 되는지 확인 가능
- ICMP message : 일반 IP datagram 형태의 payload 부분에 담겨 있음
- e.g.) Ping : echo
- Type 8/0, code 0
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
- Expanded addressing capabilities
- IP 주소가 32bit -> 128bit로 확장
- 40bit 고정 크기의 header로 정의 : option mechanism 개선
- Flow labeling and priority
- Flow 별 quality of service 관리
- Fragmentation : source/destination에서만 가능
- Header checksum 없음
너무 커지다보니깐 iot에 적합하지않다?
많이 안쓰이는 이유는 호환성이 많이 떨어진다.(헤더가 다르기 때문에)
따라서 NAT로 해결한다.
댓글남기기