도커를 왜 쓸까?

 

  • 도커는 거의 모든 데서 사용하고 있다.
  • 도커는 빠르다.
  • 언제 어디서든 규격화, 표준화된 같은 환경을 사용할 수 있다.
  • 도커를 사용하면 최초 한번은 종속성 설치, 환경 설정, 배포테스트를 최초 한번은 수행하고 그 이후에는 이 과정이 생략된다.
  • 서버를 옮긴다거나, 서버에 대한 환경이 바뀐다거나 할 때 그럴 때마다 이미지를 통해 똑같은 환경을 구현해낼 수 있다는 것은 큰 장점이다.
  • 이미지와 컨테이너의 관계는 클래스와 인스턴스의 관계와 매우 유사하다.
  • 이미지를 상속 받아서 새로운 이미지를 만들 수 있다.

도커란?

Docker는 애플리케이션과 모든 종속성을 컨테이너 형태로 함께 패키징하여 애플리케이션이 모든 환경에서 원활하게 작동하도록하는 컨테이너화 플랫폼

가상 머신 VS 컨테이너

  • 가상화에 기반
  • 도커 시스템 위에 컨테이너 개념을 도입한 방식
  • 도커는 native os와 거의 비슷할 정도로 매우 빠르다.
  • VM은 기존 OS에 새로운 OS를 통째로 가상화하는 방식

도커를 활용한 배포 과정

각각의 애플리케이션을 컨테이너화하여 마이크로서비스로 제공할 수 있다.

장고 컨테이너를 만들어서 도커 시스템 안의 컨테이너로 구성한다.

도커 시스템을 vultr 가상 서버를 빌려 올림으로써 전세계 사람들이 볼 수 있도록 배포할 수 있다.

전송 프로토콜

전송 프로토콜에 대해 살펴보고 대표 전송 프로토콜인 UDP와 TCP에 대해 학습한다.

프로세스 간의 통신

  • 데이터링크 계층은 이웃한 두 노드 사이의 프레임 전달에 관여
    • 노드 to 노드 전달
    • 에러제어가 주기능
      • 인접한 노드간에 0과 1의 비트들의 나열을 보내면 매체를 통해 예러가 발생할 수 있음. 이를 해결
    • 접근제어, 흐름제어도 수행
  • IP와 같은 네트워크 계층은 두 호스트 사이의 패킷 전달에 관여
    • 호스트 to 호스트 전달
    • 라우팅(경로 설정)이 주기능-가장 최적의 경로를 찾음
  • 수송 계층 프로토콜은 프로세스 사이의 메시지전달에 관여
    • 프로세스 to 프로세스 전달
    • 포트 번호가 프로세스 간의 전달에 사용
  •  

클라이언트/ 서버 구성

  • 프로세스간의 통신은 클라이언트/서버 구성을 통해서 이루어짐
    • peer to peer로 동작하는 경우도 있지만 대부분은 클라이언트/서버 형태로 동작
  • 포트 번호는 수송 계층에서 사용하는 주소로서 특정 호스트에서 실행되는 프로세스를 구분하기 위해 사용
    • 포트 번호는 16비트 정수로서 0에서 65535(2^16-1) 사이의 값을 갖음
  • 클라이언트 프로그램은 포트 번호를 갖게 되는데 운영체제에 의해서 선택된다.
    • 이러한 포트는 일시적으로 할당되고 사라져서 임시 포트 번호(ephemeral port number)라 한다.
  • 서버 프로그램은 인터넷에서 식별을 위해 동일한 포트 번호를 갖는다.
    • 이러한 포트는 고정적으로 할당되고 모두 알고 있어야 하기 때문에 알려진 포트 번호(well-known port number)라 한다.

포트 번호

  • IANA는 포트 번호를 3개의 영역으로 구분
    • Well-known ports(서버 쪽)
      • 이 포트는 0~1023 이 할당되며 인터넷 서비스를 위해 사용
    • Registered ports
      • 이 포트는 1024~49151의 범위를 가지며 특정 응용을 위해 기업이 사용
      • 중복이 일어나지 않도록 등록해서 사용하는 것
    • Dynaimic ports(클라이언트 쪽)
      • 이 포트는 49152~65535의 범위를 가지며 등록되거나 통제되지 않으며, 임시 포트로 이용

UDP(User Datagram Protocol)

  • UDP는 비연결형, 비신뢰성 수송 프로토콜
    • 흐름제어나 에러제어가 없음
    • UDP가 에러를 검출하면 단순히 폐기
    • 연결설정이나 종료과정이 없음, 재전송이 없음
    • 데이터그램들 사이의 서로 관련이 없으며, 번호가 붙지 않음
    • 각 UDP 데이터그램은 서로 다른 경로로 전달
      • 수신자는 수신 메시지로 오버플로우 될 수 있음
      • 송신자는 메시지가 유실되거나 중복되었는지 알 수 없음
  • UDP는 오버헤드가 작은 아주 단순한 프로토콜에 이용
  •  
    • DNS와 SNMP를 많이 사용
    • UDP 포트번호 53번과 DNS는 동의어
      • 인터넷에서 사용하는 응용에 해당되는 프로토콜들은 다 이렇게 포트번호가 할당이 되어있다.
    • User datagram
      • UDP는 8바이트의 고정된 크기의 헤더를 갖음. 총 4개의 필드
      • 체크섬(Checksum )
        • 체크섬 계산은 선택 사항
          • 체크섬에서 헤더와 사용자 데이터의 에러를 확인함
          • 체크섬의 값이 계산되지 않으면, 해당 필드의 값이 0이 됨
          • 체크섬은 전체 1의 보수 덧셈해서 나온 결과를 다시 보수를 취한다.
        • UDP 체크섬 계산은 IP나 ICMP와 달리 가상헤더를 만들어서 계산
          • 가상헤더, UDP 헤더, 데이터에 대해서 체크섬을 수행
        • 가상헤더는 IP패킷의 헤더에서 가져온 정보로 구성
          • 송신자 IP주소, 목적지IP주소, 프로토콜 필드, 전체길이 필드로 구성
          • IP헤더가 잘못되면 잘못된 호스트나 잘못된 수송계층 프로토콜로 전달되므로 한번 더 검사
        • UDP 사용
          • UDP는 간단한 요청-응답 서비스에 적합
            • 연결설정/해제 과정의 오버헤드가 없음
          • UDP는 프로세스에서 내부 흐름제어와 에러제어를 갖는 경우 적합
            • 응용 프로그램이 자체적으로 갖고 있는 기능을 중복해서 가질 필요가 없음
          • UDP는 멀티캐스팅에 적합
            • 그룹에 속한 모든 세스템과 연결 설정할 필요 없음
          • UDP는 SNMP같은 망관리시스템에서 사용
            • UDP는 RIP에서 사용

TCP 프로토콜

TCP 프로토콜과 TCP의 기능에 대해 살펴보고 TCP의 메시지 형태인 세그먼트의 각 필드에 대해 알아본다.
다음으로 TCP는 연결과정과 해제과정이 있는데, 이 과정에 대해 살펴보고 세그먼트의 흐름을 어떻게 제어하는지에 대해 학습한다.

TCP의 기능

  • TCP는 프로세스간 통신, 스트림 전달 서비스, 전이중 통신(Full duplex), 연결 지향 서비스, 신뢰성 있는 서비스를 제공
    • 연결설정과 해제과정이 존재
    • 데이터의 안전한 도착을 확인하는 ACK를 사용하여 신뢰성 있는 전송을 제공
  • TCP는 프로세스 간의 통신을 위해 포트 번호를 사용
  • IP의 문제점을 보완
    • IP는 비신뢰성 프로토콜이기 때문에 가다가 중간에 패킷이 손실되거나 단편화가 발생하면 순서가 바뀔 수도 있는데, TCP가 다시 복구하고 순서도 맞춰주는 역할도 한다.
  • TCP에서 잘 알려진 포트
    •  
    • DNS는 UDP 써보고 잘 안 되면 TCP 사용
  • TCP는 모든 바이트에 번호를 부여
    • 시작 번호는 0~232-1 사이의 임의이 번호를 갖음
    • 번호는 흐름제어와 에러제어에 사용
      • 흐름제어에서는 "다음 100바이트까지만 보내줘" 라고 요청할 수 있음
      • 에러제어에서는 "몇 번째 바이트로 시작하는게 안 왔어" 라고 요청할 수 있음
    • 세그먼트의 순서번호는 해당 세그먼트가 나르는 데이터의 첫 번째 바이트 번호
  • ACK 번호는 수신해야 할 다음 바이트 번호
    • ACK번호는 누적 값으로 해당 번호 이전의 모든 바이트를 안전하게 받았음을 의미
    • 예를 들어, 1234가 ACK번호라면, 1233 바이트까지 모두 받았음을 의미

스트림 전달 서비스

  • TCP는 데이터를 바이트의 나열로 전달
    • 효율성을 위해 여러 바이트를 블록으로 구성된 세그먼트를 만들어 전송

세그먼트 형태

  • TCP 메시지 전체를 세그먼트라고 부른다. 세그먼트 앞단에 헤더가 붙는다.
  • 헤더는 최소 20바트이며, 옵션까지 최대 60바이트
  • HLEN
    • 가변적인 크기를 갖는 헤더 때문에 어디까직 헤더인지를 나타내는 헤더 Length가 있다.
  • Reserved
    • 이 세그먼트가 연결설정인지, 연결해제인지 등 세그먼트의 목적을 Reserved에 옵션을 체크한다.
  • 윈도우 사이즈
    • 버퍼의 크기를 표시한다. 흐름제어를 하기 위해 지금 비어있는 용량을 바탕으로 요청 데이터 크기를 나타내는데 쓰인다.
    • 흐름제어 목적
  • 제어 필드(Reserved 6bits)
    • 여러 비트가 동시에 설정될 수 있음
    • 부정적 ACK(NACK)가 없음
    • URG:Urgent pointer is valid
      • TCP헤더 다음부터 어디까지가 데이터 부분에서 빠르기 처리해야할 데이터인지 표시하는 것을 Urget pointer
      • 빨리 처리해야 될 데이터를 포함하고 있따라는 것을 표시한 게 URG 부분
      • 송신자는 수신자가 순서에 관계없이 우선적으로 데이터가 처리되길 원할 수 있음
      • 긴급데이터는 헤더 바로 다음부터 포함된다.
    • ACK:Acknowledgment is valid
      • 몇 번까지 잘 받았다는 것을 의미
    • PSH: Request for push
      • TCP에서 버퍼링이라는 것이 있는데, 버퍼링을 하지 말고 바로 보내라는 신호를 보내는 필드
      • 버퍼가 꽉 차야지만 TCP 세그먼트를 전송하게 되는데 버퍼가 꽉차지 않더라도 바로 데이터를 보내라는 것
      • 지연된 전송은 대화식 응용(Interactive applications EX. telnet)에서는 바람직하지 않음
    • RST: Reset the connection
      • 연결을 재설정하는 필드
      • 비정상적인 상황이나 오랫동안 통신이 없으면 현재의 연결을 끊음
    • SYN: Synchronize sequence numbers
      • 연결을 설정하는 필드
    • FIN
      • 연결의 종료를 알리는 필드
  • 체크섬
    • 에러제어
    • 데이터에 대한 오류를 검사하여 재전송에 의한 복구를 수행
    • TCP에서 체크섬은 강제사항(UDP에선 선택사항)
    • UDP에서와 같은 가상헤더를 포함하여 계산(UDP처럼 가상의 헤더를 앞에 붙이고 TCP헤더를 포함해서 전체적인 내용들을 체크섬)
    • 1의 보수 덧셈을 이용해서 나온 결과를 다시 보수를 취하는 방법 사용하여 계산

연결 설정과 해제

연결 설정

  • TCP는 3단계 메시지 교환(Three-way handshake)을 통해서 연결설정
    • 클라이언트는 연결을 요청하는 SYN 세그먼트를 전송
    • 서버는 SYN과 ACK를 포함하는 세그먼트로 응답
    • 클라이언트는 ACK를 보냄

연결 해제

  • TCP는 연결해제를 위해서 3단계(three-way handshaking)와 4단계(four-way handshaking) 메시지 교환을 제공
    • 제어필드의 FIN을 사용하여 연결 해제
    • 4단계 메시지교환을 통한 연결해제는 half-close 상태를 만들어 수신은 가능하게 함
      • 아직 보낼게 남은 상태에서 남은 것을 다 보내고 나서 연결을 끊기 위함
    • 3단계 메시지 교환을 통한 연결해제는 즉시 연결을 종료

흐름 제어

  • 송신 TCP가 목적지로 부터 AKC를 수신하기 전에 보낼 수 있는 데이터의 양을 정함
  • TCP는 슬라이딩 윈도우 프로토콜(Sliding window protocol)을 이용
  • TCP는 바이트 단위로 윈도우 크기(수신 가능한 데이터 양)을 명시
  • 윈도우 크기는 시간에 따라서 변할 수 있음

멀티 캐스팅

멀티 캐스팅와 멀티 캐스트에서 사용되는 주소에 대해 살펴보며, 멀티 캐스트에서 그룹관리에 대해 알아본다.
그리고 멀티캐스팅패킷들을 라우팅 해주는 멀티캐스팅 라우팅에 대해서 살펴본다.

유니캐스팅

  • 하나의 송신자와 하나의 수신자

브로드 캐스팅

  • 네트워크에 속한 모든 단말과 통신하는 형태

멀티캐스팅

  • 하나의 송신자와 그룹에 속한 특정 다수의 수신자와의 통신형태
  • EX. zoom고 같은 그룹 통화

멀티캐스팅 그룹 관리

  • IGMP(Internet Group Management Protocol)
    • 그룹에 속한 시스템들의 가입과 탈퇴를 관리(라우팅과 무관)
  • 멀티캐스트 라우터에게 그룹에 속한 시스템들에 대한 정보를 제공
    • 멀티캐스팅 라우팅 프로토콜이 아니라 그룹에 대한 관리만을 담당
    • 현재 버전은 IGMPv3
  • IGMP는 라우터와 가장 끝단에 있는 컴퓨터 즉, 호스트 사이에서 동작
    •  
    • 최단말과 그것을 연결하는 라우터 사이에는 IGMP가 동작하고 라우터들 사이에서는 멀티캐스팅 라우팅 프로토콜이 관여한다.
  • IGMP 메시지
    • IGMP버전3에서는 두 가지 유형의 메시지가 존재(query와 report)
    • Query message
      • 라우터가 특정 멀티캐스트 그룹이 존재하는지 확인할 경우 사용(특정 단말을 정해서 보낼 수도 있음)
      • General query message는 모든 그룹의 구성원들에 대해 보내짐
    • Report message
      • Report message는 호스트가 쿼리 메시지에 대한 응답
      • 호스트가 그룹에 가입하는 경우 참여하고 있는지에 대한 query message에 응답
      • 호스트가 그룹을 떠나는 경우, query message에 응답하지 않음
        • 응답하지 않을 경우 라우터 데이터베이스에서 제거

멀태캐스트 라우팅

  • 유니캐스팅 라우팅에서는 라우터가 하나의 목적지에 대한 하나의 최적 경로를 갖음
  • 멀티캐스트 라우팅에서는 라우터가 각 그룹에 대한 하나의 최적 경로를 가짐
    • N개의 그룹이 있다면, N개의 최적 경로가 필요
    • 그룹에 소속된 네트워크가 여러 개 존재
    • 트리를 구성하여 멀티캐스트 패킷을 전달
  • 멀티캐스팅 라우팅에서는 2가지 종류가 존재
    • 송신자 기반 트리(Source-based tree)를 이용
    • 그룹 공유 트리(Group-shared tree)를 이용

송신자 기반 트리 방식

  • 트리의 구성이 송신자와 그룹을 이용하여 구성
    • 라우터 각자 자기를 기준으로 최적의 경로를 구성
    • 각 라우터는 그룹별로 하나의 최적 경로를 구함
  • 멀티캐스트 라우팅 프로토콜(유니캐스팅 라우팅 프로토콜을 사용)
    • DVMRP(Didstance Vector Multicast Routing Protocol)
      • RIP와 같은 거리 벡터 라우팅 방식을 확장
    • MOSPF(Multicast OSPF)
      • OSPF와 같은 링크 상태 라우팅 방식을 확장
    • PIM-DM(Protocol Independent Multicast-Dense Mode)
      • RIP나 OSPF를 사용

그룹 공유 트리 방식

  • 각 라우터가 그룹 별로 최적 경로를 구성하지 않고, 센터 코어 혹은 랑데부 라우터만 그룹에 대한 최적 경로를 구성
    • 임의의 라우터가 멀티캐스트 패킷을 받음
    • 유니캐스트 패킷으로 캡슐화하여 코어 라우터에게 전달
    • 코어 라우터가 멀티캐스트 패킷을 전달
  • 동일한 트리를 각 그룹이 하나씩 가지며 이를 공유
  • 멀티캐스트 라우팅 프로토콜
    • CBT(Core-based tree)와 PIM-SM(Sparse-Mode)

송수신자와 중간 장치들이 패킷을 어떻게 처리하는지, 직접과 간접 전달 2가지 방법으로 나누어 살펴본다. 그리고 라우팅테이블에 대해 알아보며 현재 많이 사용되어지는 거리벡터 라우팅에 대해 학습한다.

패킷의 전달

패킷을 송신자와 수신자 그리고 중간 장치들이사이에서 어떻게 처리하는지 살펴보고 전달하는 방법인 직접전달과 간접전달에 대해 학습한다.

패킷의 처리

  • 인터넷은 여러 네트워크의 연결로 구성
    • 송신지에서 목적지까지의 경로가 여럿 존재
  • 네트워크 계층은 여러 네트워크를 통한 패킷 전달 문제를 해결
  • 패킷 처리를 3개로 구분함. 송신자, 중간장치, 수신자
    • 송신자의 네트워크 계층은 패킷을 생성
      • 패킷이 너무 크다면 단편화가 발생
      • 목적지에 패킷을 전달하기 위해 라우팅 테이블을 참조
      • 어느 경로를 통해서 최종 목적지까지 전달하는 것이 가장 좋은지 best path를 결정해야 하는데, 이때 참조하는 것이 라우팅 테이블이다.
        • 라우팅은 송신지에서 목적지까지 가는 여러 개의 경로 중에 어느 하나를 선택하는 과정을 라우팅이라고 한다. 이때 참조하는 테이블이 바로 라우팅 테이블이다.
        • 라우팅 테이블에는 목적지까지 도달하기 위한 다음 경로가 적혀 있음.
    • 목적지의 네트워크 계층은 주소를 확인하여 자신에게 온 패킷인지 검사
      • IP패킷의 헤더들을 검사, 헤더의 목적지 주소가 맞으면 나머지 작업을 처리함
      • 단편화된 패킷을 받는다면, 단편들을 모아서 하나의 온전한 패킷으로 조립
    • 스위치나 라우터와 같은 중간장치들은 패킷을 라우팅
      • 패킷이 도착하면 라우팅 테이블을 검사하고 보내야 하는 인터페이스(포트)를 확인
      • 라우팅이라는 것을 전문적으로 처리해주는 장치를 라우터라고 부른다.
      • 라우터들이 라우팅 테이블에 기반해서 패킷을 전달하는 역할을 한다.

패킷 전달 방식 및 라우팅 테이블 구성 종류

  • 패킷의 전달은 직접 전달간접 전달로 나뉨
    • 직접 전달(direct delivery): 패킷의 최종목적지가 전달자와 동일한 네트워크 상에 있을 경우
    • 간접 전달(indirect delivery): 패킷이 최종목적지에 전달될 때까지 라우터에서 라우터로 전달
      • 이웃 노드 명시(Next-hop method)
        • 가장 기본이되는 방법
        • 라우팅 테이블은 전체 경로상의 라우터를 명시하지 않고 다음 라우터만을 명시
        • A->R1->R2->B 와 같이 모든 경로를 명시하는 것이 아니라(모두 명시할 수는 있음) A는 R1만 명시
        • 그 다음 경로는 다음 라우터가 보장한다고 가정
      • 네트워크 주소 명시(Network-specific method)
        • 네트워크 주소만 명시하는 것이 일반적
        • 동일한 네트워크에 연결된 컴퓨터들을 하나하나 모두 명시하는 것이 아니라 목적지 네트워크 주소만 명시
        • 192.168.10.20의 경우, 192.168.10.0 으로 네트워크 주소만 라우팅 테이블에 등록
        • 이렇게 하면 호스트 주소를 등록하는 것보다 라우팅 테이블 사이즈를 크게 줄일 수 있음(동일한 네트워크에 속한 여러 사용자들의 네트워크 경로는 비슷하다고 보기 때문)
      • 호스트 주소 명시(Host-specific method)
        • 라우팅 테이블에 목적지 컴퓨터 주소를 직접 명시 가능
        • 컴퓨터 주소를 라우팅 테이블에 갖는 것이 비효율적 그러나 특별한 목적이 있는 경우 포함 가능
          • 특정 컴퓨터가 특정 라우터를 거치기 원할 경우
        • 보통은 관리자가 직접 입력
        • 라우터에는 네트워크 주소 명시 라우팅 테이블과 호스트 주소 명시 라우팅 테이블이 모두 존재하는데, 호스트 주소 명시 라우팅 테이블이 우선권을 갖는다.
      • 디폴트 지정(Default method)
        • 인터넷에 있는 모든 목적지를 지정할 수 없으므로 지정된 목적지 이외의 모든 지역을 지정하는 라우팅 엔트리를 디폴트라고 함(보통 네트워크 주소가 0.0.0.0 으로 표기된다.)
        • 다음 그림에선 R2가 디폴트 라우터
        • PC방, 집에서 내부에 다양한 컴퓨터들이 보통 하나의 라우터를 거쳐서 나감. 이외에는 다른 경로가 없음. 이처럼 외부 인터넷을 나갈 때와 같은 경우 특정 라우터를 거쳐서 나가라고 디폴트로 지정함.
        • 디폴트 라우터, 디폴트 게이트웨이

라우팅 프로토콜

라우팅 테이블이 무엇인지, 라우팅 프로토콜이 무엇인지에 대해 살펴보며,
라우팅 프로토콜에서 자율시스템의 의미에 대해 알아본다.
그리고 현재 많이 사용되어지는 거리벡터, 링크상태, 경로 벡터 중에 거리벡터 라우팅에 대해 학습한다.

라우팅 테이블과 라우팅 프로토콜

  • 라우팅은 패킷을 전달하기 위한 경로를 선택하는 과정
  • 이를 전문적으로 수행하는 장치가 라우터
  • 이 라우터들은 라우팅 프로토콜을 이용해서 라우팅 테이블을 생성
  • 패킷을 전달할 때 라우팅 테이블을 기준으로 전달하기 때문에 중요
  • 라우팅 테이블을 만드는 애가 라우팅 프로토콜.
  • 사람이 전혀 개입 안 하는건 아님 -> 정적 라우팅 테이블

라우팅 테이블 구성

  • 라우팅 테이블은 정적 혹은 동적으로 구성
  • 정적 라우팅(static routing) 테이블은 직접 입력
    • 일반적인 경우는 아님
    • 특별한 목적으로 네트워크 운영관리자들이 수동으로 작업
    • 자동으로 갱신될 수 없으며, 보통 호스트 컴퓨터에서 사용
    • LAN에 접속된 호스트는 외부 인터넷으로 접속하는 출구가 하나이기 때문에 동적으로 구성할 필요성이 없음
  • 동적 라우팅(dynamic routing) 테이블은 경로를 주기적으로 갱신(대표적으로 RIP, OSPF, BGP가 존재)
    • 일반적
    • 테이블에 들어가 있는 엔트리(목적지주소, next hop)가 주기적으로 자동으로 삭제, 변경, 추가

경로 설정

  • 두 가지 경로설정이 존재 - 유니캐스트, 멀티캐스트
  • 유니캐스트와 멀티캐스트에서 사용되는 라우팅 프로토콜, 라우팅 테이블이 따로 존재한다.
  • 유니캐스트 라우팅 프로토콜에 기반이 되는 거리벡터, 링크상태, 경로벡터 라우팅은 멀티캐스트에도 활용된다.

유니캐스트 라우팅 프로토콜

  • 일반적인 라우팅 프로토콜로 송수신이 모두 하나임
  • 유니캐스팅에서 사용되는 라우팅, 라우팅 프로토콜, 라우팅 테이블이 존재
  • 경로를 선택하기 위해 어떻게 라우팅 정보를 교환하여 라우팅 테이블을 구축할 것인가를 명시

멀티캐스트 라우팅 프로토콜

  • 멀티캐스트 그룹이에 속해있는 다수의 컴퓨터들이 받는 것
  • 목적지가 동일 그룹에 속한 여러 호스트가 될 수 있음

자율 시스템(Autonomous System)

  • 하나의 기관 내부를 나타낸 것으로 네트워크와 라우터의 집합으로 구성된 것으로 라우팅 테이블의 정보를 주고받는 범위를 지정하여 지정한 범위 내에서 라우팅 테이블 정보를 주고받는 것
  • 동잃ㄴ 관리 영역에 속해있는 라우터들은 동일한 AS 넘버를 갖게 되고 동일한 AS넘버를 갖고 있는 애들끼리만 서로 라우팅 테이블을 주고 받는다.
  • 라우터들이 라우팅 테이블을 주고 받는 범위를 정하기 위해 도입한 시스템
    • 학교, 회사의 라우팅 테이블 정보가 전 세계에 다 돌아다니진 않는다. 그걸 바라지도 않는다.
    • 학교, 회사 내에서만 라우팅 테이블이 주고받아져야 하고, 회사가 있으면 그 회사 내에서만 라우팅 테이블이 주고받아져야 된다.
    • 이러한 영역이 지정되야 할텐데 이를 해결하기 위한 것이 AS
    • 인터넷은 AS들이 서로 연결되어 있는 구조
  • 하나의 라우팅 프로토콜이 전체 인터넷에서 통용되지 않음
  • AS는 하나의 기관 내부를 나타낸 것으로 네트워크와 라우터의 집합을 구성
  • 라우팅 프로토콜은 내부 게이트웨이 프로토콜과 외부 게이트웨이 프로토콜로 구분

내부 게이트웨이 프로토콜(interior gateway protocol:IGP):

  • 자율 시스템 내부에서 사용되는 라우팅 프로토콜(IS-IS, OSPF, IGRP, EIGRP, RIP 등)
  • 각 AS는 여러 라우팅 프로토콜을 사용해도 무관

외부 게이트웨이 프로토콜(exterior gateway protocol:EGP):

  • 자율 시스템 간에 사용되는 라우팅 프로토콜, BGP가 이에 속함
  • AS간에는 반드시 하나의 라우팅 프로토콜만 사용

라우팅 프로토콜 종류

1. 거리벡터라우팅(Distance Vector Routing)

  • 두 노드 사이의 최소 비용 경로는 최소거리를 갖는 경로
    • 경로를 계산하기 위해서 Bellman-Ford 알고리즘을 사용
  • 거리 벡터 라우팅을 사용하는 프로토콜로 RIPv1/v2, IGRP(Interior Gateway Routing Protocol) 존재
    • BGP(Border Gateway Protocol)도 거리 벡터 라우팅과 개념상 유사함 - 벨만 포드 알고리즘을 사용
알고리즘의 동작
  • 각 라우터는 자신의 정보를 이웃 라우터와 공유
    • 전체 AS에 대한 정보를 공유
    • 이웃 라우터하고만 공유
    • 주기적으로 공유
  • 처음에는 이웃 라우터 건너편의 라우터 정보를 알지 못함. 주기적으로 이웃 라우터의 정보를 받으면서 AS 전체 정보를 얻게 되고 최적의 경로를 구하게 됨
  • 코스트는 속도, , 밀리는 구간이 될 수도 있음
  • A의 입장에서 보면 자기가 C로부터 어떤 정보를 수신하게 되면 자기 테이블과 비교해서 업데이트
    • A-C 코스트인 2값을 전부 C로부터 받은 테이블에 더해줌. 이것과 기존 테이블을 비교
거리벡터라우팅의 대표 프로토콜, RIP 특징
  • 현재 가장 많이 사용되는 라우팅 프로토콜
  • 거리벡터 프로토콜을 사용
  • 소규모 동종의 네트워크(자율시스템) 내에서 효율적인 방법
  • 최대 홉수를 15로 제한하므로, 15이상의 경우는 도달할 수 없는 네트워크를 의미하며, 이것은 대규모 네트워크에서는 RIP를 사용할 수 없음을 나타냄
  • 라우팅 정보를 30초마다 네트워크 내의 모든 라우터에 알리며, 180초 이내에 새로운 라우팅 정보가 수신되지 않으면 해당 경로를 이상 상태로 간주함

2. 링크상태 라우팅

  • 모든 노드가 전체 네트워크에 대한 구성도를 만들어서 경로를 구함(모든 라우터들이 전체 토폴로지가 어떻게 생겼는지 그림)
    • 각 노드는 다른 모든 노드로부터 최단 경로를 구함
    • 각 노드는 다익스트라의 최단 경로 알고리즘을 사용하여 라우팅 테이블을 구축
      • 전체 네트워크의 구성도를 그리기 위해서는 이웃에 관한 정보를 전체 라우터들과 공유(거리벡터 라우팅과 다른 부분)
    • 네트워크에 변화가 생기면(링크 상태 등) 각 노드는 네트워크 구성도 갱신
      • 링크상태 라우팅은 전체 네트워크는 주기적으로 구성도를 갱신하지 않는다.
  • OSPF(Open Shortest Path First) 라우팅 프로토콜은 링크 상태 라우팅 방법을 사용
알고리즘의 동작
  • 각 라우터는 인터넷의 전체 그림을 그려야 함
    • 이웃에 관한 정보를 공유
    • 모든 라우터와 공유
    • 변화가 발생하면 정보를 공유
  • 전달하는 방식
  • 링크 상태 데이터베이스
링크상태 라우팅의 대표 프로토콜, OSPF 특징
  • 경로 수(Hop)에 제한이 없으므로 대규모 네트워크에서 많이 사용되는 라우팅 프로토콜
  • 멀티캐스팅 지원
  • 라우팅 정보에 변화가 있을 때에 변화된 정보만 네트워크 내의 모든 라우터에 알림 -> 네트워크 변화에 민첩하게 대응한다.
  • RIP의 한계를 극복하기 위해 IETF에서 고안한 것으로 네트워크의 변화가 있을 때만 갱신하므로 대역을 효과적으로 사용할 수 있는 라우팅 프로토콜
  • 다익스트라 알고리즘을 사용한다.

3. 경로 벡터 라우팅(Path Vector Routing)

개념
  • BGP(Border Gateway Protocol)은 자율 시스템 간의 라우팅 프로토콜
    • 현재 사용되는 버전은 BGP4(EGP를 보완해서 나온 것)
    • 경로 벡터 라우팅 방법을 사용
    • 라우팅 테이블에 목적지까지의 경로가 명시(보통은 Next-hop만 명시)
    • 경로는 자율 시스템의 리스트로 표현
목적
  • 루프 방지
    • 데이터 수신 시 라우터가 자신의 자율 시스템이 목적지 경로 항목에 있는지를 확인
    • 만약 포함되어 있다면 Loop에 포함됐으므로 해당 데이터는 무시
  • 정책 라우팅
    • 경로 벡터 라우팅을 통해 쉽게 구현 가능
    • 데이터 수신 시 라우터는 경로를 확인 가능
    • 경로 확인 시 등록된 자율시스템 중 일부가 정책에 반대되면 그 경로와 목적지를 무시
      • 과거에 우리나라에서 발생한 트래픽이 미국까지 거치는 경우가 발생함.
      • 또한 A-B간에 주고 받는 트래픽이 C를 거쳐서 C의 네트워크 자원을 사용하는 문제가 발생함
      • 이러한 의도하지 않은 경로를 차단하기 위해서 사용
경로벡터 라우팅의 대표 프로토콜, BGP 특징
  • 자율 시스템 간의 라우팅 프로토콜로, EGP의 단점을 보완하기 위해 만들어짐
  • 초기에 BGP 라우터들이 연결될 때에는 전체 경로 제어표(테이블)를 교환하고, 이후에는 변화된 정보만을 교환함

DHCP과 NAT 대해 살펴보고 어떻게 주소가 매핑이 되는지, 대표 프로토콜인 ARP와 IP프로토콜의 한계점을 보완하기 위한 에러보고에 대해 학습한다.

DHCP와 NAT

DHCP의 필요성과 DHCP의 개념에 대해 살펴보고, NAT의 필요성과 NAT의 개념에 대해 학습한다.

DHCP의 필요성

Dynamic Host Configuration Protocol

스마트폰이나 컴퓨터를 사용할 때 IP 주소가 있어야 한다.

IP주소의 역할은 인터넷에 붙어 있는 수많은 컴퓨터들 중에서 어느 하나를 식별하기 위한 식별자 역할을 한다. 그래서 반드시 IP 주소가 필요하다.

그런데 IP 주소를 일일이 설정하는 것이 아니라 자동으로 누군가 할당해주는 것을 DHCP라고 부른다.

  • 소규모의 네트워크의 경우 각각의 IP주소를 직접 분배 및 관리 가능
  • 그러나, 대규모의 네트워크의 경우 직접 분배와 관리가 어려움
    • DHCP가 부재 시 네트워크 관리자는 모든 클라이언트의 통신에 필요한 정보를 직접 입력 및 관리해야 함
  • IP를 보다 효율적으로 할당하고 관리하기 위해 필요
  • IP주소만 할당받는 건 아니고 네트워크 마스크, DNS서버 주소, 기타 관련된 정보를 받음

DHCP의 정적, 동적 할당

  • DHCP는 정적 및 동적 할당 제공
  • 동적 주소 할당
    • DHCP 클라이언트가 DHCP 서버에 요청, 서버는 먼저 정적 데이터베이스를 검사
    • 요청된 실제 주소가 정적 데이터베이스에 존재하면 클라이언트의 영구 IP주소가 반환
    • 없으면 서버는 사용 가능한 풀에서 IP주소를 선택
    • DHCP는 제한된 시간 동안 임시 IP주소를 제공
  • 정적 주소 할당
    • DHCP 서버에는 물리적 주소(MAC주소)를 IP주소에 정적으로 바인드(주소 매핑)하는 데이터베이스가 존재
    • DHCP는 서버 측은 67/UDP, 클라이언트 측은 68/UDP 포트 사용

NAT의 필요

  • Network Address Translation
  • 공인 IP주소의 수 부족(클래스풀 구현에도 불구하고)
  • -> 내부 IP(비공인주소)와 외부 IP(공인주소)를 분리하는 것
    • 중복이 되도 상관없으니 학교, 회사 내부 IP 따로 외부 인터넷으로 나가는 주소를 따로 사용
    • 내부 IP와 외부 IP를 번역하기 위해서 필요한 기술, 장치가 NAT
  • 외부로부터 내부망을 보호
    • 내부를 사설 IP로 구성하여 외부 공격으로부터 보호
    • 외부에선 내부 어떤 컴퓨터에 어떤 IP가 할당되었는지 모름
  • ISP변경에 따른 내부 IP변경 최소화

NAT 특징

NAT는 그룹내에서는 고유한 주소를 갖으며, 외부인터넷에서는 고유한 주소를 갖지 않는다. -> 이해 안 됨

NAT IP 주소 범위

  • 3개의 주소 세트를 개인 주소로 정해놓음
  • 외부 인터넷에 존재 하지 않는다.

IP 주소 사용 방식

단일주소사용

  • 단일주소를 사용하기 위해서는 항상 사설 네트워크에서 시작되야 함
  • 하나의 비공인주소를 하나의 공인주소와 매핑하여 사용하기 때문에 여러 비공인주소(컴퓨터)를 사용하는데 불편함이 있었음

여러 IP주소 사용

  • 단일주소사용의 불편함을 개선시킴
  • 사설 네트워크 호스트의 경우, 각 주소를 한 쌍으로 연결
    • 동일한 외부 호스트와 동시에 통신 가능
  • 정적 NAT
    • 사설IP주소와 전역IP주소 사이에 정적 맵핑
    • 기관 내에서 시스템의 실제IP주소를 은신 가능
  • 동적 NAT
    • pool에서 IP주소 할당
    • 대부분 동적으로 할당

IP주소와 포트 모두 사용

  • 최근에 사용하는 방식
  • 공인 IP주소가 하나더라도 여러 비공인주소가 치고 들어와도 모두 공인으로 변환되어 나갈 수 있게 됨
  • 바깥에서 봤을 땐 하나의 컴퓨터가 여러 프로그램을 접속한 것처럼 보임

NAT 장비

  • NAT은 그룹 내에서 고유한 주소를 갖음
  • 데이터를 주고 받는 경우, 모든 데이터는 NAT 라우터를 통과
    • 출입구 쪽에 대부분 라우터가 존재하기 때문에 NAT 기능을 넣어서 사용함
    • 그래서 IP공유기가 대표적은 NAT라우터
    • 공인 주소는 하나만 사용하는데 내부에서는 여러 컴퓨터를 사용하고 있음
  • 단일 주소 사용

주소 매핑과 에러보고

주소 매핑에 대해 알아본다. 대표적으로 ARP에 대해 살펴보며 필요성과 동작에 대해 공부한다.
그리고 IP프로토콜의 한계점을 보완하기 위한 에러보고(ICMP)에 대해 학습한다.

주소 매핑

  • 데이터를 전달할 때, IP주소는 내 컴퓨터, 상대방 IP주소는 우리가 줬고, 내 MAC 주소는 내 컴퓨터에서 가져오면 된다. 그런데 상대방 MAC주소는 알 수 있나?
    • MAC주소 = 하드웨어 주소=물리 주소 = 이더넷 주소
    • 상대방 MAC주소를 모르면 메시지를 보낼 수 없다.
    • 이더넷 프레임 포맷을 보더라도 제일 앞 필드에 목적지 주소, 송신자 주소가 있고 MAC주소에 목적지 주소가 들어가야 한다.
    • 이를 해결하기 위한 것이 주소 매핑이다.
    • IP주소와 MAC주소를 연결하는 것(내IP-내MAC, 상대IP-상대MAC)
  • IP주소는 논리적인 주소로, 인터넷에 접속된 컴퓨터를 구분
    • 인터넷 전체에서는 IP주소로 식별
  • Ethernet 주소는 물리적인 주소로, 해당 LAN에서 접속된 컴퓨터를 구분
    • MAC주소는 LAN에서만 유일하게 식별
    • MAC주소는 LAN에서 각 장치 구분

주소 매핑 방식

  1. 정적 매핑
    • IP주소와 MAC주소를 연결시키는 테이블을 고정적으로 생성하는 방법
      • 수작업으로 직접 입력도 가능
    • 이 방법에는 문제점이 존재
      • 컴퓨터의 NIC를 교환 가능(LAN카드를 바꾸면 MAC주소가 바뀜)
      • 이동이 가능한 컴퓨터는 하나의 네트워크에서 다른 네트워크로 이동 가능(IP주소 변경 가능성)
  2. 동적 매핑
    • 컴퓨터가 매번 IP주소와 MAC주소의 관계를 프로토콜을 이용하여 구함
    • ARP(Address Resolution Protocol)
      • IP주소에 대응하는 MAC주소를 구하는 프로토콜
      • IP주소에 해당하는 MAC 주소를 묻는 브로드 캐스팅을 수행
      • 해당되는 컴퓨터는 송신자에게 유니캐스트로 응답합
      • 이것을 받아 로컬 캐시에 주소매핑을 해놓음
    • RARP(Reverse Address Resolution Protocol)
      • MAC 주소에 대응한 IP주소를 구하는 프로토콜
      • 현재는 DHCP가 사용
      • 현재 많이 사용하지 않음

에러 보고(ICMP)

  • The Internet Control Message Protocol(ICMP)
  • IP의 단점을 보완하기 위해서 제공 - 에러제어, 흐름제어가 없기 때문에
    • IP프로토콜은 에러제어와 관리기능이 부족
      • 에러보고 메시지(Error-reporting messages) - 에러제어 관련
      • 질의응답 메시지(Query messages) - 관리기능 관련. 상대 정상 동작하는지
      • ICMP는 에러를 정정하지는 않고 단순히 보고만 수행
에러 보고 기능
  • 5가지
  1. 목적지 도달 불가
    • IP패킷을 전달할 수 없을 때, 해당 패킷은 폐기
    • 목적지 도달불가 메시지를 송신지로 전송
  2. 송신자 조절
    • 라우터나 컴퓨터는 혼잡이 발생하면 해당 패킷은 폐기
    • 송신자로 송신자 조절 메시지를 전송
  3. 시간 초과(Time exceeded)
    • 라우터는 TTL필드의 값이 0인 패킷은 폐기
    • 송신자로 시간초과 메시지가 발생
    • 단편화된 메시지가 모두 도착하지 못해 완전한 하나의 패킷을 조절할 수 없을 때 시간 초과 메시지가 발생
  4. 파라미터 문제
    • IP패킷 헤더의 정보 중에서 처리할 수 없는 부분을 발견 시
      • ex) 알 수 없는 버전 정보
  5. 경로 재설정
    • 잘못된 라우터로 패킷을 전달하는 경우
    • ex) 다음부터 목적지가 B로 가는 것은 R1인 나한테 보내지 말고 R2로 보내줘. 그러면 그것을 받은 송신자는 다음부터 B로보낼 때 R2 라우터로 패킷 전송
질의응답(Query)

  • ICMP는 네트워크 문제를 진단하기 위한 행위를 할 수 있음
    • 에코 요청 및 응답(Echo request and reply)
      • 가장 많이 사용함
      • 네트워크 생존 여부 질문
      • PING이 이것에 해당
    • 타임 스탬프 요청 및 응답(Timestamp request and reply)
      • 시간 질문
    • 주소 마스크 요청 및 응답(Address-mask request and reply)
      • 마스크 값 요청
    • 라우터 요청 및 응답(Router solicitation request and reply)
      • 라우터 정보 요청

이동전화의 발전과정에 대해 살펴보고 GPS, 네비게이션 등 위성네트워크에 대해 살펴본다. 그리고 인터넷 프로토콜인 IP프로토콜에 대해 살펴본다.

이동 통신

  • 이동전화, 기지국, MSC로 구성된다.
  • 이동전화와 기지국간에는 무선 통신으로 기지국간, 기지국과 MSC간에는 유선으로 통신한다.(부산으로 통신한다면, 모든 구간을 무선으로 통신하는게 아니라 이동전화와 기지국간에만 무선통신하고 부산까지는 유선으로 통신하게 된다.)
  • 그래서 유선의 비율이 더 높다.
  • 이동전화 서비스 영역인 동시에 한 기지국이 관할하는 영역을 cell이라 한다. 그 cell 영역 안에서 기지국의 관리를 받으면 전화하게 된다.
  • 각 기지국은 MSC(Mobile Switching Center)로 제어
  • MSC는 전화연결, 과금 정보를 기록한다.
  • 이동전화는 우리가 이동을 하면 신호가 한 셀에서 약해진다. 이때 통신하기에 적절한 cell을 찾게 되는데, 그러한 기지국간 이동을 handoff라 한다.
  • 기지국을 탐색하는 작업은 무작위 접근(random access)으로 탐색하게 된다.
  • 기지국을 연결하는 방식에는 2가지가 있다.
    • Hard handoff - 먼저 기존의 연결을 끊고 새로운 cell에 연결한다.
    • Soft handoff - 먼저 새로운 cell에 연결시키고 기존의 연결을 끊는다. 이동 단말이 동시에 두 기지국을 연결

이동 전화 계보

  • 아날로그에서 디지털로, 이후 속도의 발전에 따라 계보가 구분된다.

1G

  • 아날로그 신호를 사용한 음성 통신
  • AMPS(Advanced Mobile Phone System)라고 불리기 시작함 - 위치가 고정된 전화 방식에서 이동식 전화가 가능해진 시스템
    • FDMA를 사용하여 각 채널당 주파수를 단말에 할당
    • 순방향(base station to mobile station), 역방향(mobile station to base station) 채널 2개의 아날로그 채널을 사용

2G

  • 디지털화된 음성신호를 위해 설계
  • 0, 1 간단한 체계
    • 복구에 용이(아날로그는 잡음도 같이 증폭됨)
    • 잡음X
    • 채널 용량 증가
  • 우리나라는 CDMA 채택
    • GPS, SMS, 인터넷 사용이 가능해짐
  • GSM(Global System for Mobile Communication)은 유럽 표준

3G

  • 음성과 데이터 통합 단계
  • 데이터 전송속도가 2Mbps까지 빨라짐
  • 인터넷 접속이 원활
  • CDMA 발전(WCDMA, CDMA2000)

4G

  • ALL IP로 디지털 데이터와 음성통신을 통합
  • 데이터 전송속도가 100Mbps까지 빨라짐
  • 인터넷접속 및 멀티미디어 통신이 원활
  • WCDMA에서 확장된 LTE와 CDMA2000에서 확장된 Wibro로 나뉨
  •  

위성 네트워크

  • 인공위성을 이용한 통신 형태
  • 2개의 Van Allen 벨트로 인해 위치가 나뉨
    • Van Allen는 하전입자를 갖는 계층을 의미
    • Van Allen 벨트에 인공위성이 위치할 경우 하전입자에 의해 파괴될 수 있음
    • 따라서 이 공간에 위성이 위치할 수 없음
  • 벨트를 기준으로 공간을 나누면 LEO, MEO, GEO
  • GEO
    • 정지궤도 위성으로서 지구의 자전속도와 동일하게 움직임(고정된 것처럼 보임)
    • 북극에서 봤을 때, 각 위성이 120도 차이로 존재
  • MEO
    • 2개의 Van Allen 벨트 사이에 위치
    • 6~8시간에 한번 씩 지구를 돌며, gps로 주로 사용
      • 6개의 궤도로 24개 위성이 돌고 있음
    • GPS에서는 4개의 위성으로부터 정보를 받아야 위치 계산이 가능
      • 평면에서는 3개의 점으로부터 거리를 알면 위치 추적이 가능하나, 공간에선 4개가 필요
  • LEO
    • 지구와 가장 가까이 인접해 있기 때문에, 전파지연이 적어서 음성 통신에 주로 사용
      • 왕복 전파지연시간 20ms 이내
    • 이리듐 위성 사용
    • 90~120분에 한번씩 지구를 돌고 있음
    • 6개의 궤도에서 각 궤도 당 11개의 위성(총 66개의 위성)

네트워크 프로토콜의 연결형, 비연결형 프로토콜에 대해 소개하며,
네트워크 계층의 대표 프로토콜인 인터넷 프로토콜의 패킷의 형태패킷의 내부, 단편화에 대해 학습한다.

네트워크 프로토콜의 구분- 연결형, 비연결형 네트워크

  • 연결형 네트워크: 연결 설정을 먼저 한 다음에 데이터를 보냄
  • 비연결형 네트워크: 데이터가 생기면 바로 보내버림(연결설정 과정 없음) Unit Data Transfer

IP(인터넷 프로토콜) = 대표 비연결형 네트워크

IP 특징

  • 비신뢰성(패킷을 보내면 이게 목적지에 잘 갈 수도 중간에 없어질 수도 있다.)
    • 만약에 없어진다고 하더라도 IP에서 하지는 않지만 다른 계층에서 재전송을 하여 복구한다.
  • 비연결형
  • Best-effort 전달 서비스
  • 에러 제어X(사용자 데이터가 에러가 있는지 없는지 확인 안 한다. 헤더만 확인)
    • 헤더에 에러나면 바로 버린다.
  • 흐름 제어X(송신자 쪽에서 패킷을 보내고 수신 측에서 수용 능력에 따라 조절하는 것)
  • 효율성이 좋다(매 패킷마다 가장 좋은 길로 전달)

IP 패킷의 형태

  • IP 패킷 또는 IP 데이터그램
  1. 버전
    • IPv4 또는 IPv6
    • IPv6는 오래 전에 개발했지만 오늘날 와서 사용하게 됨
  2. 헤더 크기(Header length: HLEN)
    • 헤더의 크기를 나타내는 것으로 4바이트 단위로 나타낸 크기
    • 헤더의 크기는 20~60 바이트로 가변적
  3. 서비스
    • ip 패킷의 서비스의 형태
    • 응용서비스마다 주요하게 다루어야 할 특성을 명시
      • 지연시간, 신뢰성, 처리량 등
  4. 전체 길이
    • IP 데이터그램을 바이트단위로 나타낸 전체 길이
  5. 생존시간(Time to live: TTL)
    • IP 데이터그램이 지나가는 최대 홉(hop)의 수
    • 각 라우터를 지나갈 때마다 1씩 감소
    • 값이 0이 되면 라우터는 해당 데이터그램을 폐기
    • 무한 사이클을 방지함
  6. 프로토콜
    • IP 계층 위에 존재하는 상위 프로토콜이 무엇인지 명시
    • TCP/ UDP/ ICMP/ SCTP 등
  7. 체크섬
    • IP패킷의 헤더에 대한 오류 검사를 위해 사용(데이터는 체크 X)
    • 계산 방법
      • 처음에 체크섬의 값을 0으로 설정
      • 전체 헤더를 16비트 단위로 구분하여 1의 보수 연산을 수행
      • 결과 값을 보수로 만들어서 체크섬 필드에 저장
      • 즉, 헤더 부분을 16비트 워드로 보고 쭉 덧셈해서 나온 결과를 보수 취해서 보내면 모두 합했을 때 0이 됨. 그러면 에러 없다고 판단 안되면 어딘지는 모르겠지만 에러가 있다고 판단하여 폐기
  8. 송신자 주소와 목적지 주소
    • 송신자와 수신자의 IP주소를 의미

단편화(Fragmentation)

  • IP패킷을 네트워크가 수용할 수 있는 크기로 맞춰서 잘라내는 것
  • 프레임의 크기와 형태는 네트워크에 따라서 다름
  • IP패킷은 여러 네트워크를 경유하기 때문에 다양한 데이터링크 프로토콜을 거쳐감
  • IP패킷은 네트워크가 수용할 수 있는 크기로 분할, 이를 단편화라 함
  • MTU(Maximum Transfer Unit)가 정해져 있음
  • 압축할 수 있는 것도 아니고 줄일 수 있는 방법은 자르는 것. MTU 사이즈로 자름

단편화 옵션

플래그

  1. 3비트로 구성되며 첫 번째 비트는 사용하지 않음
  2. 두 번째 비트는 단편화 금지를 의미(D: Do not fragment)
  3. 값이 1이면 단편화 하지 말라는 의미
    • 만약 안 자르고는 못 보내면 그 패킷은 폐기
    • 세 번째 비트는 "단편이 더 있음"을 의미(M: More fragments)
    • 값이 1이면 "단편이 더 있음"을 의미
    • 값이 0이면 마지막 단편을 의미
  4. 단편화 위치 값(Fragmentation offset)
    • IP는 비연결형이기 때문에 단편화된 데이터의 순서가 항상 정렬된 상태가 아님
    • 그 순서를 명시한게 offset-처음 위치에서 얼마나 떨어져 있느냐를 나타냄
    • 8로 나눠서 바이트 순서를 명시함(1, 2, 3, 4 이렇게 명시 하는 게 아니라)
  5. 옵션
    • 옵션은 최대 40바이트까지 가능
 1. Record route
    - ip패킷이 어떤 장치들을 지나가는지 ip 주소를 저장할 수 있음
 2. Strict source route
 3. Loose source route
 4. Timestamp
    - 통신 장치를 거칠 때마다 몇 초대에 지나갔는지 명시할 수 있음

선이 없이 네트워크가 연결되는 무선 LAN에 대해 살펴보며, 무선 LAN에 구조에 대해 살펴보고 네트워크와 네트워크를 연결해주는 장치에 대해 알아본다.

1. 무선 LAN

  • 무선 LAN은 BSS와 ESS 두 종류의 서비스를 지원
  • 하나의 AP를 지원하냐, 둘 이상의 AP 그룹을 지원하냐의 차이
  • ESS를 사용하면 여러 AP들이 커버하고 있는 어떤 지역에서도 로밍할 수 있다.
  • AP(Access Point) 를 유무선 공유기라고도 함
  • 흔히 IP 공유기라고 부름
  • 무선 LAN과 직접적으로 연관된 무선 LAN 장비를 AP라고 부른다.
  • 카페, 집에서 어떤 WIFI 리스트를 보고 선택을 하게 되는데, 그게 바로 무선 장치 즉, AP를 선택하는 행위

Basic Service Set(BSS)

  • Infrastructure 모드/ Ad hoc 모드로 나뉨
  • WI-FI에도 두 모드를 지원
  • WIFI는 대부분 인프라 모드를 사용하여 작동

Infra 모드: AP라는 중앙의 기지국을 이용하는 모드

  • Wi-Fi 액세스 포인트를 기지국이라고 한다.
  • wifi wlan 허브를 구입한 후, KT, LGU+, SK브로드밴드와 같은 인터넷 서비스 제공업체(ISP)가 제공하는 가정용 라우터의 통신 포트에 연결하여 기지국을 인터넷에 연결한다.
  • 기지국 아래에 수백 개의 단말기가 존재해도, 서로 직접 통신할 수는 없고 기지국(허브)을 통해서만 통신할 수 있다.

Ad hoc 모드: AP가 없는 모드

  • 중간에 AP 장치를 경유하지 않고 직접 통신하는 모드
  • 다른 통신 기반 시설없이 무선 어댑터가 설치된 단말만으로 네트워크의 구성이 가능
  • 기지국이 없음이 무선 단말기들이 서로 직접 통신. 곧 단말이 라우터, L3의 역할을 하는 것
  • 예를 들어, 북한에 간다면 사용할 수 있는 인프라 네트워크가 존재하지 않는다. 이 경우, 군인들이 사용하는 무선기기들과 통신하기 위해서는 Ad-hoc 네트워크를 사용해야 한다.
  • 단말이 많아질 수록 네트워크의 범위도 그만큼 넓어지고 통신 범위도 넓어진다. 단, 통신 범위 거리 안에 있어야 한다.
  • 하나의 독립적인 IBSS는 다른 IBSS에 연결할 수 없다. IBSS끼리 서로 통신할 수 없다.

Extended Service Set(ESS)

  • 여러 BSS로 구성된 서비스를 의미
  • BSS는 분산 시스템이라고 불리는 유선 네트워크에 연결된다.

기본적인 Wi-Fi 동작

Wi-Fi 인터페이스를 켜면 기지국(AP)가 검색된다.

각각은 BSS ID라고 불리는 기지국의 고유 이름이다.

이 기지국들이 동일한 무선 주파수를 사용하면 서로 간섭이 발생한다. 예를 들어, 동시에 여러 개의 라디오를 켜면 제대로 소리를 들을 수 없다. TV 채널이 서로 다른 것처럼 Wi-Fi는 약간 다른 주파수를 설정하여 채널로 나뉜다. 채널 스캐닝을 통해 어떤 기지국이 어떤 채널을 사용하고 있는지 파악하고, 최대한 간섭을 줄이는 채널을 선택합니다. 채널 스캐닝 결과, 어떤 기지국이 있고 어떤 세기의 신호가 있는지 등등의 정보를 얻게 된다.

이러한 신호 정보를 '비콘'이라고 한다. 비콘 프레임은 IEEE 802.11 기반 WLAN의 매니지먼트 프레임 중 하나이다. 비콘 프레임은 주기적으로 전송되어 무선 LAN의 존재를 알린다. 비콘 프레임은 BSS에서 AP에 의해 전송이 된다. Wi-Fi를 사용하는 디바이스는 사용 가능한 채널들을 검색하는 두 가지 방법(능동/수동) 중 하나를 사용할 수 있다. 능동 스캔 중에는 클라이언트 라디오가 직접 probe 요청을 전송하고, AP로부터 probe 응답을 수신한다. 수동 스캔에서 클라이언트 라디오는 각 채널에서 AP가 주기적으로 보내는 비콘을 수신 받기 위해 대기한다.

기지국은 일정 시간 간격으로 '비콘'이라는 신호를 보낸다. 이 비콘에는 타임스탬프, 시간 간격, SSID, 사용된 채널 번호, 기능 정보와 같은 기지국에 대한 유용한 정보를 포함하고 있다.

통신하고자 하는 AP를 찾아 선택한 후에는, 'Authentication'과 'Association'이 필요하다. Authentication은 단말이 기지국을 이용할 권한을 가지고 있는지 여부를 확인하는 작업이다. 암호확인은 가장 많이 사용되는 인증방법이다.

이 절차가 성공적으로 수행되면 Association을 한다. 단말은 AP 또는 라우터와 연결(등록)하여 네트워크에 완전히 접근할 수 있다. Association은 AP가 각 단말을 기록하여 프레임이 제대로 전달되도록 한다. Association은 Ad-hoc 모드가 아닌 무선 인프라네트워크에서만 발생한다. 이 2가지 절차가 끝나게 되면, 데이터가 전송될 수 있다.

우리집 최적의 와이파이(WIFI) 채널(Channel) 찾기 외장 뇌장소 (tistory.com)

LAN에서 사용하는 매체의 종류와 특성에 대해서 알아보고, 유선 LAN의 구조와 Ethernet에서의 변화와 고속 및 Gigabit Ethernet에 대해서 알아본다.

1. LAN에서 사용하는 매체

신호를 전달하는 물질을 매체라고 하는데, LAN에서 사용하는 매체가 무엇이 있는지 알아본다. 그리고 매체의 종류로 선으로 연결되는 유도매체와 선 없이 연결되는 비유도 매체로 나누어서 학습한다.

  • LAN에서 사용하는 매체의 종류와 특성

전송 매체의 종류

  • 전송 매체는 에너지를 전달하는 물질을 의미
  •  

유도 매체 = 유도체 = 유선 = guided

꼬임선(TP; Twisted-pair cable)

  • 쉴드(차폐) 유무에 따라 UTP, STP로 나뉜다.
  • 쉴드는 외부로부터 잡을 막아주는 보호막
  1. UTP(Unshield)
    • 쉴드(차폐)X
    • 대부분의 TP케이블이 UTP에 해당
    • UTP의 성능이 많이 향상되었다.
    • UTP 카테고리: UTP 품질 기준으로 분류해놓은 것
      • CAT5 가 가장 많이 쓰임
    • TP 커넥터: 어댑터
      • RJ-45를 가장 많이 사용
  2. STP(Shield)
    • 비싸다

동축 케이블(Coaxial cable)

  • TP 케이블보다 높은 주파수의 신호를 전달
  • 중심축에 내부 도체가 있고 이를 절연체로 둘러 싼 뒤, 여기에 외부 도체를 원통의 그물 형태로 씌우고[[1]](https://namu.wiki/w/동축 케이블#fn-1), 최종적으로 피복으로 감싼 형태의 케이블이다.
  • 케이블의 굵기, 도체의 굵기, 쉴드의 특성, 전기적 특성 등등에 따라서 수도 없이 많은 종류가 있는데, 그냥 이런 구조를 가지기만 하면 모두 동축케이블이라고 부른다.
  • 구리선을 쓴다고 동축이 아니다.
  • 그러나 감쇄가 심해 최근 사용이 줄어드는 추세. 광케이블로 넘어가는 추세
  • 안에 굵은 구리선에 하나, 밖을 감싸고 있는 구리선, 겉에 피복으로 구성됨
  • e.g. VTR-비디오와 TV를 연결하는 선
  • 동축 케이블 커넥터
    • 동축 케이블 LAN은 거의 사용하지 않음
    • 케이블 TV에서 보통 사용.

광케이블(Fiber-optic cable)

  • 위 케이블들과 다르게 전기 신호 대신 빛 신호를 전달
  • 유리나 플라스틱으로 만들어짐
  • 현존하는 매체 중에서 가장 고속의 광대역 전송이 가능한 매체
  • 해저 케이블, 유선 통신 등 많은 영역에서 다양하게 사용
  • 고속, 외부 잡음이 적음
  • 광케이블 커넥터
    • 3종류의 커넥터가 존재
    • SC 커넥터, ST 커넥터, MT-RJ 커넥터

비유도 매체 = 비유도체 = 무선 = unguided

  • 매체: 공기
  • 물리적인 도체 없이 신호를 전달하는 매체
  • 공기에 주파수를 쏜다.
  • 파가 존재함
  • 주파수가 높을 수록 직진성이 강해진다.
  • 보통 1G를 기준으로 1G보다 낮으면 라디오 웨이브, 1G보다 높으면 마이크로 웨이브
  • 라디오 웨이브; 라디오파 - 다방향성이 강함
  • 마이크로 웨이브;마이크로파 - 단방향성이 강함

네트워크 전체에서의 LAN의 위치

  • 라우터를 기점으로 외부는 WAN, 내부는 LAN이다.

LAN 프로토콜 규격

LAN은 OSI 7계층의 1,2계층에 대한 규격이다.

2. 유선 LAN: Ethernet

유선 LAN 표준에 대해 알아보며, 대표적으로 이더넷의 프레임 형태, 주소 등에 대해 살펴보고 이더넷의 발전 과정에 대해 학습한다.

Ethernet 표준 채택 역사

  • Xerox사에서 1976년에 이더넷 발명
  • 초기에 Digital Equipment, Intel, Xerox 3사에서 이더넷을 표준으로 제안
  • 미국 표준기구인 IEEE에서 이더넷을 표준으로 지정
  • 국제표준화기구인 ISO에서 이더넷을 국제표준으로 채택

LAN 프로토콜의 계층

  • 공유된 매체에서 어떻게 데이터를 전송할까라는 고민에서 시작된다.
  • MA - CSMA - CSMA/CD, CSMA/CA
  • 매체를 여러 개의 장치가 접속하는 사용하는 프로토콜
  • 이더넷은 OSI 7계층의 1,2 계층에 대한 규격이다.
  • 이더넷은 LLC와 MAC으로 구성된 2개의 부계층이 존재
    • 매체가 다양한데, 다양한 매체들을 수용하도록 돕는 계층인 MAC
    • 이외에 매체에 관계없이 공통적으로 필요한 기능을 수행하는 LLC

MAC 계층

  • MAC 계층은 매체의 특성과 운용방식에 따라 여러 개의 프로토콜이 존재

LLC 계층

  • 흐름제어, 에러제어 등 각종 제어에 대한 행위를 수행
  • LLC는 모든 LAN에서 공통의 계층

IEEE 802 Working Groups

  • 속도와 토폴로지에 따라서 표준을 정하는 위원회를 설립
  • 위원회 이름이 프로토콜 이름으로 사용되기도 함
  • 처음엔 LAN 프로토콜인 이더넷으로 시작하면서 발전을 거듭하면서 다양한 표준을 지정
  • 무선랜은 802.11
  • 근거리 통신 PAN(LAN아님)은 802.15 - e.g. 블루투스, ZigBee
  • 이동통신 802.16, 802.20
  • 이더넷을 초석으로 발전한 형태

이더넷 속도 발전 과정

10배씩 빨라짐!

  1. 이더넷 - 10Mbps
  2. 패스트 이더넷 - 100Mbps
  3. 기가비트 이더넷 - 1Gbps
  4. 텐-기가비트 이더넷 - 10Gbps

이더넷 프레임(MAC 프레임)

  • 이더넷 프레임은 7개의 필드로 구성
  • Physical layer header = (Preamble + SFD) 를 포함시키기도 하고 안 포함하기도 함
  • 왜냐하면 하드웨어가 비트 손실이 발생할까봐 임의로 끼워놓기 때문에 관점에 따라서 달라진다고 해석
  • Preamble: 프레임이 곧 도착하니 준비하라는 의미
  • SFD(Start frame delimiter): 프레임의 시작을 알림
  • 목적지 주소
  • 송신지 주소
  • 길이/ 타입: 네트워크 계층의 프로토콜을 길이 또는 타입으로 명시
  • 데이터: 최소 46바이트에서 최대 1500바이트에서 가능
  • CRC: Cyclic Redundancy Check: 사용자가 보내는 메시지에 에러 검출 목적
  • 프레임 전체 길이는 최대 1518, 최소 64바이트 (데이터 길이 + 나머지 18바이트)

주소 지정

  • 각 시스템은 NIC(Network Interface Card)를 갖고 있는데, LAN 카드라고도 불림
  • LAN카드에는 고유주소가 설정되어 있음
  • MAC 주소, Ethernet 주소, 하드웨어 주소라고 함
  • IP주소와 다르게 사용자가 설정할 수 없음
  • 공장에서 출하될 때 정하는 주소
  • 6바이트로 이루어져 있으며 보통 16진수로 표기
  • 브로드캐스트 주소는 모든 비트가 '1'인 FF-FF-FF-FF-FF-FF 로 구성
  • 그 외에는 보내고자하는 주소와 받는 사람의 주소를 정확히 명시하는 유니캐스트가 있다

MAC 프로토콜

  • 이더넷은 1-persistent CSMA/CD 를 사용
  • 데이터를 보내기 전에 Carier sense하여 충돌 감지
  • 유휴라고 판단이 되면 바로 치고들어가서 쏜다.
  • 여러 매체가 동시에 이렇게 결정이 될때 충돌이 발생

이더넷의 형태

이더넷(10Mbps)

  • 숫자 10은 속도를 의미
  • base: base band 신호 방식 - 디지털 신호를 그대로 보내는 방식
    • LAN 케이블 자르면 깍두기 모양의 디지털 신호가 나온다
  • 뒤에 숫자는 케이블 종류를 의미

10Base-5

  • 500m의 버스형 두꺼운 동축케이블
  • 처음에 만들어진 이더넷
  • think ethernet 또는 thinknet으로 불림
  • 동축케이블을 여러 장치들이 공유매체로 사용하는 LAN
  • 10Mbps의 속도, 베이스밴드 신호방식, 한 세그먼트가 500m에 달함(한 케이블의 최대길이)
  • 리피터를 달면 최장 2500m까지 가능
  • 거의 사용X

10Base-2

  • 200m의 버스형 얇은 동축 케이블
  • 두 번재 개발된 이더넷
  • thin ethernet/ cheapernet 이라고 불림
  • 동축 케이블을 여러 장치들이 공유매체로 사용하는 LAN
  • 두께가 10BASE5보다 얇음
  • 10Mbps 속도, 베이스밴드 신호방식, 한 세그먼트가 185m에 달함
  • 거의 사용x. 동축케이블의 문제점 때문

10Base-T

  • 스타형 UTP
  • Twisted Pair Ethernet
  • CSMA/CD 방식을 10Mpbs, Baseband, Twisted pair 방식으로 구현
  • 대부분 UTP 케이블로 사용
  • 허브: LAN에서 많이 사용되는 네트워크 장치
  • IP 공유기가 허브에 해당. 뒷면에 RJ-45커넥터를 연결할 수 있는 구멍이 존재

10Base-F

  • 스타형 광케이블
  • 시스템과 허브를 연결하는 케이블로서 광케이블을 이용

Fast Ethernet

  • 기존의 이더넷보다 10배 빠름, 100Mbps
  • 기존 이더넷과 호환 가능
  • 자동협상(Autonegotiation)기능으로 속도 등을 조정
  • 개발된 형태는 3종류

100BASE-TX

  • Two-wires category 5 UTP
  • TX: Two-wires 송수신이 동시에 되는 기능
  • 성능이 더 좋다.

100BASE-CX

  • Two-wire fiber

100BASE-T4

  • Four-wires category 3UTP
  • T4: 동시에 송수신을 허용하지 않음

Gigabit Ethernet

  • 또 10배 빨라짐
  • 1기가부터는 광케이블을 훨씬 많이 사용함
  • 속도가 1Gbps로 상향되었으나 기존 이더넷이나 고속 이더넷과 서로 호환 가능
    • 48비트 주소, 프레임 형태, 최소/최대 프레임 크기, 자동협상 기능 등을 지원
  • 광섬유나 TP를 이용한 개발된 형태를 갖고 있음
    • SX, LX, CX 모두 광케이블
    • Twisted wire를 사용할 수는 있음. 동시에 주고 받을 순 없다.
  • 속도만 계속 빨라지고 CSMA/CD프로토콜은 전혀 바뀌지 않음

Ten-Gigabit Ethernet

  • 프로토콜 그대로 사용하고 10배 빨라짐
  • 기존 이더넷, 고속 이더넷, 기가비트 이더넷과 서로 호환되도록 설계
    • 48비트 주소, 프레임 형태, 최소/최대 프레임 크기, 자동협상 기능 등을 지원

스위칭의 필요성과 종류에 대해서 살펴보고, 공유 매체 환경에서 가능한 프로토콜에 대해 살펴본다.

스위칭 방법과 종류

스위칭이 필요성과 스위칭 방식인 회선교환, 메시지교환, 패킷교환 등 3가지에 대해 알아보며, 또한 패킷 교환 방식에서 데이터그램방식과 가상회선 방식에 대해서 알아보고 마지막으로 MPLS에 대해 학습한다.

  • 스위칭의 필요성과 종류
  • 공유 매체 환경에서 가능한 프로토콜

스위치의 필요성

  • 모든 장치간에 링크로 연결시키면 비용이 커진다.(링크도 돈이다)
  • 링크의 대다수는 유휴시간이 많아 효율이 저하
  • 문제점을 해결하기 위해 여러 장치들을 스위치에 연결되도록 구성
  • 스위치는 ⭐필요할 때마다 두 개의 장치를 연결-효율적으로 데이터 전송하기 위함
  • 스위치들이 연결되어 큰 규모의 네트워크를 만들 수 있음

스위칭 방식

  1. 회선교환
    • 회선 = 어렵게 생각말고 선이라고 생각
    • 두 장치 사이에 물리적인(논리적인) 선을 연결하는 방식
    • 송신자와 수신자간에 여러 장치를 거쳐가는 선이 있는데, 두 사람에게 ⭐전용 선을 할당하는 것
      • 다른 사람은 이 선을 사용 못 한다.
      • 회선이 설정되어 통신이 완료될 때까지 회선을 물리적으로 접속
    • 전화망(PSTN; Public Switched Telephone Network)이 이 방식을 사용
    • 회선 연결 시 , 데이터를 주고 받는 동안 계속 유지 즉, 자원이 연결되어 있는 동안 계속 점유
    • 고정된 대역폭으로 데이터 전송
    • 데이터 전송 전에 미리 연결된 물리적 통신 회선을 통해 데이터가 순서적으로 전달되므로 수신 노드에서 패킷을 재순서화 하는 과정이 필요없다.
    • 두 장치 사이에 고정된 속도를 가짐
    • 연결을 설정하는데 시간이 소요되며, 이후에는 지연시간이 없음
    • 데이터 전송이 많은 경우 유용
    • 실시간 대화용에 적합
  2. 메시지교환
    • 회선교환은 데이터 보내지도 않는 동안에 대해서도 비용이 발생하는 문제가 발생
    • 다른 사람에게 그 선을 공유하기 위해서 나온 것
    • 물론 보내는 동안에는 다른 사람이 사용하지 못 함. 돌려가면서 쓸 수 있다.
    • Store and forward
      • 전달할 메시지 전체를 한번에 인접 노드로 모두 전달
      • 메시지를 수신하면 다음 노드로 메시지를 전달
      • 중간 노드들이 모두 이 데이터를 저장해야해서 메모리 비용이 매우 큰 문제 발생
  3. 패킷교환
    • ⭐통신 장치가 저장할 수 있는 크기로 잘라서 보내자
    • 자른 단위를 패킷이라 한다.
    • 패킷의 순서를 담은 정보를 헤더라 한다.
    • 패킷을 보내는 동안에 점유된 선에서는 다른 패킷은 보내지 못한다.
    • 다른 컴퓨터가 보내는 패킷이 점유할 수 있다.
    • 패킷은 장애 발생 시의 재전송을 위해 패킷 교환기에 일시 저장되었다가 곧 전송되며 전송이 끝난 후 폐기된다.
      • (축적 교환이 가능하다)
    • 패킷 교환 망은 OSI 참조 모델의 네트워크 계층에 해당한다.
    • 패킷망 상호 간의 접속을 위한 프로토콜은 X.75이다.
    • 군집성 있는(bursty) 트래픽 전송에 적합.
      • 음성 전송보다 데이터 전송에 더 적합하다.
    • 두 장치가 하나의 전송속도를 갖지 않음 즉, 우선순위가 적용됨
    • 회선교환방식은 링크에 문제가 발생하면 중간에 다른 링크를 선택할 수 없음

패킷 교환 방식은 접속 방식에 따라서 데이터 그램 방식과 가상회선 방식으로 구분된다.

  1. 데이터그램
    • 사용자 메시지를 잘라서 목적지만 정해놓고 보내는 것
    • 네트워크 비연결형(데이터그램) 패킷 스위치
    • 연결설정과정이 없음
    • 각 패킷이 서로 독립적으로 처리되며, 목적지에 순서와 상관없이 도착
    • 통상적으로 양단간에 요청-응답의 형태를 가짐
    • 항상 같은 경로로 전송하지 않음
    • 네트워크 전체를 항상 효율적으로 사용할 수 있다.
    • 어딘가에서는 순서제어 기능을 해줘야 함
  2. 가상회선
    • 개념적으로 회선교환과 비슷
    • 연결을 설정해서 두 사람만 쓰는 것
    • 가상으로 전용 회선을 설정해서 패킷을 전송한다.
    • 경로가 정해져있기 때문에, 스위칭 속도가 빠르다.
    • 순서대로 패킷이 들어온다.
    • 레이블로 회선을 설정한다. 레이블이 붙은 순서들의 나열로 메시지를 보낸다.

MPLS

  • Multi-Protocol Label Switching의 약자
  • 데이터그램을 가상회선 방식으로 바꿔 사용하는 것
  • 데이터그램에서 라우팅하는데 매번 시간이 소요되기 때문에 즉, 속도문제!
  • 라우터 및 스위치처럼 작동이 가능함
  • 라우터처럼 동작할 경우, MPLS는 대상 주소를 기반으로 패킷을 전달
  • 스위치처럼 동작할 경우, Lable을 기반으로 패킷을 전달
  • 속도를 개선하기 위해서 MPLS를 많이 사용하고 있다.

다중접속 프로토콜

다중접속 프로토콜이 무엇인지 알아보며, 다중접속의 3가지 기법인 무작위 접근(동등경쟁), 통제된 접근(우선순위), 채널화(공유)에 대해서 학습한다.

다중접속

링크(매체)를 여러 장치들이 공유(접근)하는 환경에서 전송을 시도하는 경우를 의미

여러 개의 컴퓨터들이 매체에 접근하는데 관련된 문제

  • 일반적으로 데이터링크 계층에서 수행
  • 데이터링크 계층에서 접근제어 기능을 가짐
  • 두 개의 부계층이 존재
    • 상위 부계층은 데이터 링크를 제어 (LLC 계층)
    • 하위 부계층은 공유 매체의 접근 문제를 해결(MAC 계층)

다중접속 프로토콜

다중접속에 관련한 문제를 해결하는 규칙

1. 무작위 접근(Random access) protocols

  • 서로 대등한 관계의 통신
  • 한 시스템이 다른 시스템을 통제하지 않음
  • 임의의 시스템이 전송을 위해 시간을 정하지 않음 -> 무작위 접근
  • 어떤 시스템이 전송할 차례인지 정하는 규칙이 없음 -> 경쟁
  • 여러 시스템이 전송하면 충돌이 가능하며, 해당 프레임은 손상되어 재사용 불가능
  1. ALOHA
    • 최초의 라디오 패킷(Radio Packet) 통신 방식을 적용한 컴퓨터 네트워크 시스템
    • 하와이 대학교에서 개발
    • 무선 LAN으로서 9600bps 속도로 동작
    • 각 시스템은 기지국으로 데이터 전송
    • MA(Multiple Access)에 해당
    • 기지국은 수신된 프레임을 목적지로 전달
    • 송신 시스템은 ACK를 기다림
    • 수많은 충돌 발생. ACK기다리다 허송세월
  2. CSMA(Carrier Sense Multiple Access)
    • 각 시스템은 데이터를 전송하기 전에 매체를 우선적으로 검사
    • "sense before transmit", "listen before talk"
    • 전파지연시간으로 인해 여전히 충돌 가능성이 존재
    • 데이터를 전송한 짧은 순간에 상대방이 캐리어 센스를 했는데 아무도 안 보냈을 수도 있고
    • 동시에 보내는 상황이 발생할 수 있다.
  3. CSMA/CD
    • CSMA에 Collision Detection 기능을 수행하는 것
    • 자유 경쟁으로 채널 사용권을 확보하는 방법으로 노드 간의 충돌을 허용하는 네트워크 접근 방법
    • 데이터를 전송한 시스템은 전송의 성공여부를 계속 감시
    • 충돌이 감지(collision detection)되면 즉시 전송 중지
    • 충돌이 발생하면 지금 보내봤자 이후 데이터는 모두 깨진다고 판단
  4. CSMA/CA
    • 무선 네트워크에선 CD방식을 사용하기 어려움
    • 선이 없다보니까 충돌난 신호가 감쇠가 심하게 발생하면 감지하기 어려워짐
    • 아예 충돌을 회피해보자라는 철학이 CA
    • 무선 랜에서 데이터 전송 시, 매체가 비어 있음을 확인한 뒤 충돌을 회피하기 위해 임의의 시간을 기다린 후 데이터를 전송하는 방법
    • 네트워크에 데이터 전송이 없는 경우라도 동시 전송에 의한 충돌에 대비하여 확인 신호를 전송한다.
    • 충돌을 피하기 위해 CSMA/CA 에서는 3가지 기법 사용(기다리는 시간 설정 방식에 따른 구분지을 수 있음)
      1. IFS(InterFrame Space)
        • 채널이 빈 경우라도 바로 보내지 않고 잠시 기다려 충돌을 회피
      2. 충돌 윈도우(Contention window)
        • 전송 준비 완료 시 임의의 수를 선택하여 시간만큼 기다림
        • A random number of slots
      3. ACK(Acknowledgments)
        • ACK는 데이터를 수신한 시스템이 보내는 응답을 의미
        • ACK가 없는 경우 송신 시스템은 데이터가 유실되었다고 판단

2. Controlled-access protocols

  • 누군가 제어한다.
  • 하나의 시스템이 제어국이 되어 다른 시스템들의 전송권한을 제어
  • 동시에 둘 이상의 시스템이 전송을 못하게 함으로써 충돌제어
  • 시스템들은 자신의 순서가 돌아오기 전까지는 전송 불가능
  1. 예약(Reservation)
    • 시스템은 데이터를 송신하기 전에 예약 필요
    • N개의 시스템은 N개으 예약된 mini slot이 예약 프레임 내부에 존재
    • 예약된 시스템은 데이터프레임을 예약 프레임 뒤에 전송
  2. 폴링(Polling)
    • "너 데이터 보낼거 있냐" 라고 중앙에서 통제해서 물어보는 것
    • 제어 시스템과 송수신 시스템으로 구성
    • 송신 시 제어 시스템에게 알림, 수신 시 제어시스템에게 문의
    • 하나의 통신회선(통상 하나의 출력회선)을 공유하고 있는 장치들이,
    • 전송할 데이타를 갖고 있는지 여부를 확인하기 위하여,
    • 중앙 제어기가 순차적 또는 주기적으로 점검하는 일종의 다중 접근 제어 방식
    • ※ 영어 뜻으로는, 투표,여론조사 등을 의미
    • 기지국이 각 이동국에 송신요구의 유무를 순차적으로 찾아서,
      • 송신 요구가 있는 이동국에 한해 송신을 허락하는 다중 접속 방식
  3. Token passing
    • 토큰을 가진 시스템이 데이터를 송신할 권한을 가짐

3. Channelization protocols(다중화 프로토콜)

  • 선을 논리적인 길로 나눠 사용하는 것
  • 링크를 시간, 주파수, 코드로 나누어서 여러 개의 채널을 만들고 이들을 서로 다른 시스템들이 이용하는 방법
  1. FDMA
    • 주파수 분할 다중접속
    • 사용 가능한 대역폭은 모든 시스템이 공유
    • 각 시스템은 할당된 대역을 이용하여 데이터 전송
    • 각 대역은 특정 시스템을 위해 예약 됨
  2. TDMA
    • 시간 분할 다중접속
    • 단일 주파수 대역을 사용
    • 주파수를 시간 간격으로 분할하여 모든 시스템이 동시에 데이터 전송
  3. CDMA
    • 코드 분할 다중접속
    • 주파수나 시간을 모두 공유하면서 각 데이터에 특별한 코드를 부여하는 방식
    • 링크가 전체 대역폭을 하나의 채널에서 공유
    • 모든 시스템은 시분할 없이 동시에 데이터 송신 가능
    • 시스템의 포화 상태로 인한 통화 단절 및 혼선이 적다
    • 실내 또는 실외에서 넓은 서비스 권역을 제공한다.
    • 배경 잡음을 방지하고 감쇄시킴으로써 우수한 통화 품질을 제공한다.
  1.  

'#시스템관리 > 네트워크' 카테고리의 다른 글

04. 무선 LAN과 네트워크 연결장치  (0) 2021.07.24
3.LAN 매체와 유선 LAN  (0) 2021.07.23
1. 네트워크 개념  (0) 2021.04.24
네트워크 구성형식  (0) 2019.02.23
VPN의 정의와 구성요소  (0) 2019.02.23

관계대수와 관계해석은 릴레이션 연산의 표현에 대한 방법론

관계대수

릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가 모두 릴레이션이다.

순수 관계 연산과 일반 집합 연산으로 구분된다.

질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.

원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 특징을 가진다.

기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력 면에서 동일하다.

순수 관계 연산자

관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자

연산자 표기법 설명 예시
SELECT(시그마 δ) δ<조건>(R) 선택 조건 δDNO=4(EMP)
PROJECT(파이 π) π<리스트>(R) 속성 선택 πDNO,NAME(EMP)
JOIN(보타이 ⋈) R⋈<조건>S 두 릴레이션 결합 DEPT⋈dssn=essn EMP
DIVISION(나누기 ÷) R[r÷s]S R 중 S 기준 교집합 EMP essn÷dssn DEPT

일반 집합 연산자

연산자 표기법 집합 표현 카디널리티
합집합 R∪S = {t t∈R∨t∈S}
교집합 R∩S = {t t∈R∧t∈S}
차집합 - R-S = {t t∈R∧t∉S}
교차곱 × R×S = {rs r∈R∧s∈S}

img

관계 연산자들의 종류와 표기법

관계해석

원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어

관계대수와 관계해석 비교

구분 관계대수 관계해석
목적 어떻게(How) 무엇을(What)
기반 집합과 관계연산 프레디킷 논리
접근법 절차적 비절차적
관점 규범적 기술적
표현력 동일 동일

관련 문제

다음 관계 대수 중 순수 관계 연산자가 아닌 것은?

 1.    차집합(difference)
 2.    프로젝트(project)
 3.    조인(join)
 4.    디비전 (division)
관계대수에 대한 설명으로 틀린 것은?

1. 주어진 릴레이션 조작을 위한 연산의 집합이다.
2. 일반 집합 연산과 순수 관계 연산으로 구분된다.
3. 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.
4. 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 비절차적방법이다.

해설

  1. 관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다.
  2. 관계대수는 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어로 피연산자가 릴레이션이고 결과도 릴레이션이다.
  3. 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.
  4. 대표적으로 순수 관계 연산자와 일반 집합 연산자가 있다.
조건을 만족하는 릴레이션의 수평적 부분집합으로 구성하며, 연산자의 기호는 그리스 문자 시그마(σ)를 사용하는 관계대수 연산은?

1. Select
2. Project
3. Join
4. Division

해설
SELECT σ
PROJECT π
JOIN ▷◁
DIVISION ÷

+ Recent posts