이 포스팅은 네트워크 기초 시리즈 5 편 중 3 번째 글 입니다.

  • Part 1 - 01: IP
  • Part 2 - 02: 네트워크 용어정리
  • Part 3 - This Post
  • Part 4 - 04: OSI 7 layer - 네트워크 계층
  • Part 5 - 05: OSI 7 layer - 전송 계층
▼ 목록 보기

1계층 : 물리 계층 (데이터를 전기 신호로 변환)

  • 비트
    • 0, 1
    • 비트가 모여 데이터 구성
    • 비트를 주고 받는 것이 통신의 본질
    • 바이트 = 8비트
    • 워드 = 1바이트가 2개 (16비트)
  • 데이터가 어떻게 전기 신호로 전달?
    • 데이터가 전달되지 않을 때 전기적 신호가 존재
      • Clock 신호
        • CPU는 해당 신호에 맞춰 일을 처리한다.
        • 디지털 세계에서의 시계라 할 수 있겠다. 행위의 단위가 됨
    • 변조를 통해 데이터 신호를 얹는다. 위상을 변경시킨다고 말함
    • 보내는 측에서 이 신호를 보내고, 받는 측에서 해석한다.
  • 데이터 전달이란
    • 전기적 신호가 매체를 통해 전달하는 것
    • 케이블 : 이더넷 케이블
      • 구리선으로 구성
        • 전기적 신호가 잘 전달되어서 구리를 사용
        • 저항이 있어서 먼곳까지 전달하기 어려움
        • 왜 저항이 발생?
          • 전기가 지나가면서 자기장 발생
          • 전기장과 자기장은 항상 상호작용
          • 0, 1의 신호를 구리를 통해서 보내면, 앞 신호의 자기장 때문에 뒷 신호가 왜곡된다.
          • 신호의 감쇄와 왜곡을 줄이기 위해 꼬아둔 건데, 근본적 해결은 불가능
          • 결과적으로 수신측에는 신호가 뭉개져서 판독이 불가하다. 빠르게 보낼 수록 못받을 확률은 더 심해진다.
        • 리피터도 써야함
          • 감쇄되기 때문에 증폭 시켜야 함
    • 케이블 : 광케이블
      • 전기 신호를 빛으로 변경
      • 먼거리 전송
      • 속도 빠름
      • 빛끼리는 이전 신호와 상호작용이 없음
      • 빛 색으로(주파수로) 다양한 데이터 라인도 보낼 수 있다.
  • 랜카드
    • 네트워크를 통해 데이터를 송, 수신할 수 있도록하는 장비
    • 메인보드에 포함되어 있음
    • 내장형 랜카드, 혹은 별도의 랜카드를 통해 전기신호와 비트열을 변환할 수 있는 작업을 할 수 있다.
    • 해당 랜카드에 이 네트워크 카드가 가지는 고유한 주소값을 가진다.
    • MAC 주소! - 물리주소
    • 집에 주소가 주어지는 것과 마찬가지
    • 집 자체가 주소가 주어지는 것이 아니고 땅에 주어지는 것
    • 마찬 가지로 컴퓨터에 주어지는 것이 아니고 랜카드에 주어지는 것
  • 사용하는 네트워크 장비
    • 리피터
      • 전기신호를 복원하고 증폭
    • 허브
      • 여러개의 포트를 가지고 랜케이블을 통해 여러 컴퓨터와 통신가능

2계층 : 데이터 링크 계층 (랜에서 데이터 전송)

  • 랜에서 데이터를 정상적으로 주고 받기 위해 필요한 계층
  • 앞은 전달하기 위해 변환하는 과정이 주라 생각
  • 이더넷
    • 일반적으로 데이터 링크 계층에서 가장 많이 사용되는 규칙
    • 랜에서 사용되는 규칙
    • 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고받을 때 사용
    • 허브는 근본적으로 전기 신호를 받을 포트 뿐만 아니라 다른 포트에도 전달함
    • 이 부분이 상당히 문제임. 그래서 규칙을 추가함
    • 데이터에 목적지 정보를 추가해서, 목적지 이외의 컴퓨터에는 데이터를 받아도 무시하도록 한다.
    • 또한 동시에 보낼 경우 충돌이 발생할 수 있다.
    • 이런 경우 데이터를 보내는 시점을 늦춰서 충돌을 방지할 수 있게 설계하였다.
    • 이 떄 사용되는 방법을 CSMA/CD라 한다.
      • CS : 데이터를 보내려고 하는 컴퓨터가 케이블에 신호가 흐르고 있는지 아닌지를 확인하는 규칙
      • MA: 케이블에 데이터가 흐르고 있지 않다면 데이터를 보내도 좋다는 규칙
      • CD: 충돌이 발생하고 있는지를 확인하는 규칙
  • 하지만 switch가 등장한 이후 잘 사용되지 않는다.

imageIthernet Protocol

  • Mac 주소
    • 랜 카드에 할당된 전세계 유일한 번호
    • 6바이트로 구성
    • 앞쪽 24비트 : 제조사 번호
    • 뒤쪽 24비트 : 제조사가 붙인 일련번호
  • 이더넷 헤더
    • OPI : 데이터 링크 계층, TCP/IP : 네트워크 계층 에서 붙이는 작업
    • 목적지 MAC 주소 + 출발지 MAC 주소 + 유형 = 14바이트 (6 + 6 + 2)
    • 유형은 전송되는 상위 계층 프로토콜의 종류
      • 즉, 그 위 계층인 네트워크 계층에서 사용하는 프로토콜을 말함
      • 이건 사실 그 다음 계층으로 가기 위한 정보라 생각하면 됨
  • 트레일러 FCS(Frame Check Sequence)
    • 전송중 오류 발생 확인 용도
  • 프레임
    • 이더넷 헤더와 트레일러가 추가된 데이터

image image

  • Mac 주소를 통한 프레임 전송 과정
    • A에서 B로 데이터를 전송한다고 생각해보자. 일단 내부 네트워크다.
      1. 이더넷 헤더에 출발 MAC 주소, 목적 MAC 주소를 담는다.
      2. 헤더와 트레일러를 추가하는 캡슐화를 진행한다. 프레임으로 된 것
      3. 물리 계층에서 이 프레임 비트열을 전기신호로 변환(아날로그)하고 네트워크를 통해 전송
    • 이 때, 해당 데이터를 모든 컴퓨터는 받게 된다.
    • 하지만 이터넷 헤더에 붙어있는 목적지 MAC 주소와 자신의 MAC 주소가 일치하지 않기 때문에 데이터를 파기한다.
    • B는 역캡슐화를 하여 데이터를 수신한다.

image

스위치의 구조

switch : 위키피디아

  • 데이터 링크 계층에서 동작
  • Layer 2 스위치, 스위치 허브라 불림
  • 허브와 비슷하지만, 데이터 충돌을 방지할 수 있다.
  • 이전에 허브에서는 데이터를 동시에 보낼 때, 문제가 발생하여 CSMA/CD 라는 방법을 통해 충돌을 방지함
  • 이번에는 이 장치가 이 충돌을 방지함
  • MAC Address Table
    • 스위치 내부에 존재하는 맥 주소 테이블이다.
    • 스위치의 포트 번호와 해당 포트에 연결되어 있는 컴퓨터의 MAC 주소가 등록되는 데이터 베이스임
    • 전원을 처음에 딱 키면 Mac 주소 테이블에는 아무것도 등록이 안되어 있음
    • 그런데, 프레임(아까 배운 데이터 싼 형태)가 전송되면 테이블에 추가가된다.
    • 등록되어 있는 경우면 건너 뛴다.
    • 이러한 기능을 MAC 주소 학습 기능이라고 한다.
    • 문제점 (Flooding)
      • 처음에 시작할 때 컴퓨터가 스위치에 이더넷 네트워크를 모두 꽂았다.
      • 그런데 A라는 컴퓨터만 데이터를 송신했다.
      • 그런 경우, 나머지 컴퓨터에서는 데이터를 송신하지 않았기 때문에, 등록이 안되어 있는 상태이다.
      • 그렇기 때문에 이런 상황에서는 허브와 마찬가지로 동작한다는 한계가 있다.
      • 이런 상황을 플러딩이라 한다.

imageFlooding

  • 그런데 이번에는 B가 데이터를 전송해서 데이터 테이블에 저장이되어 있다고 생각해보자.
  • 이런 경우는 허브처럼 작동하지 않고, 원하는 곳에만 데이터를 전송한다.
  • 이를 MAC 주소 필터링이라고 한다.
  • 만약 이상태에서 A->C라면?
    • 플러딩이 발생한다.

imageMac 주소 필터링

  • 스위치가 사용하는 데이터가 케이블에서 충돌하지 않는 구조
    • 통신 방식
      • 전이중 통신 방식
        • 송수신을 동시에 통신
        • 회선이 두개 (송신쪽, 수신쪽)
      • 반이중 통신 방식
        • 송수신을 번갈아 처리
        • 회선이 한개
    • 허브
      • 반이중
      • 동시에 데이터를 보내면 충돌 발생
      • 한쪽에서 보내고 있기 때문에 양쪽다 받을 수가 없다.
    • 스위치
      • 충돌을 아예 없앤 방식
      • 전이중

image허브의 경우 image스위치의 경우

  • 충돌 도메인
    • 충돌이 발생할 때 영향을 끼치는 범위
    • 허브
      • 허브는 일단 모든 포트에 데이터를 다 보내버림
      • 그렇기 때문에, A, B에서 데이터를 동시에 쏘면 일단 충돌이 나는데, 그럼 나머지 노는 컴퓨터들도 데이터를 못받고 충돌이 같이 난다.
      • 그래서 전범위
    • 스위치
      • 일단 접속되어 있는 모든 컴퓨터에 영향을 미치지 않음
      • 애초에 충돌을 방지하기도 함(전 이중)
      • 그래서 충돌 도메인의 범위는 컴퓨터 하나로 좁아진다.

image

ARP(Address Resolution Protocol)

  • 목적지 컴퓨터의 IP 주소를 이용하여 MAC 주소를 찾기 위한 프로토콜!
  • ARP 요청
    • 이더넷 프레임을 전송하려면, 목적지 컴퓨터의 MAC 주소를 알아야 한다.
    • 이걸 위해 출발지 컴퓨터가 네트워크에 브로드 캐스트 하는 것을 ARP 요청이라 함
  • 브로드 캐스트
    • 출발지 컴퓨터에 연결된 모든 컴퓨터에 요청을 보내는 방식
    • 요청에 대해 IP 주소를 가지고 있지 않은 컴퓨터는 응답하지 않고, 지정된 IP주소를 가지는 컴퓨터는 MAC주소를 응답으로 보낸다.
  • 이렇게 응답을 받게되면 이더넷 프레임을 만들 수 있게 된다.
  • 이후 출발지 컴퓨터는 MAC 주소와 IP 주소의 매칭 정보를 메모리에 보관한다.
    • 이를 ARP 테이블이라 한다.
  • 하지만 IP 주소가 변경되면 해당 MAC 주소도 함께 변경되어 제대로 통신이 불가하다.
  • 그래서 ARP 테이블은 보존 기간을 ARP 캐시로 저장하고, 일정 기간이 끝나면 삭제하고 다시 요청한다.
  • 정리
    • ARP: 네트워크 계층 주소와 데이터 링크 계층 주소 사이의 변환을 담당하는 프로토콜이며 IP 주소를 물리 주소인 MAC 주소로 변환하는데 사용한다.
    • ARP 캐시: 가장 최근에 변환한 IP와 하드웨어 주소(MAC 주소)를 매핑하려 보관하고 있는 램의 한 영역이다.
    • ARP 요청: IP 주소를 대치할 수 있는 물리 주인 MAC 주소를 찾아내기 위해 보내는 브로드캐스트 패킷 요청이다.
    • ARP 응답: ARP 요청에 대한 응답으로 요청한 IP 주소에 대한 물리 주소인 MAC 주소가 실려 있는 유니캐스트 패킷 응답이다.

Reference