CS/네트워크

[네트워크] 1. 컴퓨터 네트워크와 인터넷

공영재 2023. 10. 6. 20:38

Reference - Computer Networking: a Top Down Approach

 

 

 

1.1 인터넷이란 무엇인가?

 

인터넷은 구성 요소와 서비스 관점으로 나누어 정의할 수 있다. 구성 요소로 봤을 때 인터넷은 end system(=host), 통신 링크, 패킷, 패킷 스위치, path, ISP, protocol(TCP/IP), Standards로 이루어진다 할 수 있다.

개념 정리부터 간단히 해보겠다.

- end system : 서버와 같이, 컴퓨터 네트워크에 연결된 종단 시스템이다. host라 칭하기도 하며, 통신링크와 패킷 스위치로 연결된다.

- 패킷 : 데이터를 네트워크를 통해 송신할 때 데이터를 분할하고 데이터에 대한 메타 정보를 헤더로 붙인 데이터.

- 통신 링크 : 동축케이블, 구리선, 광케이블을 포함한 물리 매체로 구성되어 패킷을 전달하는 통로.

- 패킷 스위치 : 패킷을 받아 해당 패킷의 목적지로 전달하는 장치. router와 link-layer switch 두가지 유형이 있다.

참고로 라우터는 네트워크 계층(layer 3)에서 네트워크를 동시에 연결하기 위해, 스위치는 데이터링크 계층(layer 2)에서 디바이스를 연결하기 위해 작동한다.

- ISP : Internet Service Provider의 약자로,  클라이언트는 ISP가 제공하는 패킷, 통신 링크, 패킷 스위치를 통해 인터넷에 접근한다.

- protocol : 정보를 요청하고 그에 대한 반응의 rule(format, 메세지의 순서 등)을 정의한 송수신 규약이다. 통신 종류에 따라 다양한 프로토콜이 존재하며, 가장 중요한 프로토콜 두개를 통칭하여 TCP/IP라 한다. (Transmission Control Protocol, Internet Protocol)

 

또한 인터넷을 서비스 관점으로 봤을 때 인터넷은 Web, email과 같은 분산 어플리케이션이 어떻게 데이터를 주고받을 것인지를 명시한 일련의 규칙인 socket Interface를 제공한다고 말할 수 있다. 이러한 통신을 수행하기 위해선 protocol(규약)이 필요하며, 통신의 종류에 따라 다양한 프로토콜이 존재한다.

 

1.2 네트워크 엣지

 

Access Network는 host(end system)와 첫번째 라우터를 연결하는 네트워크를 말한다. 가정에서는 DSL이라 불리는 전화선, 케이블 TV의 광섬유선 등을 사용한다. Enterprise에서는 유선 LAN인 이더넷과 무선 LAN인 와이파이를 사용한다. 근거리 무선 LAN을 넘어 LTE 등의 WAN도 발전하고 있다.

 

1.3 네트워크 코어

 

Access Network를 지난 뒤부터 네트워크 내부까지를 말한다. router와 link-layer switch로 데이터를 전달하는데 두가지 방식이 있다. 패킷 스위칭과 서킷 스위칭이다.

 

패킷 스위칭부터 살펴보면, Routing과 Forwarding이라는 기능(규칙)이 있다. Routing은 라우터들끼리 협력하여 최적의 경로를 알고리즘으로 짜는 것이고, Forwarding은 패킷이 왔을 때 패킷 내 메타데이터로 목적지 주소를 확인하고 보내는 기능을 말한다. 들어오는 패킷의 bit를 모두 받아야지만 그 다음 목적지로 전송을 시작할 수 있다.

 

서킷(회선) 스위칭은 네트워크에서 패킷을 전달하는 다른 방식인데, end to end가 직접적으로 연결되어 자원을 점유하는 방식이다. 한 링크에 여러 회선이 들어있고 회선 수만큼 동시 연결을 지원하며, 패킷 스위칭과 달리 일정한 전송율을 보장한다. 옛날 전화기에 사용되었다.

 

패킷의 Transmission delay는 "패킷의 총 bit 크기(L) / 초당 bit 전송량(R)" 이다.

R은 link transmission Rate, link capacity, link bandwitdth 라는 이름들로 불린다.

 

1.4 패킷 스위치 네트워크의 Delay, Loss, Throughput

 

패킷의 전송과정에서 아래 4가지의 Delay가 발생할 수 있다.

processing delay : 패킷이 처음 라우터에 도착했을 때, 라우터가 패킷의 헤더를 분석해 어디로 보낼지 결정할 때 발생하는 delay.

queuing delay : 링크로 진입하기 전, 다른 패킷이 링크를 점유하고 있는 경우 대기하는 시간 delay

transmission delay : 패킷은 여러 bit로 분할되어 전송되는데, store-and-forward 과정에서 패킷의 나뉘어진 모든 bit가 전송 시작하기까지 걸리는 시간 delay

propagation delay : 링크 위에서 bit가 목적지 라우터로 이동할 때의 delay

이 네가지 delay를 모두 더한게 총합 delay다.

 

Loss를 설명하기에 앞서 Queuing Delay를 좀 더 자세히 살펴보겠다.

패킷이 큐(버퍼)에 들어올 때, packet length(bits)(L)와 average packet arrival rate(a), 그리고 link bandwidth(bps)를 통해 

La/R 이라는 수식으로 Queuing Delay를 확인할 수 있다. La/R을 traffic intensity라 한다.

traffic intensity가 0에 가까울수록 큐잉 딜레이가 적고, 1에 가까워질수록 큐잉 딜레이가 커진다. 1보다 크면 큐잉 딜레이가 무한히 증가할것이다.

 

헌데 이 큐(router buffer)의 길이는 유한하기 때문에, 큐잉 딜레이가 커져 queue가 가득찰경우 packet의 loss가 발생하게 된다. 보통 패킷은 나중에 들어온걸 버리게 된다. (drop-tail queue)

 

마지막으로 throughput(처리량)은 단위시간 당 처리되는 실제 패킷의 양(bits)을 의미한다.

bandwidth(대역폭)의 개념과 유사하지만, bandwidth는 잠재적으로 동시에 전송될 수 있는 최대치인 반면 throughput은 실제로 전달되는 처리량이라는 점에서 차이가 있다.

 

throughput은 instantaneous throughput과 average throughput 두 종류가 있다.

instantaneous throughput은 순간 처리량, 즉 우리가 흔히 파일을 다운로드할 때 표시되는 속도이다.

average throughput은 평균 처리량, 즉 정해진 시간도안 다운로드받은 총량의 평균 속도이다.

 

throughput은 bottleneck link를 조심해야 하는데, 많은 communication link 중 가장 bandwidth가 적은 link가 해당 네트워크의 최대 bandwidth이므로, 이에 따른 bottleneck(병목 현상)이 나타나게 된다.

 

transmitter(client)에서 라우터를 거쳐 receiver로 데이터가 전송될 때,

transmitter to router의 bandwidth를 R1, router to receiver의 bandwidth를 R2로 하자.

R1 > R2일 때, 처음 n byte의 데이터를 보냈을 때의 throughput은 8(1bytes=8bit) * n / 걸린시간(=n/R1 + n/R2) 이다.

이후 보내는 데이터가 많아질수록(=k가 커질수록) throughput이 더 작은 R2에서 bottleneck이 생겨 총 throughput은 R2에 지배적이게 된다.

 

위 그림의 왼쪽 transmitter에서 오른쪽 receiver로 데이터가 전달되는 시간을 살펴보면 직관적으로 이해할 수 있다. y축이 걸린 시간이다.

 

1.5 프로토콜 레이어와 각각의 서비스 모델

 

TCP/IP 5계층 Internet protocol

- Application layer : application-layer protocol. 이 layer에서 다뤄지는 패킷을 message라 함. ex) HTTP, SMTP, DNS 등

- Transport layer : message 전송 기능을 담당하는 계층. 이 layer에서 다뤄지는 패킷을 segment라 함. ex) TCP(message가 목적지에 도착하는 것을 보장, 전송 속도 제어(throttle), UDP

- Network layer : 목적지의 transport layer까지 해당 segment 전달을 담당하는 계층. 이 layer에서 다뤄지는 패킷을 datagram이라 함. ex) IP, routing protocol

- Link layer : 한 node에서 인접한 node(host or router)로의 datagram 전달을 담당하는 계층. network layer에서 목적지를 탐색한다면, link layer에서 목적지 경로의 인접한 node를 탐색한다. 이 layer의 패킷을 frame이라 함. ex) Ethernet, Wifi

- Physical layer : frame을 구성하는 bit 전달을 담당하는 계층. 실제 링크 전송에 사용하는 physical media 특성에 의해 프로토콜 종류가 결정된다. ex) 광섬유, UTP 케이블, 동축 케이블

 

여기서 Application layer에 2개 하위 layer를 더한 OSI 7계층 모델도 있다. 해당 2개 계층이 필요한 경우 application 개발자가 추가하여 개발하면 된다.

- Presentation layer : 데이터 압축 및 암호화/복호화 수행.  ex) ASCII

- Session layer : 데이터 교환 시 동기화 및 연결 복구 수행. ex) SSL

 

해당 chapter에서 Encapsulation이라는 개념이 등장한다. 각 계층은 자신의 계층에 해당하는 데이터만 사용한다. 상위 계층에서 하위 계층으로 데이터르 전달할 때마다 헤더파일이 추가되는 형태이며, 상위 계층 데이터는 캡슐화되어 보호된다.

아래 그림에서 switch는 인접한 node로 포워딩만 하며, router는 목적지 주소를 결정한다.

 

 

*1.6 네트워크 공격 생략

*1.7 인터넷 역사

1960-1970 : 서킷 스위치 -> 패킷 스위치 탄생 -> 초기 인터넷구조 ARPAnet 고안

1970-1980 : ARPAnet -> TCP. IP 등 프로토콜 탄생, Cerf and Kahn's internetworking principle 고안

1980-1990 : ARPAnet의 표준 호스트 프로토콜 TCP/IP로 인해 모든 호스트가 TCP/IP 사용. DNS 도입

1990~ : Web 어플리케이션 등장.

loading