[구름 k8s] TIL 1-1-3

Peppie·2022년 8월 3일
0

1. 네트워크 이해

IP Address

네트워크에 연결된 컴퓨터(호스트)를 식별하기 위한 논리적인 주소

1 byte

컴퓨터 메모리 저장 최소 단위 (영숫자 기준 1글자)
1 byte 표현 범위

  • 부호 없는 경우: 0 ~ 255
  • 부호 있는 경우: -128 ~ 127

IP 주소 종류

IPv4

4 byte

  • 1 bit : 2진수 1 or 0 표현
  • 8 bit : 2진수 8자리, 256가지 표현 가능 (00000000 (0) ~ 11111111 (255))
  • 1 byte = 8 bit

IPv6

8 byte, 16진수 8자리로 표현 (현재는 과도기)

현재는 IPv4와 IPv6가 혼재되어 사용중이지만, 실제로 사용하는 주소는 주로 IPv4

IP 주소 확인 방법

  • Windows : cmd 실행 -> ipconfig
  • Linux : 터미널 -> ifconfig 또는 ip addr
  • MacOS : 터미널 -> ifconfig

네트워크 연결방식에 따른 구분

  • 유선 네트워크 : 이더넷 (Ethernet)
  • 무선 네트워크 : LAN

IP 주소 구조 (IPv4 기준)

모든 컴퓨터는 LAN (소규모 네트워크) 소속

네트워크 ID + 호스트 ID 구성

  • 네트워크 ID : 네트워크 식별
  • 호스트 ID : 호스트 (네트워크에 연결된 개별 컴퓨터) 식별

네트워크 ID의 크기에 따라 해당 네트워크에 연결 가능한 호스트 개수 결정

  • A Class : 네트워크 ID 1 byte + 호스트 ID 3 byte
  • B Class : 네트워크 ID 2 byte + 호스트 ID 2 byte
  • C Class : 네트워크 ID 3 byte + 호스트 ID 1 byte

호스트 ID는 범위 (x.x.x.0 ~ x.x.x.255) 내에서 자유롭게 사용 가능하나, x.x.x.1과 x.x.x.255는 예약된 번호이므로 사용 불가능

IP 주소 구분

공인 IP 주소: 인터넷을 통해 他 네트워크의 컴퓨터 식별가능

사설 IP 주소: 現 네트워크에 연결된 컴퓨터만 식별가능, 인터넷 연결 X 네트워크인 경우 부여

예시)

  • 10.0.0.0/8 (A Class)
  • 172.16.0.0/12 (B Class)
  • 192.168.0.0/16 (C Class)

특수 IP 주소 목록

  • 0.0.0.0 : 모든 IP 주소로부터 수신 가능 의미, 실제 유효주소 X
  • 127.0.0.1 : loopback, 호스트 자기 자신 의미
  • 224.0.0.0 : 멀티캐스트

IP 주소 표기법

전통적인 표기법 ( dot(.) 표기법 )

  • ex) 192.168.0.0

CIDR 표기법

  • Classless Inter-Domain Routing ; 클래스 없이 도메인 간 라우팅하는 기법
    실질적으로 주로 이것 사용중
  • ex) 192.168.0.0/24 => 여기서 /24는 클래스 의미, 2진수 1이 16자리
    (11111111 11111111 11111111 00000000)
    여담: AWS에서는 CIDR 값으로 /26을 많이 씀

서브넷 (subnet)

  • 現 네트워크를 다시 세분화시킨 네트워크
  • 서브넷 마스크 (subnet mask) : 네트워크 ID를 분리하기 위한 값, 서브넷 식별 목적

용어정리

Inbound : NW 외부 -> 내부로 데이터가 전송되는 것 (수신, receive)
Outbound : NW 내부 -> 외부로 데이터가 전송되는 것 (송신, send)

IP 주소 참고

IPv4

https://ko.wikipedia.org/wiki/IPv4

CIDR

https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%EB%8D%94_(%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%82%B9)

서브넷

https://ko.wikipedia.org/wiki/%EB%B6%80%EB%B6%84%EB%A7%9D

포트 (Port)

"네트워크 상의 호스트를 식별했으면 해당 호스트의 통신대상 프로그램을 식별해야!"

포트번호(port number)

  • NW에 연결된 호스트의 통신대상 프로그램 (= 프로세스 process) 식별번호
  • 포트번호는 2 byte 크기, 0 ~ 65525번까지 사용
  • 0 ~ 1023번까지는 미리 예약되었기 때문에 개인적으로 쓰면 안됨!!
    예약된 번호에 연결된 프로그램 (프로세스)는 제공되는 기능이 정해짐

예약된 포트번호

  • 20번, 21번 : FTP ( File Transport Protocol )
  • 22번 : SSH ( Secure SHell )
  • 80번 : HTTP ( Hyper Text Transport Protocol, 주로 web )
  • 443번 : HTTPS ( HTTP Secure )

IP 주소와 포트번호 사용 형식

192.168.0.10:80 -> 192.168.0.10 호스트의 80번 포트에 연결된 프로그램과 통신한다는 의미

  • 1024 ~ 4999 번까지는 예비번호로 사용
  • 5000 번 이상의 포트번호를 임의로 정의하여 사용

(★중요★) 하나의 포트번호에서는 하나의 프로그램만 연결되어 있어아 한다!

게이트웨이 (Gateway)

인터넷 게이트웨이 ( Internet Gateway ) 라고도 부른다.
인터넷에 연결하기 위해서는 게이트웨이가 반드시 필요

참고: https://ko.wikipedia.org/wiki/%EA%B2%8C%EC%9D%B4%ED%8A%B8%EC%9B%A8%EC%9D%B4

  • 다른 종류의 네트워크와 연결하고자 할 때 사용
  • 서로 다른 네트워크상의 프로토콜을 적절히 변환해주는 역할
  • 사설 네트워크를 인터넷에 연결할 경우 게이트웨이 사용

통상 해당 IP 주소 호스트 ID 1번 사용 ( ex: 192.168.0.1 )

네트워크 유형

  • 공용 네트워크 : 인터넷에 연결된 네트워크, 공인 IP 주소 필요
  • 사설 네트워크 : 인터넷에 연결되지 않은 네트워크, 사설 IP 주소를 이용하여 호스트 IP 주소 부여

패킷 (Packet)

네트워크 상에서 호스트 간 주고 받는 데이터 형식
패킷에는 데이터를 송신하는 호스트 IP 주소와 포트번호 및 수신하는 호스트 IP 주소와 포트번호 포함

네트워크 데이터 전송 방식에 따른 구분

회선 교환 방식

  • 1:1 통신 방식
  • 한 호스트가 네트워크 독점 사용
  • 예) 아날로그 전화, 2G / 3G

(★중요★) 패킷 교환 방식

  • 現 기본 네트워크 전송 방식
  • 데이터 전송을 패킷단위로 여러 호스트가 네트워크 공유 가능
  • 하나의 데이터는 여러 패킷으로 나눠서 네트워크를 통해 전송,
    수신 측에서 전송받은 패킷에 맞춰서 사용

ping

패킷 전송 테스트 명령어
ex) ping [패킷 전송 테스트 IP 주소]

  • ping 8.8.8.8 => 구글 DNS에 패킷 전송 테스트

호스트에 따라 ping test를 거부할 수도 있으니 유의

라우터 (Router)

  • 인터넷에 연결된 호스트 간 통신 수행시 패킷을 전송할 경로를 탐색하고, 실제 해당 경로를 이용하여 패킷 전송 역할
  • 내부의 라우팅 테이블에 경로 정보 저장
  • 원하는 호스트까지의 경로 탐색 및 실제 패킷을 해당 경로로 전송하는 역할

네트워크 프로토콜 스택

네트워크를 구성하고 인터넷을 통해 전송하기 위한 패킷을 구성과 전송 또는 수신 위한 과정을,
O/S 내부에 스택 구조로 단계적으로 구성한 네트워크 SW 집합

  • 스택 ( Stack ) : LIFO ( Last In First Out , 후입선출 ), 쌓아놓는 구조

TCP/IP (Transmission Control Protocol / Internet Protocol)

  • 현재 인터넷을 사용하는 네트워크에서 기본으로 사용하는 네트워크 프로토콜 스택
  • Windows, Linux, MacOS에서는 기본적으로 TCP/IP 포함
  • 4계층 구조 (하단 이미지 참조)

TCP/IP 계층구조


위키피디아 '인터넷 프로토콜 스위트'
OSI 7 Layer의 경우 권장사항이나, 계층이 많아서 현업에서 잘 쓰이진 않는 관계로 주로 TCP/IP로 대체

Application Layer

Application에서 통신수행시 적용할 프로토콜로 구성

  • HTTP : 대표적인 프로토콜, 웹(브라우저) 사용 위한 기본 프로토콜
  • SSH : 보안 적용된 원격 shell 접속 목적의 프로토콜
  • FTP : 원격파일 전송 목적
  • SMTP : 메일 전송 목적
  • POP3 : 메일 수신 목적
  • 사용자 프로토콜 : 소켓 (socket) 기반, 프로그램 작성 시 직접 설계 및 적용

Transport Layer

Port 번호 결정

TCP ( Transmission Control Protocol )

  • 1:1 통신 (unicast)
  • 패킷전송하고 응답 없을 시 패킷 재전송, 통상 3번의 패킷교환으로 한 패킷전송 완료
  • 항상 연결상태를 유지하나 정작 HTTP 프로토콜은 TCP 기반 프로토콜이어도 연결상태를 항상 유지하지는 않음
  • 신뢰성 높으나 느림

UDP ( User Datagram Protocol )

  • 1:1 / 1:N (broadcast) / M:N (multicast) 통신
  • TCP와 달리 패킷전송만 하고 수신확인 X
  • 신뢰성 낮으나 빠름
  • 예) 스트리밍 서비스

Internet Layer

IP 주소 결정

Network Access Layer

  • 실제 패킷 전송 / 수신
  • NIC를 통해 실제 물리적인 NW에 패킷 전송; NIC에는 NIC 식별 MAC 주소 부여

2. TIF

오늘 스터디 조장분께서 이게 실제 전공 한학기 분량이라고 하셨다. 나야 비록 전공에서 이걸 배우진 않았어도 CCNA 준비하면서, 또 한때는 네트워크 엔지니어를 지망하면서 배운게 있어서 뭐가 뭔지 알아들었지만 생판 노베이스인 사람이 들으면 많이 힘들겠더라. 그래서 강의 듣는거 자체는 어렵진 않았는데 필기정리할 분량이 너무 많아서 진심 죽는줄 알았다.

또, 한창 네트워크 공부를 할 땐 OSI 7 Layers 위주로 공부를 했었는데 실제 현업에선 TCP/IP 위주로 쓴다는 것을 새롭게 알게 되어 신기했다.

0개의 댓글