JIGGAG

나의 로드맵 - 네트워크

2020년 11월 8일

컴퓨터 공학에 대해서 공부한 적은 없어 스스로 로드맵을 그려보았고 시작하였다.


네트워크

패킷

  • 네트워크로 데이터를 주고 받기 위한 규칙으로 전송되는 데이터의 작은 조각
  • 큰 데이터를 작은 패킷으로 분할하여 전달하며 큰 데이터가 대역폭를 차지하는것 방지
  • 순서와 상관없이 전달되므로 데이터로 변환하기 위해 각 패킷에 순서 번호 포함

LAN

  • 특정 범위 안에서 연결된 네트워크

WAN

  • 넓은 범위에 구축된 네트워크

ISP

  • ISP를 통해 각각의 LAN을 연결하여 WAN 구축

DMZ

  • 사내에 구축된 네트워크를 외부에 공개하기 위한 네트워크
  • 내부망과 외부망 중간지점
  • 망분리된 상태에서 외부에 공개된 부분이 위치

프로토콜

  • 네트워크 통신규약

OSI 모델

  • 네트워크 통신 표준 규격 7계층으로 각 계층은 독립적으로 구성
  • 응용, 표현, 세션, 전송, 네트워크, 데이터링크, 물리계층

TCP/IP 모델

  • 4계층
  • 응용, 전송, 인터넷, 네트워크접속계층

캡슐화/역캡슐화

  • 전달하고자 하는 각각의 계층에 대한 정보를 헤더에 붙여서 전송(캡슐화)
  • 수신한 정보에서 헤더를 분리하여 데이터 형태 원복(역캡슐화)

VPN

  • 외부에서 사내망 접속을 위한 네트워크 구성화 암호화된 가상 사설망

물리계층

  • 0과 1로 전송되는 비트열을 전기신호로 변환하여 데이터 전송
  • 랜카드 - 0과 1로 전송되는 비트열을 전기신호로 변환 담당
  • 랜케이블 - 전기신호 전송 매체
  • 허브 - 전기신호 정형 및 증폭

데이터 링크 계층

  • 네트워크 장비간 신호를 주고받는 규칙을 정하는 곳
  • 이더넷 - 보내고자하는 목적지 정보를 추가하는 규칙
  • MAC주소 - 랜카드 고유 유니크한 번호 (TCP/IP 헤더에 데이터 송수신 MAC주소 포함)
  • 스위치 - 허브와 유사하나 데이터링크계층에서 동작하며 스위치에 연결된 포트들의 MAC주소를 저장
  • 전이중통신 - 동시에 데이터 송수진
  • 반이중통신 - 회선 하나로 송수신 번갈아가며 통신 (동시에 송신 요청한 경우 충돌 발생)
  • 충돌도메인 - 동시에 데이터 전송되는 경우 발생한 충돌이 미치는 범위
  • ARP - 목적지 MAC주소를 모르는 경우 IP로 MAC주소를 찾는 프로토콜

네트워크 계층

  • 다른 네트워크에 있는 목적지로 데이터 전송
  • 라우터 - 다른 네트워크를 찾아가는 경로 탐색
  • IP주소 - 네트워크 식별 주소
  • IP패킷 - 헤더 + 데이터
  • 네트워크ID - 어떤 네트워크 인지
  • 호스트ID - 네트워크 내부에서 어떤 장비 인지
  • 네트워크 주소 - 각각의 네트워크를 구분하며 192.168.1.1~6인 IP의 네트워크 주소는 192.168.1.0
  • 브로드캐스트 주소 - 네트워크 안에 연결된 전체 장비에 데이터 전송할 수 있으며 192.168.1.255
  • 🚨서브넷 - 네트워크를 분할하여 브로드캐스트 전송과 같은 일괄 전송 시 한번에 보내는 범위를 줄이고자
  • 서브넷마스크 - 네트워크ID와 호스트ID를 식별할 수 있도록 하며 같은 네트워크인지 판단
  • 라우터 - 게이트웨이 설정을 통해 서로 다른 네트워크와 통신
  • 라우팅 - 최적의 경로로 데이터 전송

전송 계층

  • 목적지에 신뢰할 수 있는 데이터를 전송하기 위해 오류 점검 및 어떤 애플리케이션을 실행해야하는지 판단
  • 연결형통신 - 신뢰성과 정확성을 중요시하며 데이터를 전송하는데 확인작업 필요
  • 비연결형통신 - 효율성을 중요시하여 데이터 주는대로 수신

TCP

  • 연결형 통신에서 사용되는 프로토콜
  • 데이터 순서를 전송 요청한 곳에 물어보며 다음에 오는 데이터 순서를 반환
  • 매번 질문해야하므로 오래걸리며 이에 한번에 세그먼트를 여러개 받아서 버퍼에 저장해두고 처리

UDP

  • 비연결형 통신에서 사용되는 프로토콜
  • 데이터를 빠르게 전송하는 목적
  • 브로드캐스트로 같은 LAN에 있는 곳에 데이터 일괄 전송

응용 계층

  • 사용자의 요청을 전달하기 위해 서버가 이해할 수 있는 데이터로 변환하여 전송
  • 응용계층 프로토콜 - 클라이언트와 서버의 통신을 위해 사용 (HTTP, FTP, SMTP, POP3, DNS)

결론

피시방에서 친구랑 스타크래프트를 할때 베틀넷이 아니라 UDP로 들어가서 만나고는 했었다. 이게 무슨말인지는 모르겠지만 여기서 하면 같이 할 수 있다기에 그냥 했었다. 빠른 반응속도와 컨트롤이 필요한 프로게이머들의 경기는 배틀넷이 아닌 UDP에서 진행되었다. 그냥 배틀넷은 느리니깐 다른 방법 중 하나일거라고 생각했다.

그렇게 이름을 지은것은 정말 명확한 네이밍이었으나 당시 수많은 유저들은 이게 이런 네트워크 용어라는걸 알고 있었을까 하는 생각을 해본다. (나만 몰랐을지도 모른다. 수년간 플레이했지만 그걸 찾아볼 생각을 해보지도 않았다...)

네트워크 공부하다 추억에 빠진 🎮

참고

모두의 네트워크