1장 네트워크 시작하기

2022. 11. 28. 00:24·Tech Books & Lectures/Network_IT 엔지니어를 위한 네트워크 입문
1.1 네트워크 구성도 살펴보기
1.2 프로토콜
1.3 OSI 7계층과 TCP/IP
1.4 OSI 7계층별 이해하기
1.5 인캡슐레이션과 디캡슐레이션

 

1.1 네트워크 구성도 살펴보기

서비스를 받는 입장: 집에서 인터넷에 접속하는 경우, 회사에서 인터넷에 접속해 업무를 하는 경우

서비스를 제공하는 입장: 클라우드나 데이터 센터, 회사 기계실에 서버를 놓고 고객들이나 회사 내부 직원을 위한 서비스를 제공하는 경우

 

홈 네트워크 구성

  • 물리적 연결: 모뎀, 공유기, 단말 간
  • 무선 연결: 무선 랜카드와 무선 신호를 보낼 수 있는 매체(공기)
  • 유선 연결: 유선 랜카드(이더넷 랜카드: 일반적으로 보드에 내장), 랜 케이블(랜선)

 

데이터 센터 네트워크

  • 안정적인 서비스 제공을 위해 다양한 이중화 기술 사용
  • 많은 서버와 서비스가 한 네트워크에 연결되어 있어 높은 통신량을 수용할 수 있어야 함. 이를 위해 고속 이더넷 기술이 사용됨.

1.2 프로토콜

최근, 이더넷-TCP/IP 기반 프로토콜들이 기준이 되고 있는 추세이다.

  • 물리적 측면: 데이터 전송 매체, 신호 규약, 회선 규격 등. 이터넷이 널리 쓰인다.
  • 논리적 측면: 장치들끼리 통신하기 위한 프로토콜 규격. TCP/IP 가 널리 쓰인다.

1.3 OSI 7계층과 TCP/IP 

OSI 7계층이 네트워크 동작을 나누어 이해하고 개발하는데 많은 도움이 되므로 네트워크의 주요 레퍼런스 모델로 활용되고 있지만,

현재는 대부분의 프로토콜이 TCP/IP 프로토콜 스택 기반으로 되어 있다.

애플리케이션 개발자는 애플리케이션 계층 프로토콜을 개발할 때 하위 데이터 플로 계층을 고려하지 않고 데이터를 표현하는 데 초점을 맞추고, 반대로 네트워크 엔지니어는 이 부분에 대해서 일반적으로 심각하게 고려하지 않는다. 이런 이유로 

  • 애플리케이션 개발자는 하향식 형식으로 네트워크를 바라보고,
  • 네트워크 엔지니어는 상향식 형식으로 네트워크를 인식한다. 

 

1.4 OSI 7계층별 이해하기

1계층(피지컬 계층)

1계층은 물리 계층으로 물리적 연결과 관련된 정보를 정의함. 주로 전기 신호를 전달하는 데 초점을 두는데, 주요 장비로 허브(Hub), 리피터(Repeater), 케이블(Cable), 커넥터(Connector), 트랜시버(Tranceiver), 탭(TAP) 이 있다.

 

2계층(데이터 링크 계층)

2계층은 전기 신호를 모아 사람이 알아볼 수 있는 데이터 형태로 처리한다. 1계층과 달리 전기 신호를 정확히 전달하기보다 주소 정보를 정의하고 정확한 주소로 통신이 되도록 하는 데 초점을 둔다.

주소 체계가 생기면서 여러 통신을 한꺼번에 이루어지는 것을 구분하는데,  주소 체계가 생긴다는 의미는 동시에 여러 명과 통신할 수 있다는  것이므로 받는 사람이 현재 데이터를 받을 수 있는지 확인하는 작업부터 필요하다. 이 역할을 플로 컨트롤(Flow Control) 이라 부른다.

비교적 간단한 2계층의 플로 컨트롤

2계층에서 동작하는 네트워크 구성 요소는 네트워크 인터페이스 카드와 스위치 이다.

2계층의 가장 중요한 특징은 MAC 주소라는 주소 체계가 있다는 것이다.

여기에서 네트워크 인터페이스 카드와 스위치 모두 MAC 주소를 이해할 수 있고, 그 중 스위치는 MAC 주소를 보고 통신해야 할 포트를 지정해 내보내는 능력이 있다.

 

  1. 전기 신호를 데이터 형태로 만든다.
  2. 목적지 MAC 주소와 출발지 MAC 주소를 확인한다.
  3. 네트워크 인터페이스 카드의 MAC 주소를 확인한다.
  4. 목적지 MAC 주소와 네트워크 인터페이스 카드가 갖고 있는 MAC 주소가 맞으면 데이터를 처리하고 다르면 폐기한다.

3계층(네트워크 계층)

IP 주소와 같은 논리적인 주소가 정의된다. MAC 주소와 달리 IP 주소는 사용자가 환경에 맞게 변경해 사용할 수 있고,

네트워크 주소 부분과 호스트 주소 부분으로 나뉜다.

3계층에서 동작하는 장비는 라우터 인데, 이 라우터는 3계층에서 정의한 IP 주소를 이해할 수 있다. 라우터는 IP 주소를 사용해 최적의 경로를 찾아주고, 해당 경로로 패킷을 전송하는 역할을 한다. 

 

4계층(트랜스포트 계층)

실제로 해당 데이터들이 정상적으로 잘 보내지도록 확인하는 역할을 한다. 즉, 패킷이 유실되거나 순서가 바뀌었을 때 바로잡아주는 역할을 한다. 4계층에서 패킷을 분할할 때 패킷 헤더에 보내는 순서(시퀀스 번호)와 받는 순서(ACK 번호)를 적어 통신하므로 패킷이 유실되면 재전송을 요청할 수 있고, 순서가 바뀌더라도 바로잡을 수 있다. 

또한 장치 내의 많은 애플리케이션을 구분할 수 있도록 포트 번호를 사용해 상위 애플리케이션을 구분한다.

 

5계층(세션 계층)

세션을 관리하는 것이 주요 역할로, TCP/IP 세션을 만들고 없애는 책임을 진다. 또한 에러로 중단된 통신에 대한 에러 복구와 재전송도 수행한다.

 

6계층(프레젠테이션 계층)

표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위해 하나의 통일된 구문 형식으로 변환시키는 기능을 수행한다.

MIME 인코딩이나 암호화, 압축, 코드 변환과 같은 동작이 여기에서 이뤄진다.

 

7계층(애플리케이션 계층)

네트워크 소프트웨어의 UI 부분이나 사용자 입,출력 부분을 정의한다. 

 

1.5 인캡슐레이션과 디캡슐레이션

인캡슐레이션(데이터를 보내는 과정)

  • 상위 계층에서 하위 계층으로 데이터를 보내면 물리 계층에서 전기 신호 형태로 네트워크를 통해 신호를 보낸다.
  • 데이터를 데이터 플로 계층으로 내려보내면서 패킷에 데이터를 넣을 수 있도록 분할하는 과정이다.
  • 네트워크 상황을 고려해 적절한 크기로 데이터를 쪼개고 4계층부터 네트워크 전송을 위한 정보를 헤더에 붙여넣는다.

디캡슐레이션(데이터를 받는 과정)

  • 받는 쪽에서는 다시 하위 계층에서 상위 계층으로 데이터를 보낸다. 
  • 받은 전기 신호를 데이터 형태로 만들어 2계층으로 올려보내는데, 이 때 송신자가 작성한 2계층 헤더에 포함된 정보를 확인한다.
  • 각 계층에서 해더 정보를 확인하여 목적지가 자기 자신이면 헤더 정보를 벗겨내고 올려보내고, 자신이 아니라면 자신에게 온 패킷이 아니므로 버린다.

 

위와 같은 작업은 두가지 정보 흐름으로 요약할 수 있다.

  • 인캡슐레이션, 디캡슐레이션 과정을 통해 데이터가 전송되는 과정
  • 각 계층 헤더를 이용해 송신자 계층과 수신자 계층 간의 논리적 통신 과정

'Tech Books & Lectures > Network_IT 엔지니어를 위한 네트워크 입문' 카테고리의 다른 글

2장 네트워크 연결과 구성 요소  (0) 2022.11.29
'Tech Books & Lectures/Network_IT 엔지니어를 위한 네트워크 입문' 카테고리의 다른 글
  • 2장 네트워크 연결과 구성 요소
JTB
JTB
웹/앱 개발 정보를 공유하고 있습니다.
  • JTB
    JTechBlog
    JTB
  • 전체
    오늘
    어제
    • All About Programming;) N
      • Computer Science
        • Terminology and Concepts
        • Network
        • Operating System
        • Database
        • Data Structure
      • Frontend
        • Javascript Essentials
        • Perfomance Optimization
        • JS Patterns
        • Next.js
        • Flutter
      • Backend
        • Node.js
      • DevOps
        • Docker & Kubernetes
      • Coding Test N
        • LeetCode N
        • Programmers
      • Tech Books & Lectures
        • Javascript_Modern JS Deep d..
        • Network_IT 엔지니어를 위한 네트워크 입문
      • Projects
        • PolyLingo_2025
        • Build Your Body_2024
        • JStargram_2021
        • Covid19 Tracker_2021
        • JPortfolio_2021
      • BootCamp_Codestates
        • TIL
        • TILookCloser
        • Pre Tech Blog
        • IM Tech Blog
        • Daily Issues and DeBugging
        • First Project
        • Final Project
        • Sprint Review
        • Good to Know
        • Socrative Review
        • HTML & CSS
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 글쓰기
    • 관리
  • 공지사항

  • 인기 글

  • 태그

    structure of os
    자바스크립트
    TCP/IP
    Network
    need a database
    Data Structure
    Binary Tree BFS
    VoiceJournal
    자바스크립트 딥다이브
    이벤트
    Operating System
    database
    indie hacker
    Shared resources
    스코프
    JavaScript
    Time complexity and Space complexity
    CPU scheduling algorithm
    커리어
    polylingo
    모던 자바스크립트 Deep Dive
    leetcode
    testing
    DOM
    딥다이브
    프론트엔드 성능 최적화 가이드
    mobile app
    js pattern
    How memory manage data
    Threads and Multithreading
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
JTB
1장 네트워크 시작하기
상단으로

티스토리툴바