들어가며

 - 용규씨, 네트워크 지식에 대해 아세요?

 - 어... 음, 대학에서 배웠습니다. 

 - OSI 7계층의 3계층에는 무슨 프로토콜이 있나요?

 - 어... 잠시만요... TCP와 UDP입니다.

 - .... 3계층은 네트워크 계층입니다.

 

 사람들은 살면서 많은 착각을 하고는 한다.

나의 경우에는 " 개발 실력만 있으면 충분하지 " 라는 착각이었다. IT에는 수 많은 분야가 있다.

새로운 이론이 정립되고 여러 파생 분야가 나뉘어도, 토대의 학문들과 유기적으로 연결된다.

개념과 원리를 모르고 무작정 갖다 사용하게 된다면 문제가 발생할 때, 누군가에게 의존해야 한다.  

 

 가령 나는 리눅스에 대해 얄팍한 지식을 갖고, 여러 서비스들을 호스팅했다. -

 배포 중 문제가 생길 때는 그 문제에 대한 응급 처치만 했다.

돌이켜보면 그동안 가벼운 문제만 생긴 것은 천운이다. 

만약 응급 처치들이 꼬이고 꼬여, 배포가 불가능한 상황까지 오게 되었다면?

그로 인해 수 많은 이용자와 회사의 피해를 생각하면 아찔하다. 

위태로운 줄 위를, 단순한 나무 다리로만 생각하고 있었다.

이제서야 네트워크, 리눅스, 운영 체제에 대해 중요성을 느끼게 되었다.


 

 

 서버를 배포할 때, 가장 중요하다고 생각하는 것은 어떻게 어디로 데이터를 전달하는 지이다.

AMAZON, MS, NAVER 등 간단한 인터페이스 조작을 통해서 공인 IP를 등록하고, 쉽게 서비스를 배포해주기에 간과하는 부분이지만 사설 서버를 다루게 된다면, 대기업이 해주었던 일들을 직접 해야만 한다.

네트워크는 어떻게 데이터를 전달하는 지 뿐만 아니라 데이터 교환 방법, 가용성, 신뢰성, 보안성 등 굉장한 큰 범위를 다루게 된다.

 

 

  1. 네트워크(Network)란? 
    • 컴퓨터나 다른 장치들이 상호 연결되어 데이터를 주고받을 수 있는 구조다. 네트워크는 자원 공유, 통신, 연결성, 자동화를 하기 위해 탄생
  2. 패킷(Packet)이란?
    •  데이터 통신에서 정보를 전송하는 데 사용하는 단위다. 네트워크를 통해 데이터를 주고 받을 때 데이터는 패킷으로 분할되어 전송하며, 수신자는 패킷을 조합하여 데이터를 받는 다. 각 각 암호화 복호화로 통칭한다.
      패킷은 헤더와 페이로드 또는 헤드와 페이로드, 트레일러로 구성되어 있다.
      • 헤더 : 송신자와 수신자의 주소, 데이터 유형, 전송 순서, 오류 검출 코드 등이 포함한다.
      • 페이로드 : 실제 전송되는 데이터이다.
      • 트레일러 : 오류 검출을 위한 코드나 체크섬을 포함한다. 패킷의 오류 검출 코드와의 차이는 위치이며 헤더의 오류 검출 코드는 헤더 부분의 오류 감지, 트레일러의 오류검출 코드는 전체 패킷의 오류를 감지해 무결성을 보장한다.
  3. OSI(Open Systems Interconnection) 7계층이란?
    • 컴퓨터 네트워크의 설계와 통신을 나타내기 위한 참조 모델, 통신 과정을 단계별로 분리하여 복잡성을 줄이고, 계층 간 인터페이스의 상호작용을 편하게 나타낼 수 있다.
      • 물리 계층
        • 데이터를 전송하는 데 케이블이나 전기같은 물리적 성질과 연결 방식, 전송 속도같은 비물리적 성질을 다룬다. 데이터를 전기적 신호를 변환, 물리적인 매체로 전송한다. 주로 이더넷, USB, WI-FI 등의 인터페이스 등이 여기에 구성되어 있다.
          • 전송률 : 실제 단위 시간 당 전달되는 데이터 양, bps로 표시
          • 대역폭 : 물리적을 네트워크에서 전달 가능한 최대 데이터 양을 의미, bps로 표시
          • bps : 초당 비트 단위
      • 데이터 링크 계층 
        • 인접한 네트워크 장치 간의 직접적인 통신을 다룬다. 프레임으로 데이터를 분할하고, 오류 검출 및 수정, 논리적인 주소 할당, 흐름 제어, 접근 제어 등의 기능을 수행한다.
          • 프레이밍 : 데이터를 프레임이라는 작은 단위로 나누어 전송
          • 프레임 : 데이터 링크 계층에서 사용되는 데이터의 전송 단위, 패킷 앞에 프레임 시작 신호(Frame Start Delimiter, FSD)라는 비트 패턴을 추가
          • MAC(Media Access Control) : 네트워크 인터페이스 카드에 할당된 고유한 식별번호로 네트워크 장치들이 서로 식별하고 통신할 때 사용
          • CRC(Cyclic Redundancy Check) : 순환중복 검사로 불리며 송신시 데이터의 비트열에 대해 다항식 연산을 수행해 체크섬을 생성, 수신시 체크섬을 계산후 비교해 데이터 무결성을 보호
      • 네트워크 계층
        • 패킷의 경로 선택, 여러 네트워크 간의 통신을 다룬다. 라우팅 알고리즘을 사용하여 데이터 패킷을 전송하고, 서브넷 관리 및 주소 할당을 수행한다.
          • IP(Internet Protocol) : 컴퓨터와 네트워크 장치를 식별해 네트워크 데이터를 주고 받는 데 사용되는 주요 프로토콜
          • IP주소 : 컴퓨터와 네트워크 장치를 식별, 주소를 32비트를 10진수로 표현하는 IPv4와 128비트를 16진수로 표현하는 IPv6 버전이 존재
          • DHCP(Dynamic Host Configuration Protocol) : 네트워크에 연결된 장치에 IP 주소 및 서브넷 마스크, 기본 게이트웨이, DNS 서버 주소 등 기타 네트워크 구성 정보를 할당하는 프로토콜
            서브넷 마스크(Subnet Mask) : IP주소를 네트워크 ID와 호스트 ID로 식별, 255.255.255.0 기준으로 255.255.255는 네트워크 ID, .0은 호스트 ID
          • 기본 게이트웨이(Default Gateway): : 다른 네트워크나 인터넷으로 가는 경로를 제공, 주로 라우터를 사용
          • DNS 서버 주소(DNS Server Address) : IP주소를 도메인 이름으로 변환하거나 그의 반대를 할 때 사용 (구글 DNS서버 8.8.8.8, 8.8.4.4)
          • IP Suite : IP를 포함한 TCP, UDP, ICMP 등의 여러 프로토콜과 서비스의 집합
            라우터(Router) : 네트워크에서 데이터를 전송하는 장치(공유기 등), 외부 네트워크와 내부 네트워크를 연결 (내부 네트워크 192.168.x.x, 특수 네트워크를 제외한 나머지는 외부 네트워크)
          • 라우팅 : 패킷을 받아 목적지로 전달하기 위한 최적 경로를 결정, 다익스트라나 벨만 포드 알고리즘 사용
          • 서브넷 : 큰 네트워크를 더 작은 네트워크로 나눔. 서브넷 마스크를 이용하여 서브넷 ID와 호스트 ID 분할
      • 전송 계층
        • 종단간 통신을 제어, 데이터의 신뢰성을 다룬다. 데이터의 분할과 재조립, 흐름 제어, 오류 복구, 연결 관리 등을 담당한다.
          • TCP : 신뢰성 있는 데이터 전송을 보장하는 연결 지향적인 프로토콜로, 데이터의 분할과 재조립, 흐름 제어, 오류 복구, 연결 설정 및 해제 등을 담당. 데이터의 손실이 용인되지 않는 경우에 주로 사용됩니다.
          • UDP : 비연결형 프로토콜로, 연결 설정 과정이 없으며 데이터 전송만을 담당. 데이터의 신뢰성은 보장하지 않지만, 전송 속도가 빠르며 영상 전송 등 일부에서 사용
      • 세션 계층
        • 통신의 세션을 관리, 양 끝단 간의 상호 작용의 동기화를 다룬다.데이터의 동기화와 동시성 제어, 오류 복구 및 회복을 수행한다. 양 종점에서 통신의 동기화를 유지
          • 세션 : 
          • 동기화
          • 동시성제어
      • 표현 계층
        • 데이터의 형식을 변환 및 압축, 데이터 암호화와 복호화를 다룬다. 이 계층은 데이터의 구문 분석, 형식 변환, 암호화와 복호화를 수행에 데이터 교환을 지원한다.
          • MIME
      • 응용 계층
        • 응용 프로그램의 인터페이스를 다룬다.
          사용자 인터페이스, 데이터 처리, 데이터 전송에 관한 응용 프로그램 및 서비스에 대한 접근을 지원한다.
          • HTTP
          • FTP
          • SMP
 

 



 

+ Recent posts