1 Computer Networks Introduction
안녕하세요.
이 글은 Computer Networks 시리즈의 첫 번째 글입니다. 다른 글도 궁금하시다면 Computer Networks 시작 page를 참고해주세요.
Introduction
- Internet은 전세계를 연결하는 wide area network이다.
- 서로 소통하기 위해 지켜야 할 protocol이 존재한다.
- network edge에는 client와 server가 host로서 존재한다.
Packet Switching(layer2)
- packet 단위로 나눠서 송수신 진행. 즉 정해진 사이즈의 데이터를 주고 받음
- path 공유
- 고정된 path가 아닌 그 때 그 때 다른 path
- 고정된 path가 아니기 때문에 path가 낭비되지 않음
- queuing delay & loss 발생 path를 공유하기 때문에 독점적으로 사용하는 path가 없으므로 해당 path가 사용중이라면 delay가 발생한다.
- packet을 동시에 여러 개를 보내고 router에서 순서를 맞춤(store & forward)
- router에서 순서를 맞추는 등의 행위를 하기 때문에 queuing delay, packet loss 발생 가능
- 모든 packet이 와야 다음 layer로 이동하게 됨
Circuit Switching
- packet을 나누지 않음
- dedicated path
- 한번 path를 setup 하고 나면 그 path를 그대로 사용
packet switching과 달리 set up time이 필요하다. - loss & delay가 없어서 높은 신뢰도가 필요한 통신에서 사용
한 path를 점유하고 있기 때문에 store할 필요 없이 바로 송신한다. 따라서 store & forward 하지 않는다. - 해당 path를 사용하지 않는다면 낭비됨
- 동시에 여러 노드에서 송신을 원할 경우 setup time이 길어지며 각각의 노드에 대해 dedicated path를 할당하고 해제하는 방식으로 동작
Network of Networks
- Internet Service Provider(ISP)
인터넷 접속 서비스를 제공하는 회사로 예로 KT, SK브로드밴드, LG U+ 등 흔히 알고 있는 통신사가 있다. - ISP를 모두 연결하기 위해서는 $nC_2$ 만큼의 연결이 필요하다. 즉 $n^2$에 비례하는 연결이 필요하게 된다. 따라서 global ISP를 두어 이를 통해 소통을 하도록 하여 연결 비용을 줄인다.
- 실제로 global ISP 하나가 한 통신사로 이뤄지는 경우가 많다. 따라서 다른 통신사를 사용하고 있는 지인과 소통을 하기 위해서는 global ISP 또한 연결되어 있어야 한다. 이러한 연결을 담당하는 connection node를 Internet Exchange Point(IXP)라고 부른다.
Packet Delay
총 4가지의 delay가 존재한다.
four kinds of packet delay (출처: computer networking a top down approach 발행 ppt)
- processing
error bit check, output link 등 전 packet header를 처리하는데 걸리는 시간
일반적으로 10^-3 sec 정도로 짧기 때문에 delay를 계산할 때 무시할 때도 많음 - queuing
queue에서 자신의 차례를 기다리는 시간
network의 부하에 따라 결정되기 때문에 가변적이고 network delay에 가장 많은 영향을 줌
가변적이기 때문에 주로 컴퓨터 네트워크 delay 문제를 다룰 때는 무시함 - transmission
모든 bit을 wire에 전송되도록 하는 시간
packet size / bandwidth임 - propagation
데이터가 wire를 타고 이동하는데 걸리는 시간
link distance / propagation speed 임
전파율이 좋은 wire를 사용한다면 해당 delay가 줄어듦
Circuit switching vs Packet switching Delay
processing time, queuing delay 무시, 모든 노드 간의 거리 및 propagation speed가 동일하다고 가정할 때 다음과 같다.
- Circuit Switching
- setup time이 존재
- total delay = setup time + transmission time + last bit propagation time
= setup time + message size/link bandwidth + link distance * hop / signal propagation speed - 만약 노드 간의 거리, propagation speed가 다르다면 각 구간마다 propagation time을 구해 더해주면 된다.
- packet header를 다루는 processing time은 존재하지 않는다. packet 단위가 아니기 때문에 packet header가 존재하지 않을 뿐 아니라 path가 이미 setup time에 설정되었기 때문에 정해진 path로 송신만 하면 되기 때문이다.
- Packet Switching
- setup time 존재 안함
- 마지막 packet이 travel 하는 기준
- total delay = transmission time + last packet travel time
= message size/link bandwidth + (last bit propagation time + store and forward time * intermediate node) - 이 때 store and forward time은 packet transmission time과 동일하다.
- 만약 processing time을 고려한다면 intermediate node마다 processing time을 고려하기 때문에 last packet travel time = last bit propagation time + store and forward time * intermediate node + processing time * intermediate node가 된다.
Internet Protocol Stack
아래부터 위로 physical → link → network → transport → application의 구조이다. 송수신하는 예를 들자면
송신측: application → transport → network → link → physical 순으로 전송하고자 하는 데이터가 layer 하부로 이동한다.
수신측: physical → link → network → transport → application 순으로 layer 상부로 올라와 확인할 수 있게 된다.
- physical: 가장 하부에 위치하며 네트워크 하드웨어 전송기술을 다룬다. 모뎀, 허브, 리피터 등이 해당한다.
- link: 네크워크 상 주변노드와 소통한다. 관련 용어로 ethernet, ethernet frame, MAC address, Switch, flow control, error detection & correction 등이 있다.
- network: host간 logical communication을 담당한다. routing & forwarding을 진행하며 IP datagram, router, forwarding, broadcast, multicast 등이 관련 용어이다.
- transport: 서로 다른 host 내에 존재하는 application process가 logical communication을 하도록 한다. TCP, UDP, segment, multiplexing, congestion control 등이 관련 용어이다.
- application: 인터넷 네트워크를 사용한다. 관련 용어는 HTTP, client-server, P2P 등이다.
ISO/OSI Reference Model
앞서 다룬 Internet Protocol Stack과 비슷하지만 추가된 layer가 2개 존재하여 총 7개의 layer이다.
physical → link → network → transport → session → presentation → application
- session: synchronize, checkpoint
- presentation: encryption, machine-specification
해당 글은 공부한 내용을 정리한 글으로 오류가 존재할 수 있습니다. 만약 오류를 발견하셨다면 댓글로 알려주세요!
댓글남기기