[네트워크] 13, 14차시 - 링크계층(1), (2)

2023. 5. 2. 19:51CS/네트워크

728x90

//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎

 

 

링크계층과 이더넷을 소개한다. 링크계층 스위칭을 배운다.

 

1. 데이터 링크 계층

  • IP가 있기 때문에 다른 응용들과 호환될지를 걱정할 필요가 없고, 데이터 통신 기법을 만들 때에도 IP만 고려하면 된다.

  • 네트워크 계층: 출발지에서 목적지까지 패킷을 전달해 주는 역할
  • 링크 계층: 목적지까지 가기 위해서는 여러 장비(라우터)를 거쳐 가는데, 한 합의 네트워크를 전송하기 위해 사용
    • 라우터: 중간 중간에 있는 네트워크에서 IP 패킷이 왔을 때 다음 노드로 가게 해주는 장비
    • 무선 공유기가 NAT Router: local IP → Global IP로 변경, 포트번호 또한 port mapping table에 의해 매핑된 내용으로 바뀜
  • 목적지까지 가기 위해서는 여러 합을 가야 하는데, 이번 합에서 다음 합까지는 동일한 링크 계층
    • 한 합을 가기 위해서는 한 합의 통신부와 그다음 한 합의 수신부의 통신기법은 같다.
    • 한 합을 가고 나면 그 다음엔 다른 링크 계층일 수 있다. IP 덕분에 한 합별로 통신 기법을 바꿀 수 있다.
  • 과정
    1. 네트워크 계층으로 IP 패킷을 만들어서 LTE 층으로 내려 보내면
    2. LTE 헤더가 붙은 IP 패킷이 된다.
    3. 다음합의 LTE층으로 IP 패킷이 이동
    4. NAT 라우터에서 전송 계층까지 올라갔다가 다시 링크 계층(이더넷)으로 내려감
      • IP 헤더는 local IP → Global IP
      • TCP 포트는 port mapping table에 의해 매핑된 내용으로 바뀜
    5. 새로운 IP, TCP, 본문과 이더넷 헤더 패킷을 다음 항으로 전송
    6. 다음 항에서 이더넷 헤더를 지우고 global IP에 FDDI 헤더를 입혀서 다음 항으로 전송
    7. 최종 목적지에 도착하면, 네트워크 계층은 목적지 IP를 확인하고 응용 계층 위로 올려 보냄
  • 링크 계층은 네트워크 계층에서 어느 링크를 쓸지가 결정되고 나면 그 링크로 보낼 수 있도록 링크 헤더를 붙여서 다음 링크로 보내주는 역할만을 한다.
    • 전체적인 망의 효율성을 담보로 하는 것이 링크 계층과 물리 계층이다.
  • 라우팅: 패킷의 IP 주소를 보고 다음합을 어느 링크로 보내야 할지를 판단

 

2. 데이터 링크 계층의 서비스

  • Error detection(감지), correction(보정)
    • 링크 계층에서는 심각하게 Error detection, correction 함
      • Error detection - CRC
      • Error correction - 특히 무선일 경우 Turbo code, LDDC
      • 전송 계층에서 하는 Error detection은 일종의 확인 작업
    • checksum + CRC as Error detection
      • checksum
        • SW, 연산 단위 word(SW의 강점), (+) 연산
        • detection performance는 떨어짐
      • CRC
        • HW, 연산 단위 bit(HW 강점), exclusive or 연산
        • performance가 좋음
      • TCP나 IPv4에서 Error detection을 할 때는 checksum을 사용
      • 링크 레이어에서 Error detection을 할 때는 CRC를 사용하고
    • Error correction은 물리 계층으로 내려가는 경향이 있음
      • 링크 계층에서 데이터는 0, 1 : 1 → 0이 되면 Error
      • 물리 계층에서는 데이터는 아날로그로 봄 : 0 ~ 1 사이를 Error로 인식
  • 채널 공유 프로토콜
    • 채널: 동시에 한 명만 사용할 수 있는 미디어의 단위, 기법에 따라 주파수, 코드, 시간이 될 수도 있음
      • 주파수 분할(FDMA: Frequency Division Multiple Access)
      • 시 분할(TDMA: Time - )
      • 코드분할(CDMA: Code - ): guard time, guard frequency가 없어서 그것으로 인한 손실이 덜함
      • ~를 나눠서 여러 명이 접근하게 한다.
      • 단점ㅣ burst 통신에 쉽지 않다. 누가 어느 frequency, time, code를 쓸지가 미리 정해져 있어야 하기 때문 ~ 음성 통신에 많이 사용됨
    • Carrier Sense Multiple Access(CSMA)
      • Carrier를 아무도 쓰지 않을 때 통신
      • 중앙에 dummy hub
      • 단점 | 충돌
      • 해결책 | 무작위 시간 동안 기다리기, 충돌이 잦으면 무작위 window 시간을 증가
      • 모든 사람이 얘기할 때에는 채널(주파수 분할, 시 분할, 코드 분할)이 더 나을 수도 있다.
    • 절충안 | 토큰 방식
      • 토큰 돌리기(충돌 방지)
      • 토큰링에서 할 얘기가 없으면 토큰만 돌리고, 할 얘기가 있으면 토큰에 붙여서 돌림
      • 동시에 여러 명이 얘기하는 충돌도 방지할 수 있고, 계속적으로 얘기할 수도 있다.
      • 고속 통신에 많이 사용했던 방법 - 요즘엔 switch 방식(Full-Duplex Switching)을 많이 사용
    • Full-Duplex Switching
      • 중앙에 switching hub
      • 서로 같은 곳에 가려고 하지 않으면 통신에 협조
      • 같은 곳으로 통신하려 하면 큐를 만들어서 대기 - 버퍼가 꽉 차면 패킷을 버릴 수는 있지만 충돌은 발생하지 않음

 

3. Ethernet

  • 규모의 경제(시장 장악력)
    • 90년대 중반까지 CSMA/CD(캐리어를 유지하고 아무도 쓰는 사람이 없으면 사용한다) 방식으로 모든 노드를 wire로 연결
    • CSMA/CD의 최대 이슈:
      • propagation delay - 200m 거리를 가는데 1ms 소요되는 것은 굉장히 긴 시간이다.
      • 노드수가 증가하면 속도가 비례해서 감소한다.
  • switch vs router
    • switch: link layer, ethernet망(ID가 없음), LAN 내부를 상대
      • link layer를 하나의 네트워크처럼 보이도록 연결해 줌
      • ID가 없음: 와이어 대신의 역할이기 때문
      • LAN안에는 기껏해야 수천 개의 노드밖에 없기 때문에 그냥 수천 개의 테이블을 만들어 둠(스위치가 학습, 체험을 통해 만듦)
    • router: network layer, IP 계층 혹은 그 이상(ID 필요), 인터넷 전체를 상대
      • port를 구별
      • 다음 목적지를 지목할 수 있는 ID가 필요함
      • 전 세계에 있는 수십억 개의 노드를 관장해야 하기 때문에 그 안에 있는 라우터 테이블은 복잡해질 수밖에 없음

3-1. Frame 형식

  • Preamble : 목적지 주소 : 출발지 주소 : 상위 프로토콜 타입(보통 IP) : 데이터 : CRC
    • preamble: 10101010 .. 101010111 : 일종의 워밍업 + 타이밍 sync 맞추는 역할
    • IP, TCP와 다르게 출발지 주소보다 목적지 주소가 더 빨리 나옴, 최대한 빠른 처리와 실시간성을 위해
    • 목적지 주소: 6 Byte: HW주소
    • 출발지 주소: 6 Byte: HW주소
    • 상위 프로토콜 타입: IP
    • CRC: Error Detection

3-2. HW 주소(HW addr, MAC Address)

  • 6Byte(48bit) 주소
    • 16진수로 8bit씩 끊어서 표현, 모든 바이트는 콜론(:)으로 연결
    • FF:FF:FF:FF:FF:FF
  • 원칙적으로 전 세계 유일
  • 주민등록번호 개념 - HW를 만들 때 부여받음, 공장에서 부여받음
    • ~ 일부 업체의 재사용: HW 주소는 링크 레이어의 동일한 subnet 내에서만 유일해야 하기 때문에 문제가 없다.

3-3. 이더넷이 연결되면

  • IP를 세팅할 때
    • 자신의 IP
    • subnet mask(몇 bit가 subnet인지)
    • GW의 IP를 세팅해야 한다.
  • 노드는 라우팅 테이블을 가지고 있음
    • 0.0.0.0./0은 GW로
    •  
    • subent은 직접 보낸다
      • 내 subnet mask가 있을 때 나와 동일한 subnet에 있다는 것은 gateway 밖으로 나가기 전에 있는 노드
        직접 보내야 하는데 IP 주소만 알고 이더넷 프레임 주소(= 서버의 하드웨어 주소)를 모른다면?
      • ARP(Address Resolution Protocol)를 보냄
        • ARP안에 목적지 HW주소가 FF:FF:FF:FF:FF:FF로 세팅되어 있음
        • switch는 모든 애들에게 다 뿌려줌
        • ARP가 모든 애들에게 다 감 → 자신의 IP가 아니면 다 무시함, 자신의 IP라면 HW주소를 알려주면 IP주소와 HW주소를 매핑해서 이더넷 프레임을 보낼 수 있게 됨

  • 둘만 통신하는 게 아니라 스위치도 학습할 수 있다.
    • 스위치를 위한 프로토콜이 없음 스위치는 와이어를 대신하는 역할밖에 하지 않기 때문에 ~ 자신이 뭘 해야 하는지 학습을 통해 알아냄
    • Hierarchy 네트워크를 구성할 수 있음: 계층적 구조 형성

3-4. 예시

  • 윈도우즈 PC 1개, MAC 1개, 서버 2개, 프린터 1개, Mac book 1개
  • 개인용 컴퓨터들은 NAT Router 뒤에 숨기기(Mac, Win)
    • IP가 드러나지 않게 하기 위해
    • 서버는 Global IP를 가져야 하기 때문에 NAT Router 뒤에 숨기면 안 됨
    • 기본적으로 NAT은 무선을 가지고 있기 때문에 노트북을 연결할 수 있다.
  • 서버를 위해 switch가 추가적으로 필요하다.
    • 방화벽에서 나오는 포트는 Global IP를 지원한다.
    • switch와 NAT Router를 연결
    • switch에 서버를 연결한다.
    • NAT Router 뒤에 있는 컴퓨터들이 서버에 연결해도 밖으로 IP 내용이 나가지 않기 때문에 더 좋음
  • 프린터에 Global IP를 연결하는 것보다 NAT뒤에 연결
    • 프린터가 이용하는 출력 포트를 NAT에 강제로 port mapping table에 static 연결하면 NAT Router 자체가 프린터처럼 보임
  • IP를 아끼고 싶다면 서버 하나를 NAT에 연결한다.
    • 80번(HTTP) 포트 등의 포트들을 NAT Router에 static port mapping 하면 NAT Router를 서버처럼 보이게 함

 

 

* 컴퓨터 네트워크 과목: HTTP 프로토콜 동작, NAT 개념, 소켓 프로그래밍

 

 

[복습]

  1. IP가 있기 때문에 다른 응용들과 호환될지를 걱정할 필요가 없고, 데이터 통신 기법을 만들 때에도 IP만 고려하면 된다.
  2. 네트워크 계층: 출발지에서 목적지까지 패킷을 전달해 주는 역할
  3. 링크 계층: 한 합의 네트워크를 전송하기 위해 사용
    • 라우터: IP 패킷이 다음 노드로 가게 해주는 장비
    • 한 합을 가기 위해서는 한 합의 통신부와 그다음 합의 수신부의 통신기법이 같아야 한다.
    • 한 합을 가고 나면 그다음엔 다른 링크 계층일 수 있지만, IP 덕분에 한 합별로 통신 기법을 바꿀 수 있다.
  4. 데이터 링크 계층의 서비스
    • Error detection, correction
    • 채널 공유 프로토콜(채널, CSMA, 토큰방식, Full-Duplex Switching)
  5. etherent
    • switch: linke layer, etherent망, LAN 내부를 상대
    • router: network layer,  IP 계층 혹은 그 이상, 인터넷 전체를 상대
    • Frame 형식: Preamble : 목적지 주소 : 출발지 주소 : 상위 프로토콜 타입 : 데이터 : CRC
    • HW 주소: 6Byte 주소, 원칙적으로 전 세계 유일, HW를 만들 때 부여받음
    • ARP(Address Resolution Protocol): 목적지 주소를 FF:FF:FF:FF:FF:FF로 세팅
    • 스위치는 와이어를 대신하는 역할만을 하기 때문에 프로토콜이 존재하지 않는다. 따라서 자신이 무엇을 해야 하는지를 학습을 통해서 알아낸다.

 

 

 

 


한국항공대학교 김철기 교수님의 [컴퓨터 네트워크] 강의 정리입니다감사합니다.

http://www.kocw.net/home/cview.do?lid=1275f411ccb71222 

 

컴퓨터 네트워크

현대의 컴퓨터는 네트워크와 분리해서는 생각할 수 없다. 수많은 정보의 교류, 부가가치의 창출은 모두 네트워크를 통해서 이루어 진다. 본 과목에서는 컴퓨터 네트워크의 구성요소를 이해하고

www.kocw.net

http://www.kocw.net/home/cview.do?lid=4a732329a25f22c3 

 

컴퓨터 네트워크

현대의 컴퓨터는 네트워크와 분리해서는 생각할 수 없다. 수많은 정보의 교류, 부가가치의 창출은 모두 네트워크를 통해서 이루어 진다. 본 과목에서는 컴퓨터 네트워크의 구성요소를 이해하고

www.kocw.net

728x90