스태틱 라우팅 

스태틱 라우팅은 네트워크 관리자(사람)가 직접 라우팅 테이블을 작성하는 방법.

사람이 수동으로 경로를 지정해주기 때문에 라우터의 CPU, 메모리를 적게 사용해 라우터에 부담이 적음.

또한 인접 라우터와 정보를 공유하지 않기 때문에 네트워크 대역폭을 절약할 수 있고 보안이 더 좋음.

하지만 다른 라우터에 문제가 생겼을 때 문제가 생긴 라우터를 우회하지 못하므로 관리자가 직접 경로를 수정해주거나 라우터를 고치기 전까지는 통신할 수 없는 상황이 발생할 수도 있음.

그리고 대규모 네트워크에서는 설정이 복잡해져 소규모 네트워크에 적합한 방식.

이러한 단점을 해결하기 위해서 다이내믹 라우팅이 등장.

 

다이내믹 라우팅

다이내믹 라우팅은 다시 여러 가지 프로토콜로 나눠진다. 

인터넷상에서 라우터는 셀 수도 없을 만큼 많이 존재한다. 

 

하나의 큰 조직이 많은 라우터를 연결해 만든 네트워크를 Autonomous System, 즉 AS라고 부른다. 

이 조직들은 대학교, 회사, 통신사들이 될 수 있다. 

우리나라의 AS정보는 한국인터넷진흥원에서 확인할 수 있다. 

AS 모습

 

AS가 있을 때 AS 내부에서 쓰는 라우팅을 프로토콜을 Interior Routing Protocol(IRP)라고 부른다. 

그리고 서로 다른 AS를 연결하기 위한 라우팅 프로토콜을 Exterior Routing Protocol(ERP)라고 부른다. 

 

IRP와 ERP 이미지

 

그리고 IRP와 ERP에 있는 라우팅 알고리즘은 동작에 따라 아래와 같이 구분된다. 

 

다음시간에 각각 알고리즘에 대해 알아보자

'네트워크' 카테고리의 다른 글

ARP(Address Resolution Protocol)  (1) 2024.07.08
RIP(Routing Information Protocol)  (0) 2024.06.24
라우터  (0) 2024.06.23
IP헤더(패킷)  (0) 2024.06.23
IP 클래스와 서브넷 마스크  (0) 2024.06.23

허브와 스위치 콜리전 도메인, 브로드캐스트 도메인

허브와 스위치를 이용하면 콜리전 도메인과 브로드캐스트 도메인으로 통신의 한계가 생긴다. 

* 콜리전 도메인: 허브로 연결되면 충돌이 발생할 수 있는데 이 영역을 콜리전 도메인이라고 한다. 

** 브로드캐스트 도메인:  스위치와 연결된 영역을 브로드캐스트 도메인이라고 부른다

 

인프런 그림으로 쉽게 배우는 네트워크

따라서 라우터를 이용해 브로드캐스트 도메인을 나눈다. 

 

브로드캐스트 도메인을 나누면서 논리적인 주소가 필요하게 되어 등장한 것이 IP주소이고 

IP주소는 고유한 주소를 나타내며 모든 호스트(PC)와 라우터의 포트마다 부여된다. 

 

Private IP는 중복되긴 하지만 NAT를 배우기 전까지는 'IP는 고유한 주소' 라고 가정 

 

라우터는 IP를 다루기 때문에 네트워크 계층에 속한다. 

라우터는 CPU와 메모리가 있는 하나의 컴퓨터이다. 

오직 네트워크에서 데이터를 전송하기 위한 컴퓨터! 

사용하는 곳에따라 크기와 가격이 천차만별이다. 

 

작은 사무실에서는 라우터(공유기)를 사용, 우리나라에선 라우터를 공유기라고도 부른다. 

ISP(통신사)와 같은 곳에서 사용하는 라우터는 성능이 더 좋아야 하므로 큰 라우터를 사용하는데 가격은 수억원 한다.

ISP에서 사용하는 라우터

 

스위치로 만들어진 브로드캐스트 도메인은 LAN영역이라고 부른다. 

이런 LAN 영역을 넘어서 통신하기 위해서 라우터로 연결되고 라우터를 넘어간 다른 영역을 WAN 영역이라고 부른다. 

 

이렇게 LAN영역을 연결한 라우터가 수없이 많이 존재하고 

라우터끼리 연결한다면 네트워크는 상당히 커진다. 

그게 오늘날 인터넷의 모습! 

 

라우터 중에서 통신사에서 운영하는 핵심적인 라우터가 있다. 

핵심 라우터들은 다른 통신사와 연결되는데 이를 코어 라우터라고 부른다. 

라우터들끼리 연결되어 인터넷, 코어 라우터의 모습

 

우리나라의 KT, SK브로드밴드, LG U+는 데이터센터에 라우터를 두고 광케이블을 이용해 연결한다. 

이렇게 코어 라우터로 구축된 시스템을 백본이라고 부른다. 

통신사는 빠르고 많은 처리를 위해서 고성능 라우터를 광케이블로 연결한 백본을 구축함!

 

이렇게 라우터로 복잡하게 연결되어 있을 때 우리가 다른 LAN영역에 있는 사용자에게 데이터를 전송한다면 IP를 이용해 라우터는 최대한 빨리 도달할 수 있는 경로를 적절하게 찾고 이 경로를 통해 데이터를 전송할 수 있게 된다. 

 

가장 가깝고 빠른, 적합한 경로는 라우팅 프로토콜을 이용해 찾는다. 

 

라우팅 프로토콜 

라우터와 IP주소를 이용해 다른 네트워크까지 데이터를 전송할 수 있다는 것을 알고 있다. 

라우터는 목적지 네트워크까지 가는 경로를 라우팅 테이블이라는 곳에 미리 저장해두고 데이터가 들어오면 해당 네트워크로 전달하는 역할을 한다. 

 

그럼 라우팅 테이블이라는 것은 어떤 것이고 어떻게 만들어지는 것일까? 

 

라우팅 테이블은 어떤 네트워크에서 어떤 네트워크로 이동할 때 해당 라우터에서 '어떤 인터페이스(포트)로 이동해야 하는지'가 적혀있는 표이다. 

 

라우팅 테이블을 만드는 방법은 2가지 

1. 스태틱(정적) 라우팅: 사람이 직접 주소 하나하나를 지정 

 

2. 다이내믹(동적) 라우팅: 라우터가 다른 라우터들과 정보를 공유해 라우터 스스로 테이블을 만드는 방법 

 

그럼 다이내믹이 좋은 것 아닌가? 

 

하지만 작은 네트워크에서 라우터가 여러 개의 다른 라우터와 연결되지 않고 하나만 연결되는 경우라면 스태틱 라우팅으로 직접 만드는게 더 좋을 수 있다. 

직접 적어준다면 라우터가 다른 라우터와 정보를 공유하지 않아서 부하가 적어질테니까! 

 

Q. 다이내믹 라우팅은 하나의 라우터가 전 세계 모든 라우터와 정보를 교환할까? 

A. 메모리 한계 때문에 그렇게 하지는 않는다. 

 

그러면 경로를 어떻게 찾을 까? 

라우팅 테이블에는 디폴트 라우터가 있다. 

라우팅 테이블에 목적지와 일치하는 정보가 저장되어있지 않다면 설정한 디폴트 라우터로 무조건 보내는 것이다.

자신이 모르는 네트워크인 데이터를 다른 라우터로 전달하는데,  전달할 라우터를 디폴트 라우터라고 부른다.  

라우팅 테이블에 디폴트 라우터는 0.0.0.0이나 default로 표현한다. 

라우터 경로를 찾는 과정

 

TTL은 목적지가 없는 데이터가 영원히 네트워크에 존재하는 걸 방지한다. 

 

디폴트 라우터 말고 다른 약속된 주소가 있다. 

 

127.0.0.1이라는 주소로 '루프백 주소'라고 부른다. local host라고도 부른다. 

루프백 주소는 127.0.0.0부터 127.255.255.255(127.0.0.0/8)까지 있지만 보통 127.0.0.1을 사용한다. 

 

이 주소로 데이터를 전송한다면 네트워크로 나가지 않고 자신이 다시 받게 된다. 

개발할 때 많이 사용하니 알아두는 게 좋다. 

 

 

'네트워크' 카테고리의 다른 글

RIP(Routing Information Protocol)  (0) 2024.06.24
스태틱 라우팅과 다이내믹 라우팅  (0) 2024.06.23
IP헤더(패킷)  (0) 2024.06.23
IP 클래스와 서브넷 마스크  (0) 2024.06.23
IP  (0) 2024.06.20

우리가 데이터를 전송한다면 애플리케이션 계층에서 데이터가 만들어지고 

이 데이터는 트랜스포트 계층으로 넘어간다

트랜스포트 계층에서는 받은 데이터에 트랜스포트 계층의 약속을 나타내는 헤더를 붙이고 

이렇게 만들어진 전체 데이터를 데이터그램이라고 부른다. 

 

데이터그램은 다시 네트워크 계층으로 넘어간다. 

네트워크 계층에서는 받은 데이터그램에 네트워크 계층의 약속을 나타내는 IP 헤더(네트워크 계층 헤더)를 붙이고 

이렇게 만들어진 데이터는 패킷이라고 부른다. 

 

패킷은 다시 데이터링크 계층으로 전달된다

데이터링크 계층에서는 패킷에 데이터링크 계층의 약속을 나타내는 헤더를 붙이는데 

이더넷을 배웠으니 이더넷 헤더가 붙는다. 

https://dipping.tistory.com/27

 

[데이터링크 계층] 이더넷과 이더넷 헤더

물리계층에선느 물리 신호(전압, 빛, 전파) 전달을 담당 했다면 데이터링크 계층에서는 기기에 MAC 주소를 부여해 원하는 기기에만 데이터를 전달할 수 있도록 한다. 이 외에도 매체 공유, 비공

dipping.tistory.com

이렇게 만들어진 데이터를 프레임이라고 부르고 

프레임은 물리 계층으로 전달돼 전기신호로 바뀌어서 케이블을 타고 전송된다. 

 

이번시간에는 IP헤더 모양을 베워보자. 

IP헤더, 인프런 그림으로 쉽게 배우는 네트워크

1. Version

IP 헤더의 버전을 나타내는 4bit로 구성된 필드이다. 

IPv4는 0100, IPv6는 0110 으로 표현한다. 

 

2. Header Length

- 현재 IP헤더의 크기를 나타내는 4bit로 구성된 필드이다. 

- 대부분의 IP헤더의 길이는 20Byte로 단위는 32비트이다. 이 값은 거의 5로 고정되어있다. 

 * 단위가 32bit이므로 5(0101) - 5*32 = 160bit = 20byte

 

3. TOS: Type of Service 

- 이 필드는 서비스의 우선순위를 나타내는데, 거의 사용되지는 않는다.

 

4. Total Packet Length

- IP패킷의 크기를 바이트(8bit)단위로 나타내는 16bit로 구성된 필드이다.

- 16bit이므로 2^16(65,536)바이트를 나타낼 수 있다. 최대 크기가 패킷의 크기와 일치 

 

5. Identifier

- 이 필드는 16비트로 구성되어있다.

- IP는 패킷을 분할 할 수 있는 기능이 있는데 Identifier 필드는 분할된 패킷을 구분하기 위한 용도로 사용된다. 

- 분할된 패킷은 Identifier로 순서대로 재조합 된다. 

 

6. Flags

- 패킷을 분할할지 하지 않을지 나타내는 3비트로 구성된 필드 

- 첫 비트는 0으로 고정, 두 번째 비트가 0이면 분할되었음, 1이면 분할되어있지 않음

- 세 번째 비트가 0이면 이 패킷이 마지막 조각, 1이면 더 많은 조각이 존재함! 

 

7. Fragment Offset

- 13비트로 구성

- 분할된 패킷이 원래 데이터에서 알마나 떨어져 있는지를 나타내므로 분할전 데이터그램을 복원할 때 사용한다. 

 

8. Time To Live

- 몇 개의 라우터를 이동할 수 있는지를 나타내는 8비트로 구성된 필드

- 만약 이 필드의 값이 5(00000101)라면 5개의 라우터까지 통과할 수 있고 0이 되면 이 패킷은 버려진다. 

.

9. Protocol ID 

- 이 필드는 상위 계층의 프로토콜이 어떤 프로토콜인지 나타내는 8bit로 구성된 필드이다. 

- 1: ICMP, 6:TCP, 17: UDP, 89:OSPF 등등 

 

10. Header Checksum

- IP헤더가 손상됐는지 체크하는 16비트로 구성되어있는 필드

 

 11. Source IP Address 

- 출발지 IP주소를 나타내는 필드 

 

12. Destination IP Address

- 목적지 IP주소를 나타내는 32비트로 구성된 필드

 

13. Options: 주로 사용되지는 않지만, 테스트용으로 사용되는 가변길이의 필드

 

14. Padding: Options를 사용하는 경우 길이가 맞지 않을 때 덧붙이는 용도로 사용되는 필드, 패킷의 크기가 32bit 단위로 되도록 Padding으로 정확하게 맞춤 

 

15. Data(데이터그램): 상위계층에서 전달된 데이터를 나타냄, 상위계층에서 데이터(데이터그램)가 전달되면 IP헤더가 붙여져 패킷이라는 이름이 되고 이 패킷에 데이터링크의 이더넷 헤더가 붙고 프레임이라는 이름으로 다시불리게 된다. 

 

https://www.eit.lth.se/ppplab/IPHeader.htm

 

IP Protocol Header

Version. 4 bits. Specifies the format of the IP packet header. Version Description 0 Reserved. 1 2 3   4 IP, Internet Protocol. 5 ST, ST Datagram Mode. 6 SIP, Simple Internet Protocol. SIPP, Simple Internet Protocol Plus. IPv6, Internet Protocol. 7 TP/IX,

www.eit.lth.se

IP헤더에 대한 자세한 설명 

생각해보니 이더넷은 데이터링크 계층을 대표하는 프로토콜이니 이더넷 헤더는 데이터링크 계층에서 붙고 

IP는 네트워크 계층에서 사용하는 거니까 당연히 네트워크 계층에서 헤더가 붙는다고 생각하면 될 것 같다. 

'네트워크' 카테고리의 다른 글

스태틱 라우팅과 다이내믹 라우팅  (0) 2024.06.23
라우터  (0) 2024.06.23
IP 클래스와 서브넷 마스크  (0) 2024.06.23
IP  (0) 2024.06.20
네트워크 계층  (0) 2024.06.20

IP주소는 8비트 4개 총 32비트로 이루어져있다.

8비트는 2^8으로 0부터 255까지 256개의 수를 표현할 수 있다.

따라서 0.0.0.0 ~ 255.255.255.255까지 2^32개의 주소 표현 가능 -> 43억개 

 

43억개나 되는 IP주소를 효율적으로 관리하기 위해 클래스라는 것이 등장.

클래서는 A,B,C,D 총 4가지가 있다. 

 

클래스 A

- 32비트 중에서 가장 앞에 있는 비트가 0으로 시작하는 클래스 

- 가장 앞에 있는 8비트를 네트워크 주소로 사용, 나머지 24비트를 호스트 주소로 사용 

- 가장 첫번째 비트가 0으로 고정되어있으므로, 나머지 7비트로 표현할 수 있는 수는 2^7로 128개, 0부터 127까지 128개의 네트워크를 구분할 수 있다. 

- 나머지 24비트로 2^24개(16,777,216)의 호스트를 구분할 수 있다. 

- 실재로는 호스트부의 모든 비트가 0이거나 1인 주소는 호스트에 부여할 수 없음! 따라서 2개 뺴면 16,777,214개를 할당할 수 있다. 

- 클래스 A는 1600만개의 호스트를 지정할 수 있는 네트워크가 128개 있다는 것을 기억하면 된다. 

- 0.0.0.0 ~ 127.0.0.0 범위에 있음

 

클래스B

- 32비트 중에서 가장 앞에 있는 2비트가 10으로 시작하는 클래스

- 가장 앞 16비트를 네트워크 주소로 사용하고 나머지 16비트를 호스트 주소로 사용

- 16,384(2^14개, 네트워크 주소 16개 중에서 앞 두 비트는 10으로 고정되어 있으므로), 128.0~ 191.255까지 네트워크 주소로 사용 

- 호스트 주소는 0.0~ 255.255까지 65,536개의 호스트를 구분할 수 있음, 실제로는 호스트부의 모든 비트가 0이거나 1인 주소는 호스트에 부여할 수 없음. 따라서 2개를 빼면 65,534개를 할당할 수 있음

- 만약 앞부분의 네트워크 주소를 130.5.0.0으로 정했다면 130.5.0.0~ 130.5.255.255까지 총 65,536개의 호스트에 IP를 부여할 수 있다는 의미이다.

 

클래스C

32비트 중에서 가장 앞에 있는 3비트가 110으로 시작하는 클래스 

- 가장 앞에 있는 24비트를 네트워크 주소로 사용, 나머지 8비트는 호스트 주소로 사용 

- 21비트로 표현할 수 있는 수는 2의 21승으로 2,097,152개의 네트워크를 구분할 수 있따. 

- 즉, 192.0.0.0~ 223.255.255까지 네트워크 주소로 사용한다. 

- 나머지 8비트는 호스트 주소로 사용하는데 8비트는 2의 8승으로 256개의 호스트 주소를 사용할 수 있다. (실제로는 호스트부의 모든 비트가 0이거나 1인 주소는 호스트에 부여할 수 없음! 따라서 2개를 뺴면 254개 할당 가능)

 

클래스D

- 32비트 중에서 가장 앞에 있는 4비트가 110으로 시작하는 클래스입니다.

- 32비트 모두를네트워크 주소로 사용한다. 

- 클래스 D는 224.0.0.0 부터 239.255.255.255까지 나타낸다. 

- 호스트를 지정할 수 없어서 멀티캐스트* 용도로 사용한다.

   * 멀티캐스트: 1:N으로 전송하는 방식으로 특정 그룹에게 전송함. 특정 그룹에게만 데이터 전송할 수 있어 유니캐스트와 멀티캐스트의 단점을 보완하는 방식임. 멀티캐스트를 지원하는 자입가 있어야만 동작할 수 있다는 단점이 있음. 

 

IP 주소에 클래스 표현 방법

IP 주소에 클래스를 표현하고 싶다면 IP 주소 뒤에 슬래쉬(/)를 적고 IP 주소의 앞에서 몇 번째까지가 네트워크 주소로 사용하는지 적어주면 됨. 만약 10.5.1.2라는 클래스 A의 IP 주소를 표기한다면 10.5.1.2/8로, 192.168.0.4라는 클래스 C의 IP 주소를 표기한다면 192.168.0.4/24로 표기 

 

192.168.0.0은 호스트주소가 0이면 192.168.0이라는 네트워크 전체의 주소를 나타내는 용도로 쓰이기 때문에 호스트 주소로는 사용이 불가능하다. 

192.168.0.255는 192.168.0이라는 네트워크의 모든 호스트, 즉 브로드캐스트 주소로 사용되기 때문에 호스트 주소로는 사용이 불가하다. 

 

 

IP클래스의 한계

회사에 필요한 IP는 300개라고 가정하면 

C클래스는 할당받을 수 없다. C클래스는 254개의 호스트만 할당받을 수 있기 때문에, 

 

그래서 회사에서는 국제인터넷주소관리기구에 클래스 B를 요청한다. 

클래스 B는 65,534개의 IP를 할당할 수 있다. 

- 300개를 써도 65,234개나 남는다. 

- 국제인터넷주소관리기구에서 제공할 수 있는 클래스 B의 네트워크는 16,384개이다. 

 

이렇게 IP 주소가 낭비되는 문제를 해결하기 위해 서브넷 마스크라는 것을 생각해낸다. 

 

서브넷마스크

서브넷 마스크는 클래스로 나뉘어 낭비되는 공간을 다시 한번 나누는 기술이다. 

 

ex) IP주소가 300개 필요한 회사에 클래스B의 네트워크를 할당했다고 가정.

130.5.0.0/16으로 앞의 16비트를 네트워크 주소로 사용하고 뒤에 16비트를 호스트 주소로 사용한다. 

여기서 서브넷 마스크는 호스트 주소의 앞 7개의 비트까지 네트워크 주소로 사용하기로 한다. 

 

호스트 주소의 앞 7개까지 1로 채우면 서브넷 마스크는 255.255.254.0으로 표현된다. 

130.5.0.0 

10000010 00000101 00000000 00000000

11111111   11111111   11111110   00000000 이 두개를 AND 연산 하면 

네트워크 부가 늘고 호스트부는 줄어든다. 

130.5.0.0 부터 130.5.1.255까지 총 512개의 주소를 할당할 수 있게 된다. 

따라서6만개 정도 낭비되다가 200개 정도만 낭비된다. 

 

IP를 관리하기 쉽게 클래스로 나눴지만 부족한 IP를 아껴쓰기 위해 서브넷 마스크가 등장하게 된 것이다. 

 

네트워크를 처음 구상할 때 43억개(2^32)의 IP주소면 충분하다고 생각했지만 

인터넷이 폭발적으로 성장하면서 43억개는 턱없이 부족. 

 

한 사람만 보더라도 그 사람이 사용하는 PC, 노트북, 핸드폰, 프린터 등 IP주소를 여러 개 사용한다. 

지구에 IP주소를 사용하는 인구가 40억명이라고 가정하고 한 사람이 3개의 IP주소를 사용한다고 하면 적어도 120억개가 필요하다. 

 

이렇게 사용자의 모든 장치에 고유한 IP를 부여하면 너무 많은 IP주소가 사용되므로 

외부뫙 통신하는 곳에만 고유한 IP를 부여하고 LAN 환경에서는 가상의 IP를 부여하기로 한다. 

 

여기서 가상의 IP를 Private IP라고 말한다. 

 

그리고 외부와 통신하는 곳에 부여하는 고유한  IP를 Public IP라고 말한다. 

 

집 내부에서는 Private IP로 PC, 노트북, 스마트폰을 구분하고 집 외부로 나갈 때는 Public IP하나로 나감(외부에서는 PC, 노트북, 스마트폰 구분 안됨) 

 

Private IP주소는 

10.0.0.0 ~ 10.255.255.255/8 클래스 A

172.16.0.0~ 172.31.255.255/12 클래스 B

192.168.0.0~ 192.168.255.255/16 클래스 C

로 대부분 사용자 PC에서 IP주소를 확인하면 여기에 해당한다. 

 

ipconfig로 보면 같은 ip가 나올 수도 있다. 

 

Q. IP주소는 고유해야 하는데 똑같은 주소면 통신을 못하는거 아닌가? 

A. 맞다. IP주소는 고유해야한다.LAN영역에서 사용하는 Private IP주소는 라우터를 통해서 다른 네트워크로 이동하기 전에  Public IP로 바뀌어서 나가게 된다. 

 

Public IP로 바뀌어서 나가면 고유한 주소로 통신할 수 있다. 

이를 NAT(Network Address Translation)이라고 하고 NAT는 라우터를 배우고나서 자세히 알아보자. 

NAT덕분에 사용자의 모든 기기에 Public IP 를 부여하지 않을 수 있게 되어 IP주소를 절약하게 됐다. 

하지만 이 방법은 NAT Traversal이라는 문제가 발생하는 경우가 있고 

 

IP가 부족한 근본적인 해결 방법이 되지 못하므로 IPv6가 개발되었다. IPv6는 무한대에 가까움 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'네트워크' 카테고리의 다른 글

라우터  (0) 2024.06.23
IP헤더(패킷)  (0) 2024.06.23
IP  (0) 2024.06.20
네트워크 계층  (0) 2024.06.20
스위치  (0) 2024.06.16

허브와 스위치로 연결되어 하나의 브로드캐스트 도메인에 있는 네트워크에서는 MAC주소만으로 통신할 수 있었다.

 

하지만 너무 많은 브로드캐스트로 트래픽이 증가하는걸 해결하기 위해서 논리적인 주소를 만들었는데 이것이 IP주소이다. 

IP주소는 모든 호스트와 라우터에 할당된다. 

모든 PC와 라우터의 인터페이스(포트)마다 IP주소 할당 

허브와 스위치는 할당할 필요 없음! (관리를 위해 할당하는 경우도 있음) 

 

라우터는 IP주소를 이용해서 다른 네트워크에 있는 호스트까지 데이터를 정확하게 전송할 수 있도록 해준다.

라우터는 라우팅테이블에 IP주소에대한 정보를 갖고있다.  

 

그럼 라우터가 IP주소를 어떻게 이용하는지 MAC주소와는 어떤 차이가 있는지 알아보자. 

 

IP주소는 최초 출발지와 최종 목적지를 나타내고 (바뀌지 않음) 

MAC 주소를 이용해 실제로 데이터를 전송하기 때문에 ( 목적지까지 출발지 MAC과 목적지 MAC은 계속 바뀜, 중간중간 라우터까지가 목적지가 되고 다시 바뀌면서 목적지까지 이동한다.)

중간에 몇 단계의 라우터가 있든 간에 목적지까지 정확하게 데이터를 전송할 수 있다. 

 

<정리>

IP(Internet Protocol) 주소는 브로드캐스트 도메인을 넘어 다른 WAN영역으로 가기 위해 모든 호스트에게 부여하는 논리적인 주소

데이터를 전송하면 출발지 IP주소와 목적지 IP주소는 중간에 바뀌지 않고 해당 목적지 IP를 참조해 실제 데이터는 MAC주소를 이용해 전송 

 

IP주소는 32비트로 구성되어있으며 각 8비트를 10진수로 표현하고 .로 구분함. 

 

본인 IP확인하는 방법은 windows 검색 powershell 열기 ipconfig -all 입력 

 

 

 

 

'네트워크' 카테고리의 다른 글

IP헤더(패킷)  (0) 2024.06.23
IP 클래스와 서브넷 마스크  (0) 2024.06.23
네트워크 계층  (0) 2024.06.20
스위치  (0) 2024.06.16
브리지  (0) 2024.06.16

여러대의 컴퓨터가 스위치에 연결되면 문제가 생긴다고 했다. 

스위치 MAC 테이블에 정보가 없으면 브로드캐스팅을 해서 정보를 가져와야하기에 브로드캐스팅 하는 순간 많은 트래픽이 발생하게 되고 단 한개의 PC만 정보를 받기 때문이다. 

 

그래서 네트워크 계층을 통해 브로드캐스트 도메인을 나눈다고 저번시간에 설명했다. 

 

 

위에서 말한 것처럼 스위치끼리 연결되어 커진 브로드캐스트 도메인은 많은 트래픽이 발생하기 때문에 

어떻게든 브로드캐스트 도메인을 나눠줘야 한다. 

 

MAC주소는 스위치까지 잘 동작하니 그대로 두고

IP주소라는걸 만들어 MAC 주소와 함께 사용하기로 합의함 

 

브로드캐스트 도메인을 나누는 장치에 라우터라는 이름을 붙이고 

IP주소를 활용해 LAN 영역 사이를 문제없이 통신하도록 한다. 

 

IP주소 덕분에 다른 네트워크에 있는 컴퓨터를 정확하게 나타낼 수 있고 

라우터가 복잡한 네트워크에서 경로를 지정해준다. 

 

실제 데이터 전송은 MAC 주소를 통해서 진행하지만 

데이터링크의 한계를 극복하게 해준다. 

 

라우터를 넘어가지 않는 영역을 LAN 영역이라고 하고 

라우터 넘어에 있는 다른  브로드캐스트 도메인을 WAN 영역이라고 한다. 

 

<정리>

MAC 주소와 스위치를 이용하면 브로드캐스트 도메인을 나누지 못해 많은 컴퓨터가 연결됐을 때 문제가 발생한다.

(너무 많은 트래픽으로 통신 마비)

 

네트워크 계층은 브로드캐스트 도메인을 나누기 위해 등장. 

논리적 주소인 IP주소를 만들어 다른 브로드캐스트 도메인의 장치를 가리킬 수 있게 되었고 

라우터라는 장치를 이용해 다른 브로드캐스트 도메인으로 최적의 경로를 계산해 전송. 

 

호스트 자신이 속한 브로드캐스트 도메인을  LAN(Local Area Network)라고 부르고 

라우터 넘어에 있는 다른 브로드캐스트 도메인을 WAN(Wide Area Network)라고 부름. 

 

네트워크 계층 챕터에서는 IP주소와 라우터, 라우터가 사용하는 프로토콜을 알아본다. 

 

'네트워크' 카테고리의 다른 글

IP 클래스와 서브넷 마스크  (0) 2024.06.23
IP  (0) 2024.06.20
스위치  (0) 2024.06.16
브리지  (0) 2024.06.16
CSMA/CD  (0) 2024.06.16

간단하다.

 

원본자료를 6비트씩 끊어서 처리한 방식이다. 

 

예를 들면 

H 는 아스키 코드로 0x48 

C 는 아스키 코드로 0x43

Y 는 아스키 코드로 0x59

 

아스키코드는 16진수인데 이걸 2진수로 바꾸면 

8421 8421 두번 해서 

01001000 01000011 01011001

이걸 쭉 이어서 붙인다.

010010000100001101011001

이걸 6비트씩 끊는다. 

010010 000100 001101 011001

이런 원리로 한다고 생각하면 된다.

https://www.base64encode.org/

 

Base64 Encode and Decode - Online

Encode to Base64 format or decode from it with various advanced options. Our site has an easy to use online tool to convert your data.

www.base64encode.org

 

SENZCg==

이 사이트 가서 인코딩하면 이렇게 나옴 

 

Base64 인코딩은 그럼 왜 할까? 

 

6비트씩 묶어서 -> ASCII 문자로 다시 바꿔서(8bit)가 된다. 따라서 용량도 증가한다.

그런데도 왜 할까? 

 

바로 이진수로 되어있는 Bitstream 데이터를 무조건 몽땅 (영)문자로 바꿀 수 있다는게 핵심이다. 

왜 바꾸느냐? 

 

요새는 기본적으로 웹기반인데, 문제는 웹기술은 HTML 문서라고 하는 것은 기본적으로 아스키 코드로 되어있다! 

그런데, 아스키 코드로 표현할 수 없는 바이너리로 존재하는 데이터가 있다. 

작은 이미지 같은것 

 

이 이미지들을 HTML에 포함시키기 위해 Base64를 사용하는 것이다. 

 

웹페이지에 사람이 접속하고자 할때, 

HTML 문서(1K)+ 이미지(6K) 

VS 

HTML 문서(10K) 만 보낼때보다 효율이 더 좋다. 속도도 더 빠르고 용량도 더 효율적으로 활용할 수 있다. 

 

HTML, JSON도 모두 문자열로 데이터를 다루는데 

여기에 어쩔 수없이 바이너리 데이터를 삽입해야할때 Base64인코딩을 하면 굉장히 유리하기 때문에 사용한다. 

즉 효율적이라 사용하는 것이다. 

 

++ 추가 

6비트씩 자료를 자르면, 애매하게 자투리가 남는 경우가 있다. 

강제로 6비트로 늘리고, 빈 값을 Padding을 집어넣는다. 

그 Padding이== 이다. 

 


SENZCg== 
이런 것처럼 

 

디코딩할때는 Padding은 갖다버린다. 

 

직접 코딩할 일은 없다. 라이브러리도 있고 내장되어있다. 

 

 

 

'보안' 카테고리의 다른 글

암호화 vs 인코딩  (0) 2024.06.17
디스크 스케줄링 알고리즘  (0) 2024.06.17

https://www.youtube.com/watch?v=44oOQ6uY6aw

암호화와 인코딩의 차이가 무엇일까?

 

Base64 인코딩을 찾다가 발견했다. 

 

암호화와 인코딩은 둘 다 모양을 바꿔주는 것이다. 

abcd라는 문자를 이상한 문자로 바꿔주는게 암호화와 인코딩이다. 

 

두가지는 결정적인 차이가 있다. 바로 KEY! 

 

암호화는 암호화하기 암호 KEY를 이용한다. 다시 원상복구하기 위해 암호화 KEY가 필요하다

인코딩은 모양만 바꿔놓은 것이기 때문에 규칙만 알면 다시 바로 디코딩하여 원상복구를 시킬 수 있다. 

 

결론은 KEY가 있느냐 없느냐~! 

 

인코딩된 글자는 디코딩할 수 있다! 

 

Base64는 암호화 기법이 아닌 인코딩 기법이다. 

수준적, 질적 차이가 있기 때문에 명확한 구분이 필요하다~! 

 

'보안' 카테고리의 다른 글

Base64 인코딩, 디코딩, 원리, 사용하는 이유  (1) 2024.06.17
디스크 스케줄링 알고리즘  (0) 2024.06.17

운영체제의 디스크 

보조기억장치는 현재 여러가지가 있지만 아직까지 하드디스크가 주로 사용된다.

디스크를 읽는 시간은 매우 오래 걸리는 작업이고 탐색시간이 오래 걸리므로 이 시간을 줄이기 위해 디스크 스케줄링 알고리즘을 사용한다. 

 

SSTF(Shortest-Seek Time First)

- 탐색 거리가 가장 짧은 트랙에 대한 요청을 먼저 서비스함 

- 현재 Head의 위치에서 가까운 요청을 우선적으로 처리

- 장점: 전반적인 Seek Time 감소

- 단점: Starvation 현상 발생 가능 

 

Scan(엘레베이터 알고리즘)

- SSTF 가 갖는 탐색시간의 편차를 해소하기 위한 기법

- Head가 이동하는 방향의 모든 요청을 서비스하고 끝까지 이동한 후 역방향의 요청을 서비스함

 

C-Scan(Circular-Scan)

바깥쪽에서 안쪽으로 이동

- 안쪽 방향으로 끝까지 이동을 반복

- 끝까지 도달하면 바깥쪽으로 이동하여 요청을 다시 처리 

 

C-Look(Circular-Look)

- C-Scan의 보완, 대기시간을 좀 더 균형 있게 함 

- Scan 스케줄링은 0번 실린더가 존재하지 않지만 0번으로 이동한다. 하지만 Look은 비효율적인 움직임을 없애기 위해 끝까지 가지 않고 최소 범위에 도달해서 다시 최대 범위로 되돌아간다. 

- 헤드 이동 방향의 마지막 입출력 요청을 처리한 후 디스크 헤드를 처음 위치로 이동하여 다음 입출력 요청을 처리 

 

'보안' 카테고리의 다른 글

Base64 인코딩, 디코딩, 원리, 사용하는 이유  (1) 2024.06.17
암호화 vs 인코딩  (0) 2024.06.17

브리지와 기능적인 차이는 없다. 

단지 성능이 좀더 좋아진 것 뿐이다. 

 

스위치는 스위칭 허브라고도 한다. 

브리지, 스위치 모두 같은 말 

 

MAC 주소를 이용하기 때문에 데이터링크 계층에 속한다. 

 

메모리와 저장장치가 있으므로 MAC 주소를 기억해 원하는 기기에만 데이터를 전송할 수 있다. 

 

Learning으로 MAC주소에 해당하는 포트를 매핑하고 

MAC주소 테이블에 찾는 주소가 없다면 Flooding 으로 브로드캐스팅. 

만약   찾는 주소가 있다면 Forwarding 으로원하는 기기에만 전송하고 데이터를 전달하지 않아도 될 때는 Filtering을 함

 

Aging이라는 것을 이용해 메모리가 부족하지 않도록 오래된 정보는 메모리에서 제거(타이머 5분)

 

<브리지와 스위치 차이>

성능차이 

 

1. 스위치는 브리지보다 더 많은 포트 제공

2. ASIC이라는 하드웨어로 스위칭 작업을 수행하므로 소프트웨어적으로 처리하는 브리지보다 스위치 처리속도가 빠름

3. 스위치는 오류를 체크하는 기능이 있지만 브리지는 없다. 

4. 스위치는 버퍼를 가지고 있지만 브리지는 없는 경우도 있다. 

 

요즘은 스위치 가격이 많이 내려 브리지를 사용하는 경우는 거의 없고, 스위치는 곧 브리지, 브리지는 곧 스위치로 같은 장치를 말한다. 

 

자세한 과정은 그림으로 쉽게 배우는 네트워크의 스위치 부분 확인하기!

 

--

회사가 커져서 스위치를 여러개 둔다고 가정할 때 

순환구조로 연결된 스위치

 

스위치가 순환구조로 연결되면 브로드캐스팅 메시지를 서로 순환하며 무한대로 전송하는 문제가 발생한다. 

브로드캐스팅 메시지를 서로 순환하며 무한대로 전송하는 문제가 발생한다. 

이를 해결하기 위해서는 순환구조가발생하지 않도록 만들어 줘야 한다. 

 

트리 자료구조에서 영감을 받아 스위치를 트리노드로 생각하고

스패닝 트리를 구해 그 중 가장 가까운 최소 스패닝 트리로 구성해 순환구조를 제거한다. 

4대 스위치가 구성할 수 있는 스패닝 트리 구조

 

스패닝 트리란 트리 자료구조에서 모든 노드(여기선 스위치)를 사이클 없이 연결하는 트리를 말한다. 

 

예시의 구조에서는 4개의 스패닝 트리가 나오는데, 단순한 구조라 어떠한 트리를 선택하더라도 비용(거리, 시간)이 같다. 

복잡한 구조에서는 어느 한 스패닝 트리가 가장 비용이 적고 비용이 가장 적은 스패닝 트리를 최소 스패닝 트리라고 부른다. 

스패닝 트리 프로토콜은 최소 스패닝 트리를 구해 무한정으로 데이터가 순환하지 않도록 만드는 프로토콜이다. 

 

<스위치의 한계> 

지금까지 배운대로라면 스위치로 전 세계 모든 컴퓨터를 연결할 수 있을 것만 같다. 

하지만 스위치에 컴퓨터가 무한정으로 연결되면 결국 문제가 발생한다. 

 

여러대의 컴퓨터를 허브로 연결한다면 허브는 연결된 모든 컴퓨터에 브로드 캐스트 한다. 

허브로 연결되면 충돌이 발생할 수 있는데 이 영역을 콜리전 도메인이라고 했다. 

 

스위치는 허브의 단점인 콜리전 도메인을 나눌 수 있다고 했다. 

스위치는 목적지의 MAC주소를 보고 브로드캐스팅하지 않고 목적지에만 데이터를 전송한다. 

하지만 스위치가 전혀 브로드캐스팅을 하지 않는다고 말하기는 어렵다. 

 

어느한 PC에서 브로드캐스팅 메시지를 보내거나 목적지 MAC주소를 모르는 경우엔 Flooding을 해서 Learning을 해야하기 때문이다. 

 

따라서 스위치와 연결된 영역을 브로드캐스트 도메인이라고 부른다. LAN영역이라고도 부른다. 

 

스위치를 늘려 LAN영역을 늘리면 어떻게 될까? 

 

콜리전 도메인은 나눠지지만 하나의 브로드캐스트 도메인에 있는 것은 달라지지 않는다. 

 

이렇게 스위치를 계속 연결해 수십만대의 PC가 브로드캐스트 영역에 있게된다면 

어느 한 PC에서 전송한 데이터의 목적지 MAC 주소가 스위치의 MAC주소 테이블에 없다면 'Flooding'이 발생하고 이 메시지가 수십만대의 PC로 전송된다. 엄청난 트래픽이 발생

한 PC만 데이터를 받고 나머지 PC는 버린다. 

 

통신하는 PC가 많을 수록 브로드캐스트 도메인에는 쓸모없는 트래픽이 많아진다. 

따라서 브로드캐스트 도메인을 나눌 필요가 생겨 네트워크 계층이 등장한다.

브로드 캐스트 영역을 나누기 위해 네트워크 계층으로 이동해야한다. 고고~!

 

 

 

'네트워크' 카테고리의 다른 글

IP  (0) 2024.06.20
네트워크 계층  (0) 2024.06.20
브리지  (0) 2024.06.16
CSMA/CD  (0) 2024.06.16
[데이터링크 계층] 이더넷과 이더넷 헤더  (0) 2024.06.16

+ Recent posts