네트워크 - 컴퓨터 네트워크와 인터넷

2020. 2. 3. 09:57Security/네트워크

* 인터넷

인터넷 구성

- 전세계 수백만 대의 컴퓨팅 장비를 연결한 네트워크. 인터넷에 연결된 장치는 host(end system) 통칭 
- 호스트들은 네트워크 응용 프로그램을 통해 인터넷에 참여.

- 각 호스트는 통신링크를 통해 연결(동축,광,무선,위성 등의 물리적인 매체를 이용, 다양한 전송률을 가짐(bandwidth)) 
- 패킷스위치(라우터, 링크계층 스위치) 이용

- 프로토콜 : 송수신 데이터를 제어. ex)TCP, IP, HTTP, FTP, PPP

- network of network(네트워크의 네트워크)

- 느슨한 계층적(트리) 구조.

- public internet ver private intranat

 

인터넷 서비스

- 분산 응용 프로그램을 사용할 수 있는 통신 기반 구조(Web, email, game, ecommerce, file sharing) 
- 비연결형 서비스, 연결지향성 서비스의 두가지 통신 서비스 유형

 

* 네트워크 edge

- 응용프로그램, 호스트

- application 계층 ~ transport 계층까지

- 종단 시스템(end system=hosts)간의 data 전송(비연결형, 연결형 서비스 공통)

 

Client/Server model
- Client가 질의(request)하면 Server가 응답(response)하는 방식.

ex)web browser/server, email client/server

 

peer to peer model(p2p)
- client와 server 기능을 동시에 구현 ex) 비트토렌트, 당나귀, 파일구리

- 관리자가 없기때문에 문제가 생길때 책임자를 찾을수 없음.

 

* 연결 지향 서비스(데이터를 신뢰할수 있는가)

Handshaking

- data 전송에 앞서 통신을 준비 할 수 있도록 제어패킷을 보내 상호 확인하는 과정
- 통신하는 host간에 연결 상태를 설정.

 

TCP (Transmission Control Protocol) 
- Internet에서 사용하는 연결지향 protocol

- data가 온전히 전송됐는지, 순서가 바뀌지 않고 전송됐는지, 만약 다중경로로 간 경우 원래 순서대로 바꿔주는 처리가 필요한데 이러안 역할을 TCP가 수행

- HTTP, FTP, telnet, SMTP

 

TCP service[RFC 793]

- 바이트의 흐름을 신뢰할 수 있도록 해주는 “byte-stream” 개념을 제공
- 데이터 손실에 대비해서 전송확인과 재전송 기능을 제공

- 수신자가 송신자의 속도를 따라가지 못하는 경우 송신자의 전송 속도를 줄이도록 수신자가 제어하는 흐름제어 사용

- 네트워크에 혼잡상태가 발생하면 전송 속도를 낮추는 제어방법인 혼잡제어 사용. 송신자가 제어.

 

* 비연결형 서비스

UDP(User Datagram Protocol) 
- 인터넷의 비연결형 protocol
- 신뢰성 있는 데이터 전송을 보장하지 않음.
- 흐름제어와 혼잡제어를 하지 않는다.

- TCP에 비해 속도가 빠름

- 인터넷 전화, DNS, 멀티미디어 응용프로그램

 

* 네트워크 core

- 인터넷의 종단 시스템들을 연결하는 라우터의 연결 조직

- 네트워크를 통해 데이터를 전송하는 방법은 circuit switching(회선 교환)과 packet switching(패킷 교환)이 있음

 

* circuit switching(회선 교환)

- 송수신자간의 경로에 있는 스위치들이 유지하는 연결상태를 회선(circuit)이라 한다.
- 회선은 네트워크에 일정한 전송 대역폭(bandwidth)을 예약.
- 예약된 자원은 전용되며 공유되지 않는다.
- 연결된 회선은 일정한 성능을 보장. 
- 통신을 위해서는 사전 회선예약(어느 경로로 갈지 결정)이 필요.

- 네트워크 자원을 분할해서 사용되며, 분할된 자원은 세션에 할당 되어 회선이 구성.
- 세션 내에 전송데이터가 없다면 회선은 낭비된다.(할당된 자원은 공유 되지 않는다.)

- 회선교환 방식은 네비게이션 방식과 동일

 

FDM&TDM

- 링크내의 회선은 주파수(대역폭)로 나누는 FDM(frequency division)과 시간으로 나누는TDM(time division)으로 구현

- FDM과 TDM의 정확한 구분보다 회선교환방식의 정의에 대한 이해가 중요

 

* packet switching(패킷 교환)

- 종단간에 전송되는 메시지를 packet이라는 작은 단위로 분할해서 전송.
- 사용자들의 패킷은 네트워크 자원을 공유한다.(=사전 예약하지 않는다) 
- 전송되는 패킷은 대역폭을 모두 사용(한 순간에 하나의 패킷만 전송).
- 자원은 필요에 따라 사용되며, 전송을 위해 대역폭을 나누거나 자원을 예약하지 않음.
- 네트워크가 전송 가능한 용량을 초과해서 자원(전송)을 요구하는 경우, 출력 버퍼나 큐에서는 자원의 경합이나 지연이 발생

 

statistical multiplexing(통계적 다중화)

- A와 B가 패킷을 예약하지 않고 보내는 것. 즉, 보내지는 순서에 일정한 패턴이 없다.

- A와 B에서 나온 패킷은 스위치에 저장되어있다가 처리되는데 큐의 경우 FIFO 방식으로 전송.

- 패킷이 각 패킷 스위치에서 처리를 위해 지연되는 것을 store and forward라고 한다.
- 스위치가 출력 링크로 패킷을 전송하기 위해서는 전체 패킷을 일단받아야 한다.

 

데이터 전달

- 목적지까지 라우터를 통해 패킷을 이동 시키는 것이 목표.

- datagram network(길을 물어서 목적지까지 운전하는 방법과 유사)와 virtual circuit network(각 스위치(라우터)는 VC네트워크 교환에 이용되는 정보를 유지)방식이 존재

- 데이터그램 네트워크는 연결지향 또는 비연결형이 아니다.

- Internet은 연결지향에 TCP를 비연결형에 UDP를 제공

 

패킷 교환과 회선 교환의 비교

- 패킷교환 방식이 대역폭 공유에 더 효율적.

- 불규칙하게 발생하는 대량의 데이터 처리에 패킷 교환 방식이 더 적합.

- 패킷교환 방식은 과도한 혼잡이 발생할 경우 패킷이 지연되거나 손실되는 경우가 필연적으로 발생

 

* ISP와 인터넷 백본

인터넷의 구조(network of network)

- 패킷은 수많은 네트워크를 통과해서 전달.

- 서킷망이 아닌 패킷망이기 때문에 어떤 경로로 가는지 알 수 없다. 

 

* 패킷교환 네트워크에서 지연과 손실

- 패킷은 라우터의 버퍼에 시간순으로 저장된 이후 전송.

- 라우터에 들어오는 패킷량이 라우터가 전송 가능한 량을 초과한 경우, 라우터의 큐에서 처리순서를 기다리는 경우 지연과 손실이 발생

 

패킷이 지연되는 4가지 요소

- 처리 지연(processing), 큐잉 지연(queueing), 전송 지연(transmission), 전파 지연(propagation)의 4가지

- 큐잉 지연을 제외하고는 일반적으로 무시

 

큐잉 지연(queueing)

- 큐에 저장되어 전송을 기다리는 시간

- 라우터의 혼잡처리에 의해 의존

- 혼잡도에 따라 지연시간이 달라져서 가장 신경써야 함.

 

트래픽 강도 = La/R

La/R

R = Link의 bandwidth (bps). 전송률
L = 패킷의 길이 (bits)
a = 패킷이 큐에 도착하는 평균 속도 (패킷/초 단위)

 

La/R에 따른 큐잉지연 정도

- 0까지는 큐잉 지연이 매우 작다

- 1까지 증가될 수록 지연이 점점 커진다.
- 1보다 커지면 큐잉지연은 무한대로 증가. (큐의 길이가 무한이 늘어난다)

->큐에 도착하는 비트가 큐에서 전송되는 비율을 초과하는 경우

- 따라서 트래픽 강도가 1보다 크지 않게 시스템을 설계

 

인터넷에서 지연과 경로 확인

- Traceroute : 출발지에서 목적지 호스트까지 경로상에 있는 모든 라우터까지의 전달과정과 지연을 측정.

 

패킷 손실

- 큐의 용량이 무한대가 아니기때문에 트래픽 강도가 1에 접근하면 패킷 지연이 무한대로 증가 되지 않는다.
- 패킷이 큐에 도착 했을때 큐가 꽉 차있다면 패킷은 버려진다.
- 손실된 패킷의 처리는 재전송 되거나 무시되거나 교정 될 수 있다.(TCP는 재전송, UDP는 무시)