본문 바로가기
컴퓨터&네트워크

네트워크에 대해서

by 파란하랑 2024. 8. 26.

네트워크-통신
네트워크-통신

네트워크 서비스란

 

컴퓨터 네트워크는 호스트, 그리고 프로세스들에게 서비스를 제공하곤 한다. 그중 연결 지향 서비스는 전화 시스템을 모델링하는 것으로 보면 된다. 전화 통신을 하기 위해서는 전화기를 들고 번호를 누른 다음 용건에 대해서 대화를 하고, 그리고 전화를 내려놓는다. 마찬가지로 연결 지향 서비스를 사용하고자 한다면, 사용자는 연결을 설정하고, 사용한 다음, 연결을 해제한다. 연결의 핵심 측면은 튜브처럼 동작하는 것이다. 다시 말해서, 전송자는 한쪽 끝에서 객체를 보내고, 수신자는 다른 끝에서 같은 순서로 객체를 꺼내는 것이다.

 

연결 없는 서비스는 편지 시스템을 예로 보면 되겠다. 각 메시지 안에는 주소가 담겨 있고, 각각은 완전히 독립적으로 시스템을 통해서 라우팅이 된다. 두 메시지가 같은 목적지로 보내진다면, 일반적으로 보내진 순서대로 수신하게 된다. 다만, 먼저 보내진 것이 지연이 되어서 나중에 보내진 것이 먼저 도착하는 경우가 발생할 수 있다. 연결 지향 서비스에서는 불가능한 상황인 것이다.

 

각 서비스는 서비스 품질에 대해서 상이한 특징을 지닌다. 어떤 서비스의 경우, 데이터 손실이 없으며 신뢰성이 있다. 일반적으로 신뢰성이 있는 서비스는 수신자가 메시지 수신 시, 확인 응답 패킷을 보내기도 하며, 이를 통해서 송신자는 메시지가 잘 전송되었다는 것을 인지할 수 있게 된다. 응답 패킷의 사용은 분실된 패킷을 발견할 수 있게 해 주지만 처리 부하, 혹은 지연을 발생시키기도 한다.

 

신뢰성이 있는 연결 지향 서비스가 필요한 전형적인 예가 바로 파일 전송 서비스로 볼 수 있다. 파일 소유자는 모든 비트가 동일한 순서로 전달이 되기를 바란다. 종종 순서가 바뀌고 일부는 잃어버리는 파일 전송을 바라는 사용자는 아무도 없을 것이다.

 

신뢰성이 있는 연결 지향 서비스는 두 가지 형태로 세분화될 수가 있다. 바로 메시지 나열, 그리고 바이트 스트림으로 볼 수 있다. 메시지 나열의 경우, 메시지 경계가 지켜진다고 보면 된다. 두 개의 1 KB 메시지를 보내면, 항상 두 개의 1 KB 메시지를 각각 수신하게 되며, 하나의 2 KB 메시지를 수신하는 경우는 없다고 보면 된다. 바이트 스트림의 경우, 연결은 단지 바이트의 스트림일 뿐 경계는 없다. 2 KB 메시지를 수신하게 되면 이 것이 2 KB 메시지로 보내진 것인지, 혹은 2 개의 1 KB 메시지로 보내진 것인지, 혹은 2038개의 1 B 메시지로 보내진 것인지 분간할 수가 없다.

 

어떤 책의 페이지가 네트워크를 통해 분리된 여러 개의 독립적인 메시지로 전달된다면 메시지 경계를 지키는 것은 상당히 중요하다. 그러나, 원격 시분할 시스템에 로그인한 사용자에게는, 컴퓨터와 터미널 간에 바이트 스트림이면 충분할 것이다.

 

모든 응용 케이스가 연결을 원하는 것은 아니다. 네트워크를 테스트하는 경우에는 원하는 것은 패킷이 높은 확률로 전달되기를 바랄 뿐, 반드시 보장되어야만 하는 경우가 아닐 수도 있는 것이다. 신뢰성이 없는 연결 없는 서비스는, 전보 서비스와의 유사성이 있어서 데이터그램 서비스라고도 불린다. 전보도 송신자가 응답을 보내지 않는다.

 

하나의 패킷을 보내기 위해서 연결을 설정할 필요까지는 없으나 신뢰성을 보장되기를 원하는 경우가 있을 수도 있다. 응답을 사용하는 데이터그램 서비스가 이 경우에는 이용될 수 있는 것이다. 마치, 등기 우편을 보내고 응답을 원하는 것과 유사하다고 보면 된다. 응답을 받으면 전송자는 메시지를 원하는 수신자가 수령했음을 보장받을 수 있는 것이다.

 

다른 조유의 서비스로 보면 요청-응답 서비스가 있다. 이 서비스의 경우에는 전송자는 요청을 하나의 데이터그램으로 만들어서 송부하며, 대답을 수신하게 된다. 예로, 위그르 말을 어느 나라에서 사용하는지 동네 도서관에 문의를 한다고 보자. 요청-응답은 클라이언트-서버 모델에서 통신을 구현하는 경우에 많이 사용된다고 볼 수 있다. 클라이언트가 요청하고 나서 서버가 응답하는 것이다.

'컴퓨터&네트워크' 카테고리의 다른 글

다중컴퓨터  (2) 2024.09.02
네트워크 관련 프로토콜  (0) 2024.08.27
분산 시스템  (0) 2024.08.25
다중처리기 시스템  (0) 2024.08.20
멀티미디어와 운영체제  (0) 2024.08.19