AWS AI School 1기 25/08/14 네크워크 수업

344th·2025년 8월 18일

AWS AI

목록 보기
1/48

OSI 7계층

TCP 5계층 그림

  • 애플리케이션 계층에서 요청을 전송

통신 목적

  • 요청 request
  • 응답 response

패킷

: 데이터들의 집합

프로토콜

: 규약

OSI 7계층 - 통신 계층

: 통신이 되기까지의 절차를 7개로 나눠놓음

응용: 편지의 내용을 씀

표현: 편지의 언어

세션: 유지 시간, TCP/IP 세션을 만들고 연결

— TCP 의 애플리케이션 계층 -

전송: 등기(TCP, 받는 사람에게 서명을 받음), 우편(UDP, 그냥 보내서 분실이 일어날 수 있음) 등 전송 방식을 정함

네트워크: 주소(받는 사람) - IP

데이터링크: 주소(보내는 사람) - MAC

물리: 실제로 물리적 선이 연결되는 계층

TCP: 안전성, 웹

UDP: 속도, 전화나 실시간 방송 등 패킷이 계속해서 실시간으로 빠르게 전달돼서 패킷이 소설돼도 크게 티가 안남

포트

: 응용 계층에서 가장 중요함

: 서비스를 구별해주는 번호

: 각 서비스에 접근할 수 있게 해주는 번호

  • 22 ssh (원격 접속)

LISTEN 첫번째 행: 22번 포트를 사용하는 서비스를 사용 중이다

  • 80 : 웹(http) - 보안 적용 x
  • 443 : 웹(https) - 보안 적용 o
  • 3306 : 데이터베이스 ex) MySQL, MariaDB

*포트는 클라이언트, 서버 양측 모두 사용(같은 프로토콜을 사용해야 하므로)

소켓 통신 (전송 계층)

: 가장 기본이 되는 통신

  • 포트 번호
  • TCP/UDP
    • 방화벽에서 다시 등장

      포트 번호는 TCP/UDP 프로토콜과 항상 함께 다님

  • IP 주소

→ 이 3개를 합쳐서 소켓이라고 함. 이 세개를 가지고 하는 통신을 소켓 통신

전송 프로토콜

  • TCP : 신뢰성 통신
    • 응답이 와야 그 다음 패킷을 보냄
    • 응답(ack)이 오지 않았다면 재전송
    • 통신 전에 3-way handshake 방식을 사용하여 서로간의 연결을 확인
    • 클라이언트가 연결한 수만큼 서버에서 프로세스 할당
  • UDP : 비신뢰성 통신
    • 받았는지 안받았는지 신경 쓰지 않음
    • 데이터 유실이 일어날 수 있기에 비신뢰성 통신
    • 그렇기에 TCP 보다 비교적 속도가 빠름
    • 단일 프로세스

TCP 예시

UDP 예시

→ 단일 프로세스를 사용함을 알 수 있음(비신뢰성 통신)

TCP는 소프트웨어에 이미 내장되어있음

네트워크 계층

  • IP 주소
  • 서브넷마스크
  • 게이트웨이

도식 그리는 툴: draw.io

라우터

  • 허브
  • 국가 라우터 → 동 → 개인 (무선 공유기)
  • 라우터에서 알아야 할 것? : 주소(보내는 사람, 받는 사람) → 주소만 알면 되므로 3계층 장비(네트워크, 데이터링크, 물리 아래 3계층)
  • Routing Table
    • AWS 에서 등장
  • 알아서 잘하는 똑똑한 장비가 아니므로 다 테이블로 정리해서 시켜줘야 함

IP 주소

  • 고유한 번호
  • 서브넷 마스크 : 같은 네트워크망에 있는 각 pc 들을 묶어주는 울타리 : 네트워크 망의 규모 결정
    • 같은 서브넷마스크에 속해있을 땐 통신 가능
      ping 192.168.3.92                                                                                                                                                        ✔  base   11:07:46  
      PING 192.168.3.92 (192.168.3.92): 56 data bytes
      64 bytes from 192.168.3.92: icmp_seq=0 ttl=64 time=13.882 ms
      64 bytes from 192.168.3.92: icmp_seq=1 ttl=64 time=14.782 ms
      64 bytes from 192.168.3.92: icmp_seq=2 ttl=64 time=13.393 ms
      64 bytes from 192.168.3.92: icmp_seq=3 ttl=64 time=5.896 ms
      64 bytes from 192.168.3.92: icmp_seq=4 ttl=64 time=5.164 ms
      64 bytes from 192.168.3.92: icmp_seq=5 ttl=64 time=12.621 ms
      64 bytes from 192.168.3.92: icmp_seq=6 ttl=64 time=14.198 ms
      64 bytes from 192.168.3.92: icmp_seq=7 ttl=64 time=9.320 ms
      64 bytes from 192.168.3.92: icmp_seq=8 ttl=64 time=9.471 ms
      64 bytes from 192.168.3.92: icmp_seq=9 ttl=64 time=7.284 ms
      64 bytes from 192.168.3.92: icmp_seq=10 ttl=64 time=13.319 ms
      64 bytes from 192.168.3.92: icmp_seq=11 ttl=64 time=8.341 ms
      64 bytes from 192.168.3.92: icmp_seq=12 ttl=64 time=17.022 ms
      64 bytes from 192.168.3.92: icmp_seq=13 ttl=64 time=13.419 ms
      ^C
      --- 192.168.3.92 ping statistics ---
      14 packets transmitted, 14 packets received, 0.0% packet loss
      round-trip min/avg/max/stddev = 5.164/11.294/17.022/3.522 ms
  • 통신을 위해서는 각각 고유한 주소가 필요
  • 서브넷마스크가 다르면, 즉 외부와 통신을 하기 위해서는 라우터가 필요 → 게이트웨이: 외부와 통신을 하기 위한 관문의 역할을 해줌

IPv4 주소

192.168.3.100

  • 원래는 이진수로 표현, 보기 편하게 십진수로 표현된 것
  • 점으로 구분되는 각 자리당 8자리의 2진수가 필요(2^8) 총 4자리이므로 2^32, 한 43억개쯤 사용 가능
  • IPv6 은 2^128
  • 더 많은 IPv6 이 있는데도 안바꾸는 이유?
    • 이미 사용 중인 자원이 IPv4 이므로 호환이 안돼서 경제성의 이유로 보통 사용하지 않음

서브넷마스크를 만드는 방법?

192.168.3.100 - IP 주소 (IPv4)

192.168.3.101 - IP 주소 (IPv4)

[이진수 변환]

11000000.10101000.00000011/.01100100

11000000.10101000.00000011/.01100101

`공통영역(서브넷 마스크)    | 다른 영역(호스트 영역)`

[공통 영역을 전부 1로 채우고 다른 영역은 전부 0으로 채움]

11111111.11111111.11111111.00000000

: 255.255.255.0

서브넷마스크 표기법

  • 프리픽스 표기법 192.168.3.100**/24**
    • ip 주소 뒤에 1의 개수 표시
    • 여기서 24는 서브넷마스크 이진수의 1의 총 개수
  • 서브넷 주소(시작점) : 울타리(서브넷마스크) 자체를 ip 주소와 함께? 표현하고 싶다면? → 192.168.3.**0**/24 → 0의 시작점이 서브넷의 폭
  • 공통 영역이 어디까지인지 확인할 수 있음 172.31.0.0/16 → 공통 영역 점 2개까지, 그러므로 1의 개수 16개 → 255.255.0.0 → 저 공통 영역이 작을수록 네트워크 망은 더 크고 넓은 것

IP 주소의 첫 주소와 끝 주소는 사용할 수 없음. (256 -2 = 254 개 사용 가능?)

  • 첫자리? 못들음
  • 끝자리: 브로드캐스트, 확성기 목적

서브넷팅 - IP 주소 쪼개기

시작 주소는 서브넷주소이므로 ip주소에 포함 안됨

마지막 주소는 확성기 역할이므로 포함 안됨

192.168.3.0/26 0~63 (그러나 앞뒤로 2개는 사용 못하므로 62개 사용 가능)

192.168.3.64/26 64~127

192.168.3.128/26 128~191

192.168.3.192/26 192~255

192.168.3.0/31

→ 가능한 ip 주소인가?

→ 불가능. 왠지는 제대로 못들음

192.168.3.0/24

게이트웨이

192.168.0.1

  • 패킷, 데이터가 외부로 빠져나가기 위한 관문
  • 라우터에서 외부로 빠져나가는 부분의 IP 주소?

사설 네트워크

IPv4 에 따르면 2^32 = 43억개 가량. 당연히 다 소모가 될 것

그래서 우려먹기 위해 나온 개념이

  • 공인 IP - 기업, 국가
  • 사설 IP - 개인

→ 아예 처음에 IPv4 개발자들은 모자랄 거란 생각을 못함

→ 목적에 맞춰 IP를 분산시키자

클래스 라는 개념이 등장

클래스

전체: 0.0.0.0 ~ 255.255.255.255

절반씩 뎅겅뎅겅 잘라서 지정함(공인 IP?)

A 클래스: 국가 0.0.0.0~127.255.255.255

B 클래스: 기업 128.0.0.0~191.255.255.255

C 클래스: 개인 192.0.0.0~223.255.255.255

— (아래는 중요하지 않고 잘 사용x)

D 클래스: 연구? 224.0.0.0~239.255.255.255

E 클래스: 연구? 240.0.0.0~255.255.255.255

A 클래스(국가)에서 아래만큼을 떼서 사설로 쓰자

10.0.0.0~10.255.255.255

서브넷마스크: 10.0.0.0/8

→ 왜 8?

B 클래스에서도 떼어와서 사설로 쓰자

172.16.0.0~172.31.255.255

서브넷마스크: 172.16.0.0/12

→ 왜 12?

C 클래스에서도 떼어와서 사설로 쓰자

192.168.0.0~192.168.255.255

서브넷마스크: 192.168.0.0/16

→ 왜 16?

우리도 사설 네트워크를 쓰고 있음.

사설 네트워크를 쓰고 있어서 IP가 부족하지 않은 것

서브넷마스크 등장

💡

사설 네트워크를 사용하는데 어떻게 공인 IP와 통신할 수 있을까?
: NAT(Network Address Translation) 게이트웨이

라우터가 NAT 를 가지고 있음

안에선 사설이지만 나갈 땐 공인으로 바뀔 수 있게 함

그래서 공인IP 와 통신할 수 있게 됨

그럼 어떻게 돌아오느냐? NAT가? 기억해?놓음?

녹음 처음 부분 듣기

DHCP

: DHCP는 Dynamic Host Configuration Protocol의 약자로, 네트워크에 연결된 장치들에게 IP 주소와 기타 네트워크 설정을 자동으로 할당하는 프로토콜

  1. 처음엔 ip 주소가 없음

  2. ip 주소가 없는 상태로 서버를 먼저 찾음 68번 포트로

    → 마지막 주소 브로드캐스트로 찾음

  3. 서버가 그 브로드캐스트 요청을 받아서 다시 브로드캐스트로 응답을 보내는데, 그때 할당해줄 ip 주소를 yiaddr 에 적어서 넘겨줌.

  4. lifetime(ip 임대시간) 만큼 할당해줄 수 있다고 말해줌(실제로 할당x)

  5. 실제로 할당해달라고 다시 요청을 보내고, 이젠 브로드캐스트말고 다른 세션으로 바꾸자고 id 바꿀수도 있음

  6. 요청을 받아들이면 ip 주소를 할당받음

→ ip주소가 바뀐다는 것 자체가 갑자기 위치가 바뀌는 것이므로 DHCP의 클라이언트는 개인 폰, 컴퓨터 등이 대부분

⇒ 이 과정을 아래와 같을 때 실행

  • 네트워크에 처음 연결할 때
  • IP 임대 기간(lifetime)이 끝났을 때
  • 수동으로 IP 갱신(renew)할 때만 DHCP가 동작함.

다양한 서버

NGINX

HTTP

FTP

DB

DHCP

데이터링크 계층

  • 주파수, 충돌 제어
    • 충돌 제어 → CSMA/CD: 충돌방지기법
  • MAC 주소(물리적 주소)

  • lan 카드 고유번호(고정돼있음)

라우터는 3계층 장비

스위치는 2계층 장비(데이터링크, 물리) → ip주소 권한 x

스위치가 mac 주소를 기록해서 이 mac주소가 외부로 나가려고 한다고? 라우터에게 알려줌

IP 주소의 역할은 라우터에서 끝남

라우터에서 스위치로 넘겨줄 땐 IP 주소 사용 X, MAC 주소 사용

스위치가 각 컴퓨터를 찾을 땐 MAC 주소 사용

MAC 주소 테이블을 주기적으로 업데이트하는데? 만약 그 테이블에 없다면 브로드캐스트로 뿌려서 해당 컴퓨터를 찾는다?

그래서 스위치도 브로드캐스트를 많이 사용

profile
새싹 개발자

0개의 댓글