# data[].attributes.body
5-1장

Network Layer
- sender가 보낸 데이터를 receiver로 안전하게 전달.
데이터를 보낼 때마다 header에 주소를 써서 보낸다. (공통의 체계 ip address)
Forwarding - 주소 바탕으로 전송
Routing - 주소를 보고 어디로 보낼지 결정

Circuit-switching = 옛날 전화 방식
circuit establishment, data transfer, circuit termination (3가지)
장점 - 오랜 시간 통화할 때 좋다. 딜레이 없음.
단점 - 채널의 낭비가 존재한다.

Message switching
circuit 만들고 끊는 행위 없이 바로 message를 보냄.
Packet으로 잘라서 보내는 것으로 해결할 수 있음.

Routing Algorithms
A에서 F로 가는 가장 빠른 경로. cost가 가장 적은 경로
rounting table.

두가지 routing algorithms
1. Link State routing
- Dijkstra's Algorithm을 사용한다.
- 각각의 노드가 이웃한 노드와 cost를 알고 있다. 서로 정보를 교환
- 각 노드가 그것을 바탕으로 최적의 routing path를 찾는 과정

2. Distance vector routing
- Bellman-Ford Algorithm을 사용한다.
- 다양한 경로가 있지만 이웃한 노드만 사용
ex) 포항에서 대구, 울산...

+? Hierarchical routing
대표 라우터를 선정한 뒤 대표 라우터들끼리 주고 받아 라우팅 알고리즘을 만든다.

5-2장

IP addresses를 가지고 어떤 단말기 인지 알수있게된다.
net ID, host ID로 나누어져있다.
크게 5가지 Class로 구분되어있다.
보통 A,B,C를 본다.

class A
0으로 시작
NetID - 조직, 기관의 ID
HostID - 기관에서 사간 다음에 개인 컴퓨터 할당하는 구조

class B
1 0 으로 시작
NetID 14, HostID 16
가장 많이 사용한다.

class C
1 1 0 으로 시작
NetID 21, HostID 8
기간에서 사가서 host가 8밖에 안되기 때문에 컴퓨터가 256기가 넘으면 사용 불가.

range

CIDR
- 기존의 class 나누는 방식이 아니라 Net ID 부분 나타냄.
- 최근에 많이 사용

DHCP
- IP주소를 자동으로 할당하는 프로토콜

NAT
- 할당 받은 IP address 부족 문제 해결

IP
- 다양한 프로토콜

TTL
라우터를 거칠 때마다 숫자가 줄어든다.
몇번을 거쳐서 목적지까지 도착했는지 측정한다.

# data[].attributes.body
<5-1> 배운점

Network Layer Services(네트워크 계층) : Sender가 보내는 데이터를 Reciever에게 안전하게 전달한다.

Network Layer Services 특징
라우팅: 네트워크 계층은 데이터 패킷을 목적지(IP주소)까지 가장 효율적인 경로로 전달하기 위해 라우팅을 수행합니다.

주소 할당: 네트워크 계층은 각 장치에 고유한 IP 주소를 할당하여 다른 네트워크에서 장치를 식별할 수 있도록 합니다.

패킷 분할 및 조립: 네트워크 계층은 큰 데이터를 작은 패킷으로 분할하고, 수신 측에서는 이러한 패킷들을 다시 조립하여 원래 데이터로 복원합니다.

데이터 경로 제어: 네트워크 계층은 경로 선택과 데이터 전송을 제어하여 전송 지연을 최소화하고 대역폭 사용을 최적화합니다.

오류 제어: 네트워크 계층은 데이터 패킷의 손실 및 손상을 감지하고 복구하는 오류 제어 메커니즘을 제공합니다.

Communication networks = 1세대: Circuit-Switched networks, 3세대: Packet-switched networks(in message switching)
1. Circuit Switching
- Circuit establishment
- Data transfer
- Circuit termination

장점: low delay once a circuit is established >> good for long-time communications
단점: 채널 이용 효율 떨어짐.

Routing Table by Routing Algorithms: 최적의 패캣 이동경로를 계산하는 알고리즘
1. Link State routing = Dijkstra’s Algorithim 활용한다. A에서 F 목적지가 주어지고 최소의 경로를 탐색할 수 있다. (Minimum distance 경로) >> 궁극적으로, Routing Table 생성

2. Distance vector routing = Bellman-Ford Algorithm

# data[].attributes.body
<5-1장>
Network Layer
- 전송자가 보낸 데이터를 수신자 측에 안전하게 제대로 전달하게 만드는 역할
- IP address(라우터)를 통해 데이터를 안절하게 전달

Forwarding
- 데이터를 입력층에서 받아서 출력층으로 보냄

Routing
- 어느 곳으로 보내야 할지 주소를 보고 판단

Circuit-switched networks(유선 전화망)
- 1세대~2세대 방식, 전체 수명 동안 고정된 용량 차지
- 회로 설정 -> 통화 -> 통화 종료의 3가지 행위
- 장점 : 한 번 회로가 구축되면 지연이 적으므로 장기 통신에 좋음
- 단점 : 채널의 낭비가 존재 -> 비효율적인 채널 용량

Message Switching(유선전화망과 반대)
- 미리 회로를 만들거나 구분하는 것없이 바로 메시지를 보냄
- 메시지가 길면 시간이 오래 걸림

Packet-switched networks(우리가 쓰는 네트워크)
- 3세대부터 사용
- 미리 connection 없이 바로 데이터를 패킷 단위로 쪼개서 보냄
- 데이터 전송의 효율성과 안정성 보장 및 혼잡 감소

<5-2장>

IP address
- 어떤 단말기인지 알 수 있음
- network 부분, host 부분으로 나뉨
- 5가지 class, 보통 A/B/C를 많이 사용
- B를 가장 많이 구매

Subnet Addressing
- IP주소와 서브넷 마스크를 이용하여 정의
- 서브넷 마스크는 IP주소에서 네트워크와 호스트 영역을 분할
- 서브넷 주소를 사용하여 각 서브넷 구분 및 라우팅 실행

CIDR
- ./를 통해 IP주소/서브넷 마스크 형식 구분
- 여러 가지 클래스로 나눔

NAT
- IP주소 하나로 많은 호스트를 연결하는 방식
- 포트포워딩을 통해 주소 고갈 문제 해결

IP
- 다양한 프로토콜
- Network layer에서 실제 통신에 사용되는 부분

# data[].attributes.body
<5장>

Network Layer

- 데이터를 수신자가 안전하게 받을 수 있게 해주는 서비스

- 데이터 전송: 패킷 단위로 전송. 헤더에 수신측 IP주소를 입력한다.

- Network Layer Function: Forwarding,Routing

| Circuit-switched networks | Packet-switched networks
| 1G, 2G (옛날방식) 전화 à 회선(circuit) 생성 à 전화연결 à 전화종료 à 회선 종료 장점: 장기 통화 시 끊김현상 없음 단점: 채널 낭비(데이터가 클 경우, 라우터에 그 데이터를 각각 저장해야 해서 메모리 낭비가 크고, 버퍼낭비도 커진다) | 3G~ (요즘 방식) 1개 데이터를 여러 개 패킷 단위로 쪼개서 전송 전송이 밀리면 라우터가 다른 경로를 사용하기 때문에 받는 패킷 순서가 달라질 수 있음 (서로 순서가 있어서 큰 문제가 되진 않음) 무조건 작게 쪼개는 게 좋은건 아님!!

[Routing Algorithms]

- 라우터가 라우팅 테이블을 잘 만들어 두면 데이터가 정확히 전달된다.

- 라우팅 테이블을 만드는 것을 Routing Algorithms 이라 한다.

- 누가 만들어 주는 게 아니고, 라우터들이 스스로 계산하여 생성한다.

| Link State routing | Distance vector routing
| 다익스트라 알고리즘 사용 | 벨먼-포드 알고리즘 사용(인접 노드들의 라우팅 테이블을 이용)

[IP]

- IP주소는 네트워크ID와 호스트ID로 구성된다.

- A(0~127)(net7, host24), B(128~191)(net14, host16), C(192~223)(net21, host8), D(224~239), E(240~247) 5개 클래스로 구분된다.

- host ID는 쪼개서 subnet ID로 사용할 수 있다.

- 141.223.0.0인 라우터는 141.223.161.0와 141.223.162.0처럼 141.223.~ 으로 시작하는 모든 IP주소에 연결되어 있다.

- 서브넷 마스크: 서브넷을 몇 개로 나눴는지 알려줌

- IP4v가 부족해지면서 해결책으로 IP6v가 등장. 다만 이를 위해서는 모든 기기를 바꿔야 해서 상용화 까지는 오래걸림.

- 그 사이에 사용할 방안으로 CIDR(host ID사이즈 다양화), DHCP(휴대폰처럼 잠깐 할당받아 사용하고 반납)이 등장.

- DHCP중 NAT(network address translation)방식: WAN에서의 IP주소 ↔ LAN에서의 IP주소 로 전환하면서 데이터 전송

# data[].attributes.body
5-1) Network Layer Services

sender가 보낸 데이터를 receiver에 안전하게 전달하는 역할
→ ip(network layer의 protocol일)가 주로 하는 일

packet(데이터)을 보낼 때마다 헤더에 주소를 써서 보낸다 (보내는 + 받는 ip 주소)
- network-layer의 핵심 기능
- Forwarding
- 라우터가 input 데이터를 받아서 output으로 보내는 역할.
특히 어느 경로로 보낼지를 결정 ← 이때 Routing
- Routing
- 어느 곳으로 보내야 할지를 ip 주소를 보고 판단하는 행위
- ip 주소를 보고 패킷이 가야할 receiver 주소를 보고 데이터를 어디로 보내야 하는지를 받아서 forwarding
Message Switching

: 미리 circuit을 만들거나 끊는 행위 없이 바로 message를 보내는 방식

Packet-switched networks

(3G 이후) (예. 최근 컴퓨터 통신망에서 쓰는 방식)

- pipelining : 긴 메시지를 하나의 패킷으로 보내는게 아니라 중간중간 잘라서 몇 개의 packet으로 나눠서 보내는 방식

packet을 보낼 때 미리 connection 없이 그냥 데이터를 packet 단위로 쪼개서 보냄

하나의 데이터가 여러개로 쪼개져서 전송되기 때문에 전송 중 하나라도 밀리게 되면
마치 고속도로가 밀리면 다른 경로로 찾아주는것 처럼 라우터가 다른 경로로 안내해줌
→ 따라서 receive 측에 도착하는 순서가 달라질 수 있다. 하지만 이건 문제가 되지 않음. 도착해서 순서를 재정비함
routing algorithms

Routing Algorithms ← routing table 을 어떻게 만들지?
누가 만들어서 주는게 아니라 라우터들 스스로 계산함 :: distribute route

centrol node가 하나를 만들어서 다 전달하는 것이 아닌 각자가 스스로 계산하는 알고리즘

라우터는 이웃한 경로까지 가는 cost만 알고 있다
5-2)
IP (Internet Protocol)

routing algorithm을 실제로 구현하는 프로토콜

version4. 32bit의 ip address를 전세계적으로 사용하고 있음

- network ID
- 기관의 ID
- host ID
- 기관 ID를 제외한 나머지를 할당한 ID
Problems of IP address scheme (class-ful addresses)

ip 주소 고갈 문제 해결법

IETF solutions

- IPng (IPv6) - long term solution
- CIDR(Classless Inter-Domain Routing) - short term solution
- 기존의 class 나누는 방식이 아닌, host part가 어디인지 알려주는 방식 → 가변적인, dynamic한  network id → 주소를 아낄 수 있음
그럼 IP address 어떻게 할당?

- Manual configuration
- DHCP (Dynamic Host Configuration Protocol) - 정규 ip 주소가 아니라 임시로 ip 주소를 할당받음

# data[].attributes.body
Network Layer: 패킷단위 전송
routing: 패킷 루트를 주소보고 판단
forwarding: 라우터끼리 패킷 전달하는 것

통신 방식 종류
circuit switch: 예전 전화망에서 사용
packet switch: 데이터를 패킷단위로 쪼개서 사용

routing 알고리즘: 라우팅 구성에 필요한 것을 계산

link state routing: 다익스트라 알고리즘 기반으로 최단거리 라우트 생성
distance vector routing: 벨만포드 알고리즘 기반, 링크에 대한 cost 고려, 테이블 형태로 모든 라우터 정보 계산, 이웃 테이블 활용 라우팅 테이블

IP 어드레스: 호스트와 네트워크로 구성
host ID: 호스트들 개별적 관리, 내부 IP
network ID: 그룹을 통해 호스트 관리

IP부족 해결:
CIDR: 기존 방식이 아닌, 숫자를 붙여 IP어드레스 할당

NAT: 공식IP 하나와 사적 IP를 여러개 사용

IPv6

# data[].attributes.body
<5장>
* Network Layer Services

- Forwarding: 전달하는 행위

- Rounting: 어디로 보내야할지 주소를 보고 판단하는 행위

* Network

- Circuit-sithce networks: 옛날 전화방식, 미리 예약하는 행위(끝나면 끝는 행위 필요)

장점: 오랜 시간 통화 할 때 좋음, 딜레이도 없음, 채널의 낭비가 존재

- Message Switching:

- Packet-switched networks: 시간을 단축(파이프라인), 무조건 많은 파이프라인을 가진다고 해서 좋은 것이 아님

* Routing Algorithm: 라우팅 테이블을 어떻게 만들건지

최적의 경로를 찾는 알고리즘

- Link State routing: Dijkstra’s Algorithm, 모든 노드와 정보를 공유

- Distance vector routing: Bellman-Ford Algorithm, 이웃하고만 주고받음

* Hierarchical routing: 세상에는 많은 라우터 테이블이 있음

현실적으로 그렇게 하지 않음, 대표 라우터를 설정하고 대표끼리 라우팅 테이블을 만듦, 내부에서 또 따로 만듦

* IP addresses

-   Host ID / Net ID로 구분

-   Host Id : 기관에서 개인 컴퓨터에 할당

-    Net id – 조직, 기관의 ID

-   A Class ~ E Class 존재함. B Class를 가장 많이 사용

-  Class B : 128.0.0ㅎ ~191.255.255.255

* CIDR : 네트워크 영역을 구분할 때, 기존 방식에 비해 조금 더 세분화하여 IP주소를 할당하는 방식

-  기존 클래스 기반 IP 주소 체계의 주소 낭비 문제를 해결하는 효율적인 방법

*  DHCP : 컴퓨터 네트워크 구성을 자동으로 구성 , 호스트 IP와 각종 기본 설정을 클라이언트에게 자동으로 제공함

* NAT : 현재 가장 많이 사용. 공적 IP와 사적 IP 만들어 나눠서 사용. IP 주소 부족문제 해결

# data[].attributes.body
5장

Network Layer:
패킷 단위로 목적지를 찾아가는 방식

forwarding: 라우터에서 데이터를 받아서 출력까지 패킷이 옮기는 행위
routing: 어떤 경로로 보내야되는지 결정하는 행위

통신 방식

1. Cicuit switch
전화망에서 주로 사용
유일한 경로로 데이터 전송
장단점: 딜레이 작음, 회선낭비 있음

2. Packet Switch
송신할 데이터를 packet이라는 단위로 쪼개서 전송

Routing algorithm
송신자로 부터 수신자까지 데이터를 전송할 때 라우터를 통과하는 최상의 경로를 선택하는 것

1. Link State Routing - 다익스트라 알고리즘 기반
각 라우터는 주변의 링크의 cost를 측정하고 링크와 cost에 대한 정보를 담은 패킷을 만든다. LSP를 모든 라우터에게 보내면 다른 라우터에게 받은 LSP들을 이용하여 각 라우터로의 가장 짧은 경로 게산

2. Distance Vector Routing-벨만포드 알고리즘 기반
모든 링크의 cost는 알고있다고 가정
각 라우터는 라우팅 테이블을 가지고 있고, 이 테이블에는 주어진 서브넷의 모든 라우터에 대한 정보를 가짐
이웃에게 만든 테이블을 활용하여 라우팅 테이블을 계산

3. Hierarchial Routing
넓은 네트워크를 몇 개의 네트워크 레벨로 크기를 분할하여 경로를 간소화, 계층화
계층화 된 것들을 각각 Regions 이라고 하며 각각의 Regions 안에서 독립적으로 라우팅이 이루어짐

IP
네트워크 상에서 컴퓨터를 식별하기 위해 부여된 위치 정보
네트워크 주소와 호스트 주소로 구분되며 하나의 네트워크상에 여러 호스트 주소가 있을 수 있다.
32비트 2진수로 표현

IP부족을 해결하는 방법 4가지
1. IPv6
2. CIDR
IP 주소 할당 방법의 하나로서 기존 8비트 단위로 구획하지 않는 방법
3. DHCP
네트워크에 접속하면 DHCP서버가 자신의 목록에서 IP주소를 선택하여 할당해주는 것
4. NAT
인터넷 공유기 역할로써 내부 네트워크에 있는 여러 대의 컴퓨터가 한개의 IP주소를 공유하게 하는 것

# data[].attributes.body
>5-1장

routing : 네트워크 안에서 패킷을 어느 곳으로 보내야할지 주소를 보고 판단하는 행위

ex. 우편 주소

forwarding : 라우터의 입력 포트에서 출력 포트로 패킷을 전달하는 행위

circuit-switched networks (1, 2세대)

ex) 옛날 전화 방식

- Message Swiching : 실질적으로 메시지 단위로 할당하는 방식, 대기열 지연 발생

- Packet Swiching : conection 없이 packet이라는 단위로 분할하여 전송하는 방식

packet-switched networks (3세대 ~ )

: 작은 패킷 크기를 사용하면 효율적이지만, 각 패킷당 헤더가 포함되어있기 때문에 너무 작은 패킷 크기를 사용할 경우 오히려 비효율적임

Routing Algorithm

: 라우팅 테이블을 관리하고 대상에 대한 최적화된 경로를 탐색하는 알고리즘

Two routing algorithms

- Link State routing : Dijkstra’s Algorithm을 기반으로 전체적인 네트워크 상황을 공유하며 변화가 있을 때마다 이루어짐

- Distance Vector routing : 특정 라우터와 연결된 이웃 라우터의 정보만을 가지고 판단

> 5-2장

IP addresses : Host ID와 Network ID로 구성

Host ID : 호스트들을 개별적으로 관리하기 위해 분할해서 사용, 내부 IP 주소 구성

Network ID : 그룹을 통해 호스트들을 관리하기 위해 IP 사서 사용

A class, B class, C class, D class, E class 주소로 구분

CIDR : 기존의 class로 나누는 방식이 아니라 숫자를 붙여 network id 부분이 얼마인지 나타내는 식으로 IP Adress를 할당하는 방식

NAT : 하나의 공적 IP와 사적 IP를 여러개 만들어서 사용

IP(Internet Protocol) : 다양한 프로토콜로 만들어짐

# data[].attributes.body
[5-1]
Network Layer
- 패킷 전송 계층(송신 호스트 -> 수신 호스트)

Forwarding
- 라우터에서 다른 라우터로 패킷 전송

Routing
- 패킷 이동 루트 결정하는 과정

Message switching
- 컴퓨터 네트워크 통신 방식
- 긴 메시지는 패킷으로 분할

Packet switching
- 데이터를 작은 블록으로 나눠서 전송

Routing algorithms
- 라우팅 테이블을 구성하는 데 사용되는 정보를 교환하고 계산

Link state routing
- 다익스트라 기반 라우팅 알고리즘
- 최단거리 루트로 라우팅 테이블 생성

Distance vector routing
- 벨만-포드 기반 라우팅 알고리즘
- 최소 코스트 루트로 라우팅 테이블 생성

Hierarchical routing
- 계층적으로 라우팅 테이블 구성

[5-2]
IP Addresses
- 네트워크 상에서 컴퓨터를 식별하는 위치 정보
- Network ID + Host ID

NAT
- IP 주소 변환 프로세스
- 사설 IP 주소를 공인 IP 주소로 변환해서 통신

DHCP
- IP 주소를 자동으로 할당하는 프로토콜

# data[].attributes.body
5장에서 다음에 대해 배울 수 있었습니다:

- 네트워크 레이어의 역할, 구조

- routing, forwarding, circuit switch, packet switch, routing algorithms의 역할 및 특징

- IP address의 역할, 특징

- NAT, CIDR

# data[].attributes.body
배운점:
<5장>
[네트워크 레이어 서비스]
- sender가 보낸 데이터를 reciver에게 안전하게 전달하는 역할을 수행한다.
1 헤더에 주소를 덧붙여서 데이터 전송함.
2 라우터를 통해서 목적지에 전송된다.
*라우팅 :어느곳으로 보내야 할지 주소를 보고 판단하는 행위
*포워딩 :라우터의 입력 포트에서 출력 포트로 패킷을 이동시키는 것

[네트워크 통신]
1.Circuit-switched networks
- 옛날 전화방식 (유선전화)
- 서킷 만들고 -> 통화하고 -> 서킷 끊음
-> 채널 낭비가 있다.

2.Packet-switched networks
- 패킷단위로 데이터를 전송한다.
- 패킷 전송시 라우터가 막히면 새로운 경로 제공한다
-> 효율적인 방식

[라우팅 알고리즘]
-최적화 경로를 찾는다.

1)link state 라우팅
-다익스트라 알고리즘 활용 :  시작점에서부터 모든노드까지를 거리 가중치를 표로 나타내고 작은 가중치의 노드를 택하는 과정을 반복하며 최적의 경로를 찾는다.

2)distance vector 라우팅
-벨만 포드 알고리즘 활용: 시작점에서 이웃노드의 가중치만 알고 이웃노드의 라우팅테이블 중 최소경로만을 선택하는 과정을 반복하여 최적의 경로를 찾는다.

[IP Addresses]
-IP Addresses는 5개의 클래스로 있다 :class A, class B, class C, class D, class E
- ip 주소는 net id와 host id로 구분된다.
*net id  :기관에서 아이피를 구현할 때 id
*host id :호스트들을 개별적으로 관리하기 위한 id

*subnet id : host id 부분을 세분해서 사용하는 것 (ip주소를 효율적을로 사용하기 위함)

-IP Address 부족함 해결 방법-

[CIDR (Classless Inter-Domain Routing)
주소의 영역을 여러 네트워크 영역으로 나눌 때 기존방식에 비해 유연성을 더해서 주소를 보다 효율적으로 사용한다.

[DHCP]
임시어드레스를 할당받아 잠시 사용하고 반납하는 방식

[NAT]
사설 네트워크 주소를 사용하는 망에서 외부망과 통신을 위해서 네트워크 주소를 변환하는 것

# data[].attributes.body
<5-1장>

Network Layer

a. 전송자가 보낸 데이터를 수신자 측에 안전하게 제대로 전달하게 만드는 중요한 역할 수행

b. IP address(라우터)를 통해 안전하게 데이터를 전달한다.

Function of Network Layer

1) Forwarding

데이터를 입력층에서 받아서 출력층으로 보내는 역할

2) Routing

어느 곳으로 보내야할지 주소를 보고 판단하는 행위

Taxonomy of Networks (Network core)

1) Circuit-switched networks (유선 전화망)

a. 1세대~2세대 방식으로 사용

b. 전체 수명 동안 고정된 용량을 차지함

c. 3가지 행위로 구분됨

회로 설정 -> 통화 -> 통화 종료

회로를 만들고 통화를 종료하는 시간이 적지만, overhead가 발생할 수 있음

d. 장점 : 한번 회로가 구축되면 지연이 적으므로 실시간으로 장기 통신에 좋음

e. 단점 : 채널의 낭비가 존재함 -> 비효율적인 채널 용량

2) Message Switching (1과 반대 케이스)

a. 1과 달리, 미리 회로를 만들거나 행위를 구분하는 것 없이 바로 메시지를 보내는 방식

b. 1은 2의 일부이다.

c. 행위의 구분이 없으므로 1보다는 좋지만, 메시지가 길게 되면 시간이 오래 걸림

3) Packet-switched networks (우리가 쓰고 있는 네트워크)

a. 3세대부터 전환되어 사용

b. 2에서 시간이 오래 걸리는 문제를 해결하기 위해 나온 방식으로 2보다 효율적임

c. 길게 통으로 메시지를 보내는 것이 아닌, 미리 connection 없이 바로 데이터를 패킷 단위로
쪼개서 보내는 방식

d. 데이터를 여러 패킷으로 나눠 전송하므로 도중에 경로가 바뀌어 데이터의 순서가
바뀔 수 있지만, 수신자 측에서는 순서를 재조립하여 최종적으로 데이터를 받을 수 있음

e. 각 패킷이 최적의 경로로 전달되므로, 데이터 전송의 효율성과 안정성을 보장 및 혼잡 감소

f. 결과적으로 파이프라이닝 기술을 사용하여 여러 개의 패킷이 동시에 전송되고 처리될 수 있어, 전송 시간 단축

+) 그렇다면 무조건 잘게 자르면 좋은 것인가? 아니다!

파이프라이닝을 하더라도 데이터의 크기와 헤더의 크기가 비슷해지면 overhead 발생!

※ overhead : 어떤 작업을 수행하기 위해 필요한 추가적인 비용이나 작업

이론적으로, 패킷을 작게 자르면 데이터 전송시 필요한 overhead 줄일 수 있어 효율적이지만

패킷 크기가 너무 작아지면 데이터 전송량 대비 헤더의 크기가 너무 커져 전송 속도 느려짐

⇒ 패킷 크기 결정 시에 전송 대역폭, 전송 지연 시간, 오버헤드 비용 등
여러 가지 요소를 고려하여 데이터와 헤더의 크기 비율을 유지할 수 있는 패킷 크기를 선택

Routing Algorithms

a. 라우터가 라우팅 테이블을 잘 만들어놓으면 헤더에 들어가있는 수를 보고
수신지까지 잘 전달하게 됨 -> 라우팅 테이블이 중요!

b. 라우팅 테이블을 만드는 방법이 Routing Algorithm

c. 라우팅 테이블은 직접 만드는 게 아니라 라우터들이 스스로 계산하여 만드는 방식

d. 비용이 가장 적은 최적의 경로로 하는 두가지 알고리즘

① Link State routing algorithm -> Dijkstra’s Algorithm

- 각 노드와 이웃한 노드 간의 경로 비용 정보를 기반으로 최단 경로를 계산하는 알고리즘

⇒ 전체 네트워크의 구조를 파악할 수 있어 모든 노드가 같은 topology 그림을 그릴 수 있음

② Distance vector routing algorithm -> Bellman-Ford Algorithm

- 전체적으로 공유하는 ①과 달리, 이 알고리즘은 자기 이웃하고만 공유하는 성향 가짐

- 주어진 라우팅 테이블을 이용하여 각 노드로부터 모든 목적지까지의 거리를 계산

⇒ 새롭게 라우팅 테이블 스스로 만들 수 있음

- ①보다 계산 속도 느리지만, 라우팅 테이블 정보 변경될 때마다 다시 계산 필요 X

- 잘못 전달될 시에도 문제 해결 + 비교적 간단 구현 가능

- 라우팅 테이블의 정보 실시간 업데이트 필요없는 네트워크에서 주로 사용됨

e. Hierarchical Routing

- 대규모의 AS 내에서 여러 라우터와 많은 네트워크가 존재하는데, 라우터와 네트워크의 모든 정보를 알아야 하므로 크기가 매우 크고, 경로 계산에 많은 시간 소요됨

- 이를 해결 위해 AS 내의 네트워크들을 계층적으로 구성하여 관리
⇒ 라우팅 정보 크기 및 복잡도 감소 + 라우팅 경로의 계산 시간 단축

- intra-AS 라우팅 프로토콜 활용하여 라우팅 정보 계산

- 각 영역이나 네트워크들 간의 연결은 게이트웨이 라우터를 통해 수행됨

<5-2장>

IP addresses

a. 어떤 단말기인지 알 수 있음

b. network 부분과 host 부분으로 나뉘어져 있음

c. 크게 5가지 class로 구분됨

D는 Multicast용, E는 미래를 위해 쓰이는 것으로, 보통 A, B, C를 많이 사용함

d. A(7, 24), B(14, 16), C(21, 8)로 구성
C는 이를 살 수 있는 기관의 개수가 비교적 많지만, 기관에서 할당할 수 있는 양이 비교적 적음

e. 따라서 이의 중간인 class B를 가장 많이 구매함

Subnet Addressing

a. IP 주소와 서브넷 마스크를 이용하여 서브넷 정의

b. 서브넷 마스크는 IP주소를 네트워크와 호스트 영역으로 분할하는 역할

c. 서브넷 주소를 사용하여 각 서브넷 구분 및 라우팅 수행

Problems of IP address scheme(class-ful addresses)

⇒ 인터넷의 폭발적 성장으로 인한 라우팅 체계 붕괴 및 주소 고갈 문제 발생

이를 해결하기 위해 IETF(전문조직)이 제시한 장/단기적 해결방안은 다음과 같다.

1) 장기적 관점

IPv6 주소 체계 개발하여 class-ful addressing 문제점 해결 및 주소 공간 확장하여
라우팅 효율성, 보안성 제고

2) 단기적 관점

CIDR방식 도입하여 주소 할당 유연성 높이고, 라우팅 효율성 높여 네트워크 보안성 제고

CIDR

a. /를 통해 IP주소/서브넷 마스크 형식을 사용하여 구분

b. 기존의 class를 나눌 때 중간이 없어서 극단적이었다면 class B와 C 사이에도
여러 가지 클래스로 나눌 수 있음

IP 주소 할당하는 방법

a. Manual configuration

b. DHCP -> 정규 IP주소가 아니라 임시로 받아서 그때만 쓰고 반납하는 방식

NAT

⇒  IP주소 하나를 가지고 많은 호스트를 연결할 수 있는 방식

[과정]

1) 사설 IP주소와 공인 IP주소 간의 매핑 설정

⇒ 매핑 정보 통해 사설과 공인 간의 변환 수행 가능

2) 내부 네트워크에서 외부 네트워크로 패킷 전송

⇒ 호스트가 외부로 패킷 전송하면 NAT는 패킷의 출발지 주소를 호스트의 사설 주소로 변경 후, 이를 다시 외부로 전송

3) 외부 네트워크에서 내부 네트워크로 패킷 전송

⇒ 외부에서 내부 전송할 때도 NAT를 거쳐 공인을 사설로 변환하고 내부로 전송

4) 포트 포워딩

⇒ 외부에서 내부로 접속하는 패킷을 특정 호스트나 서비스로 전달

포워딩 통해 내부에서 서비스 제공과 동시에 외부에서 해당 서비스 접속 가능

⇒ 주소 고갈 문제 해결 가능!!

IP

a. IP는 다양한 프로토콜로 구성됨

b. Network layer 중에서 실제 통신에 사용되는 것은 IP

c. ICMP는 control의 역할을 수행하며, 망 관리이고 실제 통신에 사용되는 것은 아님

d. IGMP는 Multicast에 이용되며, 실제 통신 사용되는 것은 아님

e. header는 20바이트 차지하고 그 밑에 실제 데이터로 구분됨

# data[].attributes.body
Network Layer (sender of packet → the internet → Recipient of packet)

packet 헤더에 주소를 적어서 보낸다 : 보내는 host주소/받는 host 주소

2가지 역할

forwarding

forwarding을 할 때 routing 을 한다

판단 후 보내는 행위를 forwarding이라고 한

routing

routing이란 주소를 보고 어느 곳으로 보내야할지 판단하는 행위를 말한다

2가지 종류

communication networks

Circuit-switched networks :

1. 1/2세대에서 사용

2. 옛날 전화 방식

3. 3가지 방식

1. circuit을 만듬

2. data를 보냄

3. circuit을 끊음

4. 장점 : circuit은 예약이 되기 때문에 장시간 전화에 사용하기 적합

5. 단점 : 채널의 낭비가 존재

packet-switched networks : 3G부터 사용

1. pipelining : 메세지를 한번에 보내지 않고 여러 패킷으로 나눠서 보내 것

2. 하나의 데이터를 여러 개의 패킷으로 쪼개서 보내는 것

3. 데이터를 패킷으로 쪼개서 보내게 된다면 각 패킷에 헤더를 부착하여 보내게 된다.

4. 패킷을 쪼개서 보내게 된다면 보내는 시간이 줄어들게 됨

5. → but, 데이터의 헤더와 데이터의 크기가 비슷해진다면 헤더가 차지하는 부분이 많아지면서 오히려 시간이 더 오래 걸리게 됨

Routing Algorithms

노드마다 스스로 계산하는 알고리즘

각각의 노드는 인접한 노드의 cost만을 알고 있는데 A→F까지 가는데 최적의 route는 어떻게 알 수 있을까?

Link State routing

1. Dijkstra’s Algorithm이 기반이다

2. 노드간의 거리에서 가장 짧은 거리를 선택하여 최소 루트를 정하는 것 → 이를 통해 routing table을 만들 수 있다

Distance vector routing

1. Bellman-Ford Algorithm이 기반

2. 목적지 노드와 인접 노드의 cost + 그 외 노드들의 routing table

3. → cost를 더하여 가장 작은 값이 나오는 루트를 선택

Hierarchical routing

1. rout table을 모든 노드에 대해서 만드는 건 불가능

2. 계층적으로 구성하여 효율적으로 계산

** 추가로 공부한 부분

convergence time : 네트워크Topology의 업/다운 등의 변화가 일어나고 이러한 변화가 반영된 새로운 라우팅 테이블을 만드는데 걸리는 시간

Distance vector routing은 자신의 Rourting Table을 먼저 생성한 다음 그 후 Routing Table을 인접 Route에 전달한다

→ 네트워크가 커질수록 convergenece time이 늘어나게 된다

Link State Routing 은 네트워크정보를 받으면 Ack메세지를 통해 네트워크 정보를 전달한다 즉, count를 받았을 때 즉각적으로 routing table을 만다는 것이 아니라 네트워크 정보가 정상적으로 전달이 되었다고 판단될 때 동시에 Routing Table을 생성한다

→ 네트워크가 커질수록 Convergence time이 Distance vector 보다 짧다

5-2장

1. IP addresses

a. 어떤 단말기인지 알 수 있음 b. network 부분과 host 부분으로 나뉘어져 있음 c. 크게 5가지 class로 구분됨

D는 Multicast용, E는 미래를 위해 쓰이는 것으로, 보통 A, B, C를 많이 사용함 C는 이를 살 수 있는 기관의 개수가 비교적 많지만, 기관에서 할당할 수 있는 양이 비교적 적음

d. A(7, 24), B(14, 16), C(21, 8)로 구성
e. 따라서 이의 중간인 class B를 가장 많이 구매함

1. Subnet Addressing a. IP 주소와 서브넷 마스크를 이용하여 서브넷 정의 b. 서브넷 마스크는 IP주소를 네트워크와 호스트 영역으로 분할하는 역할 c. 서브넷 주소를 사용하여 각 서브넷 구분 및 라우팅 수행 Problems of IP address scheme(class-ful addresses)

2. → 인터넷의 폭발적 성장으로 인한 라우팅 체계 붕괴 및 주소 고갈 문제 발생 ⇒ 이를 해결하기 위해 IETF(전문조직)이 제시한 장/단기적 해결방안은 다음과 같다.

1. 장기적 관점 IPv6 주소 체계 개발하여 class-ful addressing 문제점 해결 및 주소 공간 확장 → 라우팅 효율성, 보안성 제고

2. 단기적 관점 CIDR방식 도입하여 주소 할당 유연성 높이고, 라우팅 효율성 높여 네트워크 보안성 제고

CIDR a. ‘/’ 를 통해 IP주소/서브넷 마스크 형식을 사용하여 구분 b. 기존의 class를 나눌 때 중간이 없어서 극단적이었다면 class B와 C 사이에도 여러 가지 클래스로 나눌 수 있음

IP 주소 할당하는 방법 a. Manual configuration b. DHCP -> 정규 IP주소가 아니라 임시로 받아서 그때만 쓰고 반납하는 방식

NAT -> IP주소 하나를 가지고 많은 호스트를 연결할 수 있는 방식

[과정]

1. 사설 IP주소와 공인 IP주소 간의 매핑 설정 -> 매핑 정보 통해 사설과 공인 간의 변환 수행 가능

2. 내부 네트워크에서 외부 네트워크로 패킷 전송 -> 호스트가 외부로 패킷 전송하면 NAT는 패킷의 출발지 주소를 호스트의 사설 주소로 변경 이를 다시 외부로 전송

3. 외부 네트워크에서 내부 네트워크로 패킷 전송 -> 외부에서 내부 전송할 때도 NAT를 거쳐 공인을 사설로 변환하고 내부로 전송

4. 포트 포워딩 -> 외부에서 내부로 접속하는 패킷을 특정 호스트나 서비스로 전달 forward 통해 내부에서 서비스 제공과 동시에 외부에서 해당 서비스 접속 가능 ⇒ 주소 고갈 문제 해결 가능!! IP a. IP는 다양한 프로토콜로 구성됨 b. Network layer 중에서 실제 통신에 사용되는 것은 IP c. ICMP는 control의 역할을 수행하며, 망 관리이고 실제 통신에 사용되는 것은 아님 d. IGMP는 Multicast에 이용되며, 실제 통신 사용되는 것은 아님 e. header는 20바이트 차지하고 그 밑에 실제 데이터로 구분됨

# data[].attributes.body
<5-1>
Network Layer Services

: 데이터 패킷 송수신에 필요한 주소 지정, 경로를 설정하고 전송하는 역할 수행

→ Routing : 패킷의 최적경로를 결정(어디로 보낼지 판단)

Communication Network

→ Circuit-sithce networks : 옛날 전화방식

:장점

오랜시간 통화할 때 딜레이가 없음. 서킷 예약 가능

:단점 : 채널 낭비

Message switching

→ 설명절차 x

→ 대기열 지연, 사용할 수 있을 때까지 저장

Packet switching

→ 최근 통신망 방식. 데이터를 패킷 단위로 쪼개서 전송하는 방식

Packet switched networks : Routing algorithms

→ 각각의 라우터가 스스로 계산하여 테이블 관리 + 데이터 전달

→ 라우팅 테이블을 관리하고 최적의 알고리즘 찾음

Two Routing algorithms
Link state routing

→ 다익스트라 알고리즘 기반

→ 시작 노드에서 최소의 라우터로 이동하며 전체 노드 탐색 -> 만들어진 LSP(Link Stae Packet)을 다른 라우터에게 전송 => 전달받은 LSP 이용 각 라우터로부터 가장 짧은 경로 계산

Distance vector routing

→벨만 포드 알고리즘 기반

→이웃한 노드 사용하는 방식. 자신과 이웃한 노드의 cost 중 최소 라우터로 이동

Hierarchical routing

: 대표 라우터끼리 알고리즘 생성, 라우팅 테이블에 계층적 구조 적용

<5-2>
IP addresses

→Host ID / Net ID로 구분

→Host ID : 기관에서 개인 컴퓨터에 할당, 분할해서 사용

→Net ID – 조직, 기관의 ID, IP를 사서 사용

→A Class ~ E Class 존재함. B Class를 가장 많이 사용

→Class B : (공대)128.0.0.0 ~191.255.255.255, 16bit(net ID) / 8bits(subnet ID)/ 8bits(host ID), 많이 사용

IP address scheme

⇒ IETF 해결!

IP address 할당

⇒ 매뉴얼

⇒ 일회용(임시) 할당 / DHCP

CIDR

: 네트워크 영역을 구분할 때, 기존 방식에 비해 조금 더 세분화하여 IP주소를 할당하는 방식

-기존 클래스 기반 IP 주소 체계의 주소 낭비 문제를 해결하는 효율적인 방법

DHCP : 컴퓨터 네트워크 구성을 자동으로 구성 , 호스트 IP와 각종 기본 설정을 클라이언트에게 자동으로 제공

NAT : 현재 가장 많이 사용. 공적 IP와 사적 IP 만들어 나눠서 사용. IP 주소 부족문제 해결

# data[].attributes.body
5 - 1 장

네트워크 레이어:

컴퓨터 네트워킹의 7계층 OSI 모형 가운데 제 3계층, 네트워크 레이어는 중간 라우터를 통한 라우팅을 포한하여 패킷 포워딩을 담당

Forwarding:

라우터로 들어온 패킷들을 다른 라우터로 내보내는 과정

Routing:

소스로부터 목적지까지 어떤 경로로 갈지 결정하는 과정

Message Swithing:

컴퓨터 네트워크에서 사용되는 통신 방식

메세지가 길어지면 패킷으로 잘라 보내서 해결

Packet Switching:

데이터를 작은 블록으로 나누어 전송

Routing Algorithms

최적의 경로로 선택

라우터들이 스스로 계산에서 생성

5 - 2 장

IP addresses

디바이스의 인터페이스에 대한 유일한 식별자이며, 디바이스의 위치를 나타내는 식별자 역할을 하는 주소. 송수신 IP 데이터그램의 헤드부분에  지정되며, IP버전 4에서는 32비트, IP버전. 6에서는  128비트로 구성

NetID

Class B

CIDR

NAT

TTL

DHCP

IP 주소를 자동으로 할당

# data[].attributes.body
network layer :
중간 라우팅을 포함하여 패킷 포워드를 담당.

circuit-switching : 회선을 설정하여 데이터 수신, 송신
실시간으로 사용되는 형식

packet switching :
패킷 단위로 데이터를 수신, 송신
출발지, 목적지의 정보가 header에 내장
비교적 빠르고 효율적인 방식

routing algorithms :
데이터 송신, 수신 시 최적의 경로로 탐색하는 것

dijsktra's algorithms :
동적 프로그래밍.
정점에서 다른 정점으로의 최단 경로를 탐색하는 알고리즘.

ip :
32비트의 고유 주소가 각각 호스트에 배정

cidr :
클래스 없는 도메인 간의 라우팅 기법
네트워크 클래스를 대체하였고, 유연성을 더해준다.
인터넷 광역 라우팅읠 부담을 줄여준다.

dhcp :
동적 호스트 구성 프로토콜
호스트의 ip주소와 각종 프로토콜의 기본 설정을
클라이언트에게 자동적으로 제공해주는 프로토콜

nat :
ip 패킷의 tcp포트 숫자와 소스 및 목적지의 ip 주소 등을
재기록하면서 라우터를 통해 네트워크 트래픽을 주고받는 기술

imcp :
패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜

imgp :
여러 장치가 하나의 ip주소를 공유하여 모두 동일한
데이터를 수신할 수 있도록 하는 네트워크 계층 프로토콜입니다.

# data[].attributes.body
<5-1장>

- Network Layer

송신 호스트에서 수신 호스트로 패킷 전송

- Forwarding

라우터 입력에서 적절한 라우터 출력으로 패킷 이동

- Routing

패킷이 소스에서 이동하는 루트 결정

- 네트워크 분류

Circuit switched networks

-Three phases

회로설정, 데이터 전송, 회로 중단

장점: 회로 구축시 지연 시간이 짧음, 장시간 통신에 적합

단점: 비효율적인 채널 용량

-Message Switching

절차 없음, 채널이 가능할때까지 저장함

-Packet switching

메시지는 패킷으로 나뉨

패킷 전송의 파이프라이닝으로 전송 지연 감소

전용 경로는 없지만 버퍼(메모리 공간)가 필요함

각 노드에서 전체 패킷이 수신되고 저장된 후 다음 노드로 전달 -> 저장 후 전환

사전에 할당(예약)된 리소스가 없음

라우터가 대상 호스트 주소를 사용하여 패킷 전달

패킷은 독립적으로 라우팅

-Routing Algorithms

라우터는 라우팅 테이블을 관리하고 대상에 대한 경로를 가장 잘 제공할 링크를 선택

라우팅 알고리즘은 라우팅 테이블을 구성하는 데 사용되는 정보를 교환하고 계산

-Two routing algorithms

1. Link State Routing Algorithm

라우터는 플러딩을 통해 인접 라우터에 대한 정보를 모든 라우터로 보냄.

정보 공유는 변화가 있을 때마다 이루어짐

계산은 다이스트라 알고리즘을 기반

2. Distance Vector Routing

라우터는 인접 라우터의 정보를 사용하여 최적 경로에 대한 아이디어를 업데이트

이 반복 프로세스는 최단 경로 집합과 수렴

라우팅 테이블을 만들기 위해 Bellman-Ford 알고리즘 기반

<5-2장>

-IP

네트워크 상에서 컴퓨터를 식별하기 위해 부여된 위치 정보

네트워크 id와 호스트id로 구성

host ID는 쪼개서 subnet ID로 사용 가능

141.223.0.0인 라우터는 141.223~으로 시작하는 모든 주소에 연결

서브넷 마스크 : 서브넷을 몇 개로 나눴나

-NAT (network address translation)

컴퓨터 네트워크에서 ip주소를 변환하는프로세스

사설 네트워크 내 컴퓨터들이 인터넷에 접속할 때, 각 컴퓨터의 사설 ip주소를 공인 ip주소로 변환하여 외부와 통신 가능하게 함. 보안성 강화

-CIDR(Classless Inter-Domain Routing)

인터넷 프로토콜 주소를 할당하는 방법 중 하나로, 기존의 주소 할당 방식에서 클래스 개념을 제거하고, ip주소와 서브넷 마스크를 조합하여 ip주소 범위

# data[].attributes.body
5-1
-Network layer
-Routing : 패킷을 어떤 목적지로 보낼지 판단
-forwarding : 패킷을 라우터의 입력층에서 받아 출력층으로 전달하는 것
-circuit switch : circuit을 한번 만들 때 짧은 딜레이가 있으나 그 후로는 통신환경이 좋음
그러나 circuit을 차지하여 channel측면에서 비효율적임.
-packet switch : 패킷이 각각 독립적인 경로로 전송되어 안정적이란 장점이 있음
-routing algorithms : 송신 측에서부터 수신 측 라우터의 네트워크를 통과하는 최적의 경로를 결정하는 알고리즘

5-2
-IP address : hostID와 NETID로 나뉘며 5개의 클래스로 이루어져있다
-CIDR : IP주소 할당방법으로 클래스가 없는 라우팅 기법. 클래스가 없어서 기호는 사용하여 직접 할당
-NAT : IP address 문제를 해결하는 방법으로 하나의 공적으로 할당된 IP와 여러 개의 사적 IP를 만들어서 사용

# data[].attributes.body
이수종

5-1강

ip에는 보내는 사람 받는 사람의 코스트를 보냄

routing - 어느곳으로 보내야하는지 판단하는 행위

circuit-switched networks - 1세대 방식
포항부터 전화가 가는곳 까지 회선을 예약함
circuit establishment
data transfer
circuit termination
순서로 진행됌

장점: 오래 사용할수 있고 딜레이가 적다.

packet switching
하나의 데이터를 패킷으로 쪼개서 보냄
하나의 패킷이 밀리면 delay가 될 수 있음
하지만 라우터를 거친 후 다시 순서를 맞춰서 보내기 때문에 문제가 되지 않는다.

message switching의 경우 메세지가 커지면 힘들어진다.
그래서 패킷으로 나눠서 보냄
시간을 단축할수 있다.
잘게 자른다고 꼭 좋은건 아니다.
헤더를 항상 달고 가야하기 때문에 너무 짧게 자르면 안좋음

Routing Algorithms
라우팅 테이블을 통해 헤더의 주소를 이용해 보냄

두개의 알고리즘

link state routing
distance vector routing

다익스트라 알고리즘으로 사용 한듯?

예시)
B를 갈때 J에서 갈수 있는 모든 곳 + 각각 B까지 거리 더해서 크기 비교

5-2
class A 0.0.0.0 - 127.255.255.255
class B 128.0.0.0 - 191.255.255.255
class C 192.0.0.0 - 223.255.255.255
class D 224.0.0.0 - 239.255.255.255
class E 240.0.0.0 - 247.255.255.255

ipconfig를 cmd에 적게되면 ipv4 주소가 나옴
iot가 발달함에 따라 ip주소가 모자라게 되었다.

그래서 ipv6 -> ip주소를 새로 만들자
CIDR -> 기존의 class별로 균일하지 않게 나누는 문제를 해결하기 위해 나온 것
숫자를 붙혀서 200.23.16.0/27 처럼 /숫자를 통해 host part를 표시함

NAT 방식 (Network Address Translation)

라우터에서 S와 D를 뒤집어서 처리해줌
WAN side addr              LAN side addr
138.76.29.7, 5001           10.0.0.1,   3345

IP( Internet Protocol)
application layer     user 관련
transport layer        TCP,   UDP
network layer         ICMP    IP      IGMP
data link layer        ARP   Hardware Interface RARP

# data[].attributes.body
-5장-
- Network Layer
• 송신 호스트에서 수신 호스트로 패킷 전송

- Forwarding
• 라우터 입력에서 적절한 라우터 출력으로 패킷 이동

- Routing
• 패킷이 소스에서 이동하는 루트 결정

- 네트워크 분류
Circuit switched networks
- Circuit switching

Three phases
• 회로설정
• 데이터 전송
• 회로 중단
예: 전화망
장점: 회로 구축시 지연 시간이 짧음, 장시간 통신에 적합
단점: 비효율적인 채널 용량

-Message Switching
• 절차 없음
• 채널이 가능할때까지 저장함
->대기열 지연 발생

-Packet switching
• 메시지는 패킷으로 나뉨
• 패킷 전송의 파이프라이닝으로 전송 지연 감소
• 전용 경로는 없지만 버퍼(메모리 공간)가 필요함
• 각 노드에서 전체 패킷이 수신되고 저장된 후 다음 노드로 전달 -> 저장 후 전환
• 사전에 할당(예약)된 리소스가 없음
• 라우터가 대상 호스트 주소를 사용하여 패킷 전달
• 패킷은 독립적으로 라우팅

-Routing Algorithms
• 라우터는 라우팅 테이블을 관리하고 대상에 대한 경로를 가장 잘 제공할 링크를 선택
• 라우팅 알고리즘은 라우팅 테이블을 구성하는 데 사용되는 정보를 교환하고 계산

-Two routing algorithms

1. Link State Routing Algorithm
• 라우터는 플러딩을 통해 인접 라우터에 대한 정보를 모든 라우터로 보냄.
• 정보 공유는 변화가 있을 때마다 이루어짐.
• 라우팅 업데이트를 수신한 후, 각 라우터는 자신으로부터 다른 모든 라우터까지의 최단 경로를 독립적으로 계산.
• 계산은 다이스트라 알고리즘을 기반
2. Distance Vector Routing
• 라우터는 인접 라우터의 정보를 사용하여 최적 경로에 대한 아이디어를 업데이트
• 이 반복 프로세스는 최단 경로 집합과 수렴
• 라우팅 테이블을 만들기 위해 Bellman-Ford 알고리즘 사용.

-5-2장-

-IP addresses
• IP address는 Host ID와 Net ID로 나뉨
• (A,B,C,D,E)5가지로 구분됨->class B가 가장 많이 사용됨

-Subnet Addressing
• 인터넷의 원래 2단계 계층 구조는 각 사이트에서 단일 네트워크를 가정
• 단일 네트워크 주소가 여러 물리적 네트워크에 걸쳐 있을 수 있음.
• 호스트 ID 부분이 서브넷 ID와 호스트 ID로 나뉨 -> class A 및 class B 주소에 너무 많은 호스트가 있을 수 있음.

-Problems of IP address scheme
• 인터넷의 폭발적인 증가

-CIDR(Classles Inter-Domain Routing)
• 네트워크 주소와 호스트 주소의 구분을 더 세분화 하여 IP주소를 할당

-NAT(Network Address Translation)
• 네트워크 주소를 변환하여 부족하아 IP를 절약할 수 있음

-IP(Internet Protocol)

# data[].attributes.body
Network Layer Services

- 소스에서 대상까지 패킷을 가져올 때의 네트워크 계층 문제

- 패킷을 보낼 때 헤더에 IP adress를 붙여 보낸다.

- router 는 IP adress를 보고 destination 까지 보낸다.

Network Layer

forwarding : 라우터 입력에서 적절한 라우터 출력으로 패킷 이동시키는 것

routing : 패킷을 어느 곳으로 보내야할지 주소를 보고 판단하는 행위

Network 구분

1. circuit-switched networks (1, 2세대)

ex) 옛날 전화 방식

- Three phases

1) Circuit establishment

2) Data transfer

3) Circuit termination

Message switching

- 설정 절차 없음

- 메시지는 채널을 사용할 수 있을 때까지 저장됩니다

- 대기열 지연 발생

packet switcing

- Message switching의 일부

- 패킷을 보낼 때 coneection 없이 packet 단위로 쪼개서 전송함

2. packet-switched networks (3세대 ~ 0)

- 큰 패킷 크기로 시작하는 것보다 패킷이 더 작을 경우 Y에 도달하는 데 걸리는 시간이 더 적음

- 더 작은 패킷 크기를 사용하고 가장 효율적이지만, 헤더에 비해 너무 작은 패킷 크기를 사용하할 경우, 효율성이 저하됨

Routing Algorithms

- 라우터는 라우팅 테이블을 관리하고 대상에 대한 최적의 경로를 선택

- 라우팅 알고리즘은 라우팅 테이블을 구성하는 데 사용되는 정보를 교환하고 계산

Two routing algorithms

- Link State routing

- Distance vector routing

Link State routing algorithm

- 라우터는 flooding 을 통해 이웃에 대한 정보를 모든 라우터에 보낸다.

- 정보 공유는 변화가 있을 때마다 이루어진다.

- 라우팅 업데이트를 수신한 후, 각 라우터는 자신으로부터 다른 모든 라우터까지의 최단 경로를 독립적으로 계산한다.

- 계산은 Dijkstra 알고리즘을 기반으로 한다.

IP(internet protocol)
-32비트 구조

IP addresses
-class A : 0, Net ID(7), Host ID(24)
-class B : 1,0,Net ID(14), Host ID(16)
-class C : 1,1,0, Net ID(21), Host ID(8)
-class D: 1,1,1,0,Multicast Address
-class E: 1,1,1,1,0, Multicast Address
Net ID : 기관마다 할당하는 ID
Host ID : 내부 ip 주소를 구성하는 ID

Problems of IP address scheme
Long term solution : IPng(IPv6) -> 시간이 오래걸리고 상용화가 어려움
Short term solution : slowing down rate of depletion of remaining unassigned addresses -> CIDR

CIDR
기존의 class 를 ABCD로 나누는 것이 아니라 /숫자를 붙여서 네트워크 ID 부분을 알려주는 식으로 IP adress를 할당하는 방식

IP address 할당받는 방법
-manual configueration
-DHCP : 정규가 아니라 임시 IP address할당 받아서 사용하는 방법

NAT
1) 부족한 IP address를 해결하는 방법
2) WAN에서의 IP 주소를 LAN에서의 IP주소로 전환하면서 데이터를 전송함

# data[].attributes.body
5-1 강

Network Layer Service - 데이러를 리시브측에 안전하게 전달
Network-Layer Function
Forwarding - 입력측에서 받아서 출력측으로 전달
Routin - 주소를 보고 판단

Communication network 종류
Circuit-switched networks (1,2g)
옛날 전화방식, circuit을 만들고 회선 예약, 끊음
장점 : 오랜 시간 통화할때, 딜레이가 없음
단점 : 채널 용량 낭비
Packet-switched networks(=Message Switching) (3g 이상)
데이터를 패킷단위로 작게 잘라서 보냄 (속도향상을 위해,pipeline) 하지만 반드시 많이 자를수록 성능 향상X (header 영향)
서킷이 없이 바로 전송.

Routing Algorithms - routing table 만드는 알고리즘
Link state routing
다이스트라 알고리즘 - 이용 숫자가 낮은 가중치를 선택
Distance vector routing
벨만포드 알고리즘 - 이웃하고만 데이터를 주고 받음

5-2 강

IP : Routing algorithm 실제 구형 프로토콜
ip address
net id - 기관,조직에서 갖고 있는
host id - 개인 ip
5가지 클래스로 분류되어 있음
subnet addressing - host id에서 세부 네트워크로 분류 (체계적으로 관리하기 위함)

ip address 부족해결방법
IPng 새로운 버전생성
CIDR - 클래스에 상관없이 비트 설정
DHCP - 임시 ip address 를 쓰고 반납
NAT - 동적으로 할당받은 IP를 사적 IP로 할당, 변환

# data[].attributes.body
Network Layer
-sender가 보낸 데이터를 receiver로 안전하게 전달함.
데이터를 보낼때마다 header에 주소를 써서 보냄. (공통의 체계 ip address)
Forwarding - 주소 바탕으로 전송
Routing - 주소를 보고 어디로 보낼지 결정

네트워크
1,2 세대 : Circuit-switched networks
3 세대 : Packet-swited networks

Circuit-switching = 옛날 전화방식
circuit establishment, data transfer, circuit termination 으로 3가지 행위로 구분됨.
장점 - circuit이 예약이되므로 오랜시간 통화할때 good. 딜레이 없음.
단점 - 채널의 낭비가 존재.

Message switching
-circuit 만들고 끊는 행위 없이 바로 message를 보냄.
메세지가 길어지면 다 받아서 보내는 것이 길어짐.
Packet으로 잘게 잘라서 보내서 해결할 수 있음.

Routing Algorithms
-A에서 F로 가는가장 빠른 경로 cost가 가장 적은 경로

Link State routing
- Dijkstra's Algorithm을 사용함.
- 각각의 노드가 이웃한 노드와 cost를 알고 있다. 서로 정보를 교환
- 각 노드가 그것을 바탕으로 최적의 routing path를 찾는 과정

Distance vector routing
- Bellman-Ford Algorithm을 사용함.
- 다양한 경로가 있지만 이웃한 노드만 사용

Hierarchical routing
대표 라우터를 선정, 대표 라우터들끼리 주고 받아 라우팅 알고리즘을 만듬.

IP addresses
net ID, host ID로 나누어져있음.
크게 5가지 Class로 구분되어있음.

NetID - 조직, 기관의 ID
HostID - 기관에서 사간 다음에 개인 컴퓨터 할당

Class B = NetID 14, HostID 16
가장 많이 사용함.

CIDR
- 기존의 class 나누는 방식이 아니라 Net ID 부분 나타냄.

NAT
- 할당 받은 IP address 부족문제 해결

TTL
라우터를 거칠때마다 숫자가 줄어듬.
몇번을 거쳐서 목적지까지 도착했는지 측정함.

# data[].attributes.body
[5-1장]

Network layer : 라우팅과 포워딩을 담당

routing : 네트워크 안에서 통신데이터를 보낼 때 최적의 경로를 선택하는 것

forwarding : 라우터의 입력 포트에서 출력 포트로 패킷을 이동시키는 것

Swiching

Message Swiching : 회선교환의 단점을 보완한 방식으로 실질적으로 메시지 단위로 할당하는 방식

Circuit Swiching : 하나의 circuit을 할당 받아 데이터를 주고받는 방식

Packet Swiching : 데이터를 packet이라는 단위로 분할하여 전송하는 방식

Routing Algorithm

Link State routing : 전체적인 네트워크 상황을 알고, 이를 토대로 라우팅 경로를 판단

(대표적인 예시의 다익스트라 알고리즘을 제대로 배울 수 있었습니다)

Distance Vector routing : 특정 라우터와 연결된 이웃 라우터의 정보만을 가지고 판단

(대표적인 예시로 벨만 포드 알고리즘이 있습니다)

Hierarchical routing : Core Network의 라우터부터 Local Network의 라우터까지, 각 라우터마다의 라우팅 테이블에 계층적 구조를 적용한 모델

[5-2장]

IP Adress : host id와 network id로 구성

Host ID : 호스트들을 개별적으로 관리하기 위해 사용

Network ID : 그룹으로 host들을 관리하기 위해 network의 범위를 지정

Subnet mask : host id와 network id를 구분해주는 역할

1) A class 주소 범위: 1.0.0.0 ~ 127.255.255.255

2) B class 주소 범위: 128.0.0.0 ~ 191.255.255.255

3) C class 주소 범위: 192.0.0.0 ~ 223.255.255.255

4) D class 주소 범위: 224.0.0.0 ~ 239.255.255.255.

5) E class 주소 범위: 240.0.0.0 ~ 247.255.255.255.

CIDR : class로 나누는 방식이 아니라 network id 부분이 얼마인지 나타내는 식으로 사용

DHCP : 정규 ip address가 아닌 임시 ip adress를 할당받아 사용

NAT : ip adress가 부족한 것을 해결하는 방법

IP : 다양한 프로토콜로 만들어짐

ICMP : 라우터에서 발생한 오류를 송신측으로 전송하는데 사용하는 프로토콜

IGMP : 인터넷에 연결한 컴퓨터가 멀티캐스트 그룹을 주위의 라우터에 알릴 수 있는, 수단을 제공하는 프로토콜

# data[].attributes.body
5-1장

네트워크 레이어 서비스

포워딩 - 데이터를 받아서 출력층으로 보내는 역할

라우팅 - 어느 곳으로 데이터를 보내야 할지 주소를 보고 판단 하는 행위

네트워크 코어

circuit-switched networks - 유선전화망

packet-switched networks - 컴퓨터통신망(3세대~)

Circuit switching

-전화방식

장점 - 리얼타임으로 오랜시간 통화가능, 딜레이 없음

단점 - 채널 낭비

Message swithing

- 패킷을 보낼 때 커넥션없이 패킷단위로 쪼개서 보냄

- 길어질 경우 시간이 오래걸림.

Packet switching

- 버퍼의 사이즈가 커야함

- 파이프라인 사용

Routing Algorithm

- 라우팅 테이블 만드는 알고리즘

- 라우터들이 각자가 스스로 계산

Link state routing algorithm

- 다익스트라 알고리즘 베이스

- 최적(가장짧은) 경로를 만듬

- 라우팅 테이블을 만듬

Distance vector routing algorithm

- 벨만포드 알고리즘 사용

- 이웃하고만 데이터를 주고 받음

- 이웃 한 노드로부터 라우팅 테이블 만듬.

Hierarchical routing algorithm

- 모든 라우팅을 앞선 방법 적용 어려움

- 대표 라우터 시스템을 선정하고 대표들끼리 라우터 테이블을 주고 받아서 라우팅 알고리즘 생성.

- 내부에선 내부의 라이팅 테이블 생성

5-2장

IP

- 라우팅 알고리즘을 실제로 구현하는 프로토콜

IP addresses

- 32bit를 통해 어떤 단말인지 알수 있게됨.

- class A,B,C,D,E 있음

- class A : Net ID (기관ID) 나머지, 24bit 컴퓨터 할당

- claas C : 호스트 ID가 작기 때문에 컴퓨터 할당이 적게됨.

Subnet Addressing

- Host ID 효율적으로 사용하기 위함.

- 호스트ID 부분을 가지고, 세부 네트워크 나눔.

- Subnet Mask : IP의 32bit를 어떻게 나누었는지 알기위해서 사용.

IP address scheme 문제

- 주소 고갈 문제 해결

- IPv6

- CIDR : ID 부분 가변적으로 변환

IP 어드레스 할당 방법

- 매뉴얼 할당 방법

- DHCP : 임시 어드레스 할당, 반납

NAT

- IP address 1개로 많은 호스트 연결 하는 방식

IP

- 다양한 프로토콜로 이루어짐.

- 20byte 헤더

- TTL필드 : 라우터가 라우터를 거칠 때마다 숫자가 하나씩 줄어듬. 몇 번에 거쳐서 목적지 도달 했는 지 알기 위함.

# data[].attributes.body
배운점)

<5-1장>

Network Layer : 수신자가 데이터를 안전하게 수신할 수 있도록 해주는 서비스

- Forwarding: 패킷을 적절한 목적지(라우터출력)으로 전달하는 행위

- Routing: 수신자의 주소를 보고 어디로 보낼지 결정하는 행위

종류:

- Circuit Switching : 옛날 전화방식. 서킷을 열고 통화하고 서킷을 끊는 행위

장점ㅡ>리얼타임으로 오래 통화하기 좋다

단점ㅡ> 채널의 낭비가 존재한다

- Message Switching: 바로 메시지를 보내는 방식

- Packet Switching: Message Switching의 일부. 메시지를 중간중간 나눠서 보냄. 패킷을 보낼 때 미리 커넥션 없이 데이터를 단위로 쪼개서 보내는 방식. 한쪽이 밀리면 순서가 달라질 수 있음

Routing Algorithms: Routing Table을 어떻게 만들 것인지에 대해서 테이블을 만드는 알고리즘, 라우팅 테이블을 구성하는 데 사용되는 정보를 교환하고 계산함.

- Link State Routing Algorithm: 다익스트라 알고리즘 사용

- Distance Vector Routing Algorithm: 벨만 포드 알고리즘 사용

- Hierarchical routing: 각각의 AS에서 대표 라우터들을 선정해서 라우터들끼리 라우팅 테이블을 주고받아서 알고리즘을 만들고, 내부에서도 같이 만듦.

<5-2장>

IP(Internet Protocol)

-IP adress는 Host ID와 Net ID로 나뉨

- 크게 5가지로 구분됨(class A,B,C,D,E)

- class B가 가장 많이 사용됨(포항공대 포함)

IP 주소체계의 문제

=> IP address의 고갈문제에 대한 근본적인 솔루션: IETF Solutions

ㅡ> IPv6를 만드는것 but 모든 장비를 다 바꿔야하기 때문에 하루아침에 해결 x

ㅡ> short term solutions

- CIDR: 딜레마를 해결하기 위해 호스트주소와 네트워크 주소를 더욱 세분화하여 IP address를 할당하는 방식

- DHCP(Dynamic Host Configuration Protocol): 임시 address를 할당받아서 사용하고 반납하는 방식

- NAT(Network Address Translation): IP address가 부족한 것에 대한 해결방안 중 하나. IP address 하나를 가지고 많은 호스트를 연결할 수 있는 방식. 내부 기관에서 라우터가 마음대로 IP를 할당해서 쓰는 방식

# data[].attributes.body
<5-1강> Network Layer
- 포워딩- 데이터를 받아서 목적지까지 전달하는 것, 라우팅-주소를 보고 목적지를 판단하는 것.

- Swithching :  Circuit Switching, Message swithching, Packet Switching ...

- Routing Algorithm: Link state routing algorithm- 다익스트라 알고리즘(최적경로), Distance vector rounting algorithm - 벨만포드 알고리즘,
Hierarchical routing algorithm - 대표를 설장하고, 대표 라우터끼리 알고리즘을 생성. 계층적 구조를 적용함

<5-2강> IP(Internet Protocol)

- IP adress(주소): net ID와 host ID
A,B,C,D,E 클래스 , B클래스가 가장 많이 사용됨. 2의 16승대의 컴퓨터에 ID를 할당 가능

- CIDR: ip 주소의 일정 범위를 지정하고, 할당. 클래스 개념 x

- NAT : ip adress 1개로 여러 컴퓨터를 연결.

# data[].attributes.body
Network Layer & IP

Network Layer Services

- 소스에서 대상까지 패킷을 가져올 때의 네트워크 계층 문제

- 패킷을 보낼 때 헤더에 IP adress를 붙여 보낸다.

- router 는 IP adress를 보고 destination 까지 보낸다.

Network Layer

forwarding : 라우터 입력에서 적절한 라우터 출력으로 패킷 이동시키는 것

routing : 패킷을 어느 곳으로 보내야할지 주소를 보고 판단하는 행위

Network 구분

1. circuit-switched networks (1, 2세대)

ex) 옛날 전화 방식

- Three phases

1) Circuit establishment

2) Data transfer

3) Circuit termination

Message switching

- 설정 절차 없음

- 메시지는 채널을 사용할 수 있을 때까지 저장됩니다

- 대기열 지연 발생

packet switcing

- Message switching의 일부

- 패킷을 보낼 때 coneection 없이 packet 단위로 쪼개서 전송함

2. packet-switched networks (3세대 ~ 0)

- 큰 패킷 크기로 시작하는 것보다 패킷이 더 작을 경우 Y에 도달하는 데 걸리는 시간이 더 적음

- 더 작은 패킷 크기를 사용하고 가장 효율적이지만, 헤더에 비해 너무 작은 패킷 크기를 사용하할 경우, 효율성이 저하됨

Routing Algorithms

- 라우터는 라우팅 테이블을 관리하고 대상에 대한 최적의 경로를 선택

- 라우팅 알고리즘은 라우팅 테이블을 구성하는 데 사용되는 정보를 교환하고 계산

Two routing algorithms

- Link State routing

- Distance vector routing

Link State routing algorithm

- 라우터는 flooding 을 통해 이웃에 대한 정보를 모든 라우터에 보낸다.

- 정보 공유는 변화가 있을 때마다 이루어진다.

- 라우팅 업데이트를 수신한 후, 각 라우터는 자신으로부터 다른 모든 라우터까지의 최단 경로를 독립적으로 계산한다.

- 계산은 Dijkstra 알고리즘을 기반으로 한다.

5-2장

IP(internet protocol)

-32비트 구조

IP addresses

-class A : 0, Net ID(7), Host ID(24)

-class B : 1,0,Net ID(14), Host ID(16)

-class C : 1,1,0, Net ID(21), Host ID(8)

-class D: 1,1,1,0,Multicast Address

-class E: 1,1,1,1,0, Multicast Address

Net ID : 기관마다 할당하는 ID

Host ID : 내부 ip 주소를 구성하는 ID

Problems of IP address scheme

Long term solution : IPng(IPv6) -> 시간이 오래걸리고 상용화가 어려움

Short term solution : slowing down rate of depletion of remaining unassigned addresses -> CIDR

CIDR

기존의 class fmf ABCD.. 로 나누는 것이 아니라 /숫자를 붙여서 네트워크 ID 부분을 알려주는 식으로 IP adress를 할당하는 방식

<IP address 할당받는 방법>

-manual configueation

-DHCP : 정규가 아니라 임시 IP address할당 받아서 사용하는 방법

<NAT>

부족한 IP address를 해결하는 방법 중 하나

WAN에서의IP 주소를 LANdptjdml IP주소로 전환하면서 데이터를 전송함

# data[].attributes.body
AIoT 5장 - 1

< Network Layer Services >

network layer의 역할 : sender가 보낸 메세지를 receiver이 안전하게 전달받을 수 있도록함(이는 IP가 하는 역할이기도함)

header에 IP address를 작성하고, 보내는 host와 받는 host를 작성하며, router이 IP address를 받아 안전하게 destination으로 보내는 역할을 함

Circuit - switched networks ( 1,2세대 )

workflow >

1. circuit을 여는 행위(establishment) : 회선을 미리 예약하는 것을 시작으로 통화가 시작됨

2. data transfer

3. circuit을 닫는 행위(termination) : 통화가 끝나면 회선을 끊으면서 종료됨.

pros & cons >

pros - circuit이 예약 및 할당되기 때문에 오랜 시간동안 사용하기 좋으며, delay가 발생하지 않는다.

cons - 채널의 낭비가 존재한다.

Packet - switched networks ( 3세대~ )

message switching

pipeline 하나를 보내기 때문에 훨씬 간단하나, 큰 단위의 메세지를 보내는데 시간이 오래걸리며, 메세지가 길어지려면 이에 대한 저장이 부담이 될 수 있다. 따라서 이를 packet 단위로 쪼개어 packet switching을 하게 된다.

packet switching : message switching의 일부

pipeline을 packet 단위로 잘라 메세지를 조금 더 빨리 보내게 함

그러나 pipeline을 여러개로 쪼개 보내기 때문에 메세지 한 개가 밀리게 되면 receiver에게 순서가 다르게 도착함. 순서는 재정비되기 때문에 상관없긴하다.

그러나, pipeline을 많이 쪼갠다고 다 좋아지는 것은 아니다.

packet 단위는 header와 data로 이루어진다. 이때, 특정 시점부터는 header와 data의 크기가 비슷해지며 오히려 비효율을 초래하게 된다. 따라서 무조건적으로 packet이 많아진다고 좋은 것은 아니다.

router가 routing table을 잘 만들어놓으면, header에 들어있는 정보를 바탕으로 수신지까지 잘 전달할 수 있으므로 routing table은 매우 중요하다.

routing algorithms - routing table을 생성하는 알고리즘

distribute routing : central node에서부터 전달되는 것이 아니라, 각각의 router들이 계산을 하는 알고리즘을 채택

minimum cost으로 destination까지 가는 최적의 경로를 탐색하는것

< Two routing algorithms >

Link State Routing

Dijkstra’s Algorithm 사용 : 각각의 노드(router)들이 이웃한 노드들에 대한 경로를 모두와 공유하며 모든 노드들이 topology를 그림. 각각의 노드가 이를 활용하여 가장 짧은, 다시 말해 최적의 경로를 찾는 알고리즘을 돌림.

경로별로 지나갔을 때의 cost 합을 계속하여 비교하며 최소의 cost를 갖는 최적 경로를 찾는다. → shortest path routing algorithm protocol

이를 통해 routing table을 작성하게 된다.

Distance Vector Routing

Bellman - Ford Algorithm 사용 : Link State Routing과는 다르게, 모든 노드와 공유하는 것이 아니라, 이웃하고만 정보를 공유함. 이웃에 대한 cost만 안다는 전제 하에 topology를 그리게된다. 이를 통해 작성된 routing table을 활용하여 최적 경로를 계산을 하게된다.

그러나 현실에서는 이러한 모든 과정을 거치지 않는다. autonomous system에서 대표 router를 선정하고 이 대표 router끼리 정보를 공유하며 algorithm을 만들며, 그 안에서도 이와 비슷한 과정으로 algorithm을 만드는것이 hierarchical routing이다.

Hierarchical routing

Full table을 만들지 않고, 상대적으로 짧은 table을 만든다.

전체 region에 대한 table을 만들지 않고, region으로 가는 대표 router에 대한 table을 만들며, region 내부적으로 다시 돌아가도록한다.

AIoT 5장 - 2

IP : routing algorithm을 구현하는 protocol

< IP addresses >

1. IP addresses = net ID + host ID

2. 구분 : class A ~ class E (32 bit- 실제로는 31bit를 어떻게 쪼개어활용하는지에 따라 구분)

3. Dotted Decimal Notation : 32비트를 8트씩으로 쪼개어 10진수로 표현하는 것 ex) 128.10.2.30

< Subnet Addressing >

Host ID에 할당된 bit를 효율적으로 활용하기 위하여 Subnet ID를 활용. 랜덤하게 숫자를 부여하는 것 대신, Subnet ID에 의미를 부여하여 Host ID를 세부적으로 쪼개며, 이는 체계적인 관리를 가능하게 함.

→ IP addresses = Net ID + ([Subnet ID] + [Host ID])

인터넷 보급 확대에 의한 IP address 고갈문제 를 해결하기 위하여 , 근본적인 문제를 해결하는 IETF solution이 등장

< IP address 고갈문제 해결방안 >

IETF solution

: 새로운 version을 만들자 → IPv6

그러나, 이를 위해서는 모든 장비들에 대한 교체가 필요하므로, 이를 보완할 short term solution이 등장하게됨 → CIDR

CIDR

: bit의 크기가 정해진 채로 할당되는 기존의 class A~E 구분 방식이 아니라, network part와 host part를 가변적으로 분리하여 사용. (유연함)

→ IP addresses = Net ID + (network part ~ + host part ~)

IP address 할당 방법

manual configuration VS DHCP( 임시 IP address를 할당받아 사용 후 반납 )

NAT(Network Address Translation)

: IP address 하나 가지고 많은 host를 연결하는 방법

→ 기존의 공적 IP - Router - 사설 IP(내부에서만 사용되는 local network)

이와 같은 다양한 문제들로 IP address 부족 문제를 해결하고 있음

< IP( Internet Protocol ) >

Network layer

ICMP : control 하는 용

IGMP : multi casting을 하기 위한 protocol

→ 둘 다 결국에는 IP망을 통해 간다.

IP format

TTL( Time to Live ) : router를 거칠 때마다 숫자가 줄어드는, 즉 몇번을 거쳐서 destination으로 가는지 측정하는용.

# data[].attributes.body
5-1

Network layer

-forwarding/routing
forwarding
: 패킷을 목적지로 전달하는 행위
routing
:데이터를 어디로 보낼지 결정하는 행위

라우팅 알고리즘
: 라우팅 테이블을 만드는 알고리즘으로, 라우터를 통과하는 최상의 경로를 선택하게 한다
1)link state routing algorithm
-다익스트라 알고리즘 사용
-노드가 서로의 비용 및 정보를 알고 있음. 가장 적은 비용을 사용한다
2)distance vector routing
-벨만포드 알고리즘 사용
-이웃 노드들의 가중치를 활용해 라우팅 테이블 생성
3)hierarchical routing
-대표 라우터 설정, 대표 라우터 끼리 알고리즘을 만든다

5-2

IP
:네트워크 상에서 컴퓨터를 식별하기 위해 부여된 위치 정보
-네트워크 id와 호스트id로 구성

-host ID는 쪼개서 subnet ID로 사용 가능

-141.223.0.0인 라우터는 141.223~으로 시작하는 모든 주소에 연결

-서브넷 마스크 : 서브넷을 몇 개로 나눴는지 알려준다

IP address가 부족한 문제를 해결하기 위해서?
-NAT (network address translation)
: 컴퓨터 네트워크에서 ip주소를 변환하는프로세스
사설 네트워크 내 컴퓨터들이 인터넷에 접속할 때, 각 컴퓨터의 사설 ip주소를 공인 ip주소로 변환하여 외부와 통신 가능하게 함. 보안성 강화

-CIDR(Classless Inter-Domain Routing)
: 인터넷 프로토콜 주소를 할당하는 방법 중 하나로,
기존의 주소 할당 방식에서 클래스 개념을 제거하고, ip주소와 서브넷 마스크를 조합하여 ip주소 범위를 지정.
ip주소 할당이 더 효율적이고 유연해짐. 공간의 낭비를 줄인다.

# data[].attributes.body
<5장>
Network Layer
- 데이터 패킷을 필요한 주소로 전달

Routing
- 패킷이 출발에서 목적까지 전달할 때 주소를 확인

Forwarding
- 결정된 경로에 따라 패킷 전달

Message Switching
- 끊임없이 메세지 전달

Routing Algorithm
- 라우팅 테이블을 만든 후 데이터 전달
- Link State Routing
- Distance Vector Routing
- Hierarchical Routing : 대표 라우터 설정 후 대표 라우터끼리 라우팅 테이블 생성

IP address
- Net Id
- HOST Id
- Class A~E

DHCP
- 정규 IP address가 아닌 임시 IP address 할당

NAT
- 공적 IP, 사적 IP를 만들어서 사용

# data[].attributes.body
# 5-1강
Network Layer
- sender가 보낸 데이터를 receiver로 안전하게 전달
- 데이터를 보낼 때마다 header에 주소 써서 보냄

Forwarding
- 주소 바탕으로 전송

Routing
- 주소 보고 어디로 보낼지 결정

네트워크는 크게 2개로 나뉨
1, 2 세대 : Circuit-switched networks
3 세대 : Packet-swited networks

Circuit-switching
- 옛날 전화방식
- circuit establishment, data transfer, circuit termination의 3가지 행위로 구분
- 장점: circuit 예약됨
-> 오랜시간 통화시 좋음
딜레이 없음
- 단점: 채널 낭비 존재

Message switching
- circuit 만들고 끊는 행위 없이 바로 message 보냄
- 메세지 길어지면 다 받아서 보내는 것이 길어짐
-> Packet으로 잘게 잘라 보내 해결 가능

Routing Algorithms
- A에서 F로 가는 가장 빠른 경로
- cost가 가장 적은 경로

Link State routing
- 다익스트라 알고리즘 사용
- 각각의 노드가 이웃한 노드와 cost를 알고 있음
-> 서로 정보 교환
- 각 노드가 그것을 바탕으로 최적의 routing path찾는 과정

Distance vector routing
- Bellman-Ford Algorithm 사용
- 다양한 경로 있지만 이웃한 노드만 사용

Hierarchical routing
대표 라우터 선정, 대표 라우터들끼리 주고 받아 라우팅 알고리즘 만듦

--------------------------------

# 5-2강

IP addresses
- net ID, host ID로 나누어져 있음
- 크게 5가지 Class로 구분

NetID
- 조직, 기관 ID

HostID
- 기관에서 산 후 개인 컴퓨터 할당

CIDR
- 기존 class 나누는 방식 아닌 Net ID 부분 나타냄

NAT
- 할당 받은 IP address 부족 문제 해결

TTL
라우터 거칠때마다 숫자 줄어듦
몇 번 거쳐 목적지까지 도착했는지 측정

# data[].attributes.body
[5-1장]
Netwrok Layer
- sending host에서 receiving host로 패킷 전송
- 주요 기능
1. Forwarding : 라우터 입력에서 적절한 라우터 출력으로 패킷 이동 / 단일 interchange를 통과하는 프로세스
2. Routing : 패킷이 소스에서 대상으로 이동하는 경로 결정 / 소스에서 목적지로의 이동을 계획하는 프로세스

Circuit Switching
- 통신 경로를 미리 설정하고, 통신이 이루어지는 동안 해당 경로를 독점적으로 사용하는 방식으로 동작
- 통신에 필요한 회선 미리 확보 -> 회선 전송 방식
- 실시간 통신에 적합 ex) 전화망

Message Switching
- 컴퓨터 네트워크에서 사용되는 통신 방식
- 통화 설정 절차 없음
- 채널을 사용할 수 있을 때까지 저장됨 -> 상당한 대기열 지연

Packet Switching
- 데이터를 작은 블록(Packet)으로 나누어 전송하는 방식
- 전용 경로는 없지만 메모리 공간이 필요함
- 각 노드에서 전체 패킷이 수신되고 저장된 후 다음 노드로 전달됨 -> 저장 후 전환
- 각 패킷이 다른 경로를 따를 수 있음
- 대부분의 컴퓨터 네트워크에서는 이 방식이 사용

Routing Algorithms
- 라우팅 테이블을 구성하는 데 사용되는 정보를 교환하고 계산
1. Link State routing : 네트워크의 전체 상태 정보를 수집하고, 최적 경로를 계산하는 방식 / Dijkstra 알고리즘을 기반으로 함
2. Distance vector routing : 라우팅 프로토콜 / 라우팅 테이블을 사용하여 최적 경로를 계산하며, 인접 노드와의 거리 정보를 바탕으로 경로를 선택 / Bellman-Ford 알고리즘을 사용하여 라우팅 테이블 만듬
- Hierarchical routing
- 네트워크의 크기가 커짐에 따라 라우팅 테이블은 비례적으로 증가 -> 더 많은 메모리 소비, 더 많은 대역폭 필요
- AS : 단일 조직에서 관리하는 라우터 및 네트워크의 집합

[5-2장]
IP addresses
- 호스트 또는 라우터의 각 인터페이스에는 고유한 32비트 IP주소가 할당됨
- 라우터에는 일반적으로 여러 개의 인터페이스 존재
- 각 주소는 한 쌍(net ID, host ID)
- 각 LAN에는 subnet number(subnet ID)가 할당되됨
- Subnet mask : 서브넷 번호와 호스트 번호를 나타냄
- IP 주소 체계 문제
인터넷의 폭발적인 성장

CIDR(Classless Inter-Domain Routing)
- 서브넷 마스크를 표현하는 방식
- 기존의 서브넷 마스크 표기법인 네트워크 클래스 주소 체계를 대체

DHCP(Dynamic Host Configuration Protocol) : 네트워크의 장치에 IP 주소를 자동으로 할당

NAT(Network Address Translation) : 프라이빗 네트워크에서 인터넷에 접속하기 위해 사용되는 IP 주소를 공인 IP 주소로 변환하는 기술

IP : 신뢰할 수 없는 서비스 제공 -> 최선의 노력 서비스, 보장 없음

ICMP : IP 계층에서 다른 호스트 또는 라우터의 IP 계층과 오류 메시지 및 기타 중요한 정보를 교환하는 데 사용

IGMP : 멀티캐스팅과 함께 사용

ARP & RARP :  IP 계층에서 사용하는 주소와 네트워크 인터페이스에서 사용하는 주소 간에 변환

# data[].attributes.body
Network Layer

-Forwarding/Routing

-Circuit Switching : 하나의 회선을 할당받아 데이터 주고받음, 전화와 같은 실시간 토인에 사용,

-Packet Switching : 데이터를 패킷 단위로 쪼개서 전송하는 방식, 패킷의 헤더에는 출발지와 목적지 정보가 있음, circuit switching보다 구현이 간단하고 효율적,

-Routing Algorithms : 송신자로부터 수신자까지 데이터 전송할 때 라우터를 통과하는 최상의 경로를 선택하는 것(비용, 속도 등 고려)

-Dijsktra's Algorithm : Dynamic Programming 활용한 최단 경로 탐색 알고리즘, 특정 하나의 정점에서 다른 모든 정점으로 가는 최단 경로를 알려줌

IP
IP(Internet Protocol)
인터넷에서는 물리주소와는 별도로 호스트를 식별할 수 있는 유일한 주소 지정해야함, 32비트 주소 체계를 인터넷 주소로 사용

-DHCP(Dynamic Host Configuration Protocol)
호스트의 IP 주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜

-NAT(Network Address Translation)
내부 네트워크에 있는 여러 대의 컴퓨터가 한개의 IP주소를 공유하여 IP 부족 문제 해결

# data[].attributes.body
Network Layer &  ip
network lyer의 역할로 forwarding과 routing이 있다.
forwarding : 데이터 패킷이 송신자로부터 전달,
routing : 패킷이 출발지에서 수신자의 주소를 보고 데이터를 어디로 보내야할지 판단하는 행위

network 종류
1)circuit-switched networks(1g,2g)
circuit establishment/data transfer/circuit termination
2)packet-switched networks(3g)

routing algorithms (route table 만드는 알고리즘)
1)link state routing algorithm
다익스트라 알고리즘
2)distance vector routing
벨만 포드 알고리즘
3)현실
라우팅 테이블 전체 사용하기에는 너무 방대함

ip(internet protocol)
초기 kip address는 32비트였음

cidr

nat

# data[].attributes.body
5장

네트워크 레이어 : 패킷을 호스트에게서 리시버한테 보내는 역할

라우팅과 포워드 : 패킷의 헤더를 읽어 주소를 확인하고 경로를 지정해 보내주는행위

서킷 스위칭:옛날 집전화 방식, 전화회선을 예약후 통신하고 다시 전화회선을 닫음 장점(오랜시간할때 좋은) 단점 (채널의 낭비가 존재함)
메시지 스위칭 : 예약을 하지않고 메시지를 저장후 보냄
패킷 스위칭 : 메시지 스위칭의 일종으로 패킷단위로 보냄 , 장점(한 노드가 막혀도 다른노드로 우회) 단점(대신 받는측에 저장행위가 요구됨(

하이파이닝: 데이터를 패킷 단위로 쪼개 보냄 훨씬 빠르지만 헤더도 그만큼 늘어남

라우팅 알고리즘: 라우팅을 하기위한 알고리즘

링크 스테이트 라우팅 : 각 라우터끼리 서로 위치를 파악하고 각자 최단경로를 계산 최단경로 계산 다익스트라알고리즘을 사용

디스탠스 백터 라우팅 : 벨먼-포드 알고리즘을 사용 이웃 노드끼리만 정보를 주고받음 테이블을 만들어서 최단거리를 계산

인터넷 프로토콜

IP 주소:각 호스트나 라우터가 승인받은 유일한 32비트 IP주소

클래스 A~E 로 나누어짐

서브넷 어드레싱: 호스트 ID부분을 쪼개서 서브넷으로 쓸 수 있음

서브넷 마스크 : 앞에서 서브넷 ID들 앞에서 대표적으로 받는 주소

IP 의 문제: 인터넷의 크기가 커지면서 빈 주소가 고갈되게 됨

해결법 멀리보는 해결법 =IPv6로 확장

시급히 쓰는 해결법들

CIDR 호스트 파트를 줄이고 네트워크 파트를 늘려서 기업의 할당량을 줄임

DHCP 임시 주소를 할당

NAT 하나의 IP어드레스에서 NAT에서 국지적으로 쓰는 사설 주소로 전환해서 시설내의 호스트들에게 할당해줌 밖으로 통신할때 사설주소를 받아 다시 원래 IP로 통신함

# data[].attributes.body
[배운점]
(5-1)
1. Network layer는 routing과 forwarding을 담당하는데, routing은 어떤 네트워크 안에서 통신 데이터를 보낼 떄 최적의 경로를 선택하는 것을 말하고, forwarding은 전달하는 행위를 말한다.

2. Circuit Switchg은 과거의 전화 방식으로 3가지 행위로 구분한다. circuit이 예약되고, 오래 통화할 때 좋고, 딜레마가 없지만, 채널의 낭비가 존재한다. Packet Switching은 최근의 통신망 방식으로, 데이터를 packet 단위로 나누어서 전송하는 방식이다.

3. Routing Algorithms은 라우터를 통과하는 최상의 경로를 선택하게 하는 알고리즘이다. Dijksatra 알고리즘을 사용하는Link state routing과 벨만포드 알고리즘을 사용하는 Distance vector routing, 대표 라우터들을 통해 생성한 알고리즘을 사용하는 Hierarchical routing이 있다.

(5-2)
4. IP address는 Host ID와 Net ID로 구분되며, class A ~ class E가 존재하는데, 이 중 class B를 가장 많이 사용한다.  Host ID의 일부를 구매해 Subnet ID와 Host ID로 구분하여 사용하기도 한다.

5. IP Address의 부족함을 해결하는 방법
5.1. IPv6는 모든 네트워크 연결에 필요한 모든 디바이스에 독립적인 IP address를 부여하는 방식으로, 모든 장비를 바꿔야하므로 많은 비용과 시간이 필요하다는 단점이 있다.

5.2. CIDR( Classless Inter-Domain Routing )은 네트워크 주소와 호스트 주소의 구분을 더 세분화하여 IP 주소를 할당하는 방식으로, 기존의 클래스 기반 IP 주소의 비효율적인 할당 방식을 해결할 수 있는 방식이다.

5.3. DHCP( Dynamic Host Configuration Protocol )는 네트워크에서 IP 주소를 할당하는데 사용되며, 임시 IP 주소를 할당받아서 사용하는 방식이다.

5.4. NAT( Network Address Translation )는 IP 아이디 하나로 많은 호스트를 연결할 수 있는 방식으로, 개인용 컴퓨터로 인터넷에 접속할 때 로컬 네트워크와 공용 네트워크 간의 IP 주소 변환을 수행한다.

# data[].attributes.body
[Ch 5. Network Layer & IP]

[5-1]

Network layer

forwarding: 전송

routing: 데이터를 전송할 때 어디로 보내야 할지 정하는 것

Circuit Switching: 옛날 전화방식, 오랜 시간 통화할 때 좋지만 채널의 낭비가 존재

Message Switching: 예약없이 바로 메시지를 보내는 방식

Packet Switching: 데이터를 패킷 단위로 나누어서 전송

Routing Algorithms: 라우터는 라우팅 테이블을 관리하고 목적지로 가는 최적의 경로를 고름

Link State Routing algorithm: 라우터들이 다른 링크에 대한 정보를 모두 알고 알고리즘을 짬 (다익스트라 알고리즘: 한 노드에서 주위의 모든 노드까지 가는데 최단경로를 구하는 알고리즘)

[5-2]

IP Addresses

class A-E, 총 5개의 클래스로 구성됨

인터넷의 급격한 성장으로 IP address 고갈 문제 발생

⇒ CIDR로 해결

DHCP(Dynamic Host Configuration Protocol): 임시 id를 할당 받아서 사용 후 반납하는 방식

NAT (Network Address Translation): 네트워크 주소를 변환하는 방식으로, 부족한 IP를 절약할 수 있음

# data[].attributes.body
5-1 [Network Layer & IP]

Network Layer Services

Header
- 주소 써서 보냄

Two Key Network-Layer Funstions

Forwarding / Routing
-      수신측의 주소를 보고 어디로 보낼지 결정 routing

-      그것을 전달하는 행위 forwarding

유선 circuit- switched networks 2세대

-      옛날 전화방식

-      장점: 오랜시간 통화할 때 good & 딜레이 x

-      단점: 채널 낭비

Message Switching

-      잘라 나눠서 보내는 방식

Packet switching

-      메시지를 페킷으로 잘라서 보냄 =>세분화

-      1 packet 10packet 비교

-        헤더1개         헤더 10개

=>  무조건 잘게 쪼개는 것은 좋은 것이 아님

Routing Algorithms

1)    Link state routing

2)    Distance vector routing

5-2 [IP(Internet Protocol) addresses ]

5가지 class (A B C D E)

포항공대 Class B 사용중  128.0.0.0 – 191.255.255.255

Class B    16bits / 16bits

16 bits(net ID)/ 8 bits(subnet ID) / 8bits (host ID)

IP address scheme 문제점

-      IETF 해결

IP address 할당

-      매뉴얼 할당

-      1회용(임시) 할당 DHCP

NAT(Network Address Translation)

하나(공적) address 받았지만 -> IP 할당 마음대로 사용 가능 (사적)

IP(Internet Protocol)

Application Layer / Transport Layer / Network Layer / Data Link Layer

# data[].attributes.body
5-1

l  Network Layer Services : 데이터 패킷 송수신에 필요한 주소 지정, 경로를 설정하고 전송하는 역할 수행

l  Routing : 패킷의 최적경로를 결정(어디로 보낼지 판단)

l  Circuit-sithce networks : 옛날 전화방식

- 장점 : 오랜시간 통화할 때 딜레이가 없음. 서킷 예약 가능

- 단점 : 채널 낭비

l  Packet switching : 최근 통신망 방식. 데이터를 패킷 단위로 쪼개서 전송하는 방식

l  Routing algorithms : 각각의 라우터가 스스로 계산하여 테이블 관리 + 데이터 전달

l  Link state routing :  다익스트라 알고리즘 기반

-  시작 노드에서 최소의 라우터로 이동하며 전체 노드 탐색 -> 만들어진 LSP(Link Stae Packet)을 다른 라우터에게 전송 => 전달받은 LSP 이용 각 라우터로부터 가장 짧은 경로 계산

l  Distance vector routing : 벨만 포드 알고리즘 기반

-  이웃한 노드 사용하는 방식. 자신과 이웃한 노드의 cost 중 최소 라우터로 이동

l  Hierarchical routing : 대표 라우터끼리 알고리즘 생성, 라우팅 테이블에 계층적 구조 적용

5-2

l  IP addresses

-   Host ID / Net ID로 구분

-   Host Id : 기관에서 개인 컴퓨터에 할당

-    Net id – 조직, 기관의 ID

-   A Class ~ E Class 존재함. B Class를 가장 많이 사용

-  Class B : 128.0.0.0 ~191.255.255.255

l  CIDR : 네트워크 영역을 구분할 때, 기존 방식에 비해 조금 더 세분화하여 IP주소를 할당하는 방식

-  기존 클래스 기반 IP 주소 체계의 주소 낭비 문제를 해결하는 효율적인 방법

l  DHCP : 컴퓨터 네트워크 구성을 자동으로 구성 , 호스트 IP와 각종 기본 설정을 클라이언트에게 자동으로 제공

l  NAT : 현재 가장 많이 사용. 공적 IP와 사적 IP 만들어 나눠서 사용. IP 주소 부족문제 해결

# data[].attributes.body
3/26
AIoT 5장
- 배운 것
<Network Layer & IP>
* Network Layer
Forwarding: 전달하는 행위
Routing: 어느 곳으로 보낼지 주소를 보고 판단하는 행위

* Communication networks
Circuit Switching: 전화를 하게 되면 미리 circuit을 예약
장점: 지연 적음 / 단점: 채널 낭비
Packet Switching: 미리 할당 X
Packet을 무조건 잘게 자른다고 좋은 것은 아님.

* Routing Algorithms: 라우터들이 스스로 계산하여 알고리즘 채택
Link State routing algorithms: Dijkstra's Algorithm 사용
Distance vector routing: Bellman-Ford Algorithm 사용

<IP (Internet Protocol)>
* IP addresses: 32bit 사용

* CIDER: class 구분 X

* NAT(Network Adderss Translation): 할당 받은 IP address 부족 문제 해결 함

* TTL: 라우터를 몇 번 걸쳐 목적지에 도달하는지 측정

# data[].attributes.body
배운점)
AIoT 5장

Chapter 5. Network Layer & IP

5.1 Network Layer

1. Network Layer Services

- 패킷이란 데이터를 보낼 때 마다 헤더에 보내는 주소, 받는 주소(IP Address)를 붙여서 보냄

- 라우터에서 패킷을 받아 목적지로 보냄

2. Network Layer

- 라우팅 : 패킷을 보고 어디로 보낼지 판단하는 행위

- 포워딩 : 헤더를 보고 보내야할 적절한 output으로 보내는 행위

3. Taxonomy of Networks

- circuit-switched :

- 전화번호를 누르면 회선을 미리 예약한 후 예약이 완성되면 전화가 성사됨

- 장점 : 서킷이 예약이 되기 때문에 오랜 시간 통화하기 좋음

- 단점 : 채널의 낭비

- Message Switching:

- 메시지를 몇 개의 packet으로 잘라 보내는 방법

- 미리 connection 없이 packet 단위로 쪼개서 보냄

- 혹시 어느 한쪽이 밀리게 돼도 순서를 재정비해서 다시 보냄

- cf : Effect of packet size on transmission time

- 전송 시간을 줄이기 위한 적정 패킷 수

4. Routing Algorithms

- Routing table을 만들기 위한 알고리즘

- 각 라우터가 스스로 계산(Destination Routing)

- 1. Link State Routing

- 다익스트라 알고리즘이 기반이 됨

- 각각의 노드가 이웃한 노드의 코스트를 교환하여 모든 이웃을 알 수 있게 됨

- 모든 노드가 같은 토폴로지 그림을 갖게 됨

- 시작 지점 – 끝 지점까지 최소 비용을 갖는 경로를 생성

- 2. Distance vector routing

- 밸먼 – 포드 알고리즘 활용

- 각 노드가 자신 이웃 노드와만 코스트를 교환함

- 각자가 가진 라우터 테이블을 이용해 비용 계산

- ex) 노드 J에서 다른 노드를 순회하는 경로를 생성하고자 할 때, 각 이웃 노드의 라우팅 테이블을 받아옴

- 그 후 라우팅 테이블을 이용해 각 이웃노드 당 거리를 계산하고 서로 비교 후 최솟값을 가진 경로 선택

5. Hierarchical Routing

- 현실적으론 라우터가 매우 많기 때문에 대표 라우터를 선정 후 대표 라우터들 간 알고리즘을 생성함

5.2 IP(Internet Protocol)

1. IP address

- 전세계적으로 32bit 크기의 IP 사여ㅛㅇ

- 5가지 class로 구분

- classA : 최상위 비트가 0으로 시작 7비트는 Network ID, 24비트는 HostID

- classB : 최상위 비트가 10, 14비트를 Net ID, 16비트 HostID

- classC : 최상위 비트 110, 21비트를 Net ID, 8비트 HostID

2. Subnet Addressing

- classB일 때, HostID를 SubnetID, HostID로 반반씩 나눔

- 몇비트를 쪼갰는지 알 수 있게 하기 위해 서브넷 마스크 사용

3. Problems of IP address scheme (class-ful address)

- 인터넷의 발달로 IP가 부족하게 됨

- CIDR(Classless Inter-Domain Routing)

4. Dynamic Host Configuration Protocol(DHCP)

- 임시 IP

5. NAT(Network Address Translation)

- 여러 대 컴퓨터가 1개 IP 주소 공유

# data[].attributes.body
<네트워크 레이어의 기능>

1. Forwarding : 패킷을 목적지로 전달하는 행위

2. routing : 데이터를 어디로 보낼지 결정하는 행위(최적 경로를 결정하는 것)

Circuit-sithce networks : 예전의 전화방식, 3가지 행위로 구분

장점 : circuit이 예약됨, 오랜 시간 통화할 때 좋음, 딜레이 없음.

단점 : 채널의 낭비가 존재한다.

Packet Switching : 최근 통신망 방식

<Routing Algorithm> : 라우팅 테이블을 만드는 알고리즘 - 라우터를 통과하는 최상의 경로를 선택하게 한다.

1. Link State routing algorithm

- Dijksatra 알고리즘 사용 : Shortest Path 찾기

- 노드가 서로의 cost 및 정보를 알고 있음. 셀프 계산해서 가장 적은 Cost 사용하게 함.

2. Distance Vector Routing

- 벨만포드 알고리즘 사용 : 최단 경로 찾기

- 이웃 노드들의 가중치를 활용해서 라우팅 테이블 생성.

3. Hierarchical Routing

- 대표 라우터를 설정하고 대표끼리 라우팅 알고리즘을 만든다.

<IP>

Class A : 0.0.0.0 ~ 127.255.255.255

Class B : 128.0.0.0 ~ 191.255.255.255 → 가장 많이 사용

Class C : 192.0.0.0 ~ 223.255.255.255

Class D : 224.0.0.0 ~ 239.255.255.255

Class E : 240.0.0.0 ~ 247.255.255.255

CIDR : 기존의 Class는 딱 정해진 크기를 사용해야하는데, CIDR은 Class와 상관없이 기호(‘/’)를 사용하여 IP Address를 직접 할당

NAT : 공유기 역할, 여러대의 컴퓨터가 한 개의 IP주소를 공유하게 한다. → IP 주소 부족현상을 해결한다.

ICMP : 망관리, 네트워크 컨트롤

IGMP : 멀티캐스팅을 위한 프로토콜

# data[].attributes.body
[5-1 Network Layer & IP]

Network Layer Services

헤더: 주소 써서 보냄

Two Key Network-Layer Funstions

Forwarding / Routing
-      수신측의 주소를 보고 어디로 보낼지 결정 routing

-      그것을 전달하는 행위 forwarding

유선 circuit- switched networks 2세대

-      옛날 전화방식

-      장점: 오랜시간 통화할 때 good & 딜레이 x

-      단점: 채널 낭비

Message Switching

-      잘라 나눠서 보내는 방식

Packet switching

-      메시지를 페킷으로 잘라서 보냄 =>세분화

-      1 packet 10packet 비교

-        헤더1개         헤더 10개

=>  무조건 잘게 쪼개는 것은 좋은 것이 아님

Routing Algorithms

1)    Link state routing

2)    Distance vector routing

-----------------------

[ 5-2 IP(Internet Protocol) addresses ]

5가지 class (A B C D E)

포항공대 Class B 사용중  128.0.0.0 – 191.255.255.255

Class B    16bits / 16bits

16 bits(net ID)/ 8 bits(subnet ID) / 8bits (host ID)

Subnet mask

IP address scheme 문제점

-      IETF 해결

IP address 할당

-      매뉴얼 할당

-      1회용(임시) 할당 DHCP

NAT(Network Address Translation)

하나(공적) address 받았지만 -> IP 할당 마음대로 사용 가능 (사적)

IP(Internet Protocol)

Application Layer / Transport Layer / Network Layer / Data Link Layer

# data[].attributes.body
< 5-1 장 >
- Network Layer & IP
네트워크 레이어 : OSI 7계층중, 데이터 패킷을 송수신 하는데 필요한 노리주소 지정, 패킷의 경로 결정 & 전송하는 역할 수행 (IP프로토코을 사용해 데이터 전송)
라우팅 : 신호를 받아 전달할 때 주소를 확인, 판단하는 행위
forwarding : 결정된 경로에 따라 패킷을 전달하는 과정

네트워크 통신방식
1,2G , 3G

message switching : 서킷을 만들코 끊음 없이 메세지를 보내는 방식
routing algorithm : 각각 라우터가 스스로 계산하여 라우팅 테이블을 만들어 데이터 전달
다이스트라 알고리즘 : 최적의 라우팅 경로를 찾는 과정
Hierachical routing : AS에서 대표 라우터를 선정하고 대표 라우터끼리 알고리즘을 만든다

< 5-2 장 >
- AIOT
IP addresses : HOST ID & NET ID

A, B, C, D, E 클래스

Class B -> 128.0.0.0 ~ 191.255.255.255

효율적으로 사용하기 위해 HOST 16비트를 서브넷 마스크, HOST 8비트씩 쪼개 사용

NAT, CIDR : IP Address 부족 문제 해결

# data[].attributes.body
5-1강

Network Layer Service
: 우편시스템과 같다. Sender가 보낸 데이터를 Receiver가 잘 전달받을 수 있도록 한다.

편지를 보면, 보내는 사람을 쓰고
받는 사람을 쓰고 우표를 붙인다.

이와 비슷하게, 데이터를 보낼 때마다, 헤더에 주소를 써서 보낸다. 보내는 호스트, 받는 호스트, IP 어드레스라 부르는 전 세계 공용 주소로 보내서 받는 호스트들의 주소를 써서 보낸다.

보내면, 라우터라 IP 어드레스를 보고 안전하게 목적지까지 도착하게 된다.

데이터를 받아서 Forwarding과 Routing 한다.
네트워크를 나눠보면 2가지로 분류할 수 있다.

1. Circuit switched networks
번호를 누르면, 전화선을 미리 예약한다. 전화를 하고 싶은 사람이 받고 싶은 사람한테 연락을 하면 회선을 미리 예약해서, 예약이 완성되면 전화가 시작된다. 통화가 끝나면 끝난 메세지가 가서 예약 회선을 끊게 된다.

장점: 한 번 Circuit이 예약되면, 실시간으로 통화할 때 좋다.
단점: 채널 낭비가 존재한다.

2. Packet-swtitched networks
Packet Switching은 Message Switching의 일부이다. Pipe lining이라 해서 조금 더 빨리 보낼 수 있는 방식이다.

Pipelining
패킷 사이즈는, 작을 수록 전송속도가 빨라지지만, 오버헤드에 의해 적당한 사일 때 전송속도가 최적화된다.

Routing Algorithm
최적의 경로로 A에서 F로 가는 방법
각각의 노드는 전체 네트워크의 위상학을 다 알고 있다.
Shortest Path 계산은 Dijkstra Algorithms을 활용한다.
라우팅 테이블은 Belman Ford 알고리즘을 활용한다. 각각의 노드에 대한 라우팅 테이블을 받는다.

# data[].attributes.body
[chapter5 Network Layer & IP]
Network Layer
-forwarding:데이터 패킷이 송신자로부터 목적지로 전달되는 과정. 패킷의 목적지는 네트워크 주소와 호스트 주소로 구성되고, 호스트 주소는 해당 네트워크 내에서 유일한 주소를 가진다.
-routing:패킷이 출발지에서 목적지까지 전달되는 경로를 결정하는 과정.

Taxonomy of Networks(Network core)
-Circuit-switching:
circuit establishment -> Data transfer -> Circuit termination의 과정으로 이루어진다.
장점:real time으로 오랜시간 통화하기 좋고 delay 없음
단점:채널의 낭비가 발생
-Message Switching
-Packet-switching: 패킷을 보낼 때 미리 커넥션없이 패킷단위로 쪼개서 보내는 것

Routing Algorithms
-link state routing: Dijkstra's Algorithm 이용
-distance vector routing bellman-ford Algorithm 이용

IP
IP Address: IP를 이용해 컴퓨터 네트워크에서 장치를 식별하는 숫자. 각 장치는 고유한 IP 주소를 가지고 있고, 이를 통해 데이터를 보낼 장치를 식별함.
Subnet address & Subnet mask: Subnet addresssms IP의 일부를 나누어 관리하기 위해 사용됨. 서브넷 마스크를 가지며 서브넷 주소와 호스트 주소를 식별한다. 32비트 이진수로 표시되고 서브넷 부분은 1로, 호스트 부분은 0으로 설정됨.

CIDR: 네트워크 주소와 호스트 주소의 구분을 더 세분화하여 IP 주소를 할당하는 방법. 기존의 클래스 기반 IP 주소 체계에서 발생하던 IP 주소 낭비 문제를 해결--> 효율적인 방법

DHCP: 네트워크에서 IP 주소를 할당하는 데 사용됨. 네트워크에서 IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 등의 구성 정보를 자동으로 제공하여 컴퓨터의 네트워크 구성을 자동으로 구성하는 프로토콜

NAT(Network Address Translation): ip아이디 하나를 가지고 많은 호스트를 연결 할 수 있는 방법. 개인용 컴퓨터로 인터넷에 접속할 때 로컬 네트워크와 공용 네트워크 간의 IP 주소 변환을 수행.

IP 구조
-Application Layer, Transport Layer, Network Layer, Data Link Layer

# data[].attributes.body
B1 강윤성
5-1강
네트워크 레이어: 라우터를 통한 라우팅을 포함하여 패킷 포워딩을 담당한다.
포워딩 : 전달하는 행위
라우팅 : 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정.

Circuit-swithched networks : 하나의 회선을 할당받아 데이터를 주고받는 방식

Packet swithched networks : 데이터를 패킷이라는 단위로 조개서 전송하는 방식

message swithching : 송신된 메시지를 중앙에서 축적하여 처리하는 방법

Routing Algorithms : 송신 측에서부터 수신 측 라우터의 네트워크를 최적의 경로로 결정하는 알고리즘

Hierarchical routing : 각 라우터마다 라우팅 테이블에 계층적 구조를 적용한 모델

5-2강
IP Address : 네트워크 상에서 컴퓨터를 식별하기 위해 부여된 위치 주소이다. 32자리 2진수로 Network Id와 host id로 이루어져 있다.

Class : A,B,C,D,E 5개 클래스 종류가 있다. A~C는 Net ID와 Host ID를 가지며, Net은 기관마다 할당하는 ID이고, host는 내부 IP 주소를 구성하는 ID이다.

Subnet addressing : 여러 네트워크로 ㅣㅇ루어진 자치 시스템이 동일한 인터넷 주소를 공유할 수 있도록 하는 주소.

Subnet mask : 0비트는 호스트부분을 나타내고, 1 비트는 네트워크 부분을 나타낸다.

CIDR : IP주소의 영역을 여러 네트워크 영역으로 나눌 때 기존 방식에 비해 유연성을 더해 준다.

DHCP : 호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜

NAT : IP패킷의 TCP/UDP포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술.

# data[].attributes.body
배운 점:

1. Network Layer

- OSI 7계층중, 데이터 패킷을 송수신 하는데 필요한 노리주소 지성,

- Forwarding: 패킷을 목적지로 전달하는 행위

- Routing: 데이터를 어디로 보낼지 결정

2. Routing Algorithm

- 라우팅 테이블을 만드는 알고리즘

3. message switching

- 서킷을 만들고 끊임없이 메세지를 보내는 방식

4. Dijksatra Algorithm

- 노드가 서로의 cost 및 정보를 알고 있음.

- 셀프 계산해서 가장 적은 Cost 사용하게 함.

5. IP Address

- Net ID / Host ID로 구분된다.

- Net ID: IP를 사서 사용

- Host ID: 분할해서 사용

class B 많이 사용

6. Address부족함을 해결하는 방법

- Short term solution

- CIDR: Classless Inter – Domain Routing

- DHCP: Dynamic Host Configuration Protocol

7. NAT: Network Address Translation

- 인터넷 공유기 역할로써 내부 네트워크에 있는 여러 대의 컴퓨터가 한개의 IP주소를 공유하는 것

# data[].attributes.body
<5장 | Network Layer & IP>

Network Layer의 역할

- forwarding: 센터가 보낸 정보를 리시버에 안전하게 전달하는 것

routing: 수신자의 주소를 보고 데이터를 어디로 보내야할지 판단하는 행위

IP: Network Layer의 프로토콜

Packet(데이터) 보낼 때마다 Header에 주소(보내는 host, 받는 host의 IP address) 써서 보냄

network종류

1) circuit-switched networks(1G, 2G):

- 방법(순서)

- (1) circuit establishment

- (2) data transfer

- (3) circuit termination

- 장점: circuit이 예약되어 있기 때문에, real-time으로 장시간 통화 시 좋다, no delay

- 단점: channel의 낭비가 존재함

2) packet-switched networks(3G~ )

- message switching의 한 일부

- message(data)를 잘라서 몇 개의 packet으로 나누어 전송

- 단점: 리시버에 도착하는 packet의 순서가 뒤바뀔 수 있음 but 해결법 있으므로 큰 문제가 되지는 않음

- 많이 쪼갠다고 좋은 것(시간이 빨라지는 것)은 아님

routing algorithms(route tabel 만드는 알고리즘)

각자가 cost 고려하여 cost가 최소로 들게 경로를 스스로 계산

1) Link State routing algorithm

*다익스트라 알고리즘

- 각각의 노드가 이웃한 노드의 cost 수치를 알고 있음

노드끼리 서로서로 정보 교환하여 전체 node 연결 구조 및 cost를 알 수 있음

2) Distance vector routing

*벨만 포드 알고리즘

전체가 아니라 이웃 노드하고만 정보를 주고받음

3) 현실

라우팅 테이블 전체 사용하기에는 너무 방대함

so, 자동으로 대표 라우터만 선정하여 대표 라우터끼리 라우팅 테이블 만들고 주고받음

IP(Internet Protocol)

IP address = net ID + host ID( = Subnet ID + host ID)

초기 IP address는 32비트였음

->기술의 발전으로 IP address 개수 고갈

->CIDR 도입으로 IP address 개수 한계 극복

CIDR(IP address 개수 한계 극복 방법)

- 기존의 class id 개념이 아님

DHCP(IP address 개수 한계 극복 방법)

- 정규X, 임시 IP address 할당 (예: 핸드폰)

NAT(IP address 개수 한계 극복 방법)

현재 가장 널리 쓰임,

하나의 ip address(공적으로 할당받은 ip)로 여러 곳(내부 기관에서만 쓰는, 사설 ip)에 연결

- 공적 ip <- NAT(중간에서 사적 ip를 공적 ip로 변환해서 전달하는 매개체 역할) -> 사적 ip

# data[].attributes.body
[5장]
[5-1]

[Network Layer & IP]

- 소스에서 대상까지 패킷을 가져올 때의 네트워크 계층 문제

- 송신 호스트 → 수신 호스트

[Network Layer 함수]

- Forwarding : 라우터 입력에서 → 출력으로 패킷 이동

- Routing : 패킷이 소스에서 대상으로 이동하는 경로 결정

[네트워크의 분류] : (Taxonomy of Networks)

Commuication networks

>> Circuit-switched Networks : 휴대폰 네트워크

[ 낮은 딜레이 / 긴 시간 사용할때 좋다 ]
|| [비효율적 채널 용량]

>> Message-switched
끊김 없이 바로 message를 보낸다.
message가 길 수록 더 오래 걸린다.

>> Packet-switched Networks

[ 미리 할당된 리소스가 존재 x / 라우터가 대상 호스트 주소를 사용하여 전달, 패킷들은 독립적으로 전달] || [재 정렬이 필요하다 ]

[[Routing Algorithms]]

- 라우터가 루팅 테이블을 관리하고, 최적의 경로를 선택해준다.

- 라우팅 알고리즘은 라우팅 테이블을 구성하는 데 사용되는 정보를 교환하고 계산한다.

– [Link state routing]

- 플러딩을 통해 인접 라우터에 정보를 전달

- 새 정보 업데이트가 수신되면, 라우터는 다른 라우터까지의 최단경로를 계산함.

- 디엑스트라 알고리즘을 사용하여 계산함

–[Distance vector routing]

-근접한 이웃 노드만 사용한다.
- Bellman 알고리즘을 사용함.

–[Hierarchical routing]
각각의 대표 router를 선정하여서, 대표 router 끼리 연결한 routing 알고리즘을 만들어서 계산

------------------------------------------------
[5-2]
[IP Address]
Net ID / Host ID 로 구분된다.
크게 5가지 A~E Class가 존재한다.
B Class 를 가장 많이 사용한다. [포스텍도 사용]

Host ID - 기관에서 사서 개인 컴퓨터에 할당
Net ID - 조직, 기관의 ID

Address를 할당할 때 랜덤하게 숫자를 배분하기 보다는 subnet ID 사용해서 network를 쪼갠다.
-- > 몇부분으로 나누어서 사용했는지 알아야함 : Subnet mask

[Adress 부족 문제] --> IPv6 새로운 버전을 만들자.
단기간 불가하기 때문에 Short term solution 등장

[Short term solution] : IP address 부족 문제 해결 방안

- CIDR ( Classless Inter-Domain Routing ) :
'/' 기호 뒤에 네트워크 ID를 표시함
Class로 나누기 보단 Net ID 가 얼마인지로 구분

- DHCP ( Dynamic Host Configuraion Protocol ) : 정규 Ip 주소가 아닌 임시 주소를 받음

- NAT (Network Address Translation ) : 공적인 IP와 사적인 IP를 만들어서 나눠 사용함

[IP (Internet Protcol)] : 다양한 프로토콜로 만들어짐
- ICMP : 망관리 또는 네트워크 컨트롤

- IGMP : 멀티캐스팅을 관리하기위한 용도
많이 안씀

[TTL ( Time To Live ) ] : 패킷의 생존시간을 의미
현재는 destination에 몇번의 router를 거쳤는지 알고자 할 때 사용

# data[].attributes.body
5-1강 Network Layer & IP

네트워크 레이어 : 컴퓨터 네트워크에서 OSI 7계층 중 하나로, 데이터 패킷을 송수신하는 데 필요한 논리적인 주소를 지정하고, 패킷의 경로를 결정하고 전송하는 역할을 수행하는 계층

네트워크 레이어에서는 IP(Internet Protocol) 프로토콜을 사용하여 데이터를 전송

라우팅 : 신호를 받아 forwarding할 때 주소를 확인하고 판단하는 행위

라우팅(Routing)은 컴퓨터 네트워크에서 데이터 패킷을 목적지까지 전송하기 위해 경로를 결정하는 과정

forwarding: 결정된 경로에 따라 패킷을 전달하는 과정

네트워크 통신방식 communication networks

1,2G : circuit-swithched networks

옛날 전화방식. 통화시 끊김이 없는것이 장점이나, 데이터가 클 경우 채널낭비라는 단점 존재

3G : packet swithed networks

데이터를 패킷 단위로 분할하여 전송함

message switching : circuit만들고 끊는것 없이 바로 메세지 보내는 형식

routing algorithms : 각각의 router가 스스로 계산하여 라우팅테이블을 만들어 데이터 전달

dijkstra’s algorithm : 최적의 라우팅 path를 찾는 과정

A에서 각각의 노드를 가는 short path를 계산

Hierarchical routing : AS에서 대표라우터선정, 대표 라우터끼리 주고받아 라우팅 알고리즘 만듦.

-------------------------------------------------------------------------------------------
5-2강 AIoT

IP addresses: host ID와 net ID로 나뉨, ip addresses로 단말인지 파악가능

클래스 5가지로 구분가능. :A,B,C,D,E

Class B를 가장 많이 사용함. (포항공대포함)

class b : 128.0.0.0 - 191.255.255.255

효율적으로 사용하기 위해 HOST ID 16비트를 서브넷 마스크, HOST ID 8비트씩 쪼개서 사용함.

subnet mask : 한 조직기관에서 몇비트로 쪼개서 썼는지 파악함

IP Address가 부족한 문제를 해결하는 방법

NAT(Network address translation)

CIDR(Classless Inter-Domain Routing)

# data[].attributes.body
5-1장

■ Network Layer Services

- Forwarding: 전달하는 행위

- Rounting: 어디로 보내야할지 주소를 보고 판단하는 행위

■ Network

- Circuit-sithce networks: 옛날 전화방식, 미리 예약하는 행위(끝나면 끝는 행위 필요)

장점: 오랜 시간 통화 할 때 좋음, 딜레이도 없음, 채널의 낭비가 존재

- Message Switching:

- Packet-switched networks: 시간을 단축(파이프라인), 무조건 많은 파이프라인을 가진다고 해서 좋은 것이 아님

■ Routing Algorithm: 라우팅 테이블을 어떻게 만들건지

최적의 경로를 찾는 알고리즘

- Link State routing: Dijkstra’s Algorithm, 모든 노드와 정보를 공유

- Distance vector routing: Bellman-Ford Algorithm, 이웃하고만 주고받음

■ Hierarchical routing: 세상에는 많은 라우터 테이블이 있음

현실적으로 그렇게 하지 않음, 대표 라우터를 설정하고 대표끼리 라우팅 테이블을 만듦, 내부에서 또 따로 만듦

5-2장

■ IP address

classA~E까지 있음

Net ID: IP를 사서 사용

Host ID: 분할해서 사용

class B 많이 사용

■ Host ID: 이부분을 어떻게 사용할까 Subnet ID, Host ID를 통한 체계적인 관리

Host ID를 몇부분으로 나누어서 사용했는가를 알아야함 -> Subnet mask

Problems of IP address scheme

주소 고갈문제를 어떻게 해결해야할건가 -> IPv6 새로운 버전을 만들자

한번에 바꾸기 힘든 문제 -> Short term solution이 나오게 됨

- IP address 부족 문제 해결 방법

■ Short term solution

- CIDR (Classless Inter-Domain Routing): ‘/’기호 뒤에 네트워크 ID를 표시

- DHCP (Dynamic Host Configuration Protocol): 정규 IP address가 아닌 임시 IP address를 할당받아 사용

- NAT (Network Address Translation): 하나의 공적 IP와 사적 IP를 여러개 만들어서 사용

- IP(Internet Protocol): 다양한 프로토콜로 만들어짐

ICMP: 망 관리, 네트워크 컨트롤

IP: 실제 통신에 사용, 데이터 전송

IGMP: 멀티용

# data[].attributes.body
[5장: Network Layer & IP]

Network Layer

정의: 패킷 단위로 그때 그때의 목적지를 찾아가는 방식

기능

-포워딩 : 라우터에서 데이터를 받아서  출력까지 패킷이 옮기는 행위
- 라우팅: 어떤 경로로 보내야되는지 결정하는 행위

통신 방식

1) Circuit switch

circuit network는 전화망에서 주로 사용

목적지로 가는 경로가 단 하나임. 즉, 유일한 경로를 통해 데이터를 전송

장점: circuit를 잡기 전 짧은 지연이 있으나 한번 연결되면 긴 시간의 통신에는 매우 좋음

단점:circuit을 점유하고 있다는 특성으로 인해 다른 네트워크가 해당 링크를 사용할 수 없게 되어 비용이 증가하고, 만약 점유하고 있는 circuit에서 정보를 보내지 않는 시간동안은 회선이 낭비

2) packet switch

송신할 데이터를 packet이라는 단위로 쪼개서 전송

장점: 모든 링크들을 사용할 수 있다는 매우 큰 장점이 있음. 전송된 패킷들은 네트워크 상의 어떤 링크든지 목적지에만 연결되어 있다면 타고 갈 수 있음

단점: 송신측의 입장에서도 패킷이 잘 갔는지, 중간에 손실됬는지, 멈춰있는지 알 수가 없음

라우팅 알고리즘

송신자로 부터 수신자까지 데이터를 전송할 때 라우터를 통과하는 최상의 경로를 선택하는 것

1) Link State Routing (다익스트라 알고리즘 기반)

각 라우터는 주변의 링크의 가중치(cost)를 측정하고 링크와 가중치에 대한 정보를 담은 패킷을 만듬

이렇게 만들어진 LSP(Link State Packet)를 모든 라우터에게 보냄

다른 라우터로부터 받은 LSP들을 이용하여 각 라우터로의 가장 짧은 경로를 계산

2) Distance Vector Routing (벨만포드 알고리즘 기반)

모든 링크의 가중치(cost)는 알고 있다고 가정

각 라우터는 라우팅 테이블을 가지고 있고, 이 테이블에는 주어진 서브넷의 모든 라우터에 대한 정보를 가짐

이웃에게 만든 테이블을 활용하여 라우팅 테이블 계산함

3) Hierarchical Routing

넓은 네트워크를 몇 개의 네트워크 레벨로 크기를 분할하여 경로를 간소화 하고 계층화

계층화 된 것들을 각각 Regions이라고 하며 각각의 Regions 안에서 독립적으로 라우팅이 이루어짐

--------------------------------------------

IP

정의: 네트워크 상에서 컴퓨터를 식별하기 위해 부여된 위치 정보

특징

네트워크 주소와 호스트 주소로 구분되며 하나의 네트워크상에 여러 호스트 주소가 있을 수 있음

32비트로 2진수로 표현할 수 있음

IP 주소 클래스

1. A클래스

IP주소를 바이너리로 표시할 때 맨 앞자리수가 항상 0으로 시작

호스트 주소가 가질수 있는 갯수 갯수는 (2^24) - 2개

2. B클래스

P주소를 바이너리로 표시할 때 맨 앞자리수가 항상 10으로 시작

호스트 주소가 가질수 있는 갯수 (2 ^ 16) -2개

3. C클래스

IP주소를 바이너리로 표시할 때 맨 앞자리 수가 항상 110으로시작

트워크 주소가 가질수 있는 갯수 (2 ^ 21)개

호스트 주소가 가질수 있는 갯수(2 ^ 8) -2개

IP 부족 해결을 위해 사용되는 기술

1. IPv6

새로운 버전의 IP주소 체계로, 모든 네크워크 연결에 필요한 모든 디바이스에 독립적인 IP주소를 부여함

다만, 모든 장비를 바꿔야 하는 시스템이기에 오랜 기간과 많은 비용이 발생함

2. CIDR (Classless Inter-Domain Routing)

IP 주소 할당 방법의 하나로서 기존 8비트 단위로 구획하지 않는 방법

한정된 IP 주소를 쓸데없이 사용하는 것을 방지하거나 라우터의 처리 부하를 경감시킬수 있음

3. DHCP(Dynamic Host Configuration Protocol)

네트워크에 접속하면 DHCP 서버가 자신의 목록에서 IP 주소를 선택하여 할당해주는 것

4. NAT(Network Address Translation)

인터넷 공유기 역할로써 내부 네트워크에 있는 여러 대의 컴퓨터가 한개의 IP주소를 공유하게 하는 것

# data[].attributes.body
<5-1>
배운점
-network layer는 fowarding, routing으로 나뉜다. 패킷은 데이터를 보낼 때 헤더에 보내는 주소, 받는 주소를 포함하여 전송한다
이때 포워딩은 인풋에서 아웃풋으로 패킷을 옮기는 행위, 라우팅은 패킷을 어디로 보낼지 정리하는 행위

-커뮤니케이션 네트워크는 circuit-switched network와 packet-switched network으로 나뉜다
-circuit-switched network은 오랫동안 연결하기 좋고 딜레이가 없으나 채널 낭비가 발생
-packet-swithced network은 패킷을 보낼 때 패킷단위로 쪼개서 보낸다. 쪼개서 보내기 때문에 흐름이 좋아지나 나중에 리코딩이 필요할 수 있음

이때 cf는 패킷을 쪼갤 때 변환하는 시간을 뜻한다

이때 라우팅을 최적으로 보내는 것에 대한 알고리즘이 존재하는데, 하나는 이전 알고리즘 시간에 배웠던 Dijkstra 알고리즘이고 하나는 Distance vector routing이다.
이때 Distance vector routing은 Bellman-Ford 알고리즘을 기반으로 하며 이는 각 노드가 가진 라우터 테이블을 활용해 비용을 계산한다. 이후 각 이웃노드 당 거리를 계산하고 비교 후 최솟값을 갖는 경로를 계산한다.

# data[].attributes.body
5-1장

Network Layer
- sender가 보낸 데이터를 receiver로 안전하게 전달한다.
데이터를 보낼때마다 header에 주소를 써서 보낸다. (공통의 체계 ip address)
Forwarding - 주소 바탕으로 전송
Routing - 주소를 보고 어디로 보낼지 결정

네트워크는 크게 2개로 나뉜다.
1,2 세대 : Circuit-switched networks
3 세대 : Packet-swited networks

Circuit-switching = 옛날 전화방식
circuit establishment, data transfer, circuit termination 으로 3가지 행위로 구분된다.
장점 - circuit이 예약이되므로 오랜시간 통화할때 좋다. 딜레이 없음.
단점 - 채널의 낭비가 존재한다.

Message switching
circuit 만들고 끊는 행위 없이 바로 message를 보냄.
메세지가 길어지면 다 받아서 보내는 것이 길어진다.
Packet으로 잘게 잘라서 보내서 해결할 수 있음.

Routing Algorithms
A에서 F로 가는가장 빠른 경로 cost가 가장 적은 경로

Link State routing
- Dijkstra's Algorithm을 사용한다.
- 각각의 노드가 이웃한 노드와 cost를 알고 있다. 서로 정보를 교환
- 각 노드가 그것을 바탕으로 최적의 routing path를 찾는 과정

Distance vector routing
- Bellman-Ford Algorithm을 사용한다.
- 다양한 경로가 있지만 이웃한 노드만 사용

Hierarchical routing
대표 라우터를 선정, 대표 라우터들끼리 주고 받아 라우팅 알고리즘을 만든다.

5-2장

IP addresses
net ID, host ID로 나누어져있다.
크게 5가지 Class로 구분되어있다.

NetID - 조직, 기관의 ID
HostID - 기관에서 사간 다음에 개인 컴퓨터 할당

Class B = NetID 14, HostID 16
가장 많이 사용한다.

CIDR
- 기존의 class 나누는 방식이 아니라 Net ID 부분 나타냄.

NAT
- 할당 받은 IP address 부족문제 해결

TTL
라우터를 거칠때마다 숫자가 줄어든다.
몇번을 거쳐서 목적지까지 도착했는지 측정한다.

# data[].attributes.body
<5-1장>
- network layer & ip
패킷이 가야할 주소를 보고 포워딩을 하는데 라우팅이라는 것을 한다.
라우팅은 주소를 보고 어디로 가야할 지 판단하는 역할을 담당.
포워딩은 입력 라우터에서 적절한 출력 라우터로 패킷이 움직이는 것을 의미

- 네트워크 통신방식
1. Circuit-switched networks (1,2세대)
2. Packet-switched networks (3세대이상(3g이상))

패킷 사이즈를 줄이면 통신속도가 단축되지만, 무조건적으로 단축되는 것은 아니다. 만약 헤더사이즈보다 더 작게 패킷을 oversizing하면 헤더패킷이 오히려 더 많아져서 통신 속도가 느려진다.

라우팅을 할 때 패킷이 다음 노드로 움직이는 방식이 있는데 이것을 routing algorithms이라 한다.
중심라우터에서 계산을 하는 것이 아니라 각각의 라우터에서 계산하는 방식이다.

처음부터 도착지까지의 cost 테이블이 있지만 실제로는 다음 라우터까지의 cost밖에 알지 못한다. 그래서 2가지의 라우팅 알고리즘방식이 생기게 되었다.

1. link state routing
- 다익스트라 알고리즘 기반
- 이웃한 라우터의 cost를 알고 있으므로 이를 공유하여 전체 네트워크 토폴로지를 알게 된다.
- 시작 노드에서 최소의 라우터로 이동, 그 다음 라우터에서 계속 (최소비용,도착노드)를 구하면서 이동하여 전체 노드를 탐색한다. 그 결과 모든 라우터에서 자기 자신에게 도착할 수 있는 최소값으로 테이블을 작성할 수 있게 된다.

2. distance vector routing
- 벨만 포드 알고리즘 기반
- 자신과 이웃한 노드의 코스트만 알고 있음
- 자신의 이웃하는 노드에서 각 노드로 이동하는 코스트만 알고 있기 때문에 그 중에서 최소인 라우터에 이동.
- 라우터가 수가 엄청 많기 때문에 모든 라우터에 대한 테이블을 만들지는 않고 구역별로 나눠서 hierachical table형식으로 테이블을 만든다.

<5-2장>
- IP
32비트 구조로 되어 있으며
class A~E까지 구성되어 있다.
classA~C까지는 Net ID와 Host ID를 가지고 있다. Net은 기관마다 할당하는 ID이며, host는 내부 ip주소를 구성하는 ID이다.
포항공대는 class B를 사용하고 있다.

class B를 예로 들다면 뒤의 HOST ID는 16비트이다. 이를 효율적으로 사용하기 위해 서브넷 마스크와 HOST ID로 8비트씩 쪼개서 사용한다.
IPv4주소: 141.223.108.202로 나온다면 141은 NET ID, 108은 해당 건물에서 사용하는 IP
서브넷 마스크가 255.255.255.0이라면 255에 해당하는 비트만큼 서브넷으로 사용하겠다는 의미이다. 0은 호스트로 사용하겠다는 의미이다.

그러나 class A~C로 구분하기에는 너무 불편한 점이 많기 때문에 CIDR(Classless Inter-Domain Routing) 방식을 사용한다.
ip address를 a.b.c.d/x방식으로 적는 것인데 여기서 x는 bit mask하는 자리이다.
예를 들어 200.23.16.0/27을하면 32비트이므로 앞에서 1~27짜리의 1로 bit mask로 하고 남은 5비트에 host address를 할당하는 방식이다. 이렇게 가변적으로 prefix length하게 쉽게 사용할 수 있게 된다.

- host가 ip address를 받는 방법
1. manual contiguration
2. DHCP(Dynamic Host Configuration Protocol)로 서버에서 임시로 ip를 할당해줌

- NAT(Network Adddress Translation)
- ID address가 부족한 것을 해결하는 방법
- 중간 router가 자신의 ID를 이용해서 중간에서 연결하는 동작 방식임

----------------------------------------------------------------------------------------------
궁금한점:
도서관의 경우 ipconfig확인결과, 서브넷 마스크가 255.255.252.0으로 되어 있었습니다.
1) 이는 252가 11111100이므로 뒤의 두비트와 0의 00000000인 8비트를 합한 10비트가 host id로 할당되었다는 의미인지 궁금합니다.

2) 맞다면 도서관의 경우 어떠한 이유때문에 host의 id를 더 늘렸는지 궁금합니다.

# data[].attributes.body
[5-1장] Network Layer
-역할: 보내는  host와 받는 host사이에서 packet을 이동하는 역할을 함
-Network Layer 방식:
1) Forwarding: packets를 다른 라우터로 보내는 행위
2) Routing: packets를 보낼 주소를 판단하는 것
-Routing Table: Routing algorithm을 기반으로 라우터의 최적의 경로를 나타냄.
-통신 네트워크 종류:
Circuit-switched networks: 유선전화망(1~2G)
Packet-switched networks: 3G~
-Circuit-switching:
3과정) 서켓 만듬--> 통화--> 서켓끊음
장점) 장시간 통신 좋음
단점) 채널을 낭비함.
-Message Switching:
장점) set-up 과정 없음
단점) 메세지 양 많을시 --> 전송 시간 증가/라우터 버퍼 크기가 커야 한다.
-Packet Switching:
장점) packet은 독립적인 경로로 전송된다.
-->안정적
단점) packet size를 쪼개어 전송하여 받는 곳에서 정렬하는 과정 필요
적절한 size로 packets을 쪼개야한다.
-Routing Algorithm
1) Link state routing: Dijkstra's Algorithm
2) Distance vector routing: Bellman-Ford Algorithm
-Dijkstra's Algorithm
: 최단 경로 찾아줌
특징) 각 노드에서 거리 정보를 전체 노드에게 공유
-Bellman-Ford Algorithm:
:최단 경로 찾아줌
특징) 이웃한 노드부터 계산하여 routing-table 생성

[5-2장] IP
-IP address: 32bit/ net ID와 host ID로 구성되어있다.
-Class: A~E 까지 존재/ 각 클라스당 Net과 host 비율이 다르다./ class B,C가 가장 흔하다.
-Subnet addressing
:하나의 IP 주소를 확장 시키는 역할을 함
-Subnet mask:
host ID의 bit를 구분 해줌
-IP address의 문제점:
인터넷이 커지면서 IP 주소가 부족해짐
--> IPversion6 개발되었지만장비교체를 해야된다는 문제 발생--> CIDR
-CIDR: Class 구분 X
classB와 classC 사이 host ID 세분화 가능하게 하여 IP 주소 확장 시킴
-host가 IP 주소를 받는 방식
1) Manual configuration
2) DHCP: 임시 IP 주소 부여
-NAT: IP 주소 부족 현상 해결
4과정)
1) 라우터 에게 host가 임시 주소를 보냄
2) 라우터는 인터넷에게 host의 임시주소를 공적 IP로 변환하여 주소를 보냄
3) 인터넷에서 라우터에게 공적 IP를 보냄
4) 라우터가 공적 IP를 임시 IP로 변환하여 host에게 보냄

# data[].attributes.body
[5장]

Communication networks

-      Circuit-switched networks

-      Packet-switched networks

Circuit switching : channel 낭비 존재

Message switching : 중간 중간 잘라서 – Packet Switching

Routing Algorithms

-      Link State routing (Dijkstra’s Algorithm)

-      Distance vector routing

IP : Internet Protocol

IP addresses (net ID, host ID)

Class-ful addresses : IPv6, CIDR

Get IP address : Manual configuration, DHCP(Dynamic Host Configuration Protocol)

# data[].attributes.body
배운 점:
[Network Layer]

- 데이터를 수신자가 안전하게 받을 수 있게 해주는 서비스

- 데이터 전송: 패킷 단위로 전송. 헤더에 수신측 IP주소를 입력한다.

- Network Layer Function: Forwarding(입력을 받아 출력으로 보냄), Routing(Forwarding  시 데이터를 어디로 보낼지 주소를 보고 판단하는 행위)

| Circuit-switched networks | Packet-switched networks
| 1G, 2G (옛날방식) 전화 à 회선(circuit) 생성 à 전화연결 à 전화종료 à 회선 종료 장점: 장기 통화 시 끊김현상 없음 단점: 채널 낭비(데이터가 클 경우, 라우터에 그 데이터를 각각 저장해야 해서 메모리 낭비가 크고, 버퍼낭비도 커진다) | 3G~ (요즘 방식) 1개 데이터를 여러 개 패킷 단위로 쪼개서 전송 전송이 밀리면 라우터가 다른 경로를 사용하기 때문에 받는 패킷 순서가 달라질 수 있음 (서로 순서가 있어서 큰 문제가 되진 않음) 무조건 작게 쪼개는 게 좋은건 아님!!

[Routing Algorithms]

- 라우터가 라우팅 테이블을 잘 만들어 두면 데이터가 정확히 전달된다.

- 라우팅 테이블을 만드는 것을 Routing Algorithms 이라 한다.

- 누가 만들어 주는 게 아니고, 라우터들이 스스로 계산하여 생성한다.

| Link State routing | Distance vector routing
| 다익스트라 알고리즘 사용 | 벨먼-포드 알고리즘 사용(인접 노드들의 라우팅 테이블을 이용)

[IP]

- IP주소는 네트워크ID와 호스트ID로 구성된다.

- A(0~127)(net7, host24), B(128~191)(net14, host16), C(192~223)(net21, host8), D(224~239), E(240~247) 5개 클래스로 구분된다.

- host ID는 쪼개서 subnet ID로 사용할 수 있다.

- 141.223.0.0인 라우터는 141.223.161.0와 141.223.162.0처럼 141.223.~ 으로 시작하는 모든 IP주소에 연결되어 있다.

- 서브넷 마스크: 서브넷을 몇 개로 나눴는지 알려줌

- IP4v가 부족해지면서 해결책으로 IP6v가 등장. 다만 이를 위해서는 모든 기기를 바꿔야 해서 상용화 까지는 오래걸림.

- 그 사이에 사용할 방안으로 CIDR(host ID사이즈 다양화), DHCP(휴대폰처럼 잠깐 할당받아 사용하고 반납)이 등장.

- DHCP중 NAT(network address translation)방식: WAN에서의 IP주소 ↔ LAN에서의 IP주소 로 전환하면서 데이터 전송

# data[].attributes.body
< 5-1장 >

network layer

sender가 보낸 데이터를 receiver로 안전하게 전달하고

데이터를 보낼 때 헤더에 sender와 receiver의 주소를 써서 보낸다.

Routing: 주소를 보고 어디로 가야할 지 판단

Forwarding: 입력 라우터에서 적절한 출력 라우터로 패킷이 움직임

네트워크 통신방식

- 예전 유선 전화망: circuit-switched networks (1, 2 세대)

- 최근 컴퓨터 통신망: packet-switched network

circuit-switched networks )

circuit = 회선

circuit을 만들고 끊는 행위 자체가 시간은 적지만 overhead가 될 수 있음, 긴 시간에 사용할 때는 좋음.

message switching

끊김 없이 바로 message를 보내는 형식으로, packet-switched network도 이러한 형식의 전달 중 하나.  message가 길어지면 전달하는 시간이 오래 걸리며 여러 곳에서 메시지가 오면 buffer도 커야함.

routing algorithms

routing table을 바탕으로 router가 수신지로 message를 보내는데, 이 routing table을 만드는 알고리즘.

Hierarchical routing

너무 많은 router가 있고, routing table은 너무 길다. 각각의 AS(autonomous system)에서 대표 router를 선정하고, 대표 router들끼리 routing table을 주고 받아 알고리즘을 만들고, 내부에서도 주고 받아 각자 만든다.

< 5-2장 >

IP

Internet Protocol

- routing 알고리즘을 실제로 구현하는 protocol

- ip address를 활용하면 어떤 단말인지 각각 알 수 있음.

- address는 network ID, Host ID로 구성

NAT

- ID address가 부족한 것을 해결하는 방법

# data[].attributes.body
5강 Network Layer Services
기능 2가지
1. Forwarding - 주소를 받아서 전달하는 행위
2. Routing - 주소를 보고 어디로 보낼지 결정하는 행위
3세대 이전 : Curcuit switching
-circuit establishment
-Data transfer
-circuit termination
3세대 이후 :  Packet Switching  C(포함)   Message Switeching
packet을 잘라서 pipeline을 만든다.
Link State routing - Dijkstra's Algorithm이용
Distance vector routing - Bellman-forward's Algorithm이용 : 자신과 이웃한 노드하고만 연결
IP(Internet Protocol)
IP address : 32bit 사용
보통 class B를 많이 사용함.
포항공대 141 대역 사용
NAT(Network Address Translation) : IP가 부족한 상황에서 대체할 수 있는 방안
공적으로 할당된 IP와  사설 IP는 NAT router를 통해 translaion해서 통신한다. 이 기법을 통해 부족한 IP를 매꿔서 사용한다.
IP는 20bytes의 header를 가짐.
Time to Live Filed : router를 거칠때 마다 수가 줄어듬.

# data[].attributes.body
배운 점 :
실제 많은 IP들의 중복 상황을 어떻게 해결하는지에 대해 평소 궁금하던 점을 해결할 수 있었다.

알고리즘 수업에 배운 내용이 실제 인터넷에서 어떻게 적용되어지는 데에 알 수 있어 좋았다.

# data[].attributes.body
1. 5-1 시청 후 배운 점
Network Layer Services

-      신호를 받아서 forwarding을 하는데 주소를 확인하고 판단하는 행위를 routing이라고 함

Circuit-switched 방식

-      옛날 전화방식으로

-      미리 회선(circuit)을 예약해서 예약이 완성되면 전화가 시작됨

-      통화가 끝나면 끝났다는 메시지를 통해 예약한 회선을 끊는다.

-      장점: 한번 회선이 예약되면 오랜 시간 통화할 때 좋음, 지연 X

-      단점: 채널 낭비가 존재

Message Switching

-      예약 없이 바로 메시지를 보내는 방식

Packet-switched networks

-      메시지 스위칭의 종류로

-      패킷을 보낼 때 미리 커넥션 없이 데이터를 패킷 단위로 쪼개서 전송

Cf : Effect of packet size on transmission time

라우팅 알고리즘

-      각 라우터들이 스스로 계산하는 알고리즘

-      Link State routing : 다익스트라 알고리즘 기반 알고리즘

-      Distance vector routing

질문 :

마지막에 말씀하신 오트모노스 시스템(?)이라는 단위가 정확히 뭔지 잘 모르겠습니다. 여러 개의 라우터들이 들어간 하나의 소규모 시스템을 말하는건가요?

# data[].attributes.body
1. 배운점
-LAN, WLAN의 정의, 특징 및 차이점에 대해 자세하게 알 수 있었습니다.
- ......................
2. 질문(궁금한 점이 있는 경우 게시)

# data[].attributes.body
배운점:
< 5-1장 >

network layer )

sender가 보낸 데이터를 receiver로 안전하게 전달하는 역할

데이터를 보낼 때 헤더에 sender와 receiver의 주소(ip address)를 써서 보냄 -> router가 그 주소를 바탕으로 판단하고 보냄(forwarding)

routing )

forwarding할 때 어디로 보낼지 주소를 보고 판단하는 행위

- 예전 유선 전화망: circuit-switched networks

- 최근 컴퓨터 통신망: packet-switched network

circuit-switched networks )

circuit = 회선

1. circuit establishment: 통화하고자 하는 번호를 누르면, 해당하는 회선이 미리 만들어지고 예약된다,

2. data transfer: 예약이 완료되면 통화 가능

3. circuit termination: 통화가 끝나면 예약을 끊는다.

장단점: circuit을 만들고 끊는 행위 자체가 시간은 적지만 overhead가 될 수 있다. 근데 전화로 말하고자 하는 내용이 길 때는 상대적으로 큰 overhead가 아님. (data가 클 때 감수할만하다)

message switching )

circuit 만들고 끊는 행위 없이 바로 message를 보내는 형식으로, packet-switched network도 이러한 형식의 전달 중 하나이다. packet ~ 은 pipelining을 위해 message를 packet 단위로 끊어서 보낸다. 중간에 가다가 길이 밀리면 router가 다른 경로를 찾아서 보내준다. receiver 측에 도착하는 순서가 달라지지만, 알아서 순서를 재정비해주기 때문에 큰 문제가 되지는 않는다.

( * 참고; 패킷은 정보 기술에서 패킷 방식의 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록이다. )

단점: message가 길어지면 전달하는 시간이 오래 걸린다 + 여러 곳에서 메시지가 오면 buffer도 커야함 -> packet으로 해결

그렇다고 해서 메시지를 무조건 잘게 자르는 것이 좋은 건 아님. 너무 잘게 자르면 packet에서 header가 차지하는 부분이 너무 많기때문에 효율적이지 않다.

routing algorithms )

routing table을 바탕으로 router가 수신지로 message를 보내는데, 이 routing table을 만드는 알고리즘.

각각의 router가 스스로 계산해서 만든다. (= distribute routing?)

1. Link state routing: 각각의 router가 자신과 이웃한 노드와 그 경로의 cost를 알고 있고 서로 이를 교환한다. 이러한 정보와 Dijkstra를 이용하여 계산.

2. Distance vector routing: 자신의 이웃 노드하고만 정보를 주고 받음. 각자가 갖고 있는 routing table을 활용해서 계산. (현재 이웃한 노드와의 cost + 이웃노드부터 목적지까지 cost 이런 식으로 계산), Bellman-Ford 알고리즘 이용

Hierarchical routing )

너무 많은 router가 있고, routing table은 너무 길다. 각각의 AS(autonomous system)에서 대표 router를 선정하고, 대표 router들끼리 routing table을 주고 받아 알고리즘을 만들고, 내부에서도 주고 받아 각자 만든다.

-------------------------------

< 5-2장 >

IP )

Internet Protocol

- routing 알고리즘을 실제로 구현하는 protocol

- ip address를 활용하면 어떤 단말인지 각각 알 수 있다.

- address는 network ID (class를 살 수 있는 기관의 아이디 수), Host ID(컴퓨터에 할당할 수 있는 아이디)로 이뤄져있다.

- Class B (Net ID (14), Host ID (16)) -> 가장 많이 사용

컴퓨터 2^16대에 ID를 할당할 수 있음.

- address 할당할 때 랜덤하게 숫자를 배분하는 것보다는 subnet ID를 사용해서 세부 network를 쪼개서 사용한다. ex) 건물별... 141.223.“0.0” -> 141.223.x.x를 대표한다.

CIDR )

- class로 나누는 방식이 아니라 200.23.16.0/“27” <- 뒤에 붙은 27은 Net ID 부분이 얼마인지 나타내는 식으로 사용. 크기의 중간이 없었던 딜레마를 극복할 수 있음.

NAT )

- ID address가 부족한 것을 해결하는 방법
- 중간 router가 자신의 ID를 이용해서 중간에서 연결해주는 동작 방식

Internet Protocol layering 중 )

- ICMP: 망이나 네트워크 컨트롤, 말그대로 제어용 (데이터 전송에는 사용되지 않음, 데이터는 IP로 간다)

- IGMP: 멀티캐스팅을 위한 protocol, 많이 사용은 X

그냥 이런 protocol들이 있다 ~

TTL )

- 원래 용도: sender가 receiver까지 보낼 때 걸리는 시간을 측정

- 현재 사용 용도: router를 몇 번 거쳐서 destination에 도달했는지 측정