본문 바로가기
320x100
320x100

독서 & 스터디

월요일부터 쭉 읽어서 2.5회독정도 했다. 블로그에 글을 쓰면서 또 외우기..크큭

집에서 책 보는중...zz
귀엽

혼공 시리즈 홍보를 하며 적당한 비유를 통해 공부를 쉽게 할 수 있게 해준다ㅋㅋ

카페에서 공부하는 중
카공
한빛미디어 QA 강연 참여
혼공족장님의 선물

 

기프티콘 감사함당

이번에도 집에서 큰 모니터로 볼 때도 있었고, 혼공족장님이 선물해주신 기프티콘으로 노트북 들고 메가커피 가서 공부할 때도 있었고, 태블릿 들고 카페에 가서 공부한 적도 있었다.

네트워크 공부가 지루할 때쯤, 예전에 샀던 <실전 자바 소프트웨어 개발> 책을 읽었다. 소름돋게도 그 책도 한빛미디어꺼란 사실!

그리고 2주차 주말에 한빛미디어에서 열린 QA 강연에 참가도 해서 좋은 인사이트도 얻고 한빛미디어 굿즈도 받았다!!ㅎㅎ

 

데이터 링크 계층의 한계 -> 네트워크 계층으로의 확장이 필요

1. 물리 계층과 데이터 링크 계층만으로는 다른 네트워크까지의 도달 경로를 파악하기 어려움

2. MAC 주소만으로는 모든 네트워크에 속한 호스트의 위치를 특정하기 어려움

 

용어 설명

  • 라우팅(routing): 패킷이 이동할 최적의 경로를 결정하는 것
  • 라우터(router):  라우팅을 수행하는 네트워크 계층의 대표적인 장비
  • IP주소(IP address): 수신지 역할을 하는 네트워크 계층의 정보. 논리 주소라고도 부름. 호스트에 직접 할당 가능
  • DHCP(Dynamic Host Configuration Protocol): IP 주소를 자동으로 할당해주는 프로토콜

 

인터넷 프로토콜(IP - Internet Protocol)

  • 네트워크 계층의 가장 핵심적인 프로토콜
  • IPv4, IPv6의 2가지 버전이 존재

IPv4

192.168.1.1
  • 4바이트(32비트)로 주소를 표현
  • 숫자당 8비트로 표현되기에 0~255 범위 안에 있는 네 개의 10진수로 표기
    • 00000000.00000000.00000000.00000000 ~ 11111111.11111111.11111111.11111111 (0.0.0.0 ~ 255.255.255.255)
  • 각 10진수는 dot(.)으로 구분
  • 점으로 구분된 8비트(0~255 범위의 10진수)를 옥텟(octet)이라 함

IP의 기능

  • 여러가지 기능 중 대표적인 기능 2가지. IP 주소 지정 / IP 단편화 (addressing and fragmentation)
  • IP(IPv4)를 정의한 인터넷 표준 문서(RFC 791)에도 명시됨

https://datatracker.ietf.org/doc/html/rfc791#section-1.4

 

1. IP 주소 지정(IP addressing)

  • IP 주소를 바탕으로 송수신 대상을 지정하는 것

2. IP 단편화(IP fragmentation)

  • 전송하고자 하는 패킷의 크기가 MTU라는 최대 전송 단위보다 클 경우, 이를 MTU 크기 이하의 복수의 패킷으로 나누는 것

MTU(Maximum Transmission Unit)

  • 한 번에 전송 가능한 IP 패킷의 최대 크기
  • IP 패킷의 헤더도 MTU 크기에 포함됨!
  • 일반적인 MTU 크기는 1500바이트
  • MTU 크기 이하로 나누어진 패킷은 수신지에 도착하면 다시 재조립됨

IPv4 패킷

프레임의 데이터 필드에는 상위 계층에서 전달받거나 상위 계층으로 전달해야 할 내용이 명시됨

-> IPv4 패킷은 프레임의 페이로드로, 데이터 필드에 명시

IPv4 패킷
IPv4 패킷

 

  • 가장 핵심이 되는 부분 필드 7개 - 식별자, 플래그, 단편화 오프셋, TTL, 프로토콜, 송신지 IP 주소, 수신지 IP 주소
  • IP 단편화: 식별자, 플래그, 단편화 오프셋
  • IP 주소 지정: 송신지 IP 주소, 수신지 IP 주소
  1. 식별자(identifier)
    • 패킷에 할당된 번호
    • 수신지에 도착한 IPv4 패킷들이 어떤 메시지에서부터 쪼개졌는지를 인식하기 위해 사용
  2. 플래그(flag)
    • 총 3개의 비트로 구성된 필드
    • 첫 번째 비트
      • 항상 0으로 예약된 비트
      • 현재 사용되지 않음
    • 두 번째 비트
      • DF
      • Don't Fragment
      • IP 단편화를 수행하지 말라는 표시
      • if.1) 이 비트가 1로 설정되어 있다면 IP 단편화를 수행하지 않음
      • if.2) 이 비트가 1로 설정되었다고 해도 패킷의 크기가 너무 크다면 이는 폐기됨
      • else) 이 비트가 0으로 설정되어 있다면 IP 단편화 가능
    • 3번째 비트
      • MF
      • More Fragment
      • 단편화된 패킷이 더 있는지를 나타냄
      • if) 이 비트가 1이라면 쪼개진 패킷이 아직 더 있다는 것을 의미
      • else) 이 비트가 0이라면 이 패킷이 마지막 패킷을 의미
  3. 단편화 오프셋(fragment offset)
    • 패킷이 단편화되기 전, 패킷의 초기 데이터에서 몇 번째로 떨어진 패킷인지를 나타냄
  4. TTL(Time To Live)
    • 패킷의 수명을 나타냄
    • 멀리 떨어진 호스트끼리 통신할 때 패킷은 여러 라우터를 거쳐 이동
    • 패킷이 하나의 라우터를 거칠 때마다 TTL이 1씩 감소하며, TTL 값이 0으로 떨어진 패킷은 폐기됨
    • ICMP 프로토콜: TTL 필드가 0이 되면 해당 패킷은 폐기되고, 패킷을 송신한 호스트에게 시간 초과 메시지를 전송
    • 홉(hop): 패킷이 호스트 또는 라우터에 한 번 전달되는 것
    • TTL 필드의 값은 홉마다 1씩 감소
    • 무의미한 패킷이 네트워크상에 지속적으로 남아있는 것을 방지하기 위한 TTL 필드
  5. 프로토콜(Protocol)
    • 상위 계층의 프로토콜이 무엇인지를 나타내는 필드
    • ex) 전송계층의 대표적인 프로토콜인 TCP는 6번, UDP는 17번
  6. 송신지 IP 주소(Source IP Address)
    • 송신지의 IPv4주소를 나타내는 필드
  7. 수신지 IP 주소(Destination IP Address)
    • 수신지의 IPv4주소를 나타내는 필드

IPv6

2001:0230:abcd:ffff:0000:0000:ffff:1111
  • 이론적으로 할당 가능한 IPv4의 주소는 총 2^32개로 약 43억 개
    => 인구 1명이 스마트폰, 노트북, 냉장고, TV, 데스크톱을 가진다고 할때 충분히 부족할 수 있는 숫자
  • IP 주소의 고갈을 막기 위해 등장함
  • 16바이트(128비트)로 주소 표현 가능
  • : 으로 구분된 8개 그룹의 16진수로 표기
  • 할당 가능한 IPv6 주소는 이론상 2^128개로 거의 무한대
  • 유망한 프로토콜로 떠오르고 있는 IPv6는 다수의 장비에서 지원하지만, 아직까지는 일반적으로 IPv4가 많이 사용됨

 

IPv6 패킷

  • IPv4헤더는 가변적이지만, IPv6 기본 헤더는 40바이트로 고정적

IPv6 패킷

  • 가장 핵심이 되는 부분 필드 4개 - 다음 헤더, 홉 제한, 송신지 IP 주소, 수신지 IP 주소
  1. 다음 헤더(next header)
    • 상위 계층의 프로토콜을 가리키거나 확장 헤더를 가리킴
    • 확장 헤더(extension header): 추가적인 헤더 정보가 필요한 경우에 추가할 수 있는 헤더
    • 확장헤더 - 기본 헤더와 페이로드 데이터 사이에 위치
    • 꼬리에 꼬리를 물듯 또 다른 확장 헤더를 가질 수 있음
    • 확장 헤더 종류
      • 홉 간 옵션(Hop-by-Hop Options): 송신지에서 수신지에 이르는 모든 경로의 네트워크 장비가 패킷을 검사하도록 함
      • 수신지 옵션(Destination Options): 수신지에서만 패킷을 검사하도록 함
      • 라우팅(Routing): 라우팅 관련 정보를 운반
      • 단편(Fragment): 단편화를 위함
      • ESP(Encapsulating Security Payload): 암호화와 인증을 위한 확장헤더
      • AH(Authentication Header): 인증 확장헤더
  2. 홉 제한(hop limit)
    • 총 3개의 비트로 구성된 필드
  3. 송신지 IP 주소
    • 송신지의 IPv6주소를 나타내는 필드
  4. 신지 IP 주소
    • 수신지의 IPv6주소를 나타내는 필드

IPv6의 단편화

  • IPv6는 IPv4와 달리 기본 헤더에 단편화 관련 필드가 없고, 단편화 확장 헤더를 통해 단편화가 이뤄짐

 

ARP(Address Resolution Protocol)

  • 상대 호스트의 IP 주소는 알지만, MAC 주소는 알지 못하는 경우에 사용하는 프로토콜
  • IP 주소를 통해 MAC 주소를 알아내는 프로토콜
  • 동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC 주소 파악 가능
  • 다른 네트워크에 속한 호스트에 패킷을 보내는 경우, 라우터의 MAC 주소를 파악해서 패킷을 전송
  • ARP의 동작 과정
    1. ARP 요청
    2. ARP 응답
    3. ARP 테이블 갱신

+ MAC 주소 학습의 주체는 스위치이다. 스위치가 MAC 주소를 학습했다고 해서 호스트들끼리 서로의 MAC 주소를 학습하지는 않음!

 

ARP 요청

  • 송신지 A 호스트에서 네트워크 내의 모든 호스트에게 브로드캐스트 메시지를 보냄
  • 메시지: ARP 요청(ARP Request)이라고 불리는 ARP 패킷
  • 복습) 브로드캐스트: 자신을 제외한 네트워크상의 모든 모든 호스트에게 전송하는 방식

ARP 응답

  • 네트워크 내의 모든 호스트가 ARP 요청 메시지를 수신하지만, 목적지 B 호스트를 제외한 나머지 호스트는 자신의 IP 주소가 아니므로 이를 무시함
  • B 호스트는 자신의 MAC주소를 담은 메시지를 A 호스트에게 유니캐스트 메시지 전송
  • 메시지: ARP 응답(ARP Reply)이라고 불리는 ARP 패킷
  • 복습) 유니캐스트: 하나의 수신지에 메시지를 전송하는 방식

[ARP 패킷]

  • payload에 포함되어 전송
  • 하드웨어 유형 / 프로토콜 유형
  • 하드웨어 주소 길이 / 프로토콜 주소 길이
  • 오퍼레이션 코드(1 - 요청, 2 - 응답)
  • 송신지 하드웨어 주소(MAC) / 송신지 프로토콜 주소(IP)
  • 수신지 하드웨어 주소(MAC) / 수신지 프로토콜 주소(IP)

ARP 테이블 갱신

  • ARP를 활용할 수 있는 모든 호스트는 ARP 테이블(ARP Table)이라는 정보를 유지함
  • ARP 테이블: IP 주소 <-> MAC 주소 매핑 테이블
  • 일정 시간이 지나면 삭제되고, 임의 삭제 가능
  • 한번 ARP 테이블에 정보가 있으면, 브로드캐스트로 ARP 요청을 할 필요가 없음
  • 다른 말로 ARP 캐시, ARP 캐시 테이블이라고도 부름

ARP 테이블 확인해보기

arp -a

ARP 테이블

Q. IP의 대표적인 기능으로 Addressing(주소지정), Fragmentation(단편화) 두 가지가 있다.
	이 중에서 IP 단편화는 많이 수행되는 것이 좋을까? (O, X)

정답은 X !!!. IP 단편화는 가급적 피하는 것이 좋다.

- 데이터가 여러 패킷으로 쪼개지면 자연스레 전송해야 할 패킷의 헤더들이 늘어남

- 불필요한 트래픽 증가와 대역폭 낭비로 이어짐

- 쪼개진 IP 패킷들을 하나로 합치는 과정에서 발생하는 부하도 성능 저하를 야기할 수 있음

 

IP 단편화를 피하는 방법

  • IP 패킷을 주고받는 모든 호스트의 '처리 가능한 MTU 크기'를 고려해야 함
  • 호스트 A, B가 여러 라우터를 거쳐 서로 IP 패킷을 주고 받는다고 가정할 때, 호스트 A, B가 처리할 수 있는 MTU 크기가 아무리 크더라도 라우터가 해당 MTU 크기를 지원하지 않으면 IP 단편화를 해야 됨
  • IP 단편화를 피하려면 'IP 단편화 없이 주고 받을 수 있는 최대 크기'만큼 전송해야 함
  • 이 크기를 경로 MTU(Path MTU)라고 함
  • 즉, IP 단편화를 피하는 방법은 경로 MTU 만큼의 데이터를 전송하는 것
  • 경로 MTU를 구하고 해당 크기만큼만 송수신하여 IP 단편화를 회피하는 기술을 경로 MTU 발견(Path MTU discovery)라 함
  • 오늘날 네트워크에서는 대부분 이를 지원하며 처리 가능한 최대 MTU도 대부분 균일하기 때문에 IP 단편화는 자주 수행되지 않음
  • Wireshark로 패킷을 조회하고 분석해보면 대부분의 IP 패킷에 DF(Don't Fragment) 플래그가 설정되어 있는 것을 볼 수 있음

 

IP 주소

  • 네트워크 계층의 IP 주소는 네트워크에서 핵심적인 역할을 맡음
  • 하나의 IP 주소는 <네트워크 주소 + 호스트 주소>로 이루어짐
  • 네트워크 주소: 호스트가 속한 특정 네트워크를 식별
  • 호스트 주소: 네트워크 내에서 특정 호스트를 식별

 

네트워크 주소와 호스트 주소

네트워크 주소

  • 네트워크 ID, 네트워크 식별자(network identifier) 등으로 부름

호스트 주소

  • 호스트 ID, 호스트 식별자(host identifier) 등으로 부름
(네트워크 주소가 16비트, 호스트 주소가 16비트인 IP 주소 예)

172.16.12.45

- 10진수
 (네트워크주소) - 172.16
 (호스트주소) - 12.45
 
 - 2진수
 (네트워크주소) - 10101100.00010000
 (호스트주소) - 00001100.00101101

 

클래스풀 주소 체계(Classful Addressing)

클래스

  • 네트워크 크기에 따라 IP 주소를 분류하는 기준
  • 클래스를 이용하면 필요한 호스트 IP 개수에 따라 네트워크 크기를 가변적으로 조정해 네트워크 주소와 호스트 주소를 구획 가능

클래스풀 주소 체계(classful addressing)

  • 클래스를 기반으로 IP 주소를 관리하는 주소 체계
  • 총 5개의 클래스로 구분 (A, B, C, D, E)
  • A, B, C는 네트워크의 크기를 나누는 데에 실질적으로 사용되는 클래스
  • D와 E는 각각 멀티캐스트를 위한 클래스, 특수한 목적을 위해 예약된 클래스

A 클래스

  • 네트워크 주소는 비트 '0'으로 시작. 1 옥텟으로 구성(2^7 = 128개) [1옥텟 8비트-1비트(고정) = 7비트]
  • 호스트 주소 수는 3옥텟으로 구성(2^24 = 16,777,216개)
  • 10진수) IP 주소의 최솟값~최댓값(0.0.0.0 ~ 127.255.255.255)
  • 2진수) [0000 0000].[0000 0000].[0000 0000].[0000 0000] ~ [0111 1111].[1111 1111].[1111 1111].[1111 1111]
  • 첫번째 옥텟의 주소가 0~127일 경우 A 클래스임을 짐작 가능

B 클래스

  • 네트워크 주소는 비트 '10'으로 시작. 2옥텟으로 구성(2^14 = 16,384개) [2옥텟 16비트-2비트(고정) = 14비트]
  • 호스트 주소 수도 2옥텟으로 구성(2^16 = 65,534개)
  • 10진수) IP 주소의 최솟값~최댓값(128.0.0 ~ 191.255.255.255)
  • 2진수) [1000 0000].[0000 0000].[0000 0000].[0000 0000] ~ [1011 1111].[1111 1111].[1111 1111].[1111 1111]
  • 첫번째 옥텟의 주소가 128~191일 경우 B 클래스임을 짐작 가능

C 클래스

  • 네트워크 주소는 비트 '110'으로 시작. 3옥텟으로 구성(2^21 = 2,097,152개) [3옥텟 24비트-3비트(고정) = 21비트]
  • 호스트 주소 수는 1옥텟으로 구성(2^8 = 256개)
  • 10진수) IP 주소의 최솟값~최댓값(192.0.0.0 ~ 223.255.255.255)
  • 2진수) [1100 0000].[0000 0000].[0000 0000].[0000 0000] ~ [1101 1111].[1111 1111].[1111 1111].[1111 1111]
  • 첫번째 옥텟의 주소가 192~223일 경우 C 클래스임을 짐작 가능

호스트 주소 공간 제약

172.16.12.45

- 네트워크 주소: 172.16.0.0
- 브로드캐스트 주소: 172.16.255.255
  1. 호스트 주소가 전부 0인 IP주소는 해당 네트워크 자체를 의미하는 네트워크 주소로 사용
  2. 호스트 주소가 전부 1인 IP주소는 브로드캐스트를 위한 주소로 사용
클래스 초기 비트 네트워크 주소 비트/ 호스트 주소 비트 할당 가능한 네트워크 수 할당 가능한 호스트 수
A 0 8/24 2^7(128) 2^24(16,777,216) - 2 = 16,777,214
B 10 16/16 2^14(16,384) 2^16(65,536) - 2 = 65,534
C 110 24/8 2^21(2,097,152) 2^8(256) - 2 = 254

 

클래스리스 주소 체계(Classless Addressing)

등장 배경

  • 클래스풀 주소 체계의 한계: 클래스별 네트워크의 크기가 고정되어 있음
  • 다수의 IP 주소가 낭비될 가능성이 크다는 문제
  • 네트워크 하나당] A클래스의 호스트 수 : 1,600만개 이상 / B클래스의 호스트 수: 6만개 이상
  • 단일 조직에서 이 정도의 호스트가 필요한 경우는 많지 않음
  • 사전에 정해진 A, B, C 클래스 외에는 다른 크기의 네트워크를 구성할 수도 없음
  • ex) 300명의 직원이 사용할 컴퓨터들을 동일한 네트워크로 구성한다면, B클래스로 구성해야됨. C클래스는 IP주소가 254개뿐이므로 확장을 위해... 결국 65,534개 - 300 = 65,234개의 사용되지 않는 IP가 낭비되는 셈
  • 클래스풀 주소 체계보다 더 유동적이고 정교하게 네트워크를 구획할 수 있는 클래스리스 주소 체계(classless addressing)가 등장
  • 클래스에 구애받지 않고 네트워크의 영역을 나누어 호스트의 IP 주소 공간을 할당하는 방식
  • 오늘날 주로 사용되는 방식

서브넷 마스크(subnet mask)

  • 클래스리스 주소 체계에서 [네트워크 주소 / 호스트 주소]를 구분 짓는 수단
  • 서브네트워크(sub network): IP 주소와 네트워크 주소로 구분 가능한 네트워크의 부분 집합. 서브넷(subnet)이라고 보통 부름
  • 클래스풀 주소 체계와 비슷한 네트워크 주소 형태를 갖는 서브넷 마스크(A: 8bit, B: 16bit, C: 24bit)  
    • A 클래스: 255.0.0.0(1111 1111.0000 0000.0000 0000.0000 0000)
    • B 클래스: 255.255.0.0(1111 1111.1111 1111.0000 0000.0000 0000)
    • C 클래스: 255.255.255.0(1111 1111.1111 1111.1111 1111.0000 0000)

서브네팅: 비트 AND 연산(bitwise AND operation)

  • 서브넷 마스크를 이용해 [네트워크 주소 / 호스트 주소]를 구분 짓는 방법
  • IP 주소와 서브넷 마스크를 비트 AND 연산
  • bitwise AND operation: 피연산자가 모두 1인 경우에는 1, 아닌 경우에는 0이 되는 연산
  • 비트연산이기때문에 10진수에서 2진수로 변환 후에 진행해야 함!
(10진수)
IP 주소    - 192.168.219.103
서브넷마스크 - 255.255.255.0


(2진수)
IP 주소    - 1100 0000.1010 1000.1101 1011.0110 0111
서브넷마스크 - 1111 1111.1111 1111.1111 1111.0000 0000


(bitwise AND operation)
1100 0000.1010 1000.1101 1011.0110 0111
1111 1111.1111 1111.1111 1111.0000 0000
---------------------------------------
1100 0000.1010 1000.1101 1011.0000 0000


(10진수로 변환)
192.168.219.0
  • 사용된 서브넷 마스크에서 0이 8개이므로 호스트 주소는 8비트로 표현 가능
  • 실제로 할당 가능한 호스트 IP 주소: 호스트 주소가 모두 0인 네트워크 주소와 호스트 주소가 모두 1인 브로드캐스트 주소를 제외한 192.168.219.1 ~ 192.168.219.254 범위의 254개

 

서브넷 마스크 표기: CIDR 표기법(Classless Inter-Domain Routing notation)

  • 서브넷 마스크를 표기하는 방법 2가지
    1. 서브넷 마스크를 10진수로 표기하는 방법(ex: 255.255.255.0, 255.255.255.252)
    2. 'IP주소/서브넷 마스크 상의 1의 개수' 형식으로 표기하는 방법
  • CIDR 표기법: IP주소/서브넷 마스크 상의 1의 개수'
  • IP 주소와 서브넷 마스크를 함께 표현할 수 있는 간단한 표기로 많이 활용
C클래스의 기본 서브넷 마스크

(10진수)
255.255.255.0

(2진수)
1111 1111.1111 1111.1111 1111.0000 0000

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

(CIDR 서브넷 마스크 표기법)
1이 총 24개: /24

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

IP 주소    : 192.168.219.103
서브넷 마스크: 255.255.255.0

(CIDR 표기법)
192.168.219.103/24

 

한 번 더 복습 ⭐️

(CIDR 표기법)
192.168.0.2/25

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

(2진수)
IP 주소    : 1100 0000.1010 1000.0000 0000.0000 0010
서브넷 마스크: 1111 1111.1111 1111.1111 1111.1000 0000 (1이 총 25개)
(비트 AND) : 1100 0000.1010 1000.0000 0000.0000 0000 (192.168.0.0)

비트 AND 연산으로 찾은 네트워크 주소: 192.168.0.0
호스트 주소 찾기: 맨 끝 8자리 중에서 1을 제외한 7자리 사용 가능(2^7 = 128개)
브로드 캐스트 주소: 192.168.0.127

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

(결과)
할당 가능한 호스트 주소 수: 126개(192.168.0.1 ~ 192.168.0.127)
192.168.0.2/25 -> 126개의 호스트 중 2번째 호스트!!!

 

어때요?어렵지 않죠?ㅋ 종종 네트워크 관련 자격증에서 나오기도 하는 문제이기도 합니당

 

공인 IP 주소와 사설 IP 주소

공인 IP 주소(public IP address)

  • 전 세계에서 고유한 IP 주소(중복 불가능)
  • 인터넷을 이용할 때 사용하는 IP 주소
  • 공인 IP 주소
  • ISP나 공인 IP 주소 할당 기관을 통해 할당받을 수 있음

ISP(Internet Service Provider)

  • 인터넷 제공 회사
  • KT, LG U+, SK 브로드밴드 등

사설 IP 주소(private IP address)

  • 고유하지 않은 IP 주소(중복 가능)
  • 사설 네트워크에서 사용하기 위한 IP 주소
  • 사설 네트워크 - 인터넷, 외부 네트워크에 공개되지 않은 네트워크
  • LAN 내의 많은 호스트는 사설 IP 주소 사용
  • 사설 IP 주소로 사용토록 예약된 IP 주소 공간 사용
    • 10.0.0.0/8 (10.0.0.0 - 10.255.255.255)
    • 172.16.0.0/12 (172.16.0.0 - 172.31.255.255)
    • 192.168.0.0/16 (192.168.0.0 - 192.168.255.255)
  • 사설 IP 주소의 할당 주체는 일반적으로 라우터
  • 할당받은 사설 IP 주소는 해당 호스트가 속한 사설 네트워크상에서만 유효한 주소
    -> 얼마든지 다른 네트워크 상의 사설 IP 주소와 중복 가능
  • 중복 가능한 주소이기때문에 사설 IP 주소만으로는 일반적으로 외부 네트워크 간의 통신이 어려움

NAT(Network Address Translation)

  • IP 주소를 변환하는 기술
  • 네트워크 내부에서 사용되는 사설 IP 주소 <-> 네트워크 외부에서 사용되는 공인 IP 주소를 변환
  • NAT를 통해 사설 IP 주소를 사용하는 여러 호스트는 적은 수의 공인 IP 주소를 공유
  • 대부분의 라우터와 (가정용) 공유기는 NAT 기능을 내장
  • NAT의 동작 방식을 보다 정확히 이해하기 위해서는 전송 계층의 '포트' 개념 이해 필요
  • 변환과정 
    1. 사설 네트워크상에서 만들어진 패킷 속 사설 IP 주소는 공유기를 거쳐 공인 IP로 변경되고, 외부 네트워크로 전송
    2. 반대로 외부 네트워크로부터 받은 패킷 속 공인 IP 주소는 공유기를 거쳐 사설 IP로 변경되어, 사설 네트워크 속 호스트로 도착

사설 IP

> 192.168 대역에 속한 사설 IP를 볼 수 있다

정적 IP 주소와 동적 IP 주소

정적 할당

  • 호스트에 직접 수작업으로 IP 주소를 부여하는 방식
  • 이 방식으로 할당된 IP 주소를 정적 IP 주소(static IP address)라고 부름
  • 일반적으로 부여하고자 하는 IP 주소, 서브넷 마스크, 게이트웨이(라우터) 주소, DNS주소를 입력

맥북에서 wifi/세부사항으로 볼 수 있는 옵션
수동으로 IP를 지정할 수 있다

기본 게이트웨이

  • 일반적인 의미의 게이트웨이(gateway): 서로 다른 네트워크를 연결하는 하드웨어/소프트웨어적 수단
  • 기본 게이트웨이(default gateway): 호스트가 속한 네트워크가 외부로 나가기 위한 기본적인 첫 경로(맨 첫 번재 홉)을 의미
  • 기본 게이트웨이는 네트워크 외부와 연결된 라우터(공유기)의 주소를 의미하는 경우가 많음
  • IP 할당의 맥락에서 사용된 '게이트웨이'는 기본 게이트웨이를 의미하기 때문에 공통적으로 기본 게이트웨이 역할을 하는 라우터(공유기) 주소를 입력하면 됨

동적 할당

  • IP 주소를 정적으로만 할당하다 보면 호스트의 수가 많아질 경우 관리가 어려워짐
    • 의도치 않은 잘못된 IP 주소 입력
    • 중복된 IP 주소 입력
  • 정적 할당과는 달리 IP 주소를 직접 일일이 입력하지 않아도 호스트에 IP 주소가 동적으로 할당되는 방식
  • 이 방식으로 할당된 IP 주소를 동적 IP 주소(dynamic IP address)라고 부름
  • 동적 IP 주소는 사용되지 않을 경우 회수됨
  • 할당받을 때마다 다른 주소를 받을 수 있음
  • 스마트폰이나 노트북을 이용할 때 수동으로 IP 주소를 설정하지 않고도 인터넷을 이용할 수 있는 이유는 대부분 IP 동적 할당이 되었기 때문

DHCP

  • IP 동적 할당에 사용되는 대표적인 프로토콜
  • DHCP: Dynamic Host Configuration Protocol
  • 응용 계층에 속하는 프로토콜
  • DHCPv4: IPv4 주소를 동적으로 할당하는 프로토콜
  • DHCPv6: IPv6 주소를 동적으로 할당하는 프로토콜
  • IP 주소 할당은 IP 주소를 할당받고자 하는 호스트(클라이언트)와 해당 호스트에게 IP 주소를 제공하는 DHCP 서버간에 메세지를 주고받는 방법으로 이루어짐
  • DHCP 서버의 역할은 일반적으로 라우터(공유기)가 수행
  • 특정 호스트에 DHCP 서버 기능을 추가할 수도 있음
  • DHCP 서버는 클라이언트에게 할당 가능한 IP 주소 목록을 관리하다가, 클라이언트가 요청할 때 IP 주소를 할당
  • DHCP로 할당받은 IP 주소는 사용할 기간(임대 기간)이 정해져 있음
  • 임대기간은 일반적으로 수 시간에서 수 일로 설정됨
  • 임대기간은 임대 갱신(lease renewal)으로 수동으로도 설정 가능

맥OS에서 명령어로 IP의 임대 기간(시간)을 얻고, 시/분/초로 변환해보기

ipconfig getpacket en0 | grep lease

echo $((0x5460)) | awk '{printf "%02d:%02d:%02d\n", $1/3600, ($1%3600)/60, $1%60}'

DHCP로 임대받은 Private IP의 임대기간(시간) 알아보기

6시간 사용할 수 있는 내 IPㅋㅋ

 

[클라이언트 <-> DHCP 서버] 간에 주고받는 메시지의 종류

  1. DHCP Discover
  2. DHCP Offer
  3. DHCP Request
  4. DHCP ACK(Acknowledgment)

 

예약주소: 0.0.0.0 vs 127.0.0.1

특수한 목적을 위해 예약된 IP

예약 주소 IP 범위 사용 목적
0.0.0.0/8 0.0.0.0 ~ 0.255.255.255 현재 네트워크의 호스트 주소들
10.0.0.0/8 10.0.0.0 ~ 10.255.255.255 사설 네트워크
127.0.0.0/8 127.0.0.0 ~ 127.255.255.255 루프백(loopback) 주소
169.254.0.0/16 169.254.0.0 ~ 169.254.255.255 링크 로컬(link local) 주소
(호스트가 연결된 링크로 통신 범위가 제한된 주소)
172.16.0.0/12 172.16.0.0 ~ 172.31.255.255 사설 네트워크
192.0.2.0/24 192.0.2.0 ~ 192.0.2.255 테스트용
192.168.0.0/16 192.168.0.0 ~ 192.168.255.255 사설 네트워크
198.18.0.0/15 198.18.0.0 ~ 198.19.255.255 테스트용
224.0.0.0/4 224.0.0.0 ~ 239.255.255.255 멀티캐스트(D 클래스)
240.0.0.0/4 240.0.0.0 ~ 255.255.255.254 미래 사용 용도로 예약(E 클래스)
  • 루프백 주소(loopback address)
    • 자기 자신을 가리키는 특별한 주소
    • 일반적으로 사용되는 주소는 127.0.0.1
    • 로컬호스트(localhost)라고도 부름
    • 루프백 주소로 전송된 패킷은 자기 자신에게 되돌아오므로 자기 자신을 마치 다른 호스트인 양 간주하여 패킷을 전송할 수 있음
    • 주로 테스트나 디버깅 용도로 사용
  • 0.0.0.0/8
    • RFC 6890에 따르면 '이 네트워크의 이 호스트를 지칭하도록 예약되었다'라고 명시
    • 호스트가 IP 주소를 할당받기 전에 임시로 사용하는 경우가 많음
    • 호스트 입장에서 자신을 지칭할 IP 주소가 없기 때문에 '이 네트워크의 호스트'로 자신을 지칭함
  • 0.0.0.0/0
    • 모든 임의의 IP 주소를 의미
    • 주로 패킷이 이동할 경로를 결정하는 라우팅에서 활용
    • 디폴트 라우트(default route)를 타나태기 위해 사용
    • 디폴트 라우트: 패킷을 어떤 IP 주소로 전달할지 결정하기 어려울 경우 기본적으로 패킷을 전달한 경로
      (어디로 패킷을 전달해야 할지 명확하지 않을 경우 이곳으로 패킷을 이동시키라고 표기하는 것)

 

라우팅(Routing)

 

라우팅

  • 패킷이 이동할 최적의 경로를 설정한 뒤 해당 경로로 패킷을 이동시키는 것

 

라우터(Router)

  • 네트워크 계층의 핵심 기능을 담당
  • L3 switch 장치도 네트워크 계층의 대표 장비
    하지만 오늘날 라우터와 L3 스위치는 기능상 상당 부분 유사하므로 엄밀히 구분 하지 않는 경우가 많음
  • 일반적으로 가정 환경에서 사용하는 공유기가 라우터의 역할을 함
  • 공유기를 홈 라우터(home router)라고 부르기도 함
  • 공유기는 아래의 기능들을 가진 함축된 네트워크 장비
    • 라우터
    • NAT
    • DHCP 서버
    • 방화벽

홉(hop)

  • 라우팅 도중 패킷이 호스트<->라우터, 라우터<->라우터 간에 이동하는 하나의 과정
  • 패킷은 '여러 홉을 거쳐' 라우팅될 수 있음
  • traceroute를 사용해 목적지까지의 홉 수를 얻을 수 있음
traceroute www.google.com

구글까지의 홉 수

구글까지는 14번 홉을 거침(13개의 라우터를 거침[목적지-1]

 

라우팅 테이블(Routing Table)

  • 특정 수신지까지 도달하기 위한 정보를 명시한 일종의 표와 같은 정보
  • 라우터는 라우팅 테이블을 참고하여 수신지까지의 도달 경로를 판단
  • 라우팅 테이블에 포함된 정보는 라우팅 방식에 따라, 호스트의 환경에 따라 달라질 수 있음
  • 라우팅 테이블에 없는 경로로 패킷을 전송해야 할 때는 기본 경로인 디폴트 라우트(default route), 기본 게이트웨이로 패킷을 전송
  • 아래의 공통적인 정보/핵심적인 정보를 갖고 있음
    • 수신지 IP 주소 & 서브넷 마스크
      • 최종적으로 패킷을 전달할 대상
    • 다음 홉(next hop)
      • 최종 수신지까지 가기 위해 다음으로 거쳐야 할 호스트의 IP 주소나 인터페이스
      • 게이트웨이라고 명시되기도 함
    • 네트워크 인터페이스(NIC)
      • 패킷을 내보낼 통로
      • 인터페이스 이름이 직접적으로 명시되거나 IP 주소가 명시
    • 메트릭(metric)
      • 해당 경로로 이동하는 데에 드는 비용
      • 라우터가 라우팅 테이블에 있는 경로 중 패킷을 내보낼 경로를 선택할 때, 메트릭이 낮은 경로를 선호
  • netstat을 사용해 라우팅 테이블을 볼 수 있음
netstat -rn

라우팅 테이블

 

정적 라우팅과 동적 라우팅

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

 

정적 라우팅(static routing)

  • 사용자가 수동으로 라우팅 테이블에 항목을 추가하는 방식
  • 명령어를 사용해서 수행됨
  • ex) 모두 10.0.0.0/24로 향하는 패킷을 192.168.1.1 게이트웨이로 라우팅하는 명령어
sudo route add -net 10.0.0.0/24 192.168.1.1

 

 

동적 라우팅(dynamic routing)

  • 네트워크의 규모가 커지고 관리해야 할 라우터가 늘어나면 정적 라우팅만으로는 관리가 어려움
  • 정적 라우팅은 입력실수, 중복 등록 등의 휴먼 에러가 발생할 수 있음
  • 자동으로 라우팅 테이블 항목을 만들고, 이를 이용하여 라우팅하는 방식
  • 동적 라우팅을 하면 라우팅 테이블 항목이 수시로 변할 수 있음
  • 대규모 네트워크를 관리하는데 있어서 더욱 편리
  • 네트워크 경로상에 문제가 발생했을 때 이를 우회할 수 있도록 경로가 자동 갱신
  • 모든 라우터는 특정 수신지까지 도달하기 위한 최적의 경로를 찾아 라우팅 테이블에 추가하려 노력함
  • 이를 위해 라우터끼리 서로 자신의 정보를 교환, 이 과정에서 아용되는 프로토콜이 라우팅 프로토콜

라우터들의 집단 네트워크, AS

  • AS(Autonomous system) - 자발적인? 시스템
  • 동일한 라우팅 정책으로 운용되는 라우터들의 집단 네트워크
  • 한 회사나 단체에서 관리하는 라우터 집단
  • AS마다 인터넷상에서 고유한 AS번호(ASN: Autonomous System Number)가 할당
  • AS번호는 사설 IP 주소처럼 사설 AS번호도 있지만, 일반적으로 고유한 번호를 말함
  • 한 AS 내에는 다수의 라우터가 존재
  • 라우터들은 AS 내부에서만 통신 또는 AS 외부와 통신 할 수 있다
  • AS 외부와 통신할 경우 AS 경계에서 AS 내외로 통신을 주고받을 수 있는 AS 경계 라우터(ASBR: Autonomous System Boundary Router)라는 특별한 라우터를 사용

 

 

라우팅 프로토콜(Routing Protocol)

  • 라우터끼리 자신들의 정보를 교환하며 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜
  • AS 내부에서 수행되는지, AS 외부에서 수행되는지에 따라 종류가 나뉨
  • AS 내부: IGP(Interior Gateway Protocol)
    • RIP
    • OSPF
  • AS 외부: EGP(Exterior Gateway Protocol)
    • BGP

IGP) RIP

  • RIP - Routing Information Protocol
  • 거리 벡터 기반 라우팅 프로토콜
  • 최적의 경로를 선정하는 과정에서 거리 벡터(distance vector)를 사용
  • 거리: 패킷이 경유한 라우터의 수, 즉 홉의 수
  • 인접한 라우터끼리 경로 정보를 주기적으로 교환하며 라우팅 테이블 갱신
  • 특정 수신지까지 도달하기 위해 '홉 수가 가장 적은 경로'를 최적의 경로라고 판단
  • 홉 수가 적을수록 라우팅 테이블상의 메트릭 값도 작아짐

IGP) OSPF

  • OSPF - Open Shortest Path First
  • 링크 상태 데이터베이스 기반 라우팅 프로토콜
  • 최적의 경로를 결정하기 위해 대역폭을 기반으로 메트릭을 계산
  • 링크 상태 데이터베이스(LSDB: Link State Database)
    • 라우터들의 연결 관계, 연결 비용
    • 현재 네트워크의 상태를 그래프로 표현하기 위한 데이터가 저장되어 있음
  • 대역폭이 높은 링크일수록 메트릭이 낮은 경로로 인식
  • 네트워크 구성이 변경되었을 때 라우팅 테이블이 갱신
    -> 네트워크 규모가 매우 커진 경우 링크 상태 데이터베이스에 모든 정보를 저장하기가 어려움
    -> 최적의 경로를 갱신하는 연산 부담도 커질 수 있음
  • OSPF에서는 AS를 에어리어(Area)라는 단위로 나누고, 구분된 에어리어 내에서만 링크 상태를 공유
  • 에어리어에는 번호가 부여되어 있으며, 에어리어 경계에 있는 ABR(Area Border Router)이라는 라우터가 에어리어간의 역할을 담당

EIGRP

  • EIGRP(Enhanced Interior Gateway Routing Protocol)
  • 거리 벡터 프로토콜과 링크 상태 프로토콜의 성격을 모두 갖는 라우팅 프로토콜
  • 고급 거리 벡터 라우팅 프로토콜, 하이브리드 라우팅 브로토콜이라고도 부름

EGP) BGF

  • BGP(Border Gateway Protocol)
  • AS간의 통신에서 사용되는 대표적인 프로토콜
  • AS간 통신이 '가능한' 프로토콜
  • BGP로 AS내 라우터 간 통신도 가능
  • eBGP(external BGP): AS간의 통신을 위한 BGP
  • iBGP(internal BGP): AS내의 통신을 위한 BGP
  • 피어(peer): 연결된 BGP 라우터(동일 AS 내의 피어: 내부 피어 / 다른 AS 내의 피어: 외부 피어)
  • 피어링(peering): 피어 관계가 되도록 연결하는 과정(ASBR끼리)
  • BGP는 RIP와 OSPF에 비해 최적의 경로를 결정하는 과정이 복잡, 일정하지 않은 경우가 많음
    경로 결정 과정에서 수신지 주소와 추가로 다양한 '속성'과 '정책'이 고려

 

BGP 속성

  • 속성(attribute): 경로에 대한 일종의 부가 정보
  • AS-PATH
    • 메시지가 수신지에 이르는 과정에서 통과하는 AS들의 목록
    • 메시지가 AS를 거칠 때마다 AS-PATH에는 거쳐간 AS가 추가
  • NEXT-HOP
    • 다음 홉, 다음으로 거칠 라우터의 IP 주소를 나타냄
  • LOCAL-PREF
    • 지역 선호도, LOCAL PREFerence의 약자
    • AS 외부 경로에 있어 AS 내부에서(local) 어떤 경로르 선호할지(preference)에 대한 척도를 나타내는 속성
    • 경로를 선택하는 과정에서 LOCAL-PREF 값은 일반적으로 AS-PATH, NEXT-HOP 속성보다 우선시됨
    • LOCAL-PREF 값이 클수록 우선으로 선택

BGP(eBGP) 특징

  1. BGP는 AS간 라우팅을 할 때 거치게 될 '라우터'의 수가 아닌 'AS'의 수를 고려
    -> AS-PATH 길이가 더 짧은 경로라 할지라도 거치게 될 라우터의 홉 수가 더 많을 수 있음
  2. BGP는 RIP처럼 단순히 수신지에 이르는 '거리'가 아닌, 메시지가 어디를 거쳐 어디로 이동하는지를 나타내는 '경로'를 고려
    -> BGP는 경로 벡터(path vector) 라우팅 프로토콜의 일종이라 부르기도 함
    -> 거리가 아닌 경로를 고려하는 이유: 메시지가 같은 경로를 무한히 반복하며 이동하는 순환(loop)를 방지하기 위함(GBP 라우터는 자신의 AS가 AS-PATH에 포함되어 있을 경우 순환으로 간주해 해당 메시지 버림)

BGP의 정책(policy)

  • 정책(policy): AS 간 라우팅에 있어 경로를 선택하는 중요한 판단 기준 중 하나
  • AS 관리 주체에 따라 각기 다른 상업적/정치적 목적으로 상이한 정책을 사용할 수 있기에 최적의 경로를 선택하는 기준은 AS마다 다를 수 있음
  • 예시)
    • 특정 AS에서 오는 메시지만 처리하도록 특정 AS를 우대하는 정책
    • 특정 AS에서 오는 메시지를 차단하는 정책
    • 보안과 안정성을 우선시하는 정책
    • 성능을 우선시하는 정책

 

숙제

Ch.03(03-1) 확인 문제 1번(p.147), (03-3) 확인 문제 2번(p.187) 풀고 설명하기

Q. IPv4의 대표적인 기능 두 가지를 골라 보세요.

1. 신뢰성 있는 전송
2. IP 주소 지정
3. IP 단편화
4. IP 주소 변환

A. 2번 3번. IP 주소 지정과 IP 단편화

  The internet protocol implements two basic functions:  addressing and
  fragmentation.

RFC 791에 의하면 IP 프로토콜은 주소 지정과 단편를 기본 기능으로 한다고 나온다!

 

 

Q. 라우팅 프로토콜과 관련한 아래 설명을 읽고 옳은 것을 골라 보세요.

라우팅 프로토콜은 AS 내부에서 수행되는 (IGP, EGP, RIP, OSPF)와
AS 외부에서 수행되는 (IGP, EGP, RIP, OSPF)로 나뉩니다. 

(IGP, EGP, RIP, OSPF)는 대표적인 거리 벡터 라우팅 프로토콜이고, 
(IGP, EGP, RIP, OSPF)는 대표적인 링크 상태 라우팅 프로토콜입니다.

A. 라우팅 프로토콜은 AS 내부에서 수행되는 IGP, AS 외부에서 수행되는 EGP로 나뉜다.

RIP는 대표적인 거리 벡터 라우팅 프로토콜이고, OSPF는 대표적인 링크 상태 라우팅 프로토콜이다.

 

암기로 문제를 풀기보다는 축약되어 있는 영어를 풀어보고, 영어단어를 이해하고 외워보자.

- IGP -> Interior. 인테리어? 즉, AS 내부에서 수행되는 프로토콜이군

- 그럼 인테리어의 반대는 익스테리어겠다! AS 외부에서 수행되는 프로토콜은 EGP. Exterior이다.

GP는 Gateway Protocol.

 

IGP의 대표적인 프로토콜은 조금 외울 필요가 있긴 했었다. 내가 외운건 정보(거리), 비정보(상태)라고 외웠다!

- RIP -> Routing Information Protocol. 라우팅을 하는데 있어서 어떤 정보를 필요로 하는데, 그게 바로 거리이다.

- OSPF -> Open Shortest Path First. 링크 상태 데이터베이스에 저장한다고 한다. 약간 꼼수암기로 외운다고 하면 S가 들어가있으니 State(상태)라고 외워도 되지 않을...까? 뭐 그건 넘어가고..ㅋㅋ

책에서도 RIP는 라우터간에 경로 정보를 주기적으로 교환하며 라우팅 테이블을 갱신하는 반면에 OSPF는 네트워크 구성이 변경되었을 때 라우팅 테이블이 갱신된다고 한다.

 

추가숙제

본인 컴퓨터의 IP 주소와 MAC 주소 파악해 보기

- 사설 IP

1. 초간단버전

맥북에서는 option키를 누르고 wifi 아이콘을 클릭하면 현재 사설IP주소와 MAC Address를 알 수 있다!

MAC Address and Private IP

 

2. UI로 확인하기

Wi-Fi 맨 밑에 고급 버튼을 클릭하면 MAC 주소를 알 수 있다

 

 

3. CLI (터미널) 사용하기

IP만 조회한다면.. 내부망으로는 보통 192. 172 대역대를 사용하니까 grep -E(regex)를 통해 검색해봤다

ifconfig | grep -E "192.|172."

Private IP

- 공인 IP

1. 구글에 what is my ip라고 검색하면 좀 아래로 내리면 Public IP가 나온다

Public IP

 

2. 네이버에 내 아이피라고 검색하면 Public IP가 나온다

Public IP

 

후기

좋았던 부분

https://zetawiki.com/wiki/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4_Pod_CIDR_%ED%99%95%EC%9D%B8

 

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/vpc-cidr-blocks.html

 

- 책에서 나온 <서브넷 마스크: CIDR 표기법>을 현업에서 사용하는 사진들을 직접 찾아봤다

 

혹시라도 이 책을 구입해서 공부중인 취준생이거나 내 블로그를 보고 공부를 같이 하는 신입분들을 위해서 어디에 사용되는지 몰라서 공부에 의욕이 없어질까봐 이번 주 스터디한 내용중에서 현업에서 직접적으로 사용했었던 개념을 가져와봤다.

이름을 한번쯤 들어봤을 AWS, 쿠버네티스에서도 CIDR 표기법이 나온다.

추가로 예전 직장에서 도메인을 구매할때였나, 인증서를 갱신할때 였나.. 그때도 클래스나 CIDR 표기법으로 서브넷팅표기법을 사용했던 것 같다.. 아마도?

추가로 어느정도 시스템이 구축되거나 보안에 신경쓰는 회사에서 일을 하다보면 사내 방화벽 프로그램에 MAC 주소와 IP를 입력하게 되는데, 이때 불러줘야 할 IP는 Public IP다.

나도 신입때 공인/사설 IP를 몰라서 192점 대역을 불러줬다가 한 소리 들었던 적이 있었다...ㅎ

그리고 ping, traceroute, netstat -rn, route 등의 명령어로 도커/쿠버네티스/베어메탈 리눅스 네트워크 환경에서 디버깅을 하기 위해 많이 입력한 명령어들이다.

내가 무슨 운영진은 아니지만.. 나도 예전에 CS, 네트워크를 공부할때 이런걸 왜 공부해야하는지에 대해 의문이었다.

그래서 현업에서 실제로 많이 쓰인다는 것을 공유하고, 같이 으쌰으쌰하고 싶었다!

 

여러 운영체제 유저를 배려한 부분

시중에 나온 몇몇 책들은 윈도우 사용자만을 위해서 나온 경우가 대부분이다(적어도 내가 겪은 경험으로는..?)
근데 Windows, Mac, Linux유저 상관없이 여러 명령어를 나열해서 실습해볼 수 있는 부분이 정말 좋았다!

코딩처럼 실습하는 책이 아니기도 하고, 다른 OS도 실습하는 사진을 추가해서 인쇄부수를 더 차지했을 것 같은데도 불구하고 나는 이런 배려가 좋았다.

 

적당한 추상화, 중요한 포인트, 더 깊은 내용

CS(Computer Science)라는게 가볍게 말하면 너무 가볍고, 깊이 있게 말하면 책 1권에 못낸다..

근데 각 챕터마다 꼭 필요한 포인트, 그리고 중요한 부분은 살짝 깊이 있게..

이 밸런스를 잘 맞춘 것 같아서 좋았다.

혼공 시리즈도 제대로 스터디해보는게 이번이 처음인데, 다음에도 기회가 있다면 다른 책도 스터디해보고 싶을정도이다!ㅎㅎ

 

벌써!?

혼공 용어 노트와 정답을 제외하면 약 400쪽 / 2 = 200쪽이라 할 수 있는데, 벌써 이 책의 중간까지 읽었다는게 놀랍다!

네트워크를 정말 잘 알고, 잘하는 백엔드/데브옵스 시니어 개발자가 되는 그 순간까지 한걸음 한걸음 꾸준히 공부해본다.

 

아쉬웠던 부분

없다... 그저 빛..... 혼공시리즈 굿

 

 

책 구매처

https://www.yes24.com/Product/Goods/125830483

 

혼자 공부하는 네트워크 - 예스24

혼자 해도 충분하다!1:1 과외하듯 배우는 네트워크 자습서『혼자 공부하는 네트워크』는 개발자의 필수 지식인 네트워크를 기본부터 제대로 학습할 수 있도록 돕는 입문서이다. 다수의 네트워

www.yes24.com

 

320x100

댓글