프로그래밍/CS

네트워크 (1)

plutodev 2025. 3. 8. 00:31

컴퓨터 네트워크 : 여러 장치들이 서로 정보를 주고받을 수 있는 통신망

인터넷 => 네트워크끼리 연결한 네트워크

 

컴퓨터 네트워크 구성 요소

  • 노드 : 종단 시스템, 호스트 => 메세지를 최초로 송신, 생성하는 대상, '주소'를 통해 위치 특정
    • 유니캐스트 : 1 대 1 통신
    • 브로드캐스트 : 네트워크 전체에 메세지 전송
    • 멀티캐스트 : 네트워크 내의 특정 그룹에만 메세지 전송
    • 클라이언트 : 요청을 보내는 호스트
    • 서버 : 응답을 보내는 호스트
  • 메세지 : 주고 받는 정보 (e.g. 웹페이지, 사진, 동영상 등)
  • 간선(통신 링크)
    • 유선 케이블 (트위스티드 페어 케이블, 광케이블)
    • 무선 (와이파이)

 

LAN : 근거리를 연결한 네트워크

WAN : 원거리를 연결한 네트워크 => ISP에 의해 구축


 

패킷 교환 네트워크 : 주고받는 정보를 패킷(packet) 단위로 주고받는 네트워크 => 오늘날 주로 사용

 

회선 교환 네트워크 : 정해신 회선(circuit) 으로만 통신하는 네트워크, 사전에 연결 수립 작업 진행

=> 다른 호스트는 도중에 끼어들 수 없음

[전송률을 보장한다는 장점이 있지만, 회선 이용률이 저하된다는 단점이 있음]

 

패킷 구성 요소

  • 헤더 (header) : 패킷에 붙일 부가 정보
  • 페이로드 (payload) : 패킷으로 보낼 정보
  • 트레일러 (trailer) : 패킷 뒤에 붙일 부가 정보, 없는 경우도 있음

 

프로토콜 (protocol) : 장비 간 정보를 주고받을 규칙이나 방법, 호스트 간에 합의된 의사소통 규칙

[헤더의 내용은 프로토콜의 영향을 받음 => 프로토콜이 달라지면 헤더의 내용이 달라질 수 있음]

 

네트워크 참조 모델 : 송수신 과정에서의 정형화된 단계

 

OSI 7계층 모델 : 이론적인 모델

  • 물리 계층
  • 데이터링크 계층
  • 네트워크 계층
  • 전송 계층
  • 세션 계층
  • 표현 계층
  • 응용 계층

 

TCP/IP 모델 : 구현에 목적이 있는 모델

 

캡슐화 (encapsulation) : 상위 계층으로부터 내려받은 패킷을 페이로드로 삼아, 상위 계층으로부터 받은 정보에 프로토콜에 맞는 헤더 (혹은 트레일러)를 덧붙이는 것

 

역캡슐화 (decapsulation) : 캡슐화 과정에서 붙인 헤더 (및 트레일러)를 각 계층에서 제거하는 것


트래픽 : 특정 시간 동안 네트워크 내 정보 흐름

 

전송속도 => 기대 가능한 속도 표기

  • bps(b/s, bits per second)
  • Mbps(Mb/s, Megabits per second)
  • Gbps(Gb/s, Gigabits per second)

 

처리율 (throughput) : 단위 시간 동안 네트워크를 통해 전송되는 데이터 양 => 전송속도와 단위 동일함

 

대역폭 (bandwidth) : 네트워크 트래픽을 수용할 수 있는 용량, 송수신 가능한 최대 데이터 양

 

패킷 손실 (packet loss) : 얼마나 많은 패킷이 송수신 과정에서 손실되었는지에 대한 지표

 


이더넷 : 현대 유선 LAN에서 가장 대중적으로 사용되는 기술 => 국제 표준 : IEEE 802.3

  • 물리 계층 : 이더넷으로 통신이 가능한 케이블
  • 데이터 링크 계층 : 이더넷 프레임
    • 이더넷 표준 규격이 달라지면 케이블, 전송 속도 달라질 수 있음

이더넷 프레임 : 이더넷 네트워크에서 주고받는 데이터 형식

헤더 페이로드 트레일러
프리앰블 목적지 MAC 주소 송신지 MAC 주소 이더타입/길이 데이터 FCS
8 바이트 6 바이트 6 바이트 2 바이트 46~1500 바이트 4 바이트

 

프리앰블 : 이더넷 프레임 시작을 알리는 비트열, 송수신 간의 동기화 역할

목적지/송신지 MAC 주소 : 물리적 주소, 네트워크 장치(NIC) 마다 할당된 고유한 주소 => 일반적으로 변경 불가능

  • NIC (네트워크 인터페이스 카드) : 연결 매체를 통해 받은 신호를 컴퓨터에게 전달함 => 네트워크에 연결하지 위한 하드웨어

이더타입/길이

  • 1536 이상일 경우 : 이더타입 (이 프레임이 무엇을 캡슐화했는지)
  • 1500 이하일 경우 : 프레임 크기

페이로드 : 운반할 데이터

FCS : 오류 검출을 위한 CRC 값이 명시되는 필드


허브 (hub) : 물리 계층의 장비, MAC 주소 사용 X, 반이중통신 지원 => 주소 개념이 없이 모든 포트로 정보 전송

  • 반이중 통신 (half-duplex) : 송신 혹은 수신이 한 번에 한 번만 이루어지는 통신 => 동시에 데이터 전송 시 충돌(collision) 발생
  • 전이중 통신 (full-duplex) : 송신과 수신이 동시에 이루어질 수 있는 통신

 

CSMA/CD : 반이중 이더넷의 충돌 해결

  • CS (Carrier Sense) : 캐리어(반송파) 감지 => 메세지 전송 전 현재 전송 중인 것이 있는지 확인
  • MA (Multiple Access) : 다중 접근 => 두 개 이상의 호스트가 동시에 네트워크에 접근 => 충돌 발생
  • CD (Collision Detection) : 충돌 감지 => 잼 신호 보낸 뒤 임의의 시간 동안 대기 후 재전송

 

스위치 : 전달받은 신호를 목적지 포트로만 내보내고, 목적지 호스트가 연결된 곳만 충돌 도메인, 전이중 모드로 통신, 데이터 링크 계층 장비 => MAC 주소 활용 => CSMA/CD 불필요

 

MAC 주소 학습 기능 : 포트에 연결된 호스트와 MAC 주소의 관계를 기억하는 스위치 기능

  • MAC 주소 테이블 : 각 포트에 연결된 MAC 주소 저장
  • 학습과정
    1. 플러딩 : 허브와 같이 모든 포트에 프레임 전송
    2. 포워딩/필터링 : 어떤 포트에 내보낼지(포워딩), 내보내지 않을지(필터링) 결정
    3. 에이징 : 특정 시간이 지나면 MAC 주소 테이블 항목 삭제

 

VLAN (Virtual LAN) : 가상의 LAN, 스위티에서 제공되는 기능 => 물리적 위치에 관계없이 특정 LAN에 속할 수 있음

=> 하나의 스위치에 같이 연결되어 있어도 연결된 VLAN이 다르면 브로드캐스팅으로 전송하더라도 다른 VLAN에 연결된 기기에는 데이터 전송 X

  • 포트 기반 VLAN (정적 VLAN) : 연결된 스위치 포트 번호를 기반으로 분리하는 VLAN
  • MAC 주소 기반 VLAN (동적 VLAN) : MAC 주소를 바탕으로 분리하는 VLAN