Internet
Internet의 구성요소
Internet은 크게 host, communication links, Packet switches로 이루어져 있다.
host는 end system이라고도 하며, 일반적으로 사람들이 사용하고 있는 컴퓨터가 이 호스트에 해당한다.
각 컴퓨터에서는 네트워크 애플리케이션을 실행하며 다른 개체들과 통신을 하기 때문에 host라는 이름으로 부르는 것이다.
Packet Switch는 router와 switches를 부르는 말로, 사용자의 요청을 올바른 곳으로 이동할 수 있도록 하는 역할을 한다.
Communication link는 라우터 간, 혹은 host 간을 물리적으로 연결해주는 실질적인 구조를 의미한다.
위 그림은 인터넷의 일반적인 구조이다.
그림을 살펴보면, 모든 라우터, 호스트들이 개별적으로 동작하고 있다기보다는, 일정한 규모의 라우터 혹은 호스트들이 모여 하나의 네트워크를 생성하고, 다시 네트워크 간 연결을 생성하고 있음을 알 수 있다.
따라서 우리는 인터넷을 network of networks라고 부르기도 한다.
Protocol
네트워크 간 통신을 위한 규약을 의미한다.
사람의 경우 의사소통에 있어 큰 규약이 없고, 매우 자유롭다.
서울에 사는 사람이 부산 사투리를 사용하는 사람과 이야기를 나누어도 큰 무리가 없이 대부분의 맥락을 이해할 수 있는 것처럼 말이다.
하지만 컴퓨터의 경우, 다른 컴퓨터가 갑자기 사투리를 사용해서 커뮤니케이션을 시도하면 전혀 이해하지 못한다.
따라서 컴퓨터간 원활한 통신을 위해 일종의 규칙이 필요한데, 이를 Protocol이라고 한다.
대표적인 인터넷 프로토콜로는 TCP, IP, HTTP 등이 존재한다.
프로토콜에서는 보내고 받는 메세지의 format, order, 메세지 수신 이후의 action 등을 정의한다.
Access Network
Host, 혹은 End system을 네트워크에 연결시켜주는 역할을 하는 대상을 Access Network라고 한다.
Access Network는 전화, 혹은 케이블업체가 제공하며 우리가 잘 알고 있는 KT, SKT 등의 회사가 Access Network를 제공하고 있다.
Access Network는 shared 혹은 dedicated의 형태로 제공될 수 있으며, 말 그대로 해당 network의 bandwidth를 온전히 혼자 사용하는지, 혹은 다른 사람과 공유하여 사용하는지에 따라 구분된다.
Host
Host는 네트워크 액세스 애플리케이션을 실행중이기 때문에 host라는 이름으로 불리게 된다.
따라서 다른 상대에 대한 applicaiton message가 발생하는데, host는 이를 packet으로 잘라 access network에 전달하게 된다.
이 때 transmission rate를 R이라고 하고 packet의 크기를 L bits라고 하면
packet transmission dealy는 L/R이 된다.
Switching
네트워크 코어에는 라우터와 스위치들이 복잡하게 얽혀있다.
이 라우터들과 스위치들은 soruce에서 보내진 요청을 destination까지 안전하게 전달하는 책임을 가지고 있는데, 이를 switching이라고 한다.
Switching에는 circuit 방식와 packet 두 가지 방식이 존재한다.
Circuit Switching
주로 전화 방식에서 사용되는 스위칭 방식이다.
유저가 Call을 하면 Call set up 과정이 진행된다.
이 과정에서 어떤 라우터와 스위치를 거쳐서 정보를 전달할지 결정하고, 자원을 예약한다.
User messgae가 bit 형태로 밀려오며 정보가 전달되는 방식이다.
circuit switching에서는 반드시 네트워크의 자원을 분할하는 방식이 필요한데,
사용자가 특정 링크를 사용하는 동안에는 다른 사용자가 해당 링크를 통해 데이터를 전송할 수 없기 떄문이다.
자원을 할당하는 방식에는 크게 FDM과 TDM 방식이 존재한다.
FDM
FDM은 frequency division multiplexing의 준말로, 링크의 특정 진동수를 할당하는 방식이다.
따라서 유저들은 자신이 할당받은 frequency를 이용해서만 데이터를 전송할 수 있게 된다.
TDM
Time Division Multiplexing의 준말로, 해당 링크를 사용할 시간을 할당하는 방식이다.
각 사용자들은 특정 시간만큼 링크를 점유하여 데이터를 전송하고, 자신에게 할당된 시간이 끝나면 다른 사용자에게 링크의 사용권을 양보해주어야 한다.
Packet Switching
Packet Switching에는 Call Setup이나 Resource Reservation 과정이 존재하지 않는다.
단순히 각 packet은 해당 링크가 free한지 아닌지를 검사한 후, free 하다면 해당 링크를 통해서 전달되게 된다.
따라서 link의 full capacity를 사용할 수 있다는 장점이 있다.
각 packet에는 목적지 주소가 적힌 정보에 담겨 있으며, 이를 이용하여 switching이 진행된다.
따라서 각 라우터는 packet이 자신에게 전달되기 전 까지는 특별한 작업을 진행하지 않고, packet이 자신에게 완전히 도달했을 때 어떤 경로를 통해 이를 전달할지 고민하는데, 이를 `store-and-forward` 방식이라고 한다.
Store and Forward
Store and Forward 방식에세 하나의 패킷을 다음 라우터로 전송하는데 걸리는 시간은 L/R로 계산한다.
L은 packet의 비트 수이고, R은 link가 초당 전송할 수 있는 비트수에 해당한다.
따라서 만약 packet이 7.5Mbits이고 링크가 1.5Mbps의 전송 속도를 가진다면, 해당 패킷을 전송하는데 걸리는 시간은 5초가 된다.
따라서 위 그림에서 소스에서 전송된 패킷이 목적지에 도달하는데 걸리는 시간은 10초가 된다.
Packet Switching의 문제점
packet switching은 데이터를 전송하기 전에 경로를 미리 설정하거나 자원을 예약하는 과정이 없기 때문에 네트워크 자원을 매우 효율적으로 사용할 수 있다는 장점이 있다.
하지만 Packet Switching에도 큰 문제점이 존재하는데, 대표적으로 queueing delay, loss 등이 있다.
Packet Switching은 앞서 언급한 Store-and-Forward 방식으로 데이터를 전송한다.
각 라우터가 패킷을 전송하려면 패킷의 전체의 전달이 모두 완료가 된 상태여야 한다.
따라서, 만약 라우터가 특정한 하나의 패킷을 모두 Store하기 전에 새로운 패킷이 다시 전달된다면
해당 packet은 queue에서 대기하며 처리되지 못하는데, 이로 인해 발생하는 딜레이를 `queueing delay` 라고 한다.
이렇게 queue에 대기하는 packet이 매우 많아지면, 결국 queue의 수용 능력, 즉 capacity를 초과하게 될 수 있는데 이 시점 이후부터 들어오는 packet은 queue에서 대기하는 작업조차 하지 못하고 손실될 수 밖에 없다. 이를 `packet loss`라고 한다.
이렇게 queueing dealy와 packet loss가 발생하며 네트워크 요청이 제대로 처리되지 않는 상황을 congestion이라고 한다.
Four sources of packet delay
1. nodal processing
비트 에러를 체커하고, output link를결정하는 과정에서 발생하는 delay이다.
2. queueing delay
transmission을 위해 output link에서 대기하는 시간을 말한다.
3. transmission delay
링크의 bandwidth와 packet의 크기에 영향을 받는 딜레이로, L/R로 계산한다.
4. propagation delay
패킷이 전선을 타고 이동하는 속도로 인해 발생하는 delay로,
physical link의 lengh d를 propagation speed s로 나눈 d/s로 계산한다.
Queueing Delay
특정 노드에 단위 시간 당 유입되는 traffic의 양을 구할 때는
L * a 로 구할 수 있다.
만약 La = R인 경우, 유입되는 속도와 뽑아내는 속도와 동일하기 때문에 큰 문제가 발생하지 않지만,
만약 La가 더 큰 경우 큐의 길이가 무한하게 증가하게되기 때문에 문제가 발생하게된다.
다만 그래프에서 보면, traffic intensity(La/R)의 값이 1이 되기 전에도 average queueing delay의 값이 매우 크게 증가하는 것을 확인할 수 있다.
이는 a가 average packet arrival rate이기 때문인데, 평균적으로 La=R이라는 것은 어떤 때에는 La가 매우 클수도 있다는 점을 시사한다.
따라서 종종 La가 더 큰 경우가 발생하는 경우 avereage queueing delay가 순간적으로 매우 커지므로, 실제로는 La/R을 0.7 미만으로 유지시키는 것이 좋다.
Throughput
단위 시간 당 source로부터 destination 까지 전송에 성공한 트래픽의 양을 의미한다.
네트워크에서 throughtput은 단위시간 당 전송량이 더 작은 link에 의해 최종적으로 결정된다.
이러한 특징을 bottleneck link라고 한다.
Protocol
프로토콜을 정의하여 network application 간의 communication 방식을 조율하는 것은 그 범위가 매우 방대하고 복잡하기 때문에, 각 부분을 나누어 개별적으로 정의를 하는 방식을 사용하는데 이를 layering이라고 한다.
이러한 Layering은 유지보수가 편리하다는 장점이 있지만 기능간에 overwriting하는 부분이 있을 수 있으며, 경우에 따라 다른 프로토콜에서 정의하는 정보가 필요한 경우가 있을 수 있기 때문에 이 경우 정보의 교환으로 인해 발생하는 overhead가 발생한다는 단점이 있다.
Internet Protocol의 종류
application
network application을 support하는 protocol 계층이다.
유저의 application program에서 발생시킨 데이터를 encapsulation을 해서 메세지로 만드는 기능을 담당한다.
FTP, SMTP, HTTP 등이 이에 해당한다.
transport
application 계층에서 만든 메세지는 transport 계층으로 전달되며, process-process data transfer이 진행된다.
source host에서 destination host로 메세지를 전달하는 역할을 수행한다.
network
transport 계층에서 process-process message delivery가 이루어지기 위해서는 우선 host-host message delivery가 이루어져야 한다.
이러한 host-host delivery를 담당하는 프로토콜 계층이 network 계층에 해당한다.
네트워크 계층에서는 라우팅을 통해 host-host 전달을 수행한다.
Link
host-host로 전달이 이루어지려면 하나의 홉씩 이동하며 최종적인 전달이 이루어지는데, 이 한 홉씩의 움직임을 담당하는
곳이 Link 계층이다.
Physical
Link 계층에서 한 홉씩의 움직임이 이루어지게 하기 위해 전달된 비트를 실제 와이어로 이동시키는 계층이다.
위 그림은 Internet에서 실제 데이터가 어떻게 source host에서 destination host로 이동하는지를 표현한 그림이다.
application 계층에서 만들어진 메세지는 각 계층을 통과하면서 해당 계층에 해당하는 헤더가 덧붙여지게 된다.
이후 다른 홉에서 데이터를 확인할 때, 해당하는 계층에서 동일한 계층의 헤더를 제거하고 위의 계층으로 올려주는 과정이 반복된다.
'Network' 카테고리의 다른 글
[Computer Network] Transport Layer(UDP와 TCP) (0) | 2023.11.01 |
---|---|
[Computer Network] Socket Programming (0) | 2023.11.01 |
[Computer Network] DNS (Domain Name System) (0) | 2023.10.31 |
[Computer Network] Application 계층의 Protocol (0) | 2023.10.31 |
[Computer Network] Internet Layer (0) | 2023.10.29 |