2014년 10월 3일 금요일

Computer Networking A top-down approach 정리 1

1. internet components

인터넷을 통해 연결되는 모든 devices를 host 또는 end system 이라고 부름.

각각의 host들은 communication link와 packet switch의 네트워크로 연결된다.

communication link들은 광케이블, 구리선 등을 포함한 physical media(물리 매체)로 구성되며, 각각의 링크들은 다양한 transmission rate(링크 대역폭, 전송률)을 이용하여 data를 전송한다.




전송률은 초당 비트수를 의미하는 bps(bit per second)단위를 사용한다.

한 host에서 다른 host로 data를 보낼경우, 송신하는 host는 data를 segment로 나누고, 각 segment에 header를 붙여 packet을 만들고, 네트워크롤 통해 보낸다.
수신하는 host는 이렇게 온 packet를 다시 원래의 data의 조립한다.

switch는 communication link로부터 들어온 packet을 받아서 다른 communication link로 전달하는 역할을 한다. 즉, 최종목적지 방향으로 packet을 전달한다.
많이 쓰이는 packet switch로는 router와 link-layer switch가 있다.

host는 ISP(Internet Service Provider)를 통해서 internet에 접속한다.
ISP는 지역 전화, 케이블 회사 같은 가정용 ISP 회사, 법인 ISP, 대학 ISP, T-Mobile같은 공항, 호텔 등에서 무선 망을 제공하는 ISP 등이 있다.
즉, 커다란 하나의 ISP가 서비스를 제공하는 것이 아니라, 작은 범위의 ISP가 존재하고, 그 상위에 작은 범위의 ISP를 포함하는 큰 ISP가 존재하는 형태다.
큰 ISP 상위에는 더 큰 ISP가 cover하고 있다.

ISP는 host에게 모뎀 접속, 초고속 인터넷 접속 등의 접속 형태를 지원한다.
또한 Content Provider(CP)에게 인터넷 접속을 제공한다.
하위 계층의 ISP는 상위 계층의 ISP와 연결되며, 최상위 ISP는 국가단위 ISP가 된다. 상위 ISP는 광 링크로 연결되어 고속 router로 구성된다.
상위 ISP 든 하위 ISP 든 각각의 ISP 네트워크는 따로 관리되며, IP 프로토콜을 수행, naming 방식과 주소 협정을 따른다.

internet에서 data의 송수신을 제어하기 위해 여러 protocol이 있다.
TCP/IP : Transmission Contorl Protocol(TCP) 와 Internet Protocol(IP).
IP protocol은 router와 host 사이에서 송수신 되는 packet format을 기술한다.

Request for comment(RFC) : internet standard는 IETF에서 개발, IETF 표준 문서를 RFC라함.

사설 네트워크: intranet



internet의 application: VoIP, P2P, file sharing...

internet applications은 host에서 수행되며, network core에 있는 packet switch에서 동작하지는 않음.

User가 만든 Software application의 data가 특정 host의 application 까지 전달되는데 필요한 요구사항을 명시하는 Application Programming Interface(API)가 존재. API는 송신 S/W가 따라야 하는 규칙의 모음.

예: A가 B에게 우편을 보낼시, 자기 맘대로 보내는 것이 아닌, 우편 서비스를 이용. 이 서비스의 규칙은 우편봉투에 편지를 넣고, 송신 host의 주소, 이름, 우편번호와 수신 host의 주소, 이름, 우편번호를 넣은 후, 우표를 붙여 우체통에 넣는 것이다. 
이렇게 하지 않으면 우편을 보낼수 가 없다. 이것이 "우편 서비스의 API"

Network Protocol : 둘 이상의 communication entity 사이에서 교환되는 message의 format과 sequence, message의 송수신, 어떤 이벤트에 대한 action을 정의한것.
예1: 학생 A가 교수 B에게 질문시, 갑자기 물어보는것이 아님. 어떤 룰에 의해 질문을 함. 
A=교수님 질문이 있어요. B=있다가 하세요. A=질문 못함.
A=교수님 질문이 있어요. B=네 하세요.. A=~~~~~~. 
예2: network에서 역시 이와 비슷함. host A와 host B가 존재.
A=통신을 위한 TCP 연결 요청을 함. B=응응 받을게. A=OO 자료좀 줘. B=응 여기 있어.
A=통신을 위한 TCP 연결 요청을 함. B=안 받음. 

Host들은 비 공식적으로 client와 server가 될수 있음.
client host의application은 server host의 application에게 서비스를 요청하고, server host의 application은 이 요청에 대한 처리를 하고, 응답을 준다.
예: Client와 Server model은 file sharing, email 등에서 사용되는 구조.

Physical media: 한 host에서 다른 host로 data를 전송할 시, 여러 link와 router를 거침. data는 bit로 전송이 되는데, 이 bit가 이동하는 physical media는 여러 종류가 존재함.
예: 동축케이블, 광섬유케이블, 지상파, 위성파.
Physical media에는 guided media와 unguided media가 있으며, guided media는 물리적인 media를 이용한 방식(케이블 같은 것)이고, unguided media는 무선 LAN 처럼 파형을 이용하여 전파 되는 방식이다.




Network Core: 각종 Host를 연결하는 packet switch와 link의 mesh로 이루어짐.
Network core의 구성방식은 circuit switching과 packet switching 방식이 있음.

1. circuit switching: Host 사이에 communication을 제공하기 위해 path상에 필요한 버퍼, 링크 전송률 같은 자원을 미리 예약하고, 특정 session 동안 독점하여 사용하는 방식


  1. FDM(Frequency Division Multiplexing): 주파수 분할 다중화
    link를 통해 설정된 연결들은 link에 의해 연결되는 동안 특정 주파수 대역을 제공 받음.
    전화망에서 주파수 대역은 4kHz(초당 4000사이클)의 폭을 갖으며, 이 폭을 bandwidth(대역폭)이라함.
    FM radio는 88Mhz와 108MHz 사이의 주파수를 이용
  2. TDM(Time Division Multiplexing): 시분할 다중화
    시간을 일정 주기의 프레임으로 구분하고, 각 프레임은 고정된 수의 시간 슬롯으로 나뉨. 네트워크가 link를 통해 하나의 연결을 설정할때, 네트워크는 모든 프레임에서 시간 슬롯 한개를 그 연결에 할당함. 이 슬롯은 오직 하나의 연결에서만 쓰이게 된다.
* packet switching에서없는  낭비가 발생할 수 있다. 즉, 송신하는 Host에서 연결을 위해 할당된 자원들을 사용하지 않고, silent period(쉬는 시간)를 갖는다면, 예약된 자원들을 다른 Host에서 못쓰기 때문에 자원의 낭비를 초래하게 된다. 

*transmission time은 link 수와 무관함. 즉, Host 사이의 회선이 하나 또는 100개의 link를 지나도 transmission time은 큰 차이가 없다. (단, 실제 host간의 지연에는 전파 지연이 있음.)


2. packet switching: 자원의 예약 없이 on-demand 방식으로 자원을 사용하는 방식. 

  1. source(송신host)는 보내려는 message(image, audio, text etc.)를 작은 data의 덩어리인 packet으로 분할.
    각 packet은 source와 destination 사이의 communication link와 packet switch를 통과함
    packet switch는 store-and-forward transmission 방식을 이용. (지금도 이런가?)
    이 방식은 switch가 output link로 packet의 first bit를 전송하기 전에 전체 packet을 받아야 하는 것.
    따라서, 각 링크에서 저장후 전달하는데 필요한 delay가 발생함.

    * 두 Host A와 B가 있을때, L 비트의 packet을 보냄. A와 B 사이에 Q개의 link가 존재, 각각 R bps의 속도를 갖음.
    packet이 host A에서 나가는 첫번째 link에서 전송되는데에는 L/R 초가 소요됨.
    다음에 있는 Q-1개의 링크에서 store-and forward가 일어남.
    total delay time = QL/R (s) 이 된다.
  2. 각 packet switch는 자신에게 연결된 여러 link를 갖음. 따라서 각 link에 대해 output buffer(output queue)를 갖고 있다. 즉, 어떤 link로 packet을 내보낼때, 해당 link의 output buffer에 보냄.
    이 과정에서 buffer에서 link로 바로바로 나가지 않는한, buffer에서 packet이 대기하는 시간인 queuing delay가 발생하게 된다.
    또한 buffer의 크기가 유한하므로, buffer에 저장공간이 있지 않다면, packet이 손실될 수도 있다.(packet loss)
    link 간의 대역폭이 서로 다르므로, switch에 도착하는 packet이 나가는 packet보다 많으면 발생한다.

3. statistical multiplexing (통계적 다중화)
packet switching 방식이 circuit switching 방식보다 효과적이다.
  • 대역폭 공유, 효율성, 구현비용 등에서 packet switching 방식이 유리함.
packet switching 방식은 거의 항상 circuit switching과 대등한 delay를 보이면서, 사용자 수에 있어서 거의 3배 이상을 지원할 수 있다.
  • Host에서 1Mbps link를 공유할때, 각각의 user는 100kbps의 일정 속도로 data를 보내고, 100kbps의 비활동 시간을 받복한다고 하자. 그리고 user는 전체 time 중의 10%만 활동한다.
    circuit switching의 TDM의 경우, 1초(1000ms) frame이 100ms 마다 10개의 time slot으로 나뉘어 진다면, 각 사용자는 한 frame에 한번의 slot을 할당 받음. 따라서, 동시에 최대 10명(1000kbps/100kbps)까지만 지원을 한다.
    packet switching의 경우, 한 특정 user가 활동할 확률은 0.1%, 만일 사용자가 35명이 있을때, 11명이 동시에 활동할 확률은 약 3.3281e-04(0.00033281)이다..
    만약 10명 이하의 user가 동시에 packet을 보낸다면 circuit switching과 같은 도착률을 보인다.
    10명 이상의 user가 동시에 packet을 보낸다면 queue에 packet이 쌓이기 시작할 것이다. 하지만 10명 이상의 user가 동시에 packet을 보내는 경우는 
    확률상 굉장히 작다.
circuit switching처럼 link의 자원을 예약하지 않고, 필요할때만 요구하여 link를 사용하는 packet switching 방식을 자원의 statistical multiplexing(통계정 다중화)라고 한다.


4. How to deliver packet between hosts.
In the Internet, network를 통과하는 each packet의 header에는 packet의 destination address를 포함한다(우편 주소처럼). packet이 network 상의 한 router에 도착 하면, 그 router는 packet의 destination address를 검사하고, 이웃 router로 packet을 전달한다. 
router는 destination address에 따른 output link mapping table을 유지하고 있어 이것이 가능하다.  

5. the Internet은 network of network이다. 
ISP는 계층 구조를 가지는데, 하위 ISP는 상위 ISP와 연결이 된다. 
계층 1 ISP는 상대적으로 적은 수로 이루어 졌으며, link 속도는 상대적으로 빠르다.
또한 다른 계층 1 ISP, 하위 계층의 계층 2 ISP 및 network customers과 연결된다.  서비스의 범위가 국제적이다. 

계층 1 ISP를 Internet backbone network 라고 한다. 
계층 2 ISP는 보통 특정 지역 또는 국가를 서비스 범위로 하며, 자신이 연결된 계층 1 ISP를 통해서 routing을 하게 된다. 즉, 계층 1 ISP의 customer가 된다. 
ISP는 자신이 허용하를 link의 전송률에 따라 요금을 부과하기도 한다. 

어느 계층으든 ISP가 다른 ISP와 연결되는 접점을 POP(Points of Presence)라고 한다.




5. delay, loss and throughput in packet switching network


<source: Figure from Computer Networking A Top-Down Approach >
  1. nodal processing delay
    router가 packet의 header를 조사하여 그 packet을 어디로 보낼지 결정하는데 걸리는 시간. 보통 millisecond, 이 단계 이후 router는 packet을 다음 router 또는 destination에 이르는 link에 앞선 queue로 보낸다.
  2. queuing delay
    output link로 나가기 위해 queue에서 대기하는 시간. Queue가 비어 있다면 queuing delay는 0 이지만, 대기하는 packet이 많으면 delay가 길어짐. millisec ~ microsec.
    Queue가 꽉 차있다면 packet은 loss된다.
    a를 packet이 queue에 도착하는 평귤율(packet/sec), R은 전송률(queue에서 packet이 나가는 비율, bit/sec), 모든 packet이 L (bit) 라고 할 때, bit가 queue에 도착하는 평균율은 La(bit/sec)이고, traffic intensity(트래픽 강도)는 La/R이 된다.
    La/R > 1이면, bit가 queue에 도착하는 평균율이 bit가 queue에서 전송되는 비율을 초과하므로 queuing delay가 발생하기 시작한다. La/R <=1 이면 packet은 도착하면 delay거의 없이 전송될 것이다.
    하지만, 실제로 packet이 도착하는 형태는 random 하기 때문에 delay가 없을 수는 없을 것이다.
  3. transmission delay
    packet의 길이가 L bit, link의 전송률이 R bps일 때, 전송률은 L/R.(store-and forward 의 전송률과 같음.) millisec ~ microsec.
  4. propagation delay
    link를 통해서 전송되는 시간. d/s (d: distance of two nodes, s: a speed of a link)



6. throughput in network
두개의 Host A, B 가 있을때, A에서 B로 file을 전송할 경우.
instantaneous throughput(순간 처리율)은 host B가 file을 수신하는 ratio(bit/sec) 이다.

전송하려는 file의 size가 F bit, Host B가 모든 F bit를 수신하는데 T초가 걸린다고 할때, 
average throughput(평균 처리율)은 F/T(bit/sec) 이다.

A와 B사이에 router C 가 존재할 때, A와 C 사이의 링크의 전송률을 Rac, B와 C 사이의 전송률을 Rbc 라고 하면, A와 B 사이의 네트워크에서의 처리율은 min(Rac, Rbc) 가 된다.
예: F = 3200만비트, Rac = 2Mbps, Rbc = 1Mbps 이면, file 전송시 걸리는 시간은 32초이다.

A와 B 사이의 router가 n개 일 경우, 특정, 구간에서 혼잡하다면(데이터 흐름이 많다면) 해당 네트워크의 처리율은, 그 혼잡한 구간의 처리율이 될 것이다. 
즉, bottleneck link의 전송률이 처리율이 된다.

댓글 없음:

댓글 쓰기