네트워크 계층 작업
- 라우팅
- IP 주소 관리
- 도메인 이름 관리
- IP - MAC 주소 변환
- 네트워크 분할
- 이 기종 LAN 연결
IP가 해야 할 일
- 목적지까지 패킷 전송
- 혼잡 제어
- 서비스 요구 사항
- 패킷 분리 처리
- 터널링
- IP 버전 관리
서비스 요구 사항(QoS) : 네트워크에 요구되는 사항, 각 응용 프로그램마다 요구사항 다름, 표시하도록 되어 있으나 무의미 해짐
응용 프로그램 | 신뢰성 | 지연 | 지터 | 대역폭 |
이메일 | 높음 | 낮음 | 낮음 | 낮음 |
파일 전송 | 높음 | 낮음 | 낮음 | 중간 |
웹 접속 | 높음 | 중간 | 낮음 | 중간 |
인터넷 전화 | 낮음 | 높음 | 높음 | 낮음 |
화상 회의 | 낮음 | 높음 | 높음 | 높음 |
혼잡 제어 : 혼잡이 발생하는 곳의 흐름을 변화시켜 혼잡을 완화시키는 작업
- 호스트의 타임 아웃 시간을 늘리는 것
- 타임아웃보다 더 효과적인 방법은 패킷을 천천히 전송하는 것 -> 슬라이딩 윈도우 크기 줄이기 => 초크 패킷
- 패킷과 패킷의 전송간격을 조정 => 토큰 버킷 알고리즘
초크 패킷 : 윈도우의 크기를 줄일 때 사용되는 패킷
- 분필을 뜻하는 초크는 혼잡제어에 사용되는 빈 패킷 의미
- 상대방 호스트에게 보내는 빈 패킷이 초크 패킷 -> 초크 패킷을 받은 호스트는 윈도우 줄임
- IP 헤더에서 초크 패킷의 역할을 하는 필드가 ECN
토큰 버킷 알고리즘 : 일정하지 않은 간격으로 도착하는 패킷을 버킷에 넣고, 보내는 쪽에서는 일정 간격을 맞추어 천천히 패킷을 처리하는 알고리즘
- 버퍼를 이용한 혼잡제어 알고리즘
패킷 단편화
- LAN 마다 패킷의 처리능력이 다를 뿐 아니라 다룰 수 있는 패킷의 크기도 다름 -> 처음 보낸 패킷이 여러 개로 조각나서 배달되는 경우가 발생
- IP에는 패킷이 여러 개로 조각나는 문제에 대비하여 원본을 확인할 수 있도록 준비
Identification Number(ID Number) : 잘려나간 패킷이 여러 개 있는 경우, 같은 패킷에 있는 데이터인지 확인 할 수 있는 필드
Fragment Offset : 기준 위치로부터 얼마큼 떨어졌는지를 나타냄, 분할되기 전 패킷 데이터로부터 얼마큼 떨어진 위치에 있는 데이터인지 알려줌
More Fragment : 1이면 맨 마지막 패킷이라는 의미, 0이면 패킷이 분할되어 뒤따르는 패킷이 더 있다는 의미
ID Number = 21 : 두 개의 패킷이 하나의 패킷에서 분할
Fragment Offset = 0 : 원래 데이터의 0번째 위치
Fragment Offset = 7 : 원래 데이터의 7번째 위치에 있었음
More Fragment = 0 : 뒤로 패킷이 더 있음
More Fragment = 1 : 패킷의 끝임
Fragment Offset = 0 : 원래 데이터의 0번째 위치 (첫번째 패킷)
Fragment Offset = 7 : 원래 데이터의 7번째 위치 (마지막 패킷)
Fragment Offset = 3 : 원래 데이터의 3번째 위치 (두번째 패킷)
More Fragment = 1 : 마지막 패킷이니 더 이상 분할된 패킷이 없다는 것을 알림
터널링(IP 터널링) : 기존의 IP 패킷을 무선 전화망에서 사용하는 패킷에 집어넣고, 무선 전화망과 인터넷이 연결되는 곳까지 보냄, 이후 IP 패킷으로 전송
- 서로 다른 종류의 통신망을 사용하여 인터넷에 접속하는 경우 -> 집에 있는 무선 공유기 고장으로 스마트폰의 핫스팟 기능을 이용하여 노트북을 인터넷에 연결하는 경우
- 무선 전화통신망은 IP 패킷과는 다른 종류의 헤더를 사용 -> 패킷이 인터넷 망이 아닌 구간을 통과할 때 어떻게 해야 하는가의 문제가 발생
IPv4의 헤더 : 32bit(4byte)를 기준으로 나눔, 위에서부터 5줄까지 필수(5 * 4byte = 20byte), 옵션 부분은 필수 아님
Version : IP 버전 번호, IPv4 = 4
IHL(IP HEader Length) : 옵션을 포함한 IP 헤더의 길이, 4byte 기준, 옵션이 없는 경우(20byte) = 5
Services : 1번 줄의 8번에서 15번 bit 까지는 원래 Quality of Service 명시, 일반적인 인터넷에서는 무시
ECN : 혼잡 제어와 관련된 필드, ECT bit와 CE bit로 구성, TCP의 요청에 의해 사용되는 필드
Total Length : 헤더를 포함하여 전체 패킷의 크기, 200byte = 200
Identification Number : 패킷 번호를 의미, 분할 된 패킷 중 원본 패킷이 무엇인지 확인하는데 사용, 같은 ID Number를 가진 패킷은 원본에서 분할된 패킷
DF(Don't Forget) : 목적지의 호스트가 나눠진 패킷을 하나로 만들 수 없는 경우 패킷을 분할하지 못하도록 만든 필드, 패킷이 분할하지 못함 = 1
MF(More Fragment) : 뒤로 패킷이 더 있다는 의미, 마지막 패킷 = 1
Fragment Offset : 현재 가지고 있는 데이터가 원본 데이터에서 어느 위치인지 나타냄, 바이트로 표시, 맨 앞의 패킷 = 0
TTL(Time to Live) : 패킷이 살아있을 수 있는 시간, 패킷이 목적지에 도착 x -> 좀비 패킷, 좀비 패킷이 많아지면 네트워크 부담 커짐, 홉으로 표시
Transport Protocol : TCP인지 UDP인지 해당 패킷을 전송계층에 있는 어떤 프로토콜에게 전달해야 하는지 명시
Header Checksum : 헤더에 에러가 있는지 없는지 검사하는 16bit 코드가 들어가 있음, 에러검사 코드 중 체크썸 방식 사용, 헤더만 검사
IP헤더 4번 줄의 Source Address는 보내는 호스트의 IP 주소를 나타내며, 5번 줄 Destination Address는 받는 호스트의 IP 주소를 의미
IPv6의 크기 = 40byte(고정)
Version = 6
Traffic Class : Quality of Service가 들어감
Flow Label : 일반적으로 0으로 설정
Payload Length : 헤더를 제외한 데이터의 크기를 byte로 표시, IPv6는 헤더가 40byte로 고정이기에 IHL 필드 필요 없음
Next Header : Transport Protocol의 이름 변경된 것, 상위 계층에 전달될 프로토콜의 헤더 가리킴
Hop Limit : Time to Live가 변경된 것, 패킷을 살아 있을 수 있는 최대의 홉 개수
IPv6 주소 표기
- 128bit(16byte)의 주소를 4개 16진수(2byte)를 하나로 묶어서 8개의 덩어리로 표시
- ex) 9000:0000:0000:0000:1F23:2D5C:2323:34FF
- 0000은 생략 가능 => 9000::1F23:2D5C:2323:34FF
- IPv6와 IPv4 같이 표시하는 경우 : IPv6에 연결된 IPv4주소는 콜론(:) 두 개와 10진수로 표시
- ex) 9000::1F23:2D5C:2323:34FF::258.231.20.12
인터넷 계층의 필요성과 라우터의 역할
네트워크 인터페이스 계층의 역할 : 물리적으로 직접 연결된 컴퓨터 간에 데이터 전송
인터넷 계층 : 인터 네트워킹, 네트워크와 네트워크를 연결해서 네트워크 간에 데이터를 전송하는 역할
라우터 : 서로 다른 네트워크 간에 데이터를 전송, 인터넷 계층의 역할을 구현하는 핵심 네트워크 장비
1번과 2번 / 3번과 4번은 통신 가능 , 하지만 1번과 4번은 통신 불가능
네트워크 A와 네트워크 B를 연결하여 직접 연결되지 않은 1번과 4번 컴퓨터 간에 데이터 전송이 가능해짐
=> 라우터의 역할이 곧 인터넷 계층의 역할
IP 프로토콜 : 데이터가 길을 잃지 않고 정확한 목적지에 도착할 수 있도록 하는 프로토콜
IP 주소(논리 주소) : 어느 네트워크의 어느 컴퓨터라는 것을 식별하는 주소, 네트워크 번호와 컴퓨터 번호를 조합하여 만들어짐
IP 주소와 인터페이스
- IP 주소는 호스트(컴퓨터)와 라우터의 각 인터페이스에 할당됨
- 인터페이스는 링크의 경계이며, 라우팅을 위해 각 인터페이스가 고유한 IP 주소를 가져야 함
- 라우터는 여러 링크와 연결되므로 인터페이스 수만큼 IP 주소를 가짐
라우팅 테이블
- 라우팅은 호스트와 라우터가 라우팅 테이블을 통해 경로를 결정
- 라우팅 테이블은 네트워크와 라우터 간의 경로 정보를 기록함
TCP/IP 계층 간 역할
- 인터넷 계층
- IP 주소를 기반으로 최적의 경로를 선택해 라우팅 수행
- 패킷에 송신지와 수신지 IP 주소를 담아 전달
- 네트워크 인터페이스 계층
- 물리적으로 연결된 기기 간 데이터를 전송
- MAC 주소를 사용하여 데이터를 프레임 형태로 전송
ARP (Address Resolution Protocol)
- IP 주소를 MAC 주소로 변환
- 인터넷 계층에서 네트워크 인터페이스 계층으로 데이터를 넘길 때 사용됨
라우팅 과정
- 라우터는 IP 패킷의 수신지 IP 주소를 보고 다음 경로를 결정
- 경로 결정 후 다음 라우터의 MAC 주소를 ARP로 확인
- MAC 주소를 프레임 헤더에 담아 패킷을 전송
- 라우터를 거칠 때마다 MAC 주소는 변경되지만, IP 주소는 유지됨
라우터의 역할
- 데이터가 최종 목적지에 도달하기 위해 여러 라우터를 통과
- 각 라우터는 패킷을 다음 라우터로 전달하며, 이를 라우팅이라고 함
스위치의 역할
- 스위치는 MAC 주소를 읽고 프레임을 중계하는 단순한 역할을 함
- MAC 주소와 IP 주소는 할당되지 않음
- 송신 호스트에서 받은 프레임을 수신지 MAC 주소에 따라 알맞은 포트로 전송
- 송신 호스트가 스위치의 ①번 포트로 프레임을 전송.
- 스위치는 프레임의 수신지 MAC 주소를 확인하여, 라우터 A가 연결된 ②번 포트로 프레임 전송
라우터 A의 역할
- 스위치로부터 프레임을 받은 라우터 A는:
- 이더넷 헤더의 MAC 주소를 확인하여 자신이 수신지인지 확인
- IP 헤더의 수신지 IP 주소를 읽고 최적 경로의 다음 라우터(라우터 B)를 결정
- ARP 프로토콜로 라우터 B의 MAC 주소를 얻음
- 기존 이더넷 헤더를 버리고, 라우터 B의 MAC 주소를 포함한 새로운 헤더를 만들어 전송
라우터 B의 역할
- 라우터 A와 동일한 방식으로:
- 프레임을 수신하고 IP 헤더의 수신지 IP 주소를 읽음
- 최적 경로에 따라 다음 라우터(라우터 C)를 결정
- ARP 프로토콜로 라우터 C의 MAC 주소를 얻음
- 새 헤더를 만들어 라우터 C로 프레임 전송
라우터 C의 역할
- 라우터 C는 수신 호스트가 연결된 네트워크(D)임을 확인:
- IP 주소의 네트워크 번호를 읽어 수신 호스트가 같은 네트워크에 속함을 확인
- 수신 호스트의 MAC 주소를 ARP 프로토콜로 얻음
- 수신 호스트의 MAC 주소를 포함한 헤더를 만들어 수신 호스트로 전송
스위치의 중계
- 라우터 C가 생성한 패킷은:
- 스위치의 ③번 포트로 전송
- 스위치가 수신 호스트의 MAC 주소를 확인하여 ④번 포트로 프레임을 중계
- 수신 호스트가 최종적으로 패킷 수신
'망 (Network)' 카테고리의 다른 글
[네트워크] 전송 계층 (0) | 2024.12.05 |
---|---|
[네트워크] 네트워크 계층 작업과 프로토콜 (0) | 2024.12.04 |
[네트워크] 라우팅 알고리즘 (1) | 2024.11.30 |
[네트워크] IP 주소 (1) | 2024.11.30 |
[네트워크] 네트워크 계층 (0) | 2024.11.13 |