6월 28, 2024

네트워크에서 protocol 프로토콜이란?

protocol이란? 

protocol이란 한 마디로 통신에서 데이터를 주고받는데 있어서의 일종의 규약이라고 할 수 있다. 

 

사람 사이에서도 human protocol이 존재한다. 간단한 예시로 인사를 건네면 인사가 돌아오는 등의 형식을 기대할 수 있다. 이와 비슷하게 protocol을 네트워크에서도 적용할 수 있다. 여기서 말하는 protocol은 기계 사이에 규약이라고 할 수 있다. 매체로만 연결되어 있는 두 device 사이에 의도를 메시지와 함께 보내야 한다. 예를 들어, 이 디바이스가 다른 디바이스에게 파일을 넘겨달라고 할 때 connection request를 보내고 이후 connection response를 받게 된다. 그러면 그 때 get이라는 명령어를 통해 파일에 대한 정보를 주면서 다시 메시지를 보내면 file을 받을 수 있는 형식이다. 이런 식으로 정해놓은 룰을 통신 protocol이라고 하는 것이다.

 

인터넷 상에서 일어나는 모든 communication activity는 철저히 protocol에 의해서 관리되고 관장되는 것이다. 네트워크 사이에서 주거니 받거니 하는 메시지 형태, 양식을 정하기, 포맷을 정하기, 순서를 정하기, 메시지를 받고 나서 다음에 취해야 하는 action이 무엇인가 등등을 철저히 정하는 것이 protocol이라고 할 수 있다. 

 

다시 말해, protocol은 두 개 이상의 entity 사이의 데이터 교환을 전체적으로 관장하는 규칙들의 set이라고 볼 수 있다. 따라서 데이터 교환을 해야 하기 때문에 같은 언어로 통신을 해야 한다.


 

protocol의 요소

 

1. syntax : 

메세지들의 포맷, 길이, 그 안에 들어가 있는 데이터의 내용 등을 포함

 

2. semantics: 

메세지들의 의미. 메세지의 의미에 따라서 취해지는 액션이 달라지고 이에 따라 응답해야 하는 이벤트들도 달라진다. 이렇게 메세지의 의미와 그에 따라 취해야 하는 액션을 정의한 것이 semantics 요소에 포함된다.

 

3. timing: 

메세지를 언제 버릴지, 언제 재전송을 해야 하는지 등의 시간을 결정하는 것이 timing 요소이다.

 


이렇게 protocol은 통신을 원할하게 만들기 위한 상호 rule이기 때문에 통신에서 가장 중요한 개념이라고 해도 무방하다. 

 

표준 구축

 

그러면 이러한 protocol은 누가 만드는 것일까? 분명 rule이기 때문에 표준이 필요할 것이다. 우리가 익숙한 TCP, IP, HTTP, Skype, 802.II 모두 이러한 표준의 대표적인 예시이다. 그렇기 때문에 protocol은 이러한 규칙을 표준화시키는 국제기구가 존재한다. 인터넷 표준 단체는 IETF (Internet Engineering Task Force) 라고 한다. 여기서 인터넷 관련 모든 protocol을 표준화시키면서 개정하는 것이다. 

protocol을 정할때는 모두가 모여서 표준화시키는 것이 아니라 각자 자신의 protocol을 제출해 자기것이 얼마나 좋은지에 대한 설득을 하는 과정을 거친다고 한다. RFC (Request for comment) 는 비평을 기다리는 문서라는 뜻으로, 컴퓨터과학자들은 RFC 메모의 형태로 생각을 출판하게 된다. IETF는 일부 RFC를 표준으로 지정하기도 하며 'RFC 몇번' 이런 식으로 표준을 발표한다. 

 


Cellular network은 인터넷 쪽에서 만드는 것이 아니라 3GPP(3rd generation partnership project)에서 표준화한다.

LAN은 802.11위원회에서 표준화시켜서 거기서 나오는 모든 표준화 protocol은이 위원회에서 만든 LAN protocol이 돌아가고 있다.


5월 23, 2024

네트워크/ 통신 기본 구성요소 및 용어 10개 총정리

네트워크/ 통신 기본 구성요소 및 용어 10개 총정리

1. host = end system

실제 사용자가 가지고 있는 노트북, 휴대폰, 신호등, 서버 등 사용자 device. 이 device에서 network service를 요청하는 어플(network apps)이 돌아가고 있는 것이다. 하지만 이렇게 device만 있다고 해서 아직 상호연결된 것은 아니다. 

 

2. communication link

위 device 사이에 데이터를 주거니 받거니 하는 것을 communication link라고 한다. 통신이 가능하게 device를 연결시켜주는 링크라고 할 수 있다. optical fiber, copper와 같이 유선 링크가 될 수도 있고 microwave, satelite처럼 무선 링크를 사용할 수도 있다. 

 

3. mobile network

이동성을 지원하는 네트워크. 이동성을 지원하기 때문에 무선을 사용한다. (wireless network) 핸드폰 이런 것은 mobile network라고 할 수 있다. 예를 들어 빠르게 이동하는 버스 안에서도 네트워크가 가능해야 하므로 다양한 이동속도를 지원해야 한다. 노트북을 가지고 돌아다닐수도 있기 때문에 이를 mobile network의 예시라고 볼 수 있다.

 

4. home network

말 그대로 집 network라고 할 수 있다. 무선 LAN과 유선을 모두 포함한다. 무선 access point를 통해 연결이 되고 무선 access point가 다른 스위치를 통해 밖으로 나갈 수도 있다. 집에서 나온 traffic을 또 다른 곳으로 전달하기 위해서 기관들, ISP (Internet Service Provider) 가 있는 것이다. 

 

5. ISP (Internet Service Provider) 

위에서 말한 것처럼 집이나 다른 기관의 network를 상호연결시켜주는 기관이라고 할 수 있다. 이렇게 하면 안 와닿겠지만 SK broadband, KT 가 ISP의 예시라고 하면 다들 이해가 갈 것이다. 인터넷 서비스들의 네트워크를 상호연결시켜주는 기관이라고 할 수 있다. ISP는 또 regional ISP와 global ISP로 나뉘는데 한 지역만 서비스하는 것을 regional ISP라고 하고 이 ISP를 다 연결해 global 단위에서 서비스하는 것을 global ISP라고 한다. 

 

6. Institutional network

학교, 병원, 공항, 공장은 자체적으로 네트워크를 꾸미고 있다. 이는 home network와는 다른 것으로 기관에서의 자체적 네트워크라고 할 수 있다. 유선 네트워크, 무선 네트워크가 다 포함되고 Institutional network는 자체적으로 통신할 수도 있지만 외부로 나가서 통신할 수도 있기 때문에 ISP와 또 연결된다. 

 

7. transmission rate

초당 몇 비트를 주고받을 수 있느냐를 transmission rate, 또는 link의 capacity라고 한다. 

 

8. packet switch

네트워크의 데이터 단위를 packet이라고 부르는데 이를 switch 해준다고 해서 packet switch라고 부른다. packet은 data라고 생각하면 편하다. device 사이에 상호연결을 시켜서 이 traffic을 연결시켜주는 것이다. 이 연결시켜주는 것을 router라고 하기도 하고 switch라고 하기도 한다. router라고 할때는 데이터의 목적지를 보고 어느쪽 link로 내보내야 하는지를 결정하는 것이기 때문에 목적지의 길을 찾는다는 뜻으로 routing한다고 한다. switch라고 하는 이유는 들어오는 데이터를 switching하기도 하기 때문이다. 각 데이터를 어디로 목적지로 보낼지를 결정해야 하기 때문에 buffer에 담아놨다가 결정이 끝나면 보내주는 것이다. 결정된 링크 쪽으로 forward한다고 해서 store and forward라고 한다. Packet을 forward한다고 한다.

 

9. Internet 인터넷 (Interconnected network)

한마디로 네트워크의 네트워크이다. 개별적으로 network끼리만 있으면 이 안에서만 통신을 하는 것이다. 이렇게 하면 용도가 한정된다. 하지만 전세계 어디서든 데이터를 주고받을 수 있어야 한다. 각종 파트를 유저 장비들이 있는 곳이라고 하고 유저가 access하는 파트라고 해서 access network라고 한다. 이 access network를 상호연결하는 더큰 네트워크가 있고… 상호연결시키는 네트워크는 네트워크의 네트워크라고 한다. 즉 인터넷은 네트워크의 네트워크라고 할 수 있다. 

 

10. Protocol

통신은 무조건 룰에 따라야 한다. 통신에 있어서 룰을 프로토콜이라고 할 수 있는데 프로토콜에 대해서는 다음 포스팅에서 더 자세하게 다루어보도록 하겠다. 


4월 17, 2024

[네트워크] 네트워크 구성 요소

네트워크의 구성요소

네트워크의 구성요소를 나누는 데는 여러 방법이 있지만 오늘은 크게 network edge, access network, network core라는 세 가지 용어에 대해서 알아보도록 하겠다.

 

1. network edge:

network edge는 각각의 사용자가 직접 사용하는 기기를 포함하는 용어이다. 인터넷과 연결되는 end system이라는 뜻으로 network의 edge에 있다는 말이다. network edge는 서버, 데스크탑, 모바일을 모두 포괄하는 단어이다. 이러한 end system은 host라고 불리기도 하며 host는 client 와 server 두 가지로 분류될 수 있다. client는 서비스를 사용하는 사용자의 입장에서의 장비이고 서버는 서비스를 제공하는 쪽을 일컫는다. 대부분 서버는 데이터 센터에 위치해있을 가능성이 높다. cellular network의 장비 또한 network edge에 해당 될 수 있고, IOT와 같은 사물인터넷, 심지어 신호등까지 모두 end system에 포함된다고 한다. 

 

2. network core:

network core는 end user들은 접속되어 있지 않고 router들끼리 상호연결되어 있는 형태라고 할 수 있다. 한마디로 interconnected routers라고 할 수 있겠다.

 

3. access network:

end system을 상호연결시켜주는 네트워크를 access network라고 할 수 있다. 다시 말해 edge system을 다른 edge router에 연결해주는 네트워크라고 볼 수 있다. 그런데 이들이 상호연결되려고 하면 반드시 매체가 필요하다. 그래서 access network를 위해서는 각종 유선/무선 통신 link가 필요하다고 볼 수 있다. 

edge system을 edge router에 연결시키기 위해서는 residential access network (거주), institutional access network (기관), mobile access network 등 다양한 방법을 사용할 수 있다. access network에서는 매체를 사용해서 접근을 하는 것이기 때문에 매체가 어느 정도의 접근속도를 낼 수 있는지 (bandwidth (bits per second) ), 이 매체가 여러 유저 사이에 공유된 것인지 등 다양한 이슈가 대두되고 있다. 

 

access network 중에서 가장 기본적인 기법은 DSL (digital subscriber line) 을 살펴보겠다. 

  • DSL (Digital Subscriber Line)

출처: Computer Networking _ A Top Down Approach, 7th, converted

이는 집집마다 전화선이 이미 깔려있기 때문에 이 전화선을 사용해서 인터넷의 데이터를 실어나르는 데 사용하겠다라는 것이다. 그래서 위 그림에 보이는 DSL modem은 PC의 디지털 데이터를 아날로그 데이터로 바꿔주는 역할을 한다. 그래서 전화선을 통해 전화선의 유선 신호뿐만 아니라 컴퓨터 신호도 타고 가는 것이다. 그 말은 즉, voice와 data가 한꺼번에 전송된다는 것이다. 그러면 이 둘이 뒤섞일 수 있다는 문제점이 있다. 하지만 이는 서로 다른 주파수로 보내져서 한꺼번에 보내도 수신측에서 구분해낼 수 있다. 이렇게 보내면 DSLAM (DSL access multiplexer)에서 주파수를 분리해서 data면 ISP router로 보내고 voice 관련된 것이면 telephone network로 내보내게 된다. 즉 다시 말해 DSL phone 상에 data와 voice를 함께 실어서 central office 내의 multiplexer가 구분하게 되는 것이다.

 

하지만 이렇게 보내는 것이 꼭 한 방향으로만 이루어진다는 보장은 없다. 밖에서 인터넷/ 전화 데이터가 들어올 수도 있기 때문에 양방향적으로 통신이 된다. 우리는 central office -> 집 의 방향을 downstream이라고 이야기하고, 집 -> central office의 방향을 upstream이라고 이야기한다. 이렇게 양방향적으로 통신이 되기 때문에 downstream과 upstream이 하나의 line 에서 다 섞이게 된다. 그럼에도 불구하고 이러한 장비들이 다 분리해서 데이터와 voice를 원하는 쪽으로 배분할 수 있다. 

 

대부분 upstream에 비해서 downstream이 속도가 훨씬 높다. downstream은 이론적으로 24 Mbps 이하, upstream은 이론적으로 2.5 Mbps 이하로 확연히 차이가 난다. 현실적으로 따지면 downstream은 10 Mbps 정도, upstream은 1 Mbps 정도의 수치를 띈다고 한다. 

 

하지만 home network라고 해서 DSL만 쓰는 것은 아니다. 이제 다음으로 소개할 것은 cable network이다.

  • Cable network

출처 : Computer Networking _ A Top Down Approach, 7th

Cable network는 DSL과 다르게 전화기 대신 텔레비전이 연결되어 있는 것을 알 수 있고 컴퓨터에는 cable modem이 연결되어 있다. 주로 동축 케이블 (coaxial cable)을 사용한다. 그리고 cable network에서 한 가지 특징적인 것은 한 집과 cable headend라고 말하는 사업자쪽 연결이 혼자만 이루어진 것이 아니라 한 라인 상의 여러 집의 케이블들이 동시에 연결된 형태이다. 즉 한 집뿐만이 아니라 여러 집이 공유한다는 것이다. cable network도 DSL과 마찬가지로 upstream, downstream, 다양한 사용자들의 데이터가 한 라인에 모두 섞이게 된다. 그렇다면 이를 구분할 수 있는 방법이 필요한데 이 방법은 다른 주파수로 실어서 데이터를 나르는 것이다. 전체 주파수 밴드가 있다면 그것을 세부 조각으로 쪼개서 각각 집의 데이터를 다른 주파수로 실어서 나르는 것이다. 그래서 우리는 이 방식을 "frequency division multiplexing"이라고 부른다. 

 

케이블 네트워크 중에서 우리에게 가장 잘 알려져 있는 것이 HFC (hybrid fiber coaxial)이다. HFC는 이름이 의미하는 것처럼 fiber와 coaxial이 hybrid로 섞여 있기 때문에 hyrbid fiber coaxial이라고 부른다. 

 

cable network도 DSL과 마찬가지로 downstream이 upstream보다 데이터 양이 많기 때문에 downstream 파트에 데이터 속도가 더 빠르다. downstream의 데이터 양에 비해 upstream의 데이터 양이 상대적으로 적고 균형이 맞지 않는다고 해서 우리는 이를 asymmetric하다고 한다.