728x90

내가 구성한  서버 정상 네트워크 ip  port  sg(aws security group)등  확인하는 방법 

 

ping test

ping [IP 주소]


연결확인(request time out)
목표 서버까지의 왕복 시간[RTT - round trip time]
패킷 손실률(0에 가까울 수록  연결이 안정적인상태)

 

 

telnet test

telnet [IP 또는 도메인] [port]

port가 열려 있는지 확인

 

 

curl test

curl https://www.google.com



서버 구성시 외부망 연결 확인

 

 

 

위 테스트를 하는 이유는  서버 구성시  정상적인  망 구축 확인  및  OSI 계층에서 어느 부분에 장애기 있는 지 확인하기 위해  사용 한다.

 

728x90

'코드 > dev' 카테고리의 다른 글

처리율 제한 알고리즘  (0) 2025.04.04
Nginx  (0) 2025.04.04
subnet mask 서브넷팅 계산법  (0) 2025.04.03
Internet Gateway & NAT Gateway  (0) 2025.04.02
OSI 7계층  (0) 2025.04.02
728x90

IP란 인터넷에 연결되어 있는 모든 장치들(컴퓨터, 서버장비, 스마트폰 등)을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소이다.

 

IP address = 221.203.129.68을 2진수로 변환하면  11011101.11001011.10000001.01000100 이 된다.

위와 같이 2진법  32비트 숫자로 표기

 

IP는  32bit로 이루어진 주소이며, 1bit 가 2 -> 2의 32승  약 43억개의 주소를 가지게 된다.

 

IP 주소 구성

아이피는 network ID 와 host ID 로 구성

network ID는 네트워크 자체 식별, host ID는 네트워크 안에서 개별 기기 식별( network > host )

 

IP 주소 클래스

IP 클래스는 예전에 IPv4를 사용 할때 쓰는 IP 할당 방식

지금은 더이상 사용되지 않고, 클래스 방식이 아닌 CIDR 방식이 할당하도록 1993년 바뀌었다.

 

IP 주소를 8비트로 4등분 하면 각각을 옥텟(Octet)이라 부른다.

 

각 옥텟별  0-255개의 범위가 되어 각각 256개 입력 가능.

 

221.203.129.68  ->   1옥탯(1byte= 8bit)  221 , 1옥탯(1byte= 8bit) 203,  1옥탯(1byte= 8bit) 129,  1옥탯(1byte= 8bit) 68

 

이 옥탯별로 IP 클래스를 A, B, C로 나눌 수 있다. 

 

각 클래스별 네트워크 아이디와 호스트 아이디 부분 범위가 다르다.

클래스별 networkID 와 hostID 범위

 

A-E 클래스별 호스트 수 (통상 사용하는것은 A,B,C 까지이다)

 

A클래스

첫 옥텟에 0과 127은 사용 불가(0은 미지정, 127은 루프백 주소)
첫 옥텟 - network ID(8bit 1byte)이며  나머지는 Host ID 24bit(3byte)

A클래스의 host ID  대역이 24bit 이므로,  네트워크당 낭로 수 있는 호스트 주소는 1670만개로 대규모 네트워크에 적합

 

B클래스

1,2 번째 옥텟이 network ID ,   나머지 16bit 가  host ID가 된다.

첫 옥텟의 두번째 비트가 10으로 고정이된다.

B 클래스의  첫옥텟이 128-191 사이의 숫자로 시작. 

host 대역이 16bit 이므로 네트워크당  나올 수 있는 host수는 약 65000개로 중규모 네트워크에 적합.

C클래스

C 클래스는 network ID가 총24bit이며, 나머지 8bit가  host ID이다.
첫 옥텟의 3번째 비트가 110으로 고정.
첫 옥텟은  192-223 사이 숫자로 시작

host 대역이 256개로 소규모 네트워크에 적합

 

D 클래스 E클래스

D클래스는 첫 옥텟의 네번째 비트가 1110으로 고정 되며 멀티캐스트용 대역으로 IP 주소 할당XX

E클래스는 첫 옥텟의 네번째 비트가 1111로 고정되며 연구욕 예약된 주소대역으로 IP 주소 할당되지 않는다.

 

 

네트워크 주소와 브로드 캐스트 주소

아이피 주소 에서 사용할수 없는 주소 2가지 존재

첫번째는 호스트 주소는 네트워크 자체르를 지칭하며 마지막 주소는 브로드캐스트용 주소로 쓰인다.

네트워크 주소 -> 192.168.1.0(110000001010100000000001 00000000)

브로드캐스트 주소 -> 192.168.1.255(110000001010100000000001 11111111)

네트워크 주소는 말그대로 네트워크 자체를 나타내고 브로드캐스트 주소는 인터넷 데이터를 전달하기 위한 주소 .

 

호스트가 0이면 네트워크 주소

호스트가 모두 1이면  브로드캐스트 주소

 

 

서브넷(Subnet)

하나의 네트워크가 분할되어 나눠진 작은 네트워크

서브넷을 만들기위해 네트워크를 분할하는 것을 서브네팅(subnettin)이라고 한다.

서브네팅을 하면 IP 할당 범위를 더 작은 단위로 쪼갤 수 있게 된다. 그래서 만일 IP 가 100개만 필요하다면 C클래스(256개)를 더 쪼개서 줄 수 있다.  그리고 이 서브네팅을  서브넷 마스크를 통해 계산되어 수행.

 

서브넷 마스크(Subnet Mask)

IP 주소에서  네트워크 아이디와 호트스 아이디 구분하기 위한 목적으로 만들어짐.

IP주소와 똑같은 32비트 2진수로 표현

 

255.255.255.0 

아이피와 표현이 다른 것은 서브넷 마스크는 연속된 1과 연속된 0으로 구성

11111111.11111111.11111100.00000000

 

클래스 별 대역폭

 

Prefix 표현

 

ex) 192.168.0.1/24   -> /24가 서브넷 마스크를 표현한 것이다. 

 

/24 의 뜻은 32비트 중 앞에서 부터 차례대로 1의 개수가 24개라는 의미.  32-24 =8은 0으로 채워주면 서브넷 마스크 숫자가 되는 것이다. 

11111111.11111111.11111111.00000000

 

클래스별  표기 예시

10.10.10.10/8 - > A클래스

172.16.1.10/16 -> B클래스

192.168.100.10/24 -> C클래스

 

 

서브네팅(Subnetting)

IP주소를 효율적으로 나누어 사용하기 위한 방법

서브네팅을 하면 IP 할당 범위를 더작은 단위로 나눌 수 있다. (자신의 네트워크 주소를 더 작은 서브 네트워크로 2의 배수로 나누는 과정)

 

ex) 호스트 50개만 사용 시  192.168.100.10/24 C 클래스로 사용시 총 256개중 50개만 사용하면 낭비가 도니 이를  절번(128)에 절반으로 나눈(64개) 주소를 기업에게 할당하고 남는 네트워크 주소는 다른 사용처로 할당하는 효율적인 작업이 바로 서브네팅 원리이다.

 

 

 

 

2등분

약 100개의 아이피 사용시  C 클래스 대역을 할당 할 수 있다(192.168.100.10/24) 총 256개의 Host 사용 할 수 있지만 이를 효율적으로 더 나누어 줄수 있다.

 

이를 나누기 위해  호스트 ID 에 서브넷 구분 비트라는것을 지정

11111111.11111111.11111111.10000000(bold 처리 한 부분이 서브넷 구분 비트)

 

192.168.10.1 ~ 192.168.10.126

192.168.10.129 ~ 192.168.10.254

 

4등분 

11111111.11111111.11111111.11000000(bold 처리 한 부분이 서브넷 구분 비트)

 

그러면 서브넷 구분비트는 00, 01, 10, 11 로 총 4개로 구분되어질 수 있고, 이를 적용해보면

 

00000000 ~ 00111111

01000000 ~ 01111111

10000000 ~ 10111111

11000000 ~ 11111111

 

로 범위가 4등분되어 나뉘어 줄수 있다.

 

슈퍼넷팅(SuperNetting)

서브넷팅이 네트워크를 분할하는것 이었다면, 슈퍼넷팅은  반대의 개념이다.

즉 네트워크를 합치는 것이다.

 

에를 들어 C클래스의 모든 대역폭으로  커버가 불가능한 경우 B클래스 대역폭을 통째로 주는것이 아닌  슈퍼네팅을 통한 C클래스 2개를 합쳐서 하나의 네트워크로 구성.

 

192.168.0.1/24 -> 192.168.0.1/23 으로 prefix 숫자를 감소 시키면  호스트 아이디 갯수가 늘어난다. 

 

즉, 서브넷 마스크의 1의 갯수가 23개가 되니 호스트 ID의 비트수는 9개가 되고, 2^9=512 니까

192.168.10.0 ~ 192.168.11.255 의 범위를 가지게 된다.

 

그러면 C클래스 두개를 합쳐 256 X 2 = 512 - 2(특수목적 IP) = 510 개의 호스트를 가질 수 있는 네트워크가 완성되어 진다.
728x90

'코드 > dev' 카테고리의 다른 글

Nginx  (0) 2025.04.04
네트워크 연결 확인 방법: ping, telnet, curl 활용  (0) 2025.04.04
Internet Gateway & NAT Gateway  (0) 2025.04.02
OSI 7계층  (0) 2025.04.02
네트워크 기초  (4) 2024.07.23
728x90

Internet Gateway

목적

인터넷 게이트 웨이는 가상 프라아빗 클라우드(VPC)와 인터넷 간의 통신을 가능하게 합니다. VPC 내의 인스턴스 인터넷으로부터 트래픽을 보내고 받을 수 있도록 한다.

기본적으로 VPC가 공용 인터넷에 연결되는 경로를 제공

 

VPC 내의 EC2 인스턴스 또는 기타 리소스가 인터넷에 직접 액세스해야 하는 경우에 사용

 

기능 

 

  • IPv4 및 IPv6 트래픽을 모두 지원합니다.
  • 수평적으로 확장되고, 중복되며, 고가용성을 제공합니다.
  • 양방향 통신을 허용합니다.
  • 인터넷 게이트웨이 사용에는 비용이 발생하지 않습니다.

 

 

NAT Gateway(Network Address Translation Gateway)

목적

NAT 게이트웨이는 프라이빗 서브넷(공용 IP주소가 없는 서브넷)의 인스턴스가 인터넷 또는 다른 AWS 서비스에 연결 할 수 있도록 함.

중요한 점은 아웃바운드 인터넷 엑세스만 허용하고, 인바운드 인터넷 트래픽은 차단한다는 것.

 

프라이빗 인스턴스가 소프트웨어 업데이트를 다운로드하거나, 외부 API에 엑세스 하거나, 다른 인터넷 리소스와 통신해야 하지만, 요청하지 않은 인바운드 연결로부터 보호해야하는 경우에 사용.

 

기능

 

  • IPv4 트래픽을 지원합니다.
  • AWS가 기본 인프라를 관리하는 관리형 서비스입니다.
  • 아웃바운드 통신만 허용합니다.
  • NAT 게이트웨이 사용에는 사용량에 따라 비용이 발생합니다.

 

 

차이점

 

IG 는 양방향(인바운드 ,아웃바운드) 이지만 NAT는 아웃바운드 전용이다.

IG는 공용 IP가 있는 인스턴스가 통신할 수 있도록 하지만, NAT는 프라이빗 IP가 있는 인스턴스가 통신 할 수 있도록 한다.

IG 는 무료이지만 NAT 는 사용량에 따라 비용 발생.

NAT는 프라이빗 인스턴스로의 인바운드 트래픽을 차단하여 보안을 강화

즉, 인터넷 게이트웨이는 인터넷으로 가는 경로를 제공하고, NAT 게이트웨이는 프라이빗 인스턴스가 안전하게 인터넷에 액세스할 수 있는 방법을 제공

 

728x90

'코드 > dev' 카테고리의 다른 글

네트워크 연결 확인 방법: ping, telnet, curl 활용  (0) 2025.04.04
subnet mask 서브넷팅 계산법  (0) 2025.04.03
OSI 7계층  (0) 2025.04.02
네트워크 기초  (4) 2024.07.23
jenkins memory error  (0) 2024.07.17
728x90

OSI 7계층이란? 

네트워크 통신 기능을 7개의 계층으로 나누는 개념적 프레임워크

OSI 7계층 나눈 이유? 

Open Systems Interconnection(OSI) 모델 계층에서   통신이 일어나는 과정이 단계별로 파악할 수 있기 때문

 

  • 네트워크의 문제를 원인별로 구분하여 해결하기 위해 
  • 하드웨어와 OS에 따른 차이를 없애고 데이터를 교환하기 위해 
     
  • 암호화, 복호화, 압축 등의 과정을 처리하기 위해 
     
OSI 7계층과 TCP/IP 4계층
 

 

1계층  물리계층(Physical Layer)

물리적 통신 매체와 해당 매체를 통해 데이터를 전송하는 기술  ex) 허브, 리피터 등

 

2계층(DataLink Layer)

매체 접근 제어, 흐름 제어, 오류 검사를 담당  ex)브릿지, 스위치, 이더넷 

 

3계층(Network Layer)

중간 라우터를 통한 라우팅을 포함하여 패킷 포워딩을 담당 

4계층(Transport Layer)

데이터를 전송하는 계층 

5계층(Session Layer)

연결이 손실되는 경우 연결 복구를 시도하는 계층 

6계층(Presentation Layer)

응용 계층과 세션 계층 사이에서 정보를 넘겨주는 역할을 한다

7계층(Application Layer)

애플리케이션 계층이라고도 불림  ex) HTTP, FTP 프로토콜 등이 속함

 

 

TCP/IP 4계층

OSI 7계층 보다 먼저 등장했으며 현재 표준으로 자리잡고 있음.

1계층(network Access Layer)

OSI 7계층에서 물리+ 데이터링크 계층에 해당
실제 물리적인 네트워크를 통해 데이터를 전송하는 역할 ex) 이더넷, wi-fi

2계층(Internet Layer)

OSI 7계층에서  네트워크 계층에 해당 

네트워크 간의 데이터 전송을 담당하며, IP 주소를 사용하여 데이터를 목적지까지 전달 

3계층(Transport Layer)

OSI 7계층에서 전송계층에 해당 

호스트 간의 데이터 전송을 담당하며, 신뢰성 있는 데이터 전송을 보장

4계층(Application Layer)

OSI 7계층에서 세션계층, 표현계층, 응용계층 해당

사용자에게 서비스를 제공하는 응용 프로그램들이 사용하는 프로토콜을 정의

 

728x90

'코드 > dev' 카테고리의 다른 글

subnet mask 서브넷팅 계산법  (0) 2025.04.03
Internet Gateway & NAT Gateway  (0) 2025.04.02
네트워크 기초  (4) 2024.07.23
jenkins memory error  (0) 2024.07.17
배포시 테스트코드 profile 적용 안되는 오류  (2) 2024.07.10
728x90

재네릭 타입과 마찬가지로, 클라이언트에서 입력 매개변수와 반환값을 명시적으로 형변환해야 하는 메서드보다 제네릭 메서드가 더  안전하며 사용하기도 쉽다. 타입과 마찬가지로, 메서드도 형변환 없이 사용할 수 있는 편이 좋으며, 많은 경우 그렇게 하려며 제네릭 메서드가 되어야 한다. 역시 타입과 마찬가지로. 형변환을 해줘야 하는 기존 메서드는 제네릭하게 만들자. 

기존 클라이언트는 그대로 둔 채 새로운 사용자의 삶을 훨씬 편하게 만들어 줄 것이다.

728x90
728x90

클라이언트에서 직접 형봔해야 하는 타입보다 제네릭 타입이 더 안전하고 쓰기 편하다.

그러니 새로운 타입을 설계할 때는 형변환 없이도 사용할 수 있도록 하라.

그렇게하려면 제네릭 타입으로 만들어야 할 경우가 많다.

기존 타입중 제네릭이었어야 하는 게 있다면 제네릭 타입으로 변경하자.

기존 클라이언트에는 아무 영향을 주지 않으면서, 새로운 사용자를 훨씬 편하게 해주는 길이다.

728x90

+ Recent posts