국민대학교에서 "Computer Networking: A Top-Down Approach"을 이용한
이상환 교수님의 교안을 활용하여 강의 내용을 정리하였습니다.
ᘏ ⑅ ᘏ ഒ zᶻ
꒰˶ - ˕ -꒱ ⌒)ᦱ
이번 게시물에서는 datagram의 format과 addressing과 관련하여 알아보도록 하겠습니다!
Network Layer: Internet
host와 router의 network layer function은 아래처럼 생겼따.
Path-selection algorithms에는 routing과 관련된 내용이 담겨 있고 이러한 알고리즘을 통해 forwarding table을 작성할 수 있다.
그리고 IP protocol에서는 datagram의 format과 주소를 정의하는 방식이 addressing이 있는데 이 부분이 이번 게시물에서 주로 다루는 내용이다.
특히 datagram은 packet에 header를 붙인 것을 일컫는 말로 datagram의 format이라함은 header의 format을 중점으로 본다고 생각하면 될 거 같음!
이 외의 ICMP protocol은 packet이 drop되면 source(sender)에 이를 알려야하는데 그 때 사용하는 프로토콜이라고 생각하면 될 거 같다.

IP Datagram format
IP datagram의 format은 아래의 그림과 같다. 차근차근 하나씩 알아보자
- ver: IP 프로토콜의 버전이 4인지 6인지 표시
- head. len: 헤더의 길이를 표시 (기본적으로 20byte지만 option이 붙으면 24byte가 된다.)
- type of service: 새로 나온 기능을 쓸 것인지 아닌지를 표시
- length: datagram의 전체 길이를 표시
- 최대 64Kbyte가 될 수 있으나, 일반적으로 1500byte나 그 보다 적은 경우가 많다.
- 16-bit identifier / flags / fragment offset: 이러한 3개의 field를 이용해서 packet을 여러개로 쪼갤 수 있다.
- time to live: TTL을 표기하는데 이는 하나의 라우터를 지날 때 마다 하나씩 줄어들며, 0이 되면 해당 packet을 drop한다.
- 왜 0일 때 drop을 할까? 63이라고 가정할 때, 라우터를 63번 지나서 왔다는 것은 문제가 있다는 것이기 때문이다.
- upper layer: TCP인지 UDP인지 표시
- header checksum: 오류를 체크하기 위함
- source IP address / destination IP address: 이 둘을 보고 어디서, 어디로 가야하는지 정할 수 있다. (각각 32bit)
- option: timestamp, record route taken 등이 있는데 얘네가 들어가면 head. len이 커진다.
- payload data: 얘네도 20byte의 헤더를 가진다.
- TCP의 헤더(20byte) + IP의 헤더(20byte) = 40byte
- 즉, 헤더만 40byte가 된다.. 그래서 사용자가 보내려는 application message의 값 자체가 작으면 엄청 큰 오버헤드가 발생하게 된다.

IP addressing: introduction
그렇다면 이제 주소의 구조를 알아보자!
IP address는 32bit의 integer로 이루어져 있으며, 주소들은 각각 host 또는 router interface에 붙어있다.
예를 들면, "내 노트북의 IP주소가 뭐지?" 라는 말은 "노트북에 붙어있는 무선 LAN card(=interface)의 IP주소가 모지?"라는 말이라는 뜻이다!
여기서 interface란? host/router와 physical link를 연결해주는 장비이며, router는 여러개의 인터페이스를 가진다. 그리고 host는 한 두개 정도를 가진다.


Q. interface들은 어떻게 연결되어있을까? -> chapter 6, 7에서 더 자세히 배울 것임
A1. wired - 인터페이스가 이더넷 허브(스위치)에 연결되어 있는 형태
A2. wireless - 와이파이 엑세스 포인트가 있어서 얘와 연결되어 있는 형태
=> 어쨋든 인터페이스는 host나 router에 장착이 되어있어서 링크와 연결이 되어있다.

Subnets
- subnet이 모임?
- 중간에 라우터를 거치지 않고 서로 도달 가능한 device interface들의 집합
- IP address의 구조
- subnet part: 같은 subnet 내부에 있는 device들은 같은 high order bits를 가진다.
- host part: subnet part를 제외한 low order bits

- subnet을 정의하는 법
- 아래의 그림에서 host와 router를 지우면 섬처럼 남는 것이 subnet이다.
- subnet mark
- 맨 뒤에 / 뒤에 있는 숫자로, subnet part의 길이를 의미한다.

IP addressing: CIDR
- CIDR: Classless InterDomain Routing(사이다라고 부른다!)
- subnet part를 임의의 길이로 하겠따
- address의 format: a.b.c.d/x
- 사용하는 이유: 나의 IP주소에 맞는 subnet 주소를 사용해서 낭비를 막고 필요한 개수만큼 사용하기 위해

IP addresses: how to get one?
이러한 내용들을 읽다보면 두 가지의 질문이 생길 수 있따.
- host가 어떻게 IP 주소를 할당받나요? (host part of address)
- 네트워크는 어떻게 IP주소를 할당 받나요? (network part of address)
- 1번 질문에 대한 해답
- 회사한테 하나 달라고 해서 내가 직접 메뉴얼하게 설정한다. (hard-coded)
- DHCP(Dynamic Host Configuration Protocol)을 사용한다.
-> 동적으로 서버로부터 남는 주소를 받아오는 방법
DHCP: Dynamic Host Configuration Protocol
- host는 네트워크에 들어갈 때, 네트워크 서버로부터 동적으로 주소 하나를 받는다.
- 그러나 시간제한이 있다! 그래서 더 쓰고 싶으면 DHCP 프로토콜을 통해 갱신할 수 있다.
- 주소 재사용이 가능하다 (내가 두시간 동안 쓰다가 카페를 나가더라도 다른 사람이 다시 사용이 가능하다.)
- mobile user들이 사용 가능하다.
- DHCP overview
- host broadcasts DHCP discover msg -> 먼저 서버가 있는지 없는지 확인
- DHCP server responds with DHCP offer msg -> 서버에서 대답을 함
- host request IP address: DHCP request msg -> host가 IP주소를 요청🌟
- DHCP server sends address: DHCP ask mag -> 서버가 ack를 보내서 주소를 할당해준다.🌟
DHCP client-server scenario
원래 DHCP 서버는 라우터에 있지만 지금은 분리되어있다고 가정한다.

'Computer Network' 카테고리의 다른 글
| [컴퓨터네트워크] chapter 4-2. What's inside a router (0) | 2024.05.03 |
|---|---|
| [컴퓨터네트워크] chapter 4-1. Network Layer: overview (0) | 2024.05.03 |
| [컴퓨터네트워크] chapter 1. Introduction (2) | 2024.04.25 |