목차
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)
: 집집마다 깔린 전화선을 사용하는 방식. 전화선의 voice신호와 컴퓨터의 data신호가 전화선을 통해 한꺼번에 전송되는데, 이들의 주파수를 분리함으로써 한꺼번에 보낸다. 이를 토대로 data신호는 ISP 라우터로, voice신호는 telephone network로 보낸다.
대부분 upstream(업로드 속도라고 생각하면 됨)보다 downstream(다운로드 속도라 생각하면 됨)이 더 빠르며 DSL도 마찬가지다. 이런 것을 비대칭적이다(asymmetric)고 함.
2) Cable network (HFC)
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 찍먹
앞서 말한 것처럼 서로 연결되어 있는 라우터들의 집합체를 말하는 개념으로, 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이 되면..남는 것들은 버린다. 당황스럽다. 버린다고 한다. 난 최선을 다했지만 이 이상은 힘들다. 버린다 수고해라! 뭐 이런 게 다 있나 싶다. 근데 뭐 이게 현재 쓰이고 있는 정책?이라 한다..
2) circuit switching
end system간의 통신을 위해 경로상 필요한 자원인 link를 독점적으로 예약(reserve)하고 사용한다. 즉 언제든지 '정해진 경로'로 데이터를 보낼 수 있는 것이며 보장된 전송률로 데이터를 보내는 것이 가능한 방식. 아니 그럼 더 좋은 거 아닌가? 생각할 수 있지만 내 꺼라고 찜해놓은 거라 다른 애들은 이걸 못 쓴다..비효율적임.
뭐 이와 반대로 packet switching 방식은 전송률을 보장하진 않지만 on-demand방식으로 링크 사용하고 싶으면 요청하고 사용이 가능하다. 식당으로 치면 예약 그런 거 없이 먹고 싶을 때 올 수 있다는 말. 뭐 손님 많으면 웨이팅 하는거지..packet switching은 link를 공유하므로 효율적이지만 delay가 있을 수 있다는 말이 되겠다.
'CS > 컴퓨터네트워크' 카테고리의 다른 글
[컴퓨터 네트워크] 전송계층(transport layer) - TCP & UDP 간단하게 쓰다듬기 (0) | 2022.04.19 |
---|---|
[컴퓨터네트워크] 네트워크 계층 손으로 쓱 터치하기 (0) | 2022.04.19 |
[컴퓨터네트워크] 물리계층/데이터링크계층 간단하게(feat.MAC주소), 스위치 등에 관한 개념 (0) | 2022.04.19 |
[컴퓨터네트워크] 네트워크 / 랜 / 왠의 뜻, OSI 7계층 (0) | 2022.04.18 |
[컴퓨터 네트워크] 인터넷의 구조 (0) | 2022.03.10 |