내가 보려고 정리하는 네트워크 공부

이형준·2023년 5월 23일
0

TIL

목록 보기
28/37

네트워크란? 🕸️

network: 상호 연결되어 있는 것으로 이루어진 그룹이나 시스템.
상호 연결되어 있는 것을 , 그들간의 관계를 으로 표시한 것

Ex) 뉴런과 시냅스(neural network), 사람과 친분관계(social network) 등등..

내가 공부할 것은 이중에서도 컴퓨터랜선으로 이루어진 컴퓨터망!

인터넷이란? 🌍

inter-net: inter-(사이) + network(점들을 선으로 연결한 덩어리)
(점들을 선으로 연결한) 덩어리 간의 연결!

IP란? 📮

Internet Protocol: 네트워크를 연결하는 프로토콜(약속)

IPHourglass 모델의 허리 역할을 한다. 어떤 물리적 연결 기술이든 IP만 구현하면 다양한 서비스(소프트웨어)를 돌릴 수 있고, 어떤 서비스를 구현하더라도 IP위에서만 구현하면 다양한 물리적 연결 기술로 된 네트워크에서 동작 가능하다는 의미

계층화 🍰

장점

  • 단순화: 각 계층은 자기가 제공할 기능만 생각하면 된다.

  • 문제 해결의 편의성: 문제가 있는 계층만 해결해주면 되고, 문제를 단순화 할 수 있음.

  • 진화의 편의성: 각 계층은 바로 위 계층에 알려준 "어떻게 쓰는지"만 유지하면 됨. 이외에는 자유롭게 기능을 개선/추가할 수 있음

단점

  • 잠재적 비효율성: 각 계층을 넘나드는 과정이 비효율적일 수 있고, 여러 단계의 계층을 Jump하는 과정이 복잡할 수 있다.

OSI 7계층 모형

컴퓨터 네트워크에서 표준화된 프로토콜을 계층적으로 나누어 설명하는 개념적인 모델(실재X)

  • TCP/IP에서의 OSI 계층 모형 적용

계층 구조에서 데이터를 처리하는 방법은 몇 겹의 포장 박스를 연상하면 쉽다. 데이터를 송신하는 측은 보내는 사람, 받는 사람을 기재한 더 큰 박스에 반복적으로 포장하여 큰 박스 형태로 송신하고, 수신하는 사람은 바깥쪽 박스를 제거하고 작은 박스를 꺼내 위 계층에 전달하는 방식으로 수신한다.

그렇다면 포장 시 각 박스에 기재하는 내용인 Port, IP, MAC은 어떻게 알아내야 할까? Port는 미리 정해놓고 쓰고, IP는 정해진 IP를 사용하거나 서버의 이름으로부터 알아낸다. MAC주소는 ARP라는 프로토콜을 사용하여 알아냄

Gateway 🚪

입출입을 위한 관문! 접속할 서버가 다른 네트워크에 있다면? -> Gateway에 던져 놓고 맡긴다.

각 구간끼리 어떠한 데이터를 적어서 포장해주고, 포장한 박스를 게이트웨이에 던져주는 것은 OK. 그렇다면 A 게이트웨이는 어떻게 B 게이트웨이로 보내는 선택을 할까? -> RoutingForwarding

  • Routing: 길찾기! 내가 선택 가능한 경로가 어떤 게 있나? -> 속도만을 고려X 정책 기반!

  • Forwarding: 전송하기! 선택 가능한 경로 중 하나를 골라서 데이터를 전송한다.

Latency와 Jitter 🐢

Latency: a.k.a 지연, 딜레이 등등.. 높아지면 반응이 늦어진다는 느낌 줌

Jitter: Latency의 변화 정도 높아지면 자꾸 핑이 튄다는 느낌을 줌

Switch 🔦

네트워크에서의 Switch는 근거를 통해 "이리로 가라" 명령-> 트래픽의 방향을 전환하는 것! 판단 근거는 해당 계층의 Header가 됨. 또한 해당 계층의 숫자를 붙여서 L(계층 숫자) 스위치라고 한다.

Ex) IP Packet 의 목적지 정보에 따라 출력 포트를 선택하는 장비가 있다. 이
장비는 같은 목적지라도 해당 패킷의 출처(=송신자) 가 사내인지 아니면
사외인지에 따라 다시 출력 포트를 조정한다. 이 장비는 넓게 봐서 어떻게
부르면 좋을까?

A. L3 switch
부연. 방화벽 장비 혹은 침입 탐지 시스템 (IDS; Intrusion Detection System)
등이 여기에 해당한다. 그들이 크게는 L3 스위치 기능을 가지고 있는 것이라는
것에 주목할 것

  • Switch는 기능을 의미하는 것이지 물리적인 장치를 뜻하는 것이 아님을 유의! Cloud에선 대부분 소프트웨어를 통해 스위칭 기능을 제공한다.

Header 👨‍🦲

각 계층의 프로토콜이 할 수 있는 것과 할 수 없는 것은 무엇에 의해 결정될까? -> 헤더

검은색 부분이 Header로, 각 프로토콜에서 전달하는 데이터는 헤더+데이터 형태

포장 박스에 쓰는 내용인 송신자 주소, 수신자 주소가 헤더에 들어간다. 이외에도 다른 정보도 포함!

Ethernet Frame: 데이터 링크 계층에서 사용되는 네트워크 프레임 형식으로, 가장 널리 사용되는 유선 LAN 기술 중 하나이다.

동기화를 위한 프리앰블, 목적지와 출발지 MAC주소, 유형/길이, 전송 데이터, 패딩, 오류 검출을 위한 체크섬 값으로 이루어져 있다.

최대 데이터는 1500B, 최대 용량을 초과한 데이터는 상위 계층에서 쪼개서 보낸다.

L3: Network Layer: IP Packet(Datagram) 📜

IP Packet: 네트워크 계층에서 사용되는 네트워크 프레임 형식으로,

IP Packet 의 최대 길이는 Header포함 64KB -> 64KB 이상의 데이터는 상위 계층에서 쪼개서 보낸다.

Header 영역의 에러에 한해 제한적으로 에러 검출이 가능하고(효율성 문제), 전송을 보장하지 않는다.

L3: Transport Layer: UDP, TCP 📩

User Datagram Protocol(UDP)

하위 프로콜인 IP를 전송 계층에서 사용하는 프로토콜로, IP 패킷 내부에 포함된 데이터를 전송하는 역할을 담당한다.

  • 속도와 대역폭에서 이점

  • 전송과 순서를 보장하지 않음

Transmission Control Protocol(TCP)

UDP와 같이 전송 계층에서 데이터를 전송하기 위한 프로토콜이다.

  • 전송과 순서를 보장 (손실 검사, 손실시 재전송)

  • 흐름 제어와 혼잡 제어(속도를 천천히 늘려가며 전송) 내장

  • 연결 확인과 종료 작업 필요 (연결 기반)

  • 느린 속도

요약하면,

누락 되어도 상관없고 가급적 빨리 전송되어야 하는 것 -> UDP (대신 패킷에 충분한 데이터를 넣어줌)
누락되면 안되는 데이터를 안정적으로 전송해야 한다? -> TCP

Client Server vs. Peer-to-Peer 🆚

클라이언트-서버

사용자들이 서비스를 요청하는 클라이언트와 해당 요청을 처리하고 콘텐츠를 제공하는 서버로 구성

서버는 대개 고성능의 컴퓨터로 구성되고, 클라이언트는 널리 보급된 장치들을 사용된다. P2P방식보다 보편적으로 널리 사용되는 방식

피어-피어

사용자들 간에 직접적인 연결을 통해 데이터를 공유하는 방식, 각각의 사용자는 동시에 클라이언트와 서버 역할을 수행할 수 있다.

토렌트 파일 공유가 대표적인 P2P 방식

NAT 🦜

Network Address Translation: 이름에서 알 수 있듯 네트워크 주소를 통역해주는 것

사설 IP는 특정 네트워크 안에서만 유효하기에, 이 IP를 달고 있는 IP Packet 이 해당 네트워크를 벗어나기 위해서는 공용 IP or 목적지의 사설 IP로 변환해 줄 필요가 있다.

그 역할을 하는 것이 NAT 장치(소프트웨어도 가능)이고, NAT는 사설 네트워크와 공용 네트워크 간의 통신을 용이하게 하고, IP주소 부족 문제를 완화하는 데에 쓰인다.

profile
저의 미약한 재능이 세상을 바꿀 수 있을 거라 믿습니다.

0개의 댓글