19 장 호스트 대 호스트 전송: 인터네트워킹, 주소 지정, 라우팅 19 장 호스트 대 호스트 전송: 인터네트워킹, 주소 지정, 라우팅 19.1 인터네트워크 19.2 주소지정 19.3 라우팅 19.4 요약
19.1 인터네트워크 인터네트워크 네트워크 사이의 데이터 전송 링크를 통한 데이터 패킷 전달
19.1 인터네트워크(계속) 인터네트워크의 링크 S1의 f1에 데이터 도착시 수신한 데이터를 f3으로 전송해야 한다는 것을 알 수 있는가? 전송은 하나의 링크를 통해 프레임이 전달됨을 의미할 뿐
19.1 인터네트워크(계속) 네트워크층의 필요성 여러 링크를 통한 전달 문제 해결 호스트 대 호스트 전송 책임 라우터 또는 교환기를 통한 패킷 라우팅 책임
19.1 인터네트워크(계속) 발신지에서의 네트워크층
19.1 인터네트워크(계속) 라우터 또는 교환기에서의 네트워크층
19.1 인터네트워크(계속) 목적지에서의 네트워크층
19.1 인터네트워크(계속) 패킷교환 네트워크로서 인터넷
19.1 인터네트워크(계속) 가상회선 방식 데이터그램 방식 단일 경로의 생성 가상회선식별자(VCI)를 통한 라우팅 각 패킷은 서로 독립적 발신지 주소와 목적지 주소를 기반으로 라우팅
인터넷에서 네트워크층의 교환은 패킷 교환의 데이터그램 방식을 사용한다. 19.1 인터네트워크(계속) 인터넷에서 네트워크층의 교환은 패킷 교환의 데이터그램 방식을 사용한다.
19.1 인터네트워크(계속) 비연결 네트워크로서의 인터넷 연결 중심 서비스(connection-oriented service) 패킷을 보내기 전에 목적지와 연결 생성 가상회선 방식에서 사용 비연결 서비스(connectionless service) 각각의 패킷을 독립적으로 다른 패킷과 연관성 없다고 가정 인터넷의 네트워크층에서 사용
인터넷에서 네트워크층의 통신은 비연결형이다. 19.1 인터네트워크(계속) 인터넷에서 네트워크층의 통신은 비연결형이다.
19.2 주소 지정 인터넷 주소 호스트간 전달을 위한 주소, 라우팅 방식 필요 모든 장치에 전세계적으로 통신이 가능한 장치들의 유일한 식별 방법 필요 식별자는 인터넷 주소 또는 IP 주소로 호칭 호스트, 라우터 연결을 유일하고 전체적으로 정의하는 32비트 2진 주소
19.2 주소 지정(계속) IP 주소는 32비트 주소이다. IP 주소는 유일하고 전체적이다.
19.2 주소 지정(계속) 2진 표기법 점-10진 표기법 주소를 읽기 쉽게 옥텟(8비트) 사이에 공간 삽입 32비트 주소, 4옥텟 주소, 4바이트 주소 점-10진 표기법 01110101 10010101 00011101 11101010
19.2 주소 지정(계속) 2진, 10진, 16진 시스템은 부록 B에서 복습한다.
19.2 주소 지정(계속) 예제 1 다음의 IP 주소를 2진 표기법에서 점-10진 표기법으로 변환하라. a. 10000001 00001011 00001011 11101111 b. 11111001 10011011 00000100 00001111 a. 129.11.11.239 b. 249.155.251.15
19.2 주소 지정(계속) 예제 2 다음의 IP 주소를 점-10진 표기법에서 2진 표기법으로 변환하라. a. 111.56.45.78 b. 75.45.34.78 a. 01101111 00111000 00101101 01001110 b. 01001011 00101101 00100010 01001110
19.2 주소 지정(계속) 클래스형 주소 지정(classful addressing) 수십년 전에 클래스 개념으로 사용 IP 주소 공간은 A, B, C, D, E의 5개 클래스로 구분
클래스형 주소 지정에서, IP 주소 공간은 A, B, C, D 그리고 E 클래스의 5개 클래스로 구분된다. 19.2 주소 지정(계속) 클래스형 주소 지정에서, IP 주소 공간은 A, B, C, D 그리고 E 클래스의 5개 클래스로 구분된다.
19.2 주소 지정(계속) 2진 표기법에서 클래스 구별
19.2 주소 지정(계속) 주소 클래스 찾기
19.2 주소 지정(계속) 예제 3 각 주소의 클래스를 찾아라. a. 00000001 00001011 00001011 11101111 b. 11110011 10011011 11111011 00001111 a. 첫 비트가 0이므로 이것은 A 클래스 주소이다. b. 첫 4비트가 모두 1이므로 E 클래스 주소이다.
19.2 주소 지정(계속) 점-10진 표기법에서 클래스 구별
19.2 주소 지정(계속) 예제 4 각 주소의 클래스를 찾아라. a. 227.12.14.87 b. 252.5.15.111 c. 134.11.78.56 a. 첫 바이트가 227(224에서 239까지)이므로 D 클래스이다. a. 첫 바이트가 252(240에서255까지)이므로 E 클래스이다. a. 첫 바이트가 135(128에서 191까지)이므로 B 클래스이다.
19.2 주소 지정(계속) 유니캐스트, 멀티캐스트, 예비 주소 유니캐스트 - A, B, C 클래스 멀티캐스트 – D 클래스 예비 주소 – E 클래스
19.2 주소 지정(계속) netid와 hostid
19.2 주소 지정(계속) 클래스 A 128 개의 블록 블록당 16,777,216개의 주소
19.2 주소 지정(계속) 클래스 A 주소의 수백만 개가 낭비되고 있다.
19.2 주소 지정(계속) 클래스 B 16,384개의 블록 16개의 사설 블록 16,368개 블록 할당 블록당 65,536개의 주소
19.2 주소 지정(계속) 많은 클래스 B 주소가 낭비되고 있다.
19.2 주소 지정(계속) 클래스 C 2,097,152 블록 256개 사설 블록 2,096,896개 블록 할당 블록당 256개의 주소
클래스 C 주소의 개수는 대부분의 기관이 필요로 하는 것보다 적다. 19.2 주소 지정(계속) 클래스 C 주소의 개수는 대부분의 기관이 필요로 하는 것보다 적다.
19.2 주소 지정(계속) 클래스 D 1개의 블록 멀티캐스팅을 위해 설계 클래스 E 예비 주소로 사용하기 위해 설계
19.2 주소 지정(계속) 네트워크 주소 네트워크 자체를 정의하는 주소로 호스트에 할당 불가 모든 hostid의 바이트는 0 라우터가 네트워크 주소를 바탕으로 패킷 라우팅을 학습 네트워크 주소는 한 블록의 첫 주소 네트워크 주소가 주어지면 주소의 클래스를 찾을 수 있다.
클래스형 주소 지정에서 네트워크 주소는 기관에 할당된 주소이다. 19.2 주소 지정(계속) 클래스형 주소 지정에서 네트워크 주소는 기관에 할당된 주소이다.
19.2 주소 지정(계속) 예제 5 주소 23.56.7.91이 주어졌을 때 네트워크 주소를 찾아라. 이 클래스는 A 클래스이다. 오직 첫 바이트만 netid로 정의한다. Hostid 바이트 부분(56.7.91)을 0으로 대체하면 네트워크 주소를 찾을 수 있다. 그러므로 네트워크 주소는 23.0.0.0 이다.
19.2 주소 지정(계속) 예제 6 주소 132.6.17.85가 주어졌을 때 네트워크 주소를 찾아라. 클래스는 B클래스이며 첫 두 바이트는 netid를 정의한다. Hostid 바이트 부분을 0으로 대체하여 네트워크 주소를 찾을 수 있다. 그러므로 네트워크 주소는 132.6.0.0이다.
19.2 주소 지정(계속) 예제 7 네트워크 주소가 17.0.0.0이다. 클래스를 찾아라. Netid가 오직 1바이트이므로 A 클래스이다.
네트워크 주소는 netid와는 다르다. 네트워크 주소는 netid와 hostid 둘 다 가지고 있으며, hostid는 0이다. 19.2 주소 지정(계속) 네트워크 주소는 netid와는 다르다. 네트워크 주소는 netid와 hostid 둘 다 가지고 있으며, hostid는 0이다.
19.2 주소 지정(계속) 클래스형 주소 지정을 할용한 간단한 인터넷
19.2 주소 지정(계속) 서브넷 지정 특정 호스트에 도달하기 위해 처음 첫 주소 부분(netid)을 사용 네트워크에 도달 후 두 번째 부분(hostid)를 이용 호스트에 도달 IP 주소는 2단계의 계층으로 설계
19.2 주소 지정(계속) IP 주소는 2단계의 계층으로 설계되어 있다.
19.2 주소 지정(계속) 3단계 계층으로 된 네트워크(서브넷으로 만들어짐) 호스트의 그룹화 필요, 즉 서브네트워크(서브넷)으로 분리 필요
19.2 주소 지정(계속) 서브넷 지정이 있을 때와 없을 때의 네트워크 주소 서브네트워크의 추가로 3단계 계층 현재 사이트에 전달 서브넷에 전달 호스에 전달
19.2 주소 지정(계속) 전화번호에서 계층의 개념 미국에서 사용하는 10자리 전화번호와 유사 지역 코드, 교환기 번호, 연결번호의 3레벨
19.2 주소 지정(계속) 마스크(mask) 라우터가 네트워크 주소와 서브네트워크 주소를 찾아내는가? 네트워크 주소를 기반의 컬럼 외부 라우터 – 기본 마스크 사용 내부 라우터 – 서브넷 마스크 사용
19.2 주소 지정(계속) 기본 마스크(Default Mask) Class In Binary In Dotted-Decimal Using Slash A 11111111 00000000 00000000 00000000 255.0.0.0 /8 B 11111111 11111111 00000000 00000000 255.255.0.0 /16 C 11111111 111111111 11111111 00000000 255.255.255.0 /24
19.2 주소 지정(계속) 네트워크 주소는 기본 마스크를 블록의 어느 주소에라도 적용하여 찾을 수 있다(네트워크 주소 포함). 블록의 netid는 보존하고 hostid는 0으로 설정된다.
19.2 주소 지정(계속) 예제 8 기관 외부의 라우터가 190.240.7.91의 목적지 주소를 가진 패킷을 수신하였다. 패킷의 경로를 지정하기 위한 네트워크 주소를 어떻게 찾는지 보여라. a. 라우터는 클래스를 파악하기 위해 주소의 첫 번째 바이트를 본다. 이것은 B 클래스이다. b. B 클래스의 기본 마스크는 255.255.0.0이다. 라우터는 이 마스크와 주소를 AND 연산하여 192,240.0.0을 얻는다. c. 라우터는 어떻게 목적지로 패킷의 경로를 지정할 것인지 찾기 위해 라우팅 테이블을 쳐다본다. 후에 이 목적지가 없을 때에는, 어떤 일이 발생하는지 살펴볼 것이다.
19.2 주소 지정(계속) 서브넷 마스크(Subnet Mask) 기본 마스크의 가장 왼쪽 0의 일부를 1로 변경 추가되는 1의 개수가 n이면 서브넷의 개수는 2n
19.2 주소 지정(계속) 예제 9 기관의 내부 라우터가 목적지 190.240.33.91 주소를 포함한 동일 패킷을 수신하였다. 이 패킷의 경로를 지정하기 위해 어떻게 서브네트워크 주소를 찾는지 보여라. a. 라우터는 마스크를 알고 있어야 한다. /19라고 가정 b. 라우터는 주소 190.240.33.91에 마스크를 적용한다. 서브넷 주소는 190.240.32.0이다. c. 라우터는 어떻게 이 목적지로 패킷의 경로를 지정할 것인지 찾기 위해 라우팅 테이블을 쳐다본다. 후에 만약 이 목적지가 존재하지 않으면 무슨 일이 발생하는지 살펴볼 것이다.
19.2 주소 지정(계속) 슈퍼넷 지정 한 기관의 주소 범위를 넓히기 위해 몇 개의 클래스 C 블록 결합 슈퍼넷 지정(supernetting)
19.2 주소 지정(계속) 비클래스형 주소 지정 1996년 인터넷 기관에서 비클래스형 주소 지정(classless addressing) 발표
19.2 주소 지정(계속) 가변길이 블록 마스크 네트워크 주소 찾기 서브넷 지정 CIDR 어느 클래스에도 속하지 않는 가변길이 블록 마스크 첫 주소와 마스크 정보로 전체 블록 정의 네트워크 주소 찾기 주소와 마스크에 대한 AND 연산을 통해 첫 번째 주소 찾음 서브넷 지정 마스크 /17에서 8개의 서브넷 생성(23=8)을 위해 /20 CIDR 비클래스형 인터도메인 라우팅(classless InterDomain Routing, CIDR)의 주소 지정 개념 사용
19.2 주소 지정(계속) 동적 주소 설정 인터넷에 연결시 정보 IP 주소, 서브넷 마스크, 라우터의 주소, 네임 서버의 주소 동적 호스트 설정 프로토콜(Dynamic Host Configuration Protocol, DHCP) 요구기반의 동적 정보 제공을 위한 프로토콜 DHCP 클라이언트가 서버에게 요청 신호 요청된 물리주소의 항목을 정적 데이터베이스 찾음 사용 가능한 대기장소(pool)의 주소 할당하고 동적 데이터베이스에 추가
19.2 주소 지정(계속) 임대(Leasing) 상태이동(Transition States) 초기화 상태(Initializing State) 선택 상태(Selecting State) 요청 상태(Request State) 결합 상태(Bound State) 갱신 상태(Renewing State) 재결합 상태(Rebinding State)
19.2 주소 지정(계속) DHCP 상태 이동도
19.2 주소 지정(계속) 네트워크 주소 변환 3개 주소 집합(사설 주소) 예약 Range Total 10.0.0.0 to 10.255.255.255 224 172.16.0.0 to 172.31.255.255 220 192.168.0.0 to 192.168.255.255 216
19.2 주소 지정(계속) NAT(network address translation)
19.2 주소 지정(계속) 주소 변환 외부로 가는 모든 패킷은 NAT 라우터 통과 패킷의 발신지 주소를 포괄적 NAT 주소(global NAT address)로 대체
19.2 주소 지정(계속) 변환 테이블 IP 주소 한 개 사용하기 IP 주소의 집단(pool) 사용하기
19.2 주소 지정(계속) IP주소 한 개 사용하기 변환 테이블이 사설 주소와 외부 주소 2개의 컬럼으로 구성
19.2 주소 지정(계속) 주소 집단(pool) 사용하기 포괄적 주소의 집단 사용 사설 네트워크 호스트는 동일한 시간에 2개의 외부 서버 프로그램(HTTP, FTP)에 접속 불가
19.2 주소 지정(계속) IP 주소와 포트 번호 동시 사용하기 다 대 다(many-to-many) 연결 허용 발신지와 목적지의 전송층 포트번호를 포함한 5개 컬럼 사용 Private Address Private Port External Address External Port Transport Protocol 172.18.3.1 1400 25.8.3.2 80 TCP 172.18.3.2 1401 ...
19.3 라우팅 라우팅 기술 라우팅 테이블(routing table)을 소유하기 위한 호스트 또는 라우터 필요 라우팅 테이블을 통한 최종 목적지에 대한 경로 탐색
19.3 라우팅(계속) 다음-홉 라우팅(next-hop routing)
19.3 라우팅(계속) 네트워크-특정 라우팅
19.3 라우팅(계속) 호스트-특정 라우팅
19.3 라우팅(계속) 기본 라우팅
19.3 라우팅(계속) 정적 대 동적 라우팅 정적 라우팅 테이블(static routing table) 수동으로 입력된 정보 동적 라우팅 테이블(dynamic routing table) RIP, OSPF, BGP의 동적 라우팅 프로토콜을 사용 주기적인 갱신
19.3 라우팅(계속) 클래스형 주소 지정을 위한 라우팅 테이블 마스크, 목적지 네트워크 주소, 다음-홉 주소, 인터페이스로 구성 목적지 네트워크 주소를 찾지 못하면 기본 인터페이스로 전달
19.3 라우팅(계속) 예제 10 192.16.7.1의 목적지로 가는 패킷 수신시 목적지 주소와 일치하는 것을 찾을 때까지 목적지 주소에 마스크가 적용된다. 인터페이스 m0(호스트-특정)을 통해 패킷을 송신
19.3 라우팅(계속) 예제 11 목적지 193.14.5.22로 가는 패킷 수신시 인터페이스 m2로(네트워크 특정)을 통해 패킷을 전송
19.3 라우팅(계속) 예제 12 목적지 200.34.12.43로 가는 패킷 수신시 일치하는 것이 없으므로 기본 인터페이스 m0을 통해 패킷 송신
19.3 라우팅(계속) 비클래스형 주소 지정을 위한 라우팅 테이블(CIDR) 라우팅 테이블 크기 계층적 라우팅 지역적 라우팅 라우팅 테이블 검색 알고리즘
19.4 요약