3계층의 기능

3계층에서 하는 일

  • 다른 네트워크 대역, 즉 멀리 떨어진 곳에 존재하는 네트워크까지 어떻게 데이터를 전달할지 제어
  •  LAN과 LAN을 이어줌
  • 발신에서 착신까지의 패킷의 경로를 제어

3계층에서 쓰는 주소

WAN에서 통신할 때 사용하는 IP 주소

  • IPv4 주소: 현재 PC에 할당한 IP 주소
  • 서브넷 마스크: IP 주소에 대한 네트워크의 대역을 규정
  • 게이트웨이 주소: 외부와 통신할 때 사용하는 네트워크의 출입구

 

3계층 프로토콜

ARP 프로토콜

IP 주소를 이용해 MAC 주소를 알아옴

IPv4 프로토콜

WAN에서 통신할 때 사용

ICMP 프로토콜

서로가 통신되는지 확인할 때 사용


 

일반적인 IP 주소

Classful IP 주소

  • 초기에 사용
  • 낭비가 심함
    • 100.0.0.0 ~ 100.0.0.31 까지 한 네트워크 대역이 사용하면, 그 대역의 나머지 주소는 사용할 수가 없음
  • 일반적으로 c 클래스 많이 사용

192.168.0.189 는 총 4 byte = 32 bit로 이루어져 있음

따라서 한 칸(위에서 192에 해당하는 부분)은 8bit로 구성

2^8 = 256 => 십진수로 표현할 경우, 0부터 255까지 숫자 표현 가능

Classless IP 주소

  • class에 맞지 않게 사용하면 다양한 주소가 사용 가능 - 어디서든 잘라쓸 수 있게
  • 서브넷 마스크:
    • 클래스풀한 네트워크 대역을 나눠주는데 사용하는 값
    • 어디까지가 네트워크 대역인지  / 어디서부터가 호스트인지 구분하는데 사용하는지 지정
    • 32 bit (4 byte)
    • 255.255.255.192  -> 11111111.11111111.11111111.11000000
    • 2진수로 표기했을 때, 1로 시작, 1과 1사이에는 0이 올 수 없음
    • 1부분 네트워크 대역 / 0부분 해당 네크워크 대역의 컴퓨터를 구분하는 값
    • 위의 예시에는 하나의 네트워크 대역에 64대의 컴퓨터를 구분할 수 있음

사설 IP와 공인 IP

  • 공인 IP 1개당 2^32개의 사설 IP
  • NAT(Network Address Translation): 사설 IP <-> 공인 IP (IP 변환 기능)

위 공인 IP / 아래 사설IP

  • 실제 인터넷 세상에서는 공인 IP로만 통신
  • 외부 네트워크 대역에서는 사설 IP 대역이 보이지 않는다
  • 사설 IP 대역 내에서 공유기가 처리: 보낸 요청을 기억했다가 응답이 돌아올 경우 다시 돌려줌
  • 그래서 요청을 먼저 받고 응답해야하는 서버 같은 경우는 대부분 공인 IP 를 사용 

 


특수한 IP 주소

0.0.0.0

  • Wildcard
  • 나머지 모든 IP

127.0.0.X

  • 자기 자신을 뜻하는 주소

게이트웨이 주소

공유기의 IP

어딘가로 가려면 일단 여기로 (외부 세상으로 나가는 문)

일반적으로 네트워크 대역에서 사용할 수 있는 가장 작은 / 가장 큰 IP 주소


실습

1. 내 PC의 IP 주소 확인해보기

cmd에 커맨드 입력

ipconfig /all

네이버에 "내 IP 주소" 검색

 

참고자료

https://www.youtube.com/watch?v=s5kIGnaNFvM&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=6

위 강의를 보고 정리한 글입니다.

 

2 계층에서 하는 일

2 계층의 기능

  • 하나의 네트워크 대역, 즉 같은 네트워크 상에 존재하는 장비들끼리 보내는 데이터를 전달
  • 추가적으로 오류제어, 흐름제어 수행

2 계층

2 계층의 네트워크 크기

  • 2 계층은 하나의 네트워크 대역 LAN에서 통신할 때만 사용
  • 다른 네트워크와 통신하기 위해서는 3 계층이 도와줘야함
  • 3 계층의 주소와 3 계층의 프로토콜을 이용하여야만 다른 네트워크와 통신이 가능

 

2 계층에서 사용하는 주소

물리적인 주소 (MAC 주소)

  • LAN에서 통신할 때 사용하는 MAC 주소
  • 16진수로 구성
  • OUI: IEEE에서 부여하는 일종의 제조 회사 식별 ID
  • 고유번호: 제조사에서 부여한 고유번호


2 계층의 프로토콜

Ethernet 프로토콜

  • 빨간색 친 영역: 3 + 1/2 = 14byte
  • Destination Address = 6byte = 목적지 MAC 주소 (16진수 * 12개)
  • Source Address = 6byte = 출발지 MAC 주소
  • Ethernet Type: 페이로드 안의 내용(프로토콜)을 미리 알려주는 역할 - 전기적 신호 분석 용이 
    • 상위 프로토콜이 IPv4일 경우: 0 8 0 0 이 오게 됨
    • 상위 프로토콜이 ARP일 경우: 0 8 0 6 이 오게 됨

 


실습

1. 내 PC의 MAC 주소 확인해보기

cmd 열고 아래 커맨드 입력

ipconfig /all

 

로컬 영역 연결 / 물리적 주소 확인

 


2. Ethernet 프로토콜 캡쳐

Wireshark 실행

  • Ethernet II 의 헤더 부분의 14자리 16진수 확인 가능
  • 앞의 6글자: 목적지 MAC 주소 + 중간 6글자: 출발지 MAC 주소 + 끝 2글자: Ethernet type
  • 출발지 MAC 주소와 실습 1의 물리적 주소가 같은 것 확인 가능
  • 끝 2글자가 08 00이므로 뒤에 IPv4가 오는 것 확인 가능

 

참고자료

https://www.youtube.com/watch?v=HkiOygWMARs&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=5

위 강의를 보고 정리한 글입니다.

 

Problem

NodeJS에서 댓글 삭제 시, 해당 글에서 댓글의 정보를 담고 있는 배열에서도 해당 댓글을 삭제 하기 위해서 pop을 사용하였더니, 가장 최근에 작성된 댓글이 삭제되는 버그를 확인했다.

video.comments.pop(comment._id);

Scratch

pop() 메서드는 input에 상관 없이 배열에서 마지막 요소를 제거하고 그 요소를 반환합니다.

따라서 배열에 있는 특정 요소를 제거하고 싶을 경우, 반복문을 사용하여 인덱스를 순회하면서 해당 요소가 나왔을 경우, 해당 인덱스에 해당하는 요소를 splice() 메서드를 사용하여 제거하는 방법이 있다.

  for (let i = 0; i < video.comments.length; i++) {
    if (String(video.comments[i]) === String(comment._id)) {
      video.comments.splice(i, 1);
      i--;
    }
  }

 

'Javascript > tips' 카테고리의 다른 글

[JS] querySelectorAll 에 addEventListener 하기  (0) 2023.07.25

네트워크 모델 종류

TCP/IP 모델

  • 1960년대 말 미국 방성의 연구에서 시작, 1980년대 초 프로토콜 모델로 공개
  • 현재 인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 쓰이는 프로토콜(통신 규약)의 모음

 

OSI 7 Layer

  • 1984년 네트워크 통신을  체계적으로 다루는 ISO에서 표준으로 지정한 모델
  • 데이터를 주고 받을 때 데이터 자체의 흐름을 각 구간별로 나눠 놓은 것

OSI 7 Layer 모델의 계층별 프로토콜


두 모델 비교

공통점

  • 계층적 네트워크 모델
  • 계층 간 역할 정의

차이점

  • 계층 수
  • TCP/IP - 프로토콜 기반 / OSI - 역할 기반
  • TCP/IP - 데이터 전송 기술 특화 / OSI - 통신 전반에 대한 표준

네트워크를 통해 전달되는 데이터, 패킷

패킷이란?

  • 네크워크 상에서 전달되는 데이터를 통칭
  • 네트워크에서 전달하는 데이터의 형식화된 블록 (여러 프로토콜들로 캡슐)
  • 패킷 = 제어 정보 + 사용자 데이터
  • *사용자 데이터는 페이로드라고 하기도 함

Network Packet - https://networkencyclopedia.com/network-packet/
패킷 구조

  • 페이로드 - 실제 내가 보내고자 하는 데이터
  • 헤더 - 붙을 수도 있음
  • 풋터- 일반적으로 거의 사용 x

패킷 형태 예시

패킷을 이용한 통신 과정 - Encapsulation (캡슐화)

여러 프로토콜을 이용해서 최종적으로 보낼 때, 패킷을 만드는 과정

상위 계층에서 하위 계층으로 내려가면서 프로토콜을 붙이는 것을 확인할 수 있음

 

패킷을 이용한 통신 과정 - Decapsulation (디캡슐화)

패킷을 받을 때, 프로토콜을 확인하면서 데이터를 확인하는 과정

계층별 패킷의 이름 Protocol Data Unit (PDU)

  • 세그먼트: 4계층의 PDU (TCP + 데이터)
  • 패킷: 3계층의 PDU (IPv4 + 데이터)
  • 프레임: 2계층의 PDU (Ethernet + 데이터)

실습

프로토콜의 캡슐화된 모습과 계층별 프로토콜 확인

 Wireshark

Wireshark에서 arp를 검색 후, 하나를 확인

참고자료

https://www.youtube.com/watch?v=y9nlT52SAcg&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=4

위 강의를 보고 정리한 글입니다.

Problem

생성된 댓글 마다 삭제 버튼을 만드려고 video--comment--btn__delete 클래스에 해당하는 버튼마다 이벤트를 달아주려고 했더니 아래와 같은 에러가 발생하는 것을 확인했다.

const deleteBtn = document.querySelectorAll(".video--comment--btn__delete");

if (deleteBtn) {
  deleteBtn.addEventListener("click", handleDelete);
}

Scratch

querySelectorAll로 받은 결과를 console.log해보니, NodeList로 받는 것을 확인할 수 있었다.

NodeList안에 있는 요소를 반복문으로 하나하나 eventListener를 달아주면 된다!

if (deleteBtn) {
  deleteBtn.forEach((item) => {
    item.addEventListener("click", handleDelete);
  });
}

 

'Javascript > tips' 카테고리의 다른 글

[JS] 배열에서 특정 요소 삭제하기  (0) 2023.07.26

네트워크란?

  • 노드들이 데이터를 공유할 수 있게 하는 디지털 전기 통신망의 하나
  • 분산되어 있는 컴퓨터를 통신망으로 연결한 것을 의미
  • 네트워크에서 여러 장치들은 노드 간 연결을 사용하여 서로에게 데이터 교환
  • 노드: 네트워크에 속한 컴퓨터 또는 통신 장비를 의미

인터넷이란?

  • 문서, 그림 영상과 같은 여러가지 데이터를 공유하도록 구성된 세상에서 가장 큰 전세계를 연결하는 네트워크
  • www는 인터넷을 통해 웹과 관련된 데이터를 공유하는 것, 인터넷과는 다른 개념 

네트워크의 분류

크기에 따른 분류

  • LAN: Local Area Network
  • WAN: Wide Area Network
  • MAN: Metropolitan Area Network
  • VLAN, CAN, PAN, ... etc

LAN

가까운 지역을 하나로 묶은 네트워크

WAN

멀리 있는 지역을 한데 묶은 네트워크

가까운 지역끼리 묶인 LAN과 LAN을 다시 하나로 묶은 것

연결 형태에 따른 분류

  • Star형: 중앙 장비에 모든 노드가 연결
  • Mesh형: 여러 노드들이 서로 그물처럼 연결
  • Tree형: 마치 나무의 가지처럼 계층 구조로 연결
  • 링형, 버스형, 혼합형, ... etc

Star형

중앙 장비에 모든 노드가 연결

중앙 장비가 고장날 경우, 모든 장비 정지

Mesh형

여러 노드들이 서로 그물처럼 연결

한 곳과 연결이 끊겨도 다른 곳의 연결은 유지

https://www.submarinecablemap.com/

혼합형

실제 인터넷은 여러 형태를 혼합한 형태


네트워크의 통신 방식

유니캐스트

특정대상과 1:1로 통신

멀티캐스트

특정 다수와 1:N으로 통신

브로드캐스트

같은 네트워크 대역에 있는 모든 사용자와 통신

네트워크 프로토콜

프로토콜이란?

일종의 약속, 형식

네트워크에서 노드와 노드가 통신할 때, 어떤 노드가 어느 노드에게 어떤 데이터를 어떻게 보내는지 작성하기 위한 양식

프로토콜 종류

  • 가까운 곳: Ethernet 프로토콜 (Mac 주소)
  • 멀리 있는 곳: ICMP, IPv4, ARP (IP 주소)
  • 여러가지 프로그램으로 연락: TCP, UDP (포트 번호)
  • 실제로는 여러가지 프로토콜들로 캡슐화된 패킷 상태로 사용됨

실습

구글과 나는 어떻게 연결되어 있을까?

시작 - cmd
tracert 8.8.8.8

  • 8.8.8.8 은 구글의 dns 서버의 ip 주소
  • 내 컴퓨터가 구글 서버에 가기 위해 거쳐간 네크워크 LAN 대역대를 의미

Wireshark 설치

프로토콜 직접 확인

 

 

참고자료

https://www.youtube.com/watch?v=Av9UFzl_wis&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi

위 강의를 보고 정리한 글입니다.

+ Recent posts