본문 바로가기

공부(IT)/네트워크(기초이론)

[컴퓨터 네트워크] Chapter 1. 2 - 요구사항

Chapter 1. 기초

problem : 네트워크의 구성

1.1 애플리케이션

1.2 요구사항

1.3 네트워크 구조

1.4 네트워크 소프트웨어의 구현

1.5 성능

1.6 요약




[preview]

  우리는 단지 의욕적인 목표(컴퓨터 네트워크가 어떻게 이루어져 있는가를 처음부터 끝까지 이해하는 것)만을 세웠을뿐이다. 이 목표에 접근하기 위해서 첫 번째 원칙에서 시작할 것이며, 다음에는 실제로 네트워크를 구축하기 위하여 필요한 질문을 할 것이다. 우리는 각 단계에서 선택할 수 있는 다양한 설계 선택을 설명하기 위해 현재의 프로토콜을 사용하겠지만 이러한 현존하는 프로토콜을 진리처럼 받아들이지는 않을 것이다. 대신에 왜 네트워크가 그러한 형태로 설계되었는가를 질문할 것이다. 현재의 네트워크를 이해하는 것 외에도, 그 아래 놓여있는 기본 개념을 인식하는 것도 대단히 중요하다. 왜냐하면, 기술이 발달하고 새로운 애플리케이션이 나옴에 따라 네트워크는 끊임 없이 변해가기 때문이다. 우리의 경험으로 일단 기초적인 개념을 이해하게 되면, 새로운 프로토콜을 직면하게 되더라도 상대적으로 쉽게 이해할 수있다. (책 내용 그대로 사용) 


1.2.0 네트워크 설계에 영향을 주는 제한사항들과 요구사항들을 식별.

-네트워크에 대한 기대치는 자기 관점에 따라 다르다.

-애플리케이션프로그래머 - 애플리케이션이 보낸 각각의 메시지가 주어진 시간내에 오류없이 전달되는것이 보장되는가와 같은 자신의 애플리케이션의 요구사항을 이야기한다.

-네트워크 설계자 - 네트워크 자원이 효율적으로 이용되고, 각각의 사용자에게 공정하게 분배되는가와 같은 비용&효과의 특성들을 이야기한다.

-네트워크 공급자 - 장애가 쉽게 격리되고 계정의 사용이 편리함과 같은 운영 및 관리가 쉬운 시스템의 특성을 이야기한다.

O-> 이 책에서는 이러한 관점 중 네트워크 설계를 주도하는 요구사항을 주요하게 생각하여 책의 전체에 걸쳐 야기되는 제반문제들을 도출한다.


1.2.1 연결성

-네트워크는 컴퓨터 사이에 대해 연결성을 제공해야 한다.

- 프라이버시와 보안을 위해 많은 사설기업에서 연결되는 기계의 범위를 제한하는것과같이 떄로는 몇대의 선택된 기계만을 연결하는 제한된 네트워크만 구성하면 되는경우도 있다. 반면에 인터넷을 대표로 전세계의 모든 컴퓨터에 연결될 때까지 성장하도록 설계되는경우도 있다. 이처럼 얼마든지 큰 규모로 커질 수 있도록 설계된 시스템을 '확장성(scale)'이 있다고 한다. 이 책은 인터넷을 모델로 사용하여 확장성을 이야기한다.


-링크, 노드

-링크 : 최저단계의 네트워크에서 동축케이블이나 광섬유 등을 이용하여 두대 이상의 컴퓨터를 직접 연결할때 이러한 연결매체를 링크(Link)라고 한다.

-노드 : 링크를 통하여 연결된 컴퓨터들을 노드(Node)라고 한다.(때때로 컴퓨터보다는 특수한 하드웨어를 지칭하기도하지만 이책에서는 구분하지 않는다).

-물리적 링크는 점대점(ptop)방식과 같이 한쌍의 노드로 제한되기도 하며 두개이상의 노드가 단일 링크를 공유하는 다중접속방식과긑은 경우도 있다. 주어진 링크가 점대점이나 다중접속 연결성을 지원하는지 여부는 노드가 어떻게 링크에 연결되어 있는가에 달려있다.

-다중접속링크의 크기 : 커버할 수 있는 거리와 연결이 가능한 노드의 수로 표현.

 

- 간접적 연결

-모든 노드들이 동일한 매체로 직접연결되어야 한다면 비용등의 면에서 그 크기가 제한될수밖에없다.  다행히도 두 노드 사이의 연결성은 반드시 직접적인 연결을 의미하는 것은 아니다. 즉 간접연결이 공조체제 노드사이에서 이루어 질 수 있다.




-교환망 : [그림 1.3]과 같이 두개 이상의되어있는 노드는 데이터를 하나의 링크에서 다른 링크로 넘겨주는 역할을 한다. 이를 전달노드(forwarding node)라 하며 이들이 체계적으로 구성되어 교환망(switched network)를 형성한다. 무수히 많은 교환망중에 회선교환기(circuit switch)와 패킷교환기(packet switch)가 가장 일반적이다.

[그림 1.3]그림에서는 회선교환기 이지만 패킷교환기로 대신생각해도 된다. 클라우드는 어쩐 종류의 내트워크라도 상관없이 네트워크를 표시하는데 사용된다


-회선교환기와 패킷 교환기 :회선교환기는 주로 전화시스템에 사용한다. 패킷교환기는 대부분의 컴퓨터 네트워크게 사용되며 이 책의 중점적인 내용이 될것이다. 패킷교환망의 중요한 특징은 노드들이 서로에게 블록화된 데이터를 보낸다는것이다. 이 블로 데이터는 파일, 전자우편 또는 이미지와 같은 애플리케이션 데이터로 생각할수있다. 각 블로데이터를 패킷 또는 메시지로 지칭하고 이책에서는 이들 두 단어를 동일한 의미로 사용하지만 이 두단어의 의미가 항상 같지는 않다.(1.2.2 참고). 패킷교환망은 일반적으로 저장-전달(store-and-forward)이라는 방법을 사용한다. 각 노드는 우선 완전한 패킷을 받아서 내부 메모리에 저장한 후 다음 노드에 전달한다. 이와 반대로 회선 교환망은 우성 링크들 사이에 전용회선을 만든뒤 보내는 노그다 이 회선을 통해 연속된 데이터 비트를 목적지 노드에 보낼 수 있도록 하는것이다. 컴퓨터 네트워크에서는 효율성을 주된이유로 회선교환기 대신 패킷교환기를 사용한다.


-클라우드(cloud)의 구성 : [그림1.3]의 클라우드는 네트워크를 구성하는 내부노드(이들은 공통적으로 스위치 라고 하며, 패킷의 저장, 전달이 주된 기능이다)와 네트워크를 사용하는 클라우드 밖의 외부노드(일반적으로 호스트라고 하며 사용자 지원과 애플리케이션프로그램 실행을 담당한다)를 구분한다. 일반적으로 이 클라우드는 어떤 종류의 네트워크라도 상관없이, 즉 단일 점대점 링크, 다중접속 링크, 또는교환망에 상관없이 네트워크를 표시하는데 사용된다. 그러므로 언제든지 그림에서 클라우드를 보면 이 책에서 다루어 지는 임의의 네트워크로 생각하면 될 것이다.


-네트워크의 상호 연결 : [그림1.4]는 독립된 네트워크(클라우드)들이 서로 연결되어서 인터네트워크(internetwork) 또는 줄여서 인터넷(internet)을 형성한다. (일반 인터네트워크를 지칭할 떄는 소문자 i를 사용하며 현재 운영중인 TCP/IP 인터넷은 대문자 I를 이용하기로한 관례를 채택한다) 두개 이상의 네트워크에 연결된 노드는 공통적으로 라우터(router)또는 게이트웨이(gateway)라 하는데 스위치와 거의 동일하 ㄴ역할, 즉 메시지를 한 네트워크에서 다른 네트워크로 전달을 한다.인터넷(internet)은 또 다른 네트워크로 볼 수도 있기떄문에 internet이 모여서 다른 internet을 형성할수도 있다는점을 주목해야한다. 그러므로 클라우드들을 서로 연결하며 더 큰 클라우드를 형성하는 재귀적방식으로 얼마든지 네트워크의 크기를 확대할 수 있다.


[그림 1.4]그림에서는 직렬버스형 연결을 예로 들었지만 어떤방식이든 상관없이 클라우드간의 연결이라고 보면 된다

-네트워크의 최종 요구사항 : 단지 호스트들이 직/간접적으로 연결되어있다고 호스트간의 연결성을 제공하는데 성곤한것은 아니다. 최종요구사항은 각 노드가 통신을 원하는 네트워크 상의 다른 노드를 지정할 수 있어야한다. 이 기능은 각 노드에 주소(address)를할당함으로 이루어진다. 최종적으로 유니캐스트를 위한 노드용 주소 뿐만아니라 멀티캐스트, 브로드캐스트용 주소 또한 지원하는것이 네트워크에 요구되는 사항이 될것이다.

-주소 : 다른 노드와 구분할수 있게하는 바이트 문자열. 발생지노드와 목적지노드가 서로 직점 연결되어있지않다면 스위치와 라우터가 이 주소를 이용하여 어떻게 메시지를 목적지 까지 전달할지를 경정한다.

-라우팅 : 주소를 이용하여 목적지 노드까지 메시지를 전달하는 방법을 체계적으로 결정하는 과정.

-유니캐스트(unicast) : 보내는 노드가 한개의 목적지 노드에게만 메시지를 전달하는것. 이 절에서는 유니캐스트에 한정지어 가정하여 설명하였다.

-멀티캐스트(multicast) : 모든노드가아닌 몇몇 노드에게만 메시지를 보내고자하는일

-브로드캐스트(broadcast) : 모든노드에 메시지를 보내는 일.


1.2.2 비용 효율적 자원 공유