Reliable Data Transfer(신뢰성 있는 데이터 전송, 이하 RDT)

 

- 현재까지 송수신간의 신뢰성 있는 데이터 전송 프로토콜을 개발해왔고, 단계적으로 그 과정을 살펴볼 것이다.

 

- 단방향 데이터 전송만을 고려해왔으나 제어 정보는 양방향으로 전송한다.

 

- RDT에서는 송신자와 수신자를 명시하기 위해 유한 상태 머신(Finite State Machines, FSM)을 사용한다.

 

[FSM]

 

 

 

RDT 1.0

 

- 신뢰성 있는(오류 없는) 채널에서 신뢰적인 데이터 전송

 

- 하위 채널에 비트 오류가 없고 패킷(3계층 데이터 단위)의 손실이 없다.

 

- 송신자와 수신자가 분리된 유한 상태 머신을 가지고 있다.

 

- 송신자가 데이터에 헤더를 씌워 패킷으로 만들어 하위 채널로 데이터(패킷)를 전송하면, 수신자는 하위채널로부터 데이터를 받는다.

 

[ 각 2개의 상태를 가지고 있음 ] 

 

 

RDT 2.0

 

- 하위 채널이 패킷에 비트 오류를 일으킬 가능성이 있다.

 

- 해결책으로 헤더에 설정한 체크섬(Checksum)을 통해 오류를 검출한다.

 

- RDT 1.0의 오류복구 기능 : 수신자의 피드백 ACK, NAK

  • Acknowledgements (ACK) : 수신자가 송신자에게 패킷이 잘 도착했음.“을 알리는 방식으로 송신자는 수신자로부터 ACK를 받으면 다음 패킷을 전송한다.
  • Negative Acknowledgements (NAK) : 수신자가 송신자에게 패킷에 오류가 발생했음.“을 알리는 방식으로 송신자는 NAK를 받는 즉시 오류 패킷을 재전송한다.

- 문제점 : ACK/NAK에서도 오류가 발생할 수 있다.

  • 수신측이 보낸 ACK/NAK에 오류가 발생하여 송신측이 계속 기다리게 된다.
  • 송신측에서 오류가 났는지 모르고 있으며, 패킷을 재전송할 수 없다.
  • 송신측에서 중복패킷을 전송할 경우 수신측은 중복수신을 하게 된다.
  • , 비효율적인 링크 사용이 증가한다.

 

 

 

RDT 2.1

 

- RDT 2.0의 해결책 : 각각의 패킷에 순서번호(Seq#)를 추가한다. 그러면 수신측에서 순서번호가 같은 패킷(중복패킷)을 버리게 되므로 중복수신이 방지된다.

 

- 송신자의 입장

  • 패킷에 순서번호(0, 1) 추가 : 패킷은 0->1->0->1번의 순서를 가진다. , 01의 상태로 기억된다.
  • 수신된 ACK/NAK의 오류 여부에 대한 상태가 추가되어 RDT 2.0보다 상태 수가 2배 증가하므로 총 4개의 상태를 가진다.

- 수신자의 입장

  • 순서번호로 중복 패킷의 유무를 조사한다.
  • 마지막으로 보낸 ACK/NAK가 송신측에서 제대로 받았는지 알지 못한다.

 

 

 

RDT 2.2

 

- NAK가 없는 채널에서의 신뢰적인 데이터 전송

 

- NAK가 없다는 점을 제외하고 RDT 2.1의 기능과 같다.

 

- 수신자는 마지막에 올바르게 수신된 패킷의 ACK를 송신자에게 전송한다.

 

- ACK에는 패킷의 순서번호가 포함된다.

 

- 송신자가 중복된(동일한 순서번호의) ACK를 받을 경우 현재 패킷을 재전송한다.(NAK를 받았을 때와 같은 동작)

ex) 송신측에서 ACK 0번을 기다리는데 ACK 1이 올 경우 순서번호 0번의 데이터를 재전송한다. 그 이유는 1번 데이터는 받았으나 0번 데이터를 못받았기 때문이다.

RDT 2.0 

RDT 2.1 


성공수신 -> ACK


중복수신 or 수신실패 -> NAK 


성공수신 or 중복수신 -> ACK 




RDT 3.0

 

- 하위 채널에서의 패킷들(데이터, ACK)의 손실을 고려하였으며, 체크섬 ,순서번호, 재전송 모두 도움은 되나 근본적인 해결이 충분치 않다고 판단

 

- 카운트다운 타이머

  • ACK를 계속 기다리는 것이 비효율적이므로 송신자가 ACK에 대해 충분한 시간을 갖고 기다린다
  • 그러나 해당 타이머 안에 못 받으면(타임아웃되면해당 순서번호의 패킷을 재전송한다.
  • , 패킷이 손실되지 않고 지연되어 송신측이 똑같은 패킷을 재전송하면 중복패킷이 되나 순서번호로 이 문제를 해결할 수 있다. 순서번호가 같으면 수신측에서 드랍하기 때문이다.
  • , 수신자는 ACK 패킷의 순서 번호를 송신자에게 알려야 한다.

- 네트워크 프로토콜이 물리적 자원의 사용을 제한한다. 따라서 재전송을 원하는 만큼 할 수 없다.

 

- 기능적으로 잘 동작하지만 성능은 만족스럽지 못하다.

 



▶ 파이프라인 프로토콜(Pipelined Protocols)


- 배경 : RDT 3.0의 Stop-and-Wait 방식으로 인해 데이터가 많을 경우 대기 시간때문에 링크가 비효율적이게 사용되는 것의 해결책으로 나옴


- 송신자가 ACK의 응답을 받지 않고 다수의 패킷을 전송 (링크의 효율성 증가)

(즉, 송신자는 파이프라인에 최대 N개까지 ACK받지 못한 패킷들을 전송 가능)


- 순서번호 증가, 송신자와 수신자 사이에 패킷을 버퍼링해야함.


- GBN(Go-Back-N)

  • 수신자는 누적된(cumulative) ACK만 전송 (수신된 패킷들의 순서번호 사이에 갭이 있으면 ACK는 응답하지 않음)
  • 수신자는 비순차(out of order) 패킷으로 버퍼링하지 않는다.
  • 송신자는 ACK받지 못한(문제가 생긴) 가장 오래된 패킷부터 모두 재전송 (타이머가 1개)

- Selective Repeat(선택적 반복)

  • 수신된 패킷들 사이에 갭이 있더라도 갭 이후의 패킷들을 수신측에 있는 버퍼에 저장
  • 즉, 수신자는 모든 패킷들에 대해 개별적으로 ACK 응답
  • 상위 게층에 순차적으로 전달하기 위해 비순차 패킷들을 버퍼에 저장
  • 비순차 패킷 -> 순차적으로 정렬 -> 상위 게층으로 전달
  • 송신자는 개별 패킷마다 타이머를 가지고 있다.
  • 문제가 생긴 패킷만 개별적으로 재전송

- TCP는 위 두개의 경우가 하이브리드된 형태로 사용한다.

 

 

전송 서비스와 프로토콜(4계층)

 

- 다른 호스트들이 계속 네트워크에 머물도록 응용 프로세스 간의 논리적 통신을 제공한다.

 

- 전송 프로토콜(Transport Protocol)은 종단점(end-system)에서 적용된다.

  • 송신 호스트 : 데이터 메시지를 세그먼트로 분해하여 네트워크 계층(3계층)으로 전송한다.
  • 수신 호스트 : 세그먼트들을 데이터 메시지로 재조립하여 응용 계층으로 전송한다.

 

- TCPUDP가 대표적인 전송 프로토콜이며, 그 외에도 많이 이용된다.

 

- Throughput(스루풋, 처리율) : 네트워크 통신에서 노드 사이 또는 파이프 사이에서 전달되는 단위 시간당 전송되는 디지털 데이터 처리량. 주로 초당 비트수(bps)가 사용된다.

 

 


Transport VS Network Layer

 

- Network Layer(네트워크 계층, 3계층) : 호스트들 간의 논리적 통신을 돕는다.

 

- Transport Layer(전송 계층, 4계층) : 응용 프로세스 간의 논리적 통신을 돕는다.

 

- 네트워크 계층부터 하위 계층(1~3)들은 하드웨어적인 통신을 많이 다루고, 전송 계층부터 상위 계층(4~7)들은 소프트웨어적인 통신을 많이 다룬다.

 

 


인터넷 전송계층 프로토콜

 

- Transmission Control Protocol (전송 제어 프로토콜, 이하 TCP)

  • 신뢰성 있고, 순서가 보존되는 전송 시스템
  • Congestion Control(혼잡 제어), Flow Control(흐름 제어), Connection Setup(연결 설정) 등 각종 오류를 제어한다.
  • 웹 브라우저들이 월드 와이드 웹에서 서버에 연결할 때 사용되며, 이메일 전송 및 파일 전송에도 사용된다.

- User Datagram Protocol (사용자 데이터그램 프로토콜, 이하 UDP)

  • 신뢰성 없고, 순서가 보장되지 않는 전송 시스템
  • 꼭 필요한 기능(전송)만 하고, 오류 제어와 같은 추가 기능을 필요로 하지 않는 애플리케이션에 사용된다.
  • 추가 기능이 없기 때문에 오버헤드가 작고 지연 시간이 짧다는 장점이 있다.

- 이용되지 못하는 서비스 : 시간 및 대역폭이 보장되지 않으므로 스루풋도 보장되지 않는다.

여기서 보장되지 않는다.”는 것은 1초에 100개와 같이 딱 떨어지지 않음을 의미한다.

 

 


Multiplexing & Demultiplexing

 

- 네트워크 소켓 (Network Socket) : 컴퓨터 네트워크의 사이에 있는 프로세스 간 통신의 종착점이다. 컴퓨터 간 통신의 대부분은 IP(인터넷 프로토콜)을 기반으로 하고 있고, 네트워크 소켓의 대부분은 인터넷 소켓이다. 네트워크 통신을 위해서 송,수신측에서는 소켓을 생성하고, 이 소켓을 통해 서로 데이터를 교환한다.

 

- Multiplexing(다중화) at Sender : 다수의 소켓들로부터 추가 정보(목적지 주소 등)를 얻어서 전송할 데이터의 헤더에 해당 정보(목적지 주소 등)를 추가하는 기능.

 

- Demultiplexing(역다중화) at Receiver : 수신된 데이터를 적절한 소켓으로 전달하기 위해 헤더 정보를 이용한다. 하위 계층에서 상위 계층으로 올라갈 때마다 헤더가 작아지면서 전송할 데이터가 목적지에 도착한다.

 

 


▶ 역다중화 과정

 

- 호스트는 IP 데이터그램(datagram)을 수신한다.

  • 각각의 데이터그램 출발지 IP주소, 목적지 IP주소를 가지고 있다.
  • 각각의 데이터그램은 하나의 전송계층 세그먼트를 옮긴다.
  • 각각의 세그먼트는 출발지, 목적지 포트번호(16bits)를 가지고 있다.

- 호스트는 IP주소와 포트번호를 이용하여 세그먼트를 적절한 소켓으로 안내한다.

 

- IP Datagram


- TCP의 Segment

 

- IP 데이터그램이 세그먼트를 포함하고 있다.



- 데이터 전송 과정


- 비연결형 통신, UDP의 소켓

  • 생성된 소켓은 호스트 로컬 포트 번호(source port #)만 가지고 있다.
  • 호스트가 UDP 세그먼트를 받으면, 세그먼트에 있는 목적지 포트 번호를 확인한다.
  • 해당 포트 번호로 세그먼트를 안내한다.
  • 만약 서로 다른 출발지 IP주소, 포트 번호이지만 같은 목적지 포트번호나 IP주소를 가진 IP datagram을 받으면 목적지에서 같은 소켓으로 데이터가 전송된다.

- 연결 지향형 통신, TCP의 소켓

  • 출발지 IP주소, 포트번호와 목적지 IP주소, 포트번호의 네 가지 요소로 소켓이 생성되어진다.
  • 수신자는 세그먼트를 적절한 소켓으로 안내하기 위해 네 가지 값 모두 이용한다.
  • 송신 호스트는 동시에 많은 TCP 소켓들을 지원할 수 있다. 단 각각의 소켓들은 각자 네 가지 요소를 가진며, 이를 통해 소켓이 구분된다.
  • 웹 서버(송신자)는 각각의 클라이언트를 연결하기 위해 다른 소켓들을 가진다.

 

 

UDP(User Datagram Protocol)

 

- 추가 기능(오류제어)이 없고, 꼭 필요한 기능만 있는 인터넷 전송 프로토콜

 

- 세그먼트가 손실될 수 있고, 순서가 뒤바뀔 수 있다.

 

- 송수신 간의 연결 설정(Handshaking)을 하지 않는다.

 

- 각각의 UDP 세그먼트는 독립적으로 다루어진다.

 

- 연결 설정이 필요 없는 짧은 메시지를 주고받을 때 사용된다.

 

- 실시간이 중요한 스트리밍 멀티미디어와 같은 응용프로그램, 도메인 네임 서버(DNS) SNMP에 이용되어진다

 

- 애플리케이션 맞춤형 오류 회복이 추가되면서 UDP를 통한 신뢰성 있는 데이터 전송이 가능해졌다.


 - UDP 세그먼트

  • 세그먼트의 길이를 두는 이유는 가변적 길이므로 끝이 어딘지 찾기 위해 필요로 한다.
  • 송수신간의 연결 설정을 나타내는 연결 상태가 없으므로 단순한 구조이다.
  • 8바이트라는 작은 헤더 크기를 가진다.
  • UDP는 원하는 만큼 빠르게 전송할 수 있어서 혼잡 제어(Congestion Control)이 발생하지 않는다.

- Checksum(검사합) : 중복 검사의 한 형태로 오류 검출을 위한 기능을 한다.

  • 송신자는 헤더 필드가 16비트의 정수를 나열한 것으로 간주하고, 세그먼트들의 합의 1의 보수를 취한 결과(체크섬 값)UDP 체크섬 필드에 저장한다.
  • 수신자는 받은 세그먼트 값들의 합과 체크섬 값(결과)을 더한다. 만약 계산된 체크섬이 체크섬필드의 값과 같다면 더했을 때 비트값이 전부 1인 패턴이 나와야한다. 0이 하나라도 있으면 에러가 발생한 것이다.
  • 아래는 체크섬의 예시이다.

 

다음과 같이 4 바이트의 데이터가 있다고 치자: 0x25, 0x62, 0x3F, 0x52

1 단계: 모든 바이트를 덧셈하면 0x118이 된다.

2 단계: 1바이트의 절반(4비트, 이하 니블)을 버림으로써 0x18을 만든다.

3 단계: 0x181의 보수를 얻음으로써 0xE8을 얻는다. 이것이 체크섬 바이트이다.

체크섬 바이트를 테스트하려면 원래 그룹의 바이트에 체크섬 바이트까지 모두 더하면 0x200이 된다.

다시 니블을 버림으로써 0x00이 된다. 0x00이라는 뜻은 오류가 없다는 뜻이다. (하지만 오류가 있어도 우연히 0x00이 될 수도 있다.)

 

 

 

Internet (인터넷) 


물리적 네트워크(network)들을 연결한(inter) 논리적인 네트워크 구조

 

- 통신 규약인 프로토콜이 데이터 메시지를 주고받는 것을 제어한다.

 

- Internet Service Providers(인터넷 서비스 제공자 - ISPs)에 의해 내부적으로 연결된다.

* ISP : 개인이나 기업체에게 인터넷 접속 서비스, 웹사이트 구축 및 웹호스팅 서비스 등을 제공하는 회사를 말한다. 또한 인터넷 접속에 필요한 장비와 통신회선을 갖추고 있다.


 

Protocol (프로토콜)


컴퓨터간에 정보를 주고받을 때의 통신방식에 대한 규칙과 약속

 

- 인터넷의 모든 통신 활동은 프로토콜(통신규약)에 의해 통치된다.

 

- 구성요소 : Syntax(메시지의 형식), Semantics(메시지의 의미), Timing(메시지의 순서)


- 예를 들어, 프랑스인과 한국인이 대화를 할 때 서로 언어가 다르기 때문에 통신을 할 수가 없다. 여기서 '어떤 언어를 사용할 것인가'와 같이 정해진 통신 규약을 '프로토콜'이라고 한다. 즉, 서로 다른 프로토콜을 사용하는 컴퓨터끼리는 통신할 수 없다. 대부분 인터넷에 접속하는 통신 방식은 TCP/IP 프로토콜이다.

 

인터넷 프로토콜 표준화 기구

  • RFC : Request For Comments
  • IETF : Internet Engineering Task Force

 

 

네트워크(Network)의 구조

 

- 인터넷(Internet) : 여러 개의 네트워크를 이루는 큰 네트워크

      1. 하나의 프로토콜만 사용한다.
      2. 웹 브라우저(크롬, 인터넷 익스플로러 등)를 이용해서 접속한다.

- 인트라넷(IntraNet) : 내부의 네트워크로, 사내 업무와 같이 특정 영역에서만 사용되는 네트워크

      1. 회사에서 쓰는 여러 프로그램들을 마치 인터넷을 사용하는 것처럼 쓰도록 만들어 놓은 것이다.
      2. 따라서 회사 직원 이외에는 사용할 수가 없다. 실제로 사내 사이트에 접속할 때도 외부로부터 접속은 차단된다.

- 엑스트라넷(ExtraNet) : 인트라넷처럼 특정 업무를 위해 특정 영역에서만 사용되나, 다른 외부인들도 접속가능한 네트워크


- 전체적으로, 여러 개의 클라이언트와 서버들로 이루어져 있지만 종종 데이터 센터에 서버가 있는 경우도 있다.

 * 이렇게 인터넷에 접속된(연결된) 컴퓨터를 호스트(Host)라고 부른다. 클라이언트와 서버 모두 호스트이다.


- 무선, 유선 통신 링크들과 같은 물리적 매체(UTP 케이블, 광 케이블 등)를 통해 네트워크에 접속한다.

 

- 네트워크의 중심은 상호 연관되는 라우터(Router)들과 수많은 네트워크들이 연결된 거대 네트워크, 인터넷이다. 라우터는 서로 다른 네트워크를 연결하는 물리적 장치이다.


- LAN : Local Area Network 의 약자로,  한정된 지역에서의 네트워크 구축을 의미한다.


- WAN : Wide Area Network 의 약자로, 멀리 떨어진 곳과 연결할 네트워크를 구축하는 것을 의미한다.


- 요즘의 '네트워킹'은 LAN과 WAN을 모두 아우르는 말이다.

 

 

네트워크 접속망

 

- 기관 접속망, 모바일 접속망, 거주지 접속망(ex : LAN), 기업 접속망 등 다양한 접속망(Access Network)이 있다.

 

- Digital Subscriber Line(이하 DSL) : 디지털 가입자 회선으로 중간 오피스 DSLAM에서 기존의 전화망을 이용한다. 데이터는 인터넷으로 이동하고, 음성은 전화망으로 이동한다. 대부분의 인터넷 사용자가 업로드하는 데이터보다 다운로드하는 데이터가 훨씬 크기 때문에 다운로드에 더욱 많은 대역폭과 연결 속도를 제공하겠다는 생각에서 나온 것이다. 업로드 속도보다 다운로드 속도가 월등하게 크다. 업로드 최대 속도 2.5Mbps, 다운로드 최대 속도 24Mbps로 대략 10배정도 차이가 난다.

장점 : 일반 전화선을 사용하면서도 메가(Mbps)급의 데이터 전송속도를 제공할 뿐 아니라 집집마다 광케이블을 설치하지 않고도 비동기전송방식(ATM)망과 맞먹는 네트워크를 구축할 수 있다는 것이다.

 

- Cable Network(케이블망) : 유선 텔레비전 방송망으로 주파수 분할 다중화 방식을 사용한다. 주파수 분할 다중화(FDM)란 통신 링크(전송 매체)를 서로 다른 주파수 대역으로 분할하여 각각의 채널을 할당하는데, 통신 링크로 오는 각각의 데이터들은 해당 주파수 대역의 전송파로 변환되어 전달되어지는 방식이다.

 

- Home Network(홈네트워크) : 유무선 인터넷을 통해 냉장고, 에어컨, 전자레인지, TV 등 주요 가전제품을 제어하고 기기 간 콘텐츠를 공유할 수 있는 기술이다. , 집 안의 가전제품과 정보통신기기간의 데이터를 주고받는 통로를 제공하며, 외부 인터넷 망과의 접속을 제공함으로써 지능적인 통신을 가능하게 하는 네트워킹이다.

 

- Enterprise Access Network (Ethernet) : 이더넷(Ethernet)이란 버스 구조의 근거리 통신망(LAN)에서 사용하는 네트워크 방식이다. 일반적으로 회사, 대학 등에서 사용되는 기업 접속망의 형태이다. 기업 내부의 여러 컴퓨터를 하나의 선으로 통신하고자 하였으나 충돌이 발생하는 문제점을 해결하기 위해 고안된 네트워크이다. 데이터를 보내려는 컴퓨터가 먼저 통신망이 사용 중인지 아닌지 검사한 후에 비어 있을 때 데이터를 보낸다. 통신망이 사용 중이면 일정 시간을 기다린 후 다시 검사한다. 통신망이 사용 중인지는 전기적인 신호로 확인할 수 있다. 쉽게 말해서 근처에 있는 컴퓨터끼리 통신할 때 충돌 없이 순조로운 통신을 하기 위해 만든 방법이다. 10Mbps, 100Mbps, 1Gbps, 10Gbps의 전송속도를 가진다. 이더넷 방식은 CSMA/CD 라는 프로토콜을 사용한다. 

* CSMA/CD : Carrier Sense Multiple Access/Collision Detection

 

- Wireless Access Network (무선 접속망) : 공유되는 무선 접속망이 Base Station을 중심으로 end system(송수신시스템)과 라우터를 연결한다. 근거리 통신망도 있고, 광역 통신망도 있다. 광역 통신망(WAN)은 전화망 사업자(telco)에 의해 제공되며 1~10Mbps의 전송속도를 가진다.

 

 

Host(호스트)에서의 패킷 전송

 

- 보내야할 메시지(정보)L bits의 길이에 해당하는 패킷으로서 더 작게 분할한 뒤, 접속망(통신 링크)으로 해당 패킷을 전송한다. 이 때 링크의 전송속도(Transmission rate)R bps이라고 둔다.

 

- 전송속도(Transmission Rate) : 전송속도는 링크의 수용력(Capacity) 또는 링크의 대역폭(Bandwidth)을 의미하기도 한다. (bits/sec)

 

- 전송 지연(Transmission Delay) : 어느 노드(host, end system..etc)에서 비트(데이터)를 신호로 바꾸어 특정 링크에 전달하는데 걸린 시간

  • L(bit) / R(bits/sec) -> 패킷의 길이 / 링크의 속도
  • , 데이터의 크기에 비례하고, 링크의 수용력 또는 대역폭에 반비례한다.
  • 링크의 속도가 크다는 것은 한 번에 더 많은 데이터를 링크에 담을 수 있으므로 링크로 데이터를 보내는 시간이 짧아진다. 흔히 파이프 용량이 증가했다고 표현한다.

 

- 전파 지연(Propagation Delay) : 송신측(Sender)에서 수신측(Receiver)으로 데이터(신호)가 전파될 때 통신 링크 상에서 걸리는 시간

  • D(km) / V(m/s) -> 노드간의 거리 / 전파속도
  • 이 때, 전파속도는 링크의 매체에 따라 다르다. -> optical fiber(광섬유), copper(구리) ..etc

 

- 처리 지연(Processing Delay) : 노드(host)에서 데이터의 처리(경로설정, 에러 검출 및 정정, 스위칭 등)를 위해 소비하는 시간

 

- 큐잉 지연(Queueing Delay) : 버퍼링 지연이라고도 하며, 패킷이 라우터에 도착하고 다음 목적지로 전송되기까지 큐에서 대기하는 시간.

  • 버퍼(큐 사이즈)의 크기가 클수록 큐잉 지연이 길어지고, 버퍼가 작을수록 버퍼에서의 패킷손실이 커지는 특성을 가진다.
  • 큐에서 패킷이 대기 중인데 버퍼의 한계를 넘을 경우 패킷이 손실되는 것을 오버플로우(Overflow)가 발생했다고 한다.

 

 

물리적 매체

 

- 비트(bit)는 전송자와 수신자 사이에서 전파된다.

 

- 물리적 링크 : 전송자와 수신자 사이를 연결하는 것

 

- 유선(Wired) 통신에서 신호는 구리나 섬유나 동축(coax) 케이블과 같은 견고한 매체를 통해 전달된다.

 

- Twisted Pair(이하 TP) : 두 개의 절연 처리된 구리선이 꼬여서 만들어진 케이블이다. 꼬임이 클수록 외부의 영향을 덜 받으므로 데이터 전송률이 좋다.

 

- Coaxial Cable(동축 케이블) : 두 개의 중심이 같은 구리선 컨덕터들로 만들어 졌으며, 양방향으로 초고속(broadband) 전송용 케이블이다. 케이블에서 다수의 채널을 이용할 수 있다. 따라서 주파수가 높은 경우에 사용하며, 하나의 전송 매체에 여러 개의 데이터 채널을 제공하기 위해서 이용한다.

 

- Fiber Optic Cable(광섬유 케이블) : 유리섬유로 이루어져 있어서 주파수 신호를 빛의 펄스로 변환시켜 수신측으로 전달하고 수신기가 반대로 번역(펄스->주파수)하는 방식으로 데이터를 전달한다. 잡음에 강하고 방해를 덜 받아 낮은 에러율을 가지기 때문에 데이터를 깨끗하게 전송할 수 있다. 점대점 전송에서는 높은 스피드를 가진다.

 

- 무선(Wireless) 통신에서 신호는 라디오와 같은 매체를 통해 자유롭게 전달된다.

 

- Radio(라디오)

  • 전자기 스펙트럼에서 신호가 이동된다.
  • 양방향으로 데이터를 전달하며 무선방식이다.
  • 전파 환경에서는 반사(reflection), 혼선(interference), 굴절(refraction), 산란(scattering), 물체의 방해에 영향을 받는다.
  • 주파수에 따라 특성이 다양하다.
  • 무선 방식은 공유되기 때문에 성능저하 가능성이 높다.
  • Radio Link Type(라디오 링크 유형)에는 지상파, LAN(ex:wifi), WAN(ex:cellular), 위성통신이 있다. 위성통신에서는 위성이 높을수록 범위가 증가한다. 주로 낮은 고도에 대비하여 지구 정지 궤도에 위치한다. 느리게 돌수록 1인 용량이 줄어들고 수명이 길어진다.

  

 

네트워크의 패킷 손실과 지연이 되는 이유

 

- 라우터 내부의 버퍼인 큐에서 패킷이 도착하기 전에 손실되거나 도착했으나 계속 대기 상태가 되기 때문이다.


- 패킷이 큐에 도착하는 속도가 링크의 수용력(링크의 전송속도)보다 빠를 경우, 큐에 패킷이 쌓이게 되고(지연) 꽉 차서 공간이 없어지면 패킷은 손실된다. , 오버플로우(overflow)가 발생한다.


- 손실된 패킷은 이전의 노드로부터 재전송되어질 수 있다. 이로 인해 네트워크의 트래픽이 증가한다.

 

 

패킷 지연의 네 가지 원인

 

- 처리 지연(Processing Delay) : 노드(host)에서 데이터의 처리(경로설정, 에러 검출 및 정정, 스위칭 등)를 위해 소비하는 시간

 

- 큐잉 지연(Queueing Delay) : 버퍼링 지연이라고도 하며, 패킷이 라우터에 도착하고 다음 목적지로 전송되기까지 큐에서 대기하는 시간.

  • 버퍼(큐 사이즈)의 크기가 클수록 큐잉 지연이 길어지고, 버퍼가 작을수록 버퍼에서의 패킷손실이 커지는 특성을 가진다.
  • 라우터의 혼잡한 정도에 영향을 받는다.

 

- 전송 지연(Transmission Delay) : 어느 노드(host, end system..etc)에서 비트(데이터)를 신호로 바꾸어 특정 링크에 전달하는데 걸린 시간

  • L(bit) / R(bits/sec) -> 패킷의 길이 / 링크의 속도
  • , 데이터의 크기에 비례하고, 링크의 수용력 또는 대역폭에 반비례한다.
  • 링크의 속도가 크다는 것은 한 번에 더 많은 데이터를 링크에 담을 수 있으므로 링크로 데이터를 보내는 시간이 짧아진다. 흔히 파이프 용량이 증가했다고 표현한다.


- 전파 지연(Propagation Delay) : 송신측(Sender)에서 수신측(Receiver)으로 데이터(신호)가 전파될 때 통신 링크 상에서 걸리는 시간

  • D(km) / V(m/s) -> 노드간의 거리 / 전파속도
  • 이 때, 전파속도는 링크의 매체에 따라 다르다. -> optical fiber(광섬유), copper(구리) ..etc

 

Throughput (처리율)

 

- 네트워크 통신에서 노드 간의 전달 또는 파이프 간의 전달되는 단위 시간당 데이터 처리량을 의미한다.


- 데이터 링크에서는 송수신 사이에 비트가 이동하는 속도로 보며, 단위는 초당 비트수(bits per second, bps)가 주로 사용된다.


- 앞의 노드나 파이프의 처리율이 뒤의 것보다 작을 경우, 병목 현상이 발생한다. , 고속도로에서 앞의 차가 느리게 가는 사례와 유사한데, 앞의 차가 느리게 가면 뒤의 차들이 속도를 아무리 내도 전체적인 교통 체증이 증가하는 것이다. 쉽게 말해 앞의 파이프의 속도 하나 때문에 전체 네트워크 시스템이 영향을 받는 현상을 말한다.

+ Recent posts