Reliability Service
신뢰성 서비스
- 신뢰성 서비스는 주로, ISP와 같은 Core Network*에서 제공하는 기능이며, Access Network**에서 제공하는 경우는 거의 없다.
* Core Network : 사용자가 직접 접근하지 않는 네트워크로, 국가 ISP와 같은 네트워크를 의미한다.
** Access Network : 사용자가 직접 접근하게 되는 네트워크이다.
1. Error Control (오류 제어)
- 패킷의 유효함을 검사한다.
- L3에서는 처리 속도를 위해 패킷의 헤더만 검사하고, 데이터에 대한 오류는 확인하지 않는다.
※ Error Checking은 각각의 물리 네트워크마다 수행되지만, End to End 차원에서도 진행되어야 한다.
(전송 경로의 중간 노드(라우터)에서 발생하는 에러 여부도 알아야 하기 때문이다.)
- L2에서는 에러의 종류에 따른 대처방법이 세분화되어 있다.
A. Bit Error
-EDC(Error Detection Code)를 통해 오류를 판별한다.
- Error가 발생되었다 판단되면, 구체적 오류 내용을 담은 NACK 신호를 Sender측에 전송하거나 ACK 신호를 보내지 않는 방법으로 대응한다.
- Sender측에서는 NACK 신호를 받는 즉시 패킷을 다시 재전송하거나, ACK 신호를 받지 못해 Time-Out 이벤트가 발생하면 패킷을 재전송한다. (결국 패킷을 재전송한다.)
B. Lost Error
- 패킷의 Sequence Number를 통해 패킷 누락 여부를 판단하는 방식이다.
C. Out of Order Error
- 패킷의 도착 순서가 뒤바뀌어서 생기는 오류이다.
- Buffer 내에서 재정렬하는 방법을 통해 해결한다.
- 패킷을 재전송받을 필요가 없으며, 패킷의 Sequence Number를 요구한다.
D. Duplication Error
- Receiver측에서 중복되는 패킷을 제거하여 해결하는 방식이다.
※ 일반적으로, 오류 복구의 방법으로는 아래와 같다.
- Backward 오류 복구 : 재전송을 통한 복구방법이다.
- Forward 오류 복구 : 재전송받지 않고 오류 복구방법이다.
- Header에 ECC(Error Correction Code)를 통한 오류 복구
- 패킷 내 데이터를 3개씩 첨부하여 전송하는 방식 : 데이터 대조를 통해 오류를 탐지하고 복구한다.
※ Multimedia 데이터가 송수신되는 상황에서 발생되는 오류는 대부분 직접적으로 복구되지 않는다.
- 멀티미디어 네트워크에서는 신뢰성보다는 통신속도가 더 중요시되기 때문이다.
- 보통 에러를 복구하지 않으며, 누락된 데이터는 전후 데이터값을 비교하여 예측하는 방식으로 해결한다. (좌우그래프 경향을 고려한 복구 방법)
- 누락된 부분의 복구를 용이하게 하기 위해, 데이터의 전송순서를 의도적으로 변경해서 전송하기도 한다.
- 현재 Frame 전송 시, 이전 Frame을 압축시켜 같이 전송시키기도 한다. (의도적인 중복 전송 방법)
2. Flow Control (흐름 제어)
- 빠른 Source와 느린 Receiver 사이에 발생하는 Buffer Overflow와 같은 문제를 해결하는 서비스이다.
- TCP/IP 모델의 L3에서는 흐름 제어 서비스를 제공하지 않는다.
- L4의 TCP 프로토콜이 제공하는 서비스로, UDP 프로토콜은 제공하지 않는다.
A. Stop/Resume 방식 : 가장 단순한 형태로, 일정량의 패킷이 수신되면 Receiver측에서 Sender측에게 Stop 신호를 전송한다.
B. 응답 확인 수신 방식 : 가용 수신 버퍼 크기를 고려하여 ACK 신호를 Sender에게 전송한다.
3. Congestion Control (혼잡 제어)
- 많은 Traffic으로 인한 Router Buffer Overflow로 인한 Packet Loss를 방지하는 서비스이다.
- Source Host가 Network의 혼잡도를 탐지해서 전송하는 패킷의 양을 자발적으로 조절하는 방식으로 해결한다.
- L4의 TCP 프로토콜이 제공하는 서비스로, UDP 프로토콜은 제공하지 않는다.
4. Routing (라우팅)
- IP 주소를 이용해 Source에서 Receiver까지의 전송 경로를 찾아내는 서비스이다.
- IP-Datagram의 목적지 주소를 중간 노드의 라우팅 테이블들을 참고하여 경로를 찾아낸다.
※ Routing Protocol : 라우터들끼리 네트워크 변화와 같은 라우팅 정보들을 공유하며 라우팅 테이블을 상황에 맞게 수정시키는 프로토콜이다.
5. Security (보안)
- 모든 계층에서 각기 다른 형태로 제공되는 서비스이다.
A. L2에서의 Security : 인증, 기밀성, 무결성
- Verification(인증) : 패스워드를 통해 네트워크에 접근하는 호스트를 필터링하는 방식이다.
- Privacy(기밀성) : 패킷 암호화를 통해 데이터가 전송되는 과정에서 도청을 불가능하게 한다.
- Integrity(무결성) : 전송과정에서 패킷의 내용을 읽을 순 있지만, 수정은 불가능하게 하는 방식으로, 약한 암호화 기능이라 할 수 있다.
B. L3에서의 Security : 전자 서명
- IP-Datagram(L3 패킷)의 Sender측 IP주소에 보안 프로토콜을 추가하여 전송자의 진위 여부를 위조 불가능하게 한다.
- IP주소는 L3에서 확인 가능하므로, 전자 서명 서비스는 L3에서 제공하기에 적합한 서비스이다.
- DOS 공격*에서 주로 사용하는 IP Spoofing을 방지할 수 있다.
* DOS 공격 (Denial of Service; 서비스 부인 공격)
- 서버에 과도한 로드를 주어 서버의 정상적인 동작 수행을 방해하는 공격방식이다.
- 해커는 다수의 PC를 해킹하여, 좀비PC로 만들어 특정 서버에 과한 Traffic을 유발시킨다.
- 이 때, 각 좀비PC의 IP주소를 서버가 파악하여 차단하는 식의 대응을 할 수 있기 때문에, Sender측 IP주소를 속이는 IP Spoofing 방식을 이용한다.
C. L4에서의 Security : SSL (엄밀히, SSL은 L5와 L4 사이의 API 종류 중 하나이다.)
- SSL(Secure Socket Layer)은 인증, 기밀성, 무결성 서비스를 End to End 차원으로 제공하는 보안 서비스이다.
※ API : L5와 L4 사이에 위치하는 Interface를 뜻하며 그 종류로는 socket과 SSL이 있다.
- socket Layer에서 제공하는 API는 웹 서비스와 데이터를 주고 받되(connect, send, receive) 아무런 보안 기능도 제공되지 않는 인터페이스이다. (대표적으로 http 프로토콜이 있다.)
D. L5에서의 Security : 공인인증서
※ Framing
- L2에서 제공되는 서비스로, 다음 노드로 전송할 IP-Datagram에 대한 Encapsulation 혹은 Decapsulation 과정이다.
- 필수적으로 진행되어야 하는 서비스이며, 신뢰성 서비스에 해당되지는 않는다.
Reference: TCP/IP Protocol Suite 4th Edition
(Behrouz A. Forouzan 저, McGraw-Hill, 2010)
Reference: Data Communications and Networking 5th Edition
(Behrouz A. Forouzan 저, McGraw-Hill, 2012)