네트워크 : 두 대 이상의 컴퓨터가 연결된 것

인터넷 : 전 세계를 아우르는 거대한 네트워크. 이를 통해 해외 웹 사이트도 볼 수 있는 것

 

네트워크 or 인터넷에서 데이터를 주고 받으려면 규칙이 필요하고 이 규칙엔 packet을 사용. 패킷은 컴퓨터 간에 데이터를 주고받을 때 네트워크를 통해 전송되는 데이터의 작은 조각을 말함. 큰 데이터가 있더라도 작게 나누어 보내는 게 원칙. 

※ 큰 데이터를 나눠서 보내는 이유? : 그대로 보내면 그 데이터가 네트워크의 대역폭을 너무 많이 차지해 다른 패킷의 흐름을 막을 수도 있어서. 즉 도로의 너비에 비해 차가 너무 뚱뚱하면 막힌다는 것

 

따라서 목적지에서는 받은 패킷들을 다시 조립해 원래 데이터를 만드는 작업이 수반됨. 다만 순서대로 패킷이 도착하지도 않고 몇 개는 누락되기도 함. 때문에 송신 측에서 패킷에 순서대로 번호를 붙여 보내고, 수신 측에서는 번호 순대로 패킷들을 정렬해 조립함. 

 

랜과 왠의 차이

랜 : 건물 안이나 특정 지역을 범위로 하는 네트워크

왠 : 지리적으로 넓은 범위에 구축된 네트워크. ISP(인터넷 서비스 제공자. KT, LG U plus 등)가 제공하는 서비스를 사용해 구축된 네트워크를 말한다. 랜과 랜을 왠을 통해 연결한다고 생각할 수 있다.

가정과 회사에서 구축하는 랜 구성은 다르다. 가정은 뭐 알다시피 공유기를 통해 컴퓨터 핸드폰 등을 연결한 뒤 공유기가 ISP와 연결되는 구조인 반면, 회사는 방금 설명한 것에 더불어 웹 서버 / 메일 서버 / DNS서버와 같은 다양한 서버를 아우르는 DMZ 네트워크 영역(외부에 공개하기 위한 네트워크)들로 구성된다. DMZ는 가정에서의 랜 구조와 ISP 중간에 위치하는 네트워크라 보면 된다. 

 

네트워크에서도 문제없이 통신하려면 규칙이 필요하다. 이 규칙을 프로토콜이라고 한다. 데이터를 이런 형태로 가공하고, 데이터를 이렇게 보내고, 받는 곳에선 어떻게 하고 뭐 이런 규칙들을 하나하나 만들었고 이들을 아울러 프로토콜이라 하는 것. 

 

OSI모델?

네트워크 기술의 기본이 되는 모델(표준)이다. 데이터의 송수신은 곧 컴퓨터로 데이터를 주고받는 것을 말하는데, 이 때 컴퓨터 내부에선 다음과 같이 일곱 개 계층으로 나누어 작업을 해야 한다는 모델이 OSI모델이다.

 

응용계층

표현계층

세션계층

전송계층

네트워크계층

데이터링크계층

물리계층

 

통신할 때 데이터는 맨 위 응용 계층부터 맨 아래 물리계층까지 순차적으로 전달된다. 각 계층의 역할은 다음과 같다.

 

응용계층 : 이메일 & 파일 전송, 웹 사이트 조회 등 애플리케이션에 대한 서비스 제공

표현 계층 : 문자 코드, 압축, 암호화 등의 데이터를 변환

세션계층 : 세션체결, 통신 방식을 결정

전송계층 : 신뢰할 수 있는 통신을 구현

네트워크계층 : 다른 네트워크와 통신하기 위한 경로 설정 및 논리 주소를 결정

데이터 링크 계층 : 네트워크 기기 간의 데이터 전송 및 물리 주소 결정

물리 계층 : 시스템 간의 물리적인 연결과 전기 신호를 변환 및 제어

 

참고 : 일반적으로 표현 / 세션 계층은 응용 계층에 포함하여 생각할 수 있음

송신 측에서는 상위계층 ~ 하위계층으로 데이터를 전달하고, 수신 계층에선 하위 계층 ~ 상위계층으로 데이터를 받는다. 각 계층은 독립적이어서 데이터가 전달되는 동안 다른 계층의 영향을 받지 않는다. 

 

TCP/IP모델?

OSI의 7계층을 4계층으로 표현한 모델.

 

응용계층(응용 + 표현 + 세션)

전송계층

인터넷 계층(네트워크 계층)

네트워크 접속 계층(데이터링크 + 물리)

 

각각 계층엔 다양한 프로토콜(통신 규칙)이 있다. 데이터를 주고받는 것에 있어 어떤 계층들을 거치게 하기로 정해뒀고, 각 계층에서 정해진 규칙들을 따르도록 만들었다고 생각하면 됨. 

데이터를 보낼 때, 상위계층 ~ 하위계층으로 데이터를 보낸다고 했다. 각 계층에서 데이터의 앞 부분에 필요한 정보를 붙여서 다음 계층으로 보내는데, 이때 붙이는 정보들을 헤더라고 한다. 헤더에는 데이터를 전달받을 상태에 대한 정보도 포함되어 있다. 이렇게 헤더를 붙여 나가는 것을 캡슐화라고 한다. 반대의 작업은 역캡슐화.

 

한 번 더 설명하자면, 응용계층에서 데이터에 헤더를 붙여 만든 덩어리를 전송계층으로 보내고, 전송에서도 헤더를 붙여 만든 더 커진 덩어리를 네트워크 계층으로 보내고..결국 마지막엔 물리 계층에선 이 커다란 덩어리를 전기신호로 수신측으로 보내는 것임. (데이터 링크 계층에선 헤더말고도 꼬리쪽에 트레일러를 따로 붙임)

 

 

 

 

 

 

 

 

 

 

 

 

 

목차

1. 인터넷이란 무엇인가?

2. 프로토콜이란 무엇인가?

3. 네트워크의 구조

4. access networks 찍먹

5. core network 찍먹


1. 인터넷이란 무엇인가?

전 세계 여러 컴퓨터를 하나로 연결하는 거대한 통신망을 의미하는 개념. 클라이언트와 서버로 구성되며 TCP/IP라는 기본 프로토콜을 통해 제공된다. 프로토콜에 대한 개념은 이후에 다루니 지금 당장은 패쓰.

 

이 인터넷을 구성요소 관점에서 보면 다음과 같다.

 

우선 인터넷을 구성하는 요소들은 hosts, communication links, packet switches가 있다. hosts는 우리가 쓰는 PC, 스마트폰, 노트북, 서버 컴퓨터 등의 수많은 장치를 표현하는 개념이며 네트워크의 끝단에 위치한다고 해서 end systems라고도 부른다. 웹 브라우저, 롤, PC카톡 등의 응용 프로그램들이 이 end systems에서 돌아간다. communication links는 이 end systems들을 유/무선으로 연결해주는 것으로 fiber(광섬유), copper(구리선) 등이 있다. 일종의 도로 역할을 해준다고 보면 되며, 각 link들은 저마다의 전송률(bandwidth라고도 부름)을 가진다. packet switches는 라우터나 스위치를 말하는 것으로 packet들(일종의 정보 패키지. 도로에서 실을 것을 싣고 목적지로 가는 트럭으로 이해하면 쉽다)을 전달하는 역할을 한다.  도로들을 달리다가 교차로를 만날 때, 어디로 가야 할지를 알려주는 역할이라 보면 됨.

 

각 End System들은 ISP( = Internet Service Provider)를 통해 인터넷에 접속한다. 이 ISP들을 라우터라 부르기도 하는 것이며, 우리 나라에서의 KT, SKT등 인터넷 서비스를 제공해주는 애들이라고 생각하면 된다. 이 ISP들은 regional ISP, global ISP처럼 계층 구조를 가진다.

 

packet을 트럭, comminication links를 도로, packet swiches를 교차로에 비유했다. end systems는 빌딩에 비유할 수 있다. 왜 빌딩인지 한번쯤 생각해보는 것이 중요하다. 빌딩에 여러 호실이 있는 것 때문에 빌딩이라 비유한 것이다. 내 컴퓨터에서도 브라우저를 여러 개 띄울 수 있고 PC카톡도 할 수 있고 롤도 할 수 있는데, 내 컴퓨터를 end system이라 하면 이 컴퓨터에 오는 트럭이 A브라우저로 갈지 B브라우저로 갈지 PC카톡으로 갈지 롤로 갈지 뭐 그런 상황들이 있다. 그래서 end system을 빌딩에 비유할 수 있는 것이다.


2. 프로토콜이란 무엇인가?

end system과 라우터 등이 서로 communication links를 통해 연결돼있는 것을 앞서 언급했다. 이들의 통신과정은 송신단과 수신단으로 구분된다. 프로토콜은 이때 이렇게 서로 연결된 애들 사이에서의 통신 방법을 의미한다. 사람이 의사를 전달하고 대화할 때도 어떤 형식과 절차가 있는 것처럼 얘네들 사이에서도 특정 형식과 절차가 있고, 이런 것을 프로토콜이라 부른다. 정리하자면 둘 이상의 통신 개체 간에 교환되는 메시지들의 순서와 형식, 그리고 메시지 교환 이후의 동작을 정의하는 것이 프로토콜이다. 


3. 네트워크의 구조

1) network edge

네트워크 끝단(edge)에는 end systems = hosts들이 있으며, host는 request의 주체인 클라이언트와 response의 주체인 서버로 구분하기도 한다. 

 

2) access networks

end system이 네트워크에 접근하기 위한 네트워크를 말한다. 한 end system으로부터 다른 먼 거리의 end system까지의 경로 상에 있는 첫 번째 라우터에 연결하는 네트워크를 말하는 것임. 쉽게 생각해 end systems들이 인터넷을 사용할 수 있도록 처음에 길을 터주는 놈이라 보면 됨. 랜선을 떠올리면 이해하기 쉽다. 유선으로 네트워크를 사용하려면 PC에 랜선을 꼽아서 사용해야 하니까..

 

3) network core

수많은 라우터들이 서로 그물처럼 얽혀있는 구조를 말하며 쉽게 말하면 서로 연결된 모든 라우터들을 말하는 개념


4. access networks 찍먹

일단 뭐 단순 가정집에서의 네트워크에서 access networks를 생각해보자. 다음처럼 3가지 종류가 있다.

 

1) DSL (Digital Subscriber Line)

출처 : computer neworking _ A Top Down Approach, 7th

: 집집마다 깔린 전화선을 사용하는 방식. 전화선의 voice신호와 컴퓨터의 data신호가 전화선을 통해 한꺼번에 전송되는데, 이들의 주파수를 분리함으로써 한꺼번에 보낸다. 이를 토대로 data신호는 ISP 라우터로, voice신호는 telephone network로 보낸다.

대부분 upstream(업로드 속도라고 생각하면 됨)보다 downstream(다운로드 속도라 생각하면 됨)이 더 빠르며 DSL도 마찬가지다. 이런 것을 비대칭적이다(asymmetric)고 함.

 

2) Cable network (HFC)

출처 : computer neworking _ A Top Down Approach, 7th

DSL이 전화선을 사용하던 것에 비해 cable network방식은 동축케이블을 사용하며 전화기 대신 TV가 연결된 것을 알 수 있고 cable medem을 쓴다. 한 가지 또 특징적인 것은 한 라인 상의(그림 에서 초록색 선) 여러 집의 케이블들이 동시에 연결되는 형태(즉 shared하다)라는 점. 참고로 DSL은 한 집과 다른 집에서 나오는 선들이 shared하지 않고 dedicated 즉 독립적이다. TV신호와 data신호의 구분, 그리고 다른 집에서의 신호와의 구분을 위해서 이 녀석도 서로 다른 주파수를 사용해 신호를 나르게 된다.  이 때 이렇게 전체 주파수 밴드를 세부적으로 쪼개서 각각의 주파수로 실어 나르는 것을 FDM( = frequency division multiplexing)이라 한다. 

 

3) FTTH (fiber to the home)

사실 FTTx로 마지막 x에 뭐가 들어오든 된다는 건데 여기서는 home의 h가 들어간 거다. CO로부터 home까지 직접 광섬유 경로를 제공하는 방식. CO에서 하나의 광섬유(direct Fiber)를 제공한다.


5. core network 찍먹

출처 : computer neworking _ A Top Down Approach, 7th

앞서 말한 것처럼 서로 연결되어 있는 라우터들의 집합체를 말하는 개념으로, end system들 간의 데이터 교환을 돕는다. 즉 end system들을 연결해주는 중간역할을 하는 것이 core network.

 

어떤 end system으로부터 정보가 이동할 때 항상 라우터들 즉 같은 경로를 거치는가?라고 묻는다면 대답은 No다. routing altorithm에 따라 그 때 그 때 거치게 되는 경로가 다르다. 서울에서 부산으로 갈 때 항상 같은 길로만 가지 않고 도로 상황에 따라 다른 길로 가기도 하는 상황으로 이해할 수 있다. 

 

아무튼 이 core network에서 데이터가 전송(forward로 표현하기도 함)되는 것인데 packet switching과 circuit switching으로 구분할 수 있다.

 

1) packet switching

store-and-forward 즉 '저장 후 전달 방식'을 쓴다. end system으로부터 A라우터를 거쳐 다른 end system으로 데이터를 보낼 때, 비트 단위로 쪼개서 보내게 된다. 이 때 A라우터에서 비트 단위로 받을 때마다 즉시 destination으로 보내는 게 아니라 다 받고 나면 error가 있나없아 확인하고 destination으로 보내게 된다. 10개로 쪼갰으면 10개 다 받은 다음에 보내겠다는 마인드..

 

참고로 이 과정에서 당연히 시간 즉 딜레이가 걸리게 된다. 그럼 얼마나 걸리느냐? L bit의 packet을 R이란 전송률(transmission rate)로 보낸다고 하면 L / R만큼의 시간이 걸린다. L비트 데이터를 R의 속도로 보내면 당연히 L / R의 시간이 걸린다..중딩 때 배운 거속시가 생각나는 부분.

 

근데 여기서 한 가지 생각해야 할 게 있다. 라우터의 버퍼에 데이터가 쌓이는 속도보다 라우터의 버퍼에 있는 데이터가 전송되는 속도가 더 빠르다면 뭐 좋겠지만..대부분 그렇지 않다. 대부분의 라우터는 전송가능한 속도보다 더 빠른 속도로 데이터들(즉 packet)들이 들어온다. queue형태로 쌓이게 되는데, 이 경우 당연히 queue가 넘치게 된다. 참고로 이 queue에서 packet들이 대기하는 상황을 queueing delay라고 한다. 암튼 이렇게 버퍼가 full이 되면..남는 것들은 버린다. 당황스럽다. 버린다고 한다. 난 최선을 다했지만 이 이상은 힘들다. 버린다 수고해라! 뭐 이런 게 다 있나 싶다. 근데 뭐 이게 현재 쓰이고 있는 정책?이라 한다..

출처 : computer neworking _ A Top Down Approach, 7th

2) circuit switching

출처 : computer neworking _ A Top Down Approach, 7th

end system간의 통신을 위해 경로상 필요한 자원인 link를 독점적으로 예약(reserve)하고 사용한다. 즉 언제든지 '정해진 경로'로 데이터를 보낼 수 있는 것이며 보장된 전송률로 데이터를 보내는 것이 가능한 방식. 아니 그럼 더 좋은 거 아닌가? 생각할 수 있지만 내 꺼라고 찜해놓은 거라 다른 애들은 이걸 못 쓴다..비효율적임.

뭐 이와 반대로 packet switching 방식은 전송률을 보장하진 않지만 on-demand방식으로 링크 사용하고 싶으면 요청하고 사용이 가능하다. 식당으로 치면 예약 그런 거 없이 먹고 싶을 때 올 수 있다는 말. 뭐 손님 많으면 웨이팅 하는거지..packet switching은 link를 공유하므로 효율적이지만 delay가 있을 수 있다는 말이 되겠다.

+ Recent posts