[Computer Network] Intro
Ref : 컴퓨터 네트워크 - 하향식 접근
1.1 what is internet
- Internet : 전세계를 넘어 수많은
computing device를 이어주는 computer network
- 전통적인
computing device
는 데스크탑이지만, 현재는 스마트폰, 태블릿, 티비 등 많은 기기들을 의미한다. - 이러한 computing device는
computer network
에 연결되어있다. - Internet용어로 이런
computing device
들을hosts
또는end system
이라고 부른다.
- 전통적인
1.1.1 bolt-nuts description
### communication links와 packet switch
- 이러한 End system(host)들은
communication links
와packet switches
로 연결되어있다.communication links
는 구리선, 광섬유, 라디오 주파수 등의 다양한 형태를 가진다.- 각각의 형태는 각각 다른
transmission rate
(bit/second)를 가진다. - 하나의 End system이 다른 End system에 data를 전송하고 싶을때, 송신자는 data를 segment로 나누어 부분별로 header를 추가하게된다.
- 이렇게 만들어진 정보는 computer network 용어상으로
packet
이라고 불린다. - 수신하는 end system에서는 그 패킷들을 재조합하게된다.
- 이렇게 만들어진 정보는 computer network 용어상으로
- 각각의 형태는 각각 다른
packet switch
는incoming communication links
로부터 packet을 전달받아서outgoing communication links
로 포워딩을 하게된다.- packet switch는 다양한 형태를 가지고 있으나, 오늘날에는 크게
router
와link-layer switch
가 주요한 형태이다.- 두 가지 타입 모두 packet을 전달받아서 목적지에 포워딩한다.
link-layer switch
는access network
에서 일반적으로 사용된다.router
는network core
에서 사용된다.
route
,path
communication links와 packet switch들이 sending end system에서 receiving end system으로 packet을 전달하는 일련의 순서
ISP
- 두 가지 타입 모두 packet을 전달받아서 목적지에 포워딩한다.
- packet switch는 다양한 형태를 가지고 있으나, 오늘날에는 크게
- End system은
ISP(Internet Service Providers)
을 통해 Internet에 접속한다.- 대학 ISP, 기업 ISP, 지역 케이블, 다양한 장소에서 WIFI를 제공하는 ISP들, celluar data를 제공하는 통신사들 등등..
- 각각의 packet switch와 communication links를 가지고 있다.
- end system들에게 Internet access를 제공한다.
- cable modem, DSL, 고속 지역 네트워크 접속, 모바일 무선 접속, 서버들이 Internet에 바로 접속하게 하는 등
### Protocol
protocol
은 End system, packet switch, 그리고 internet의 다른 부분들이 Internet에서 정보를 주고받는 것을 규약한다.TCP(transmission control protocol)
과IP(internet protocol)
이 인터넷에서 가장 중요한 2개의 protocol이다.IP protocol
은 router와 end system에서 주고받는 packet의 format을 명시한다.TCP/IP protocol
Internet의 주요한 프로토콜들을 묶어서 부르는 말
- protocol이 internet에서 중요한 이유에 대해서 알아보자.
- 사람들이 시스템을 만들고, 상호 운용하기 위해서 모든 사람들이 각각의 protocol들이 무엇을 하는지 동의하는건 중요하다.
- 그래서 표준이 만들어졌다.
Internet standards
는Internet Engineering Task Force(IETF)
에 의해서 개발되었다.IETF standards
는RFCS(requests for comments)
라고도 불린다.TCP, IP, HTTP, SMTP protocol
을 정의했다.- 7000개 이상의 RFCS가 존재한다.
IEEE 802 LAN/MAN Standars Committee
는 이더넷과 와이파이 기준을 명시했다.
1.1.2 Service Description
- 위 처럼 Internet을 구성하는 요소들로 설명하지 않고, application에 서비스를 제공하는 기반시설의 입장에서 설명할수도 있다.
- 데이터를 서로 교환하는 end system에서 작동하는 application들은
distributed application
이라고도 불린다. - end system에서 작동하는 internet application들은 network core의 packet switch에서 작동하지 않는다.
- packet switch들이 end system 간의 데이터 교환을 용이하게하나, application에는 관심이 없고, packet switch는 data의 source나 sink에만 관심이 있다.
- 데이터를 서로 교환하는 end system에서 작동하는 application들은
- 하나의 end system에서 작동하는 프로그램이 다른 end system에서 작동하는 다른 프로그램에 data가 전달되도록 어떻게 지시할까?
socket interface
Internet에 연결된 End system이 제공한다.socekt interface
는 어떻게 하나의 end system에서 구동하는 프로그램이 Internet 기반 시설에 다른 end system에서 구동중인 특정한 프로그램에 데이터를 전달하도록 요청하는지 명시한다.
1.1.3 Protocol
- 모든 internet 의 행동은 protocol에 의해 통제되는 2개 이상의 객체를 포함한다.
- hardware-implemented protocol은 물리적으로 연결된 컴퓨터간 bit의 흐름을 제어한다.
- congestion-control protocol은 수신자와 송신자 사이에 packet의 비율을 통제한다.
- router protocol은 packet이 어디로 향해야하는지를 결정한다.
- WEB server에 요청할때 일어나는 일
- URL을 브라우저에 입력한다.
- client는 Web server에 request message를 보내고 답장을 기다린다.
- Web server가 request를 받아서 답장을 보낸다.
- client는 이제 어떤 Web page을 얻고싶은지 GET message를 보낸다.
- Web server는 해당 메세지를 되돌려준다.
1.2 Network Edge
- 네트워크 용어로 computer와 server들을
end system
이라고 부른다.- 그 이유는 internet의 edge에 있기 때문이다.
- 이 end system들은
host
라고도 불린다.- 왜냐하면 이 end system들은 각각 Web browser, Web server, e-mail client, e-mail server application들을 host할 수 있기 때문이다.
1.2.1 Access Networks
- 지금까지 network edge에 있는 application과 end system들을 고려했는데, 이제
access network
에 대해 알아보자.access network
란 end system을 첫번째 router(edge router)
에 물리적으로 연결하는 네트워크를 의미한다.
LAN(local area network)
는 end system과 edge router를 연결하는데에 사용된다.- 기업, 대학, 집에서 주로 사용된다.
- LAN 기술은 정말 많지만,
Ethernet
은 기업, 대학 집 네트워크에서 많이 사용된다.- Ethernet user는 Ethernet switch에 연결하기위해 2가닥의 구리선을 사용한다.
- Ethernet switch는 institutional router에 연결되어 ISP에 연결된다.
WLAN(IEEE 802.11)
도 굉장히 증가했는데, wireless 유저는 통신사의 유선인터넷에 연결된 access point로부터 packet을 주고받는다.
1.2.2 physical media
- HFC는 fiber cable과 coaxial cable을 사용하고, DSL과 Ethernet은 구리선을 사용한다.
- 모바일 접속은 전파 스펙트럼(radio spectrum)을 사용한다.
- physical medium에 대해 정의하기 전에, bit가 network에서 어떤 삶을 사는지 알아야한다.
- 각 bit는 end system으로부터 시작해 수많은 links와 router를 통해 다른 end system으로 이동한다.
- 각 bit가 source로부터 destination으로 갈때 일련의
transmitter-receiver
쌍을 지나가는데,- 각각의 쌍에서 bit은 전파나 광펄스를 사용해
physical medium
을 지나가게된다.guided media
: 광섬유, 구리선, coaxial cable등의 단단한 mediumunguided media
: 전파가 주변에 모두 퍼진다, WLAN, digital satelite channel
- 각각의 쌍에서 bit은 전파나 광펄스를 사용해
1.3 Network Core
- Internet의 end system들을 연결하는 packet switch와 links의 그물망을 의미.
1.3.1 Packet Switching
- network application에서 end system들은 message들을 주고받게된다.
- 이런 message들은
packet
이라고 불리는 작은 조각들로 나뉘어져 전달되게된다. - 각 packet들은
communication links
와packet switches(routers, link-layer switches)
를 지나가게된다.- packet들은 각 communication link의
최대 transmission rate
의 속도로 전달된다. - 만약 packet switch가
L bits
를 보내고, transmission rate는R bits/sec
이라면, packet의 전송속도는L/R seconds
이다.
- packet들은 각 communication link의
### store-and-forward transmission
store-and-forward transmission
: 많은 packet switch들은 link의 입력에 대해 이 방식을 사용한다.- output link에 첫 packet의 bit를 전달하기 전에 반드시
전체 pacekt
을 받아야한다는 것을 의미. -
예시로
source-router-destination
을 생각해보자.-
- source는 0초에 전송을 시작한다.
- L/R 초에 source는 전체 패킷을 전달한다. 그리고 전체 packet은 router에 저장된다.(전송지연 무시(communication links에서 발생하는 지연시간))
- L/R초에 router는 destination에 packet 전송을 시작한다.
- 2L/R초에 router가 전체 packet을 전달완료한다.
-
- 동일하게, 3개의 패킷을 전달힐떼. 첫번째 패킷을 전달하기 시작한 시간으로부터 desination에서 마지막 패킷을 받기까지
얼마나 시간이 지났을지 생각해보자.
-
- router가 L/R 시간에 첫 패킷을 destination에 전송을 시작한다.
- L/R시간에 source는 두번째 패킷을 전송하기 시작한다.
- 2L/R시간에 destination은 첫 패킷을 다 받았고, router는 두번째 패킷의 전송을 시작한다.
- 3L/R시간에 destination은 두번째 패킷을 다 받았고, router는 세번째 패킷의 전송을 시작한다.
- 결국, 4L/R시간에 destination은 세개의 패킷을 모두 받는다.
-
dend-to-end
: N개의 링크가 있는 source로부터 destination까지 1개의 패킷이 전달되는 시간- N * R(전송속도) * L
- output link에 첫 packet의 bit를 전달하기 전에 반드시
### Queuing Delays and Packet Loss
- 각 packet switch는 일반적으로 다수의 link로 연결되어 있다.
- 각 link에 대해 packet switch는
output buffer(output queue)
라고하는 link로 전달하기 전에 packet들을 보관하는 장소가 있다. - 이
output buffer
는 packet switching에서 중요한 역할을 하며, packet switch가 다른 link에 packet을 전송중이라 바쁠때, 막 도착한 packet들은 여기서 전송을 대기한다.- 따라서
store-and-forward delay
에 더해서 packet들은queuing delay
라는 걸 겪게된다. - 이
queuing delay
는 네트워크의 혼잡도에 따라 다르다.
- 따라서
- 만약 이때,
output buffer
가 꽉 찬 상태라면,packet loss
가 일어나서전송 대기중인 packet 또는 지금 막 도착한 packet
은 버려지게된다.
### Forwarding Tables and Routing Protocols
- router가 packet을 어떤 link로 보내는지 결정한다.
- 이런 Packet Forwarding은 컴퓨터 네트워크에 따라 다르지만, Internet에서 어떻게 작동하는지 알아보자.
- 인터넷에서 모든 end system 은
IP address
라는 주소를 가지고 있다. - source end system이 destination의 end system에게 packet을 전송하고 싶다면
- source는 packet의 헤더에
destination의 IP address
을 포함해야한다. - 이 주소는 계층적 구조를 띄고 있다.
- packet이 network에서 router에 도달하면, router는 packet의 destination address의 일부를 분석하고 packet을 adjacent router로 보내게된다.
- 특히, 각 router는
routing table
이라는 destination address를 router의 outbound link로 매핑하는 테이블을 가지고 있다. - 만약 packet이 router에 도달하면 적절한 outbound link를 찾기위해 router는 주소를 분석하고 destination 주소를 이용해서 forwarding table에서 찾는다.
- source는 packet의 헤더에
- 인터넷에서 모든 end system 은
- 인터넷은 forwarding table을 자동으로 설정하는
routing protocol
을 가지고 있는데, router의 forwarding table을 설정하기위해서 각 router와 각 destination에서 가장 빠른 경로를 찾는다.
### Circuit Switching
- 지금까지 packet switching에 대해서만 알아봤는데, switch들과 links에서 데이터를 옮기는 방법은
Circuit Switching
이라는 것도 있다.circuit switching
네트워크에서는 end system 사이에서 통신에 필요한 자원(buffer, link tranmission rate)는 communication session 동안 예약되어 있다.- packet switching 네트워크에서는 이러한 자원은 예약되어있지 않고, 필요할때마다 사용한다.
- 전통적인 전화 네트워크가 circuit switched 네트워크의 대표적인 예시이다.
- 4개의 circuit switch로 4개의 link가 연결된 네트워크 예시
- 이 4개의 link는 4개의 동시적인 접속을 허용할 수 있다.
- end system들은 각각 이 switch들 중 하나에 직접적으로 연결되어있다.
- 그러므로 만약 A가 B와 통신하고싶다면, 네트워크는 반드시 2개의 링크에 circuit을 하나씩 예약해야한다.
-
- 파란선이 circuit을 의미하며, circuit이 4개씩 예약되어 있는 것을 볼 수 있다.
- packet switching과는 다르게, delay을 겪지 않는다는 장점이 있다.
### Multiplexing in Circuit-Switched Networks
- link의 ciruit은
frequency-division mulitplexing(FDM)
또는time-division multiplexing(TDM)
을 하게된다. FDM
- FDM은 link로 만들어진 연결을 주파수 스펙트럼으로 나누게된다.
- 연결되어있는 동안 link는 해당 주파수만을 위해 작동하게된다.
- band의 너비를
bandwidth
라고한다.
TDM
- TDM은 시간을 고정된 길이로 나누어서 숫자를 매겨 time slot을 만든다.
- 각 슬롯은 하나의 connection만을 위해 사용된다.
silent periods
- TDM이든, FDM이든 모두 고정된 link가 하나의 connection만을 위해 작동하기에, 사용되지 않는 동안은
idle
상태가 되어 버려지게된다.
- TDM이든, FDM이든 모두 고정된 link가 하나의 connection만을 위해 작동하기에, 사용되지 않는 동안은
### packet switching vs circuit switching
- packet switching은 end-to-end delay를 예측할 수 없기에 실시간 서비스에 적합하지 않다.
- circuit switching은 packet switching보다 전송 용량을 효율적으로 사용하지 못하며, 모든 link에 대해 circuit을 구성해야하기에 연결이 복잡하다.
- 최근 트렌드는 packet switching으로 기울고있다.
1.3.3 A Network of Networks
- end system들은 access ISP를 통해 인터넷에 연결되어있다.
- 이 access ISP는 DSL, cable, FTTH, Wi-Fi, cellular 등의 유선, 무선 연결을 지원한다.
- 이 access ISP는 통신사만을 의미하는게 아닌, 대학, 기업이 될수도 있다.
- 하지만 end-user와 content-provider를 access ISP에 연결하는 것은 인터넷을 구성하는 수백만개의 end system을 연결하는 조그마한 부분이다.
- 이 따라서, access ISP는 그들 스스로 연결되어있어야하는데 이를
network of networks
이다.
- 수십년간, 인터넷을 구성하는
network of networks
는 굉장히 복잡한 구조로 진화되어왔다. - 이 진화는 경제학, 정책 등에 의해 이루어진 것이다.
- 오늘날의 네트워크 구조를 이해하기위해선, 점진적으로 일련의 네트워크 구조를 만들어야한다.
- access ISP를 연결해 end system들이 packet을 주고받고 하는것이 주 목표이다.
- 한가지 단순한 접근방법은 각 access ISP를 다른 access ISP들과 직접적으로 모두 연결하는 것이다.
- 물론 이런 방법은 비용이 엄청날 것이다.
Network Structure 1
- 모든 access ISP들을 하나의
global transit ISP
에 연결한다. - 이
global transit ISP
는 지구에 걸쳐 있을뿐만 아니라, 주변에 있는 access ISP들과 연결된 적어도 1개의 router를 가진 router와 communication links의 network이다. - 이
global transit ISP
를 구성하는 것은 매우 비싸기에, global ISP에서 사용하는 access ISP의 트래픽만큼의 비용을 청구할 것이다. access ISP
는 비용을 지불하므로customer
가 될 것이고,global transi ISP
는 provider가 될 것이다.
Network Structure 2
- 만약 몇몇 회사가 global transit ISP를 수익적으로 운영한다면, 다른 회사들도 이를 구축하려 들 것이다.
- 이는 다수의 access ISP와 복수의 global transit ISP로 구성된 network structure 2로 이어지게된다.(network structure 1은 global transit isp가 1개)
- access ISP들은 global transit provider가 제공하는 서비스들 중에서 선택할 수 있기에 이를 더 선호할 것이다.
-
하지만, 여기서 global transit ISP들은 서로 연결되어있어야만하는데, A라는 global transit ISP에 연결된 access ISP는 B라는 global transit ISP에 연결된 access ISP와 연결될 수 있어야하기 때문이다.
- network structre 2는 계층적 구조를 띄는데, 상위티어에 global transit provider를, 하위티어에 access ISP를 둔다.
- 현실에서, 모든 ISP가 각각의 모든 도시에 존재하지는 않기에, 지역이 주어지면 해당 지역의 access ISP가 연결되는
regional ISP
가 존재할 수 있다. - 각각의 regional ISP는 상위의 ISP(global transit provider)에 연결된다.
- 1티어 ISP에는 AT&T, Sprint, NTT가 있다.
Network Structure 3
- 현실에 더 가깝게 네트워크를 구성하기 위해선, points of presence(
PoPs
)multi-homming
,peering
, 그리고internet exchange points(IXPS)
를 추가해야한다. PoPs
는 ISP가 있는 최하위 티어를 제외한 모든 계층에 존재할 수 있다.PoP
는 소비자 ISP가 공급자 ISP에 연결할 수 있는 공급자 네트워크의 하나 이상의 라우터의 그룹이다.multi-home
- 1티어 ISP를 제외한 어떤 ISP도
multi-home
을 선택할 수 있는데, 2개 이상의 공급자 ISP와 연결하는 것이다.- 간단히 말해, access ISP가 2개의 regional ISP와 연결하는 것을, 혹은 2개의 regional ISP가 1티어 ISP와 연결하는 것을 의미한ㄷ.
- 비슷하게, resional ISP는 복수의 1티어 ISP와 multi-home을 구축할 수 있다.
- multi-home ISP일때, 1개의 공급자가 실패하더라도 패킷을 주고받을 수 있다.
- 1티어 ISP를 제외한 어떤 ISP도
peering
- 소비자 ISP가 공급자 ISP에게 지불하는 비용은 공급자와 교환하는 트래픽의 양을 반영한다.
- 이 비용을 줄이기 위해 근접한 동일 계층의 ISP들이
peer
를 할 수 있다.- 이에따라, 그들 사이의 모든 트래픽이 업스트림 중개자를 통하지 않고 직접통과하도록 할 수 있다.
- 2개의 ISP가 peer를하면, 어느 ISP도 다른쪽에 비용을 지불하지 않는다.
IXP
- 같은 맥락으로, 3자 기업이 IXP를 구축할 수 있다.
- 이는 복수의 ISP들이 peer를 구성할 수 있는 meeting point이다.
- 하나의 IXP는 일반적으로 자신만의 switch들을 가진 독자적인 건물이다.
- 오늘날 400개 이상의 IXP들이 있다.
access ISP
,regional ISP
,tier-1 ISP
,PoP
,multi-homming
,peering
,IXP
를 가진 생태계를Network Structure 4
라고한다.
Network Structre 5
- 오늘날의 인터넷을 묘사한다.
- 5는 4에다가
conetent-provider network
를 얹은 형태이다.(CDN) - google이 대표적인 컨텐츠 생산 네트워크의 예시이다.
- 구글은 전세계의 50~100개의 분산된 데이터센터를 가지고 있다.
- 이 데이터 센터 하우스의 몇몇은 다른 데이터센터와는 달리 엄청 많은 서버를 가지고있다.
- 구글 데이터 센터는 구글의 사설 TCP/IP 네트워크에 연결되어 있다.
- 이 네트워크는 전세계에 걸쳐있지만, 공용 인터넷과는 달리 구글 서버의 트래픽만을 옮긴다는 것이다.
- Google 사설 네트워크는 하위 계층 ISP와 직접 연결하거나 IXP에서 ISP와 연결하여 상위 계층을 “무료 결제”함으로써 인터넷의 상위 계층을 “우회”하려고 시도한다.
- 그러나 여전히 계층 1 네트워크를 통해서만 많은 액세스 ISP에 도달할 수 있기 때문에 Google 네트워크는 계층 1 ISP에도 연결하고 교환하는 트래픽에 대해 해당 ISP에 지불한다.
- 자신만의 네트워크를 구성함으로써, content provider는 상위 티어 ISP에 대한 비용지불을 줄일뿐만 아니라 end user에게 제공되는 서비스를 완전히 컨트롤할 수 있다.
1.4 Delay, Loss and Throughput in Packet Switched Networks
- 인터넷은 end system에서 실행되는 어플리케이션들에게 서비스를 제공하는 기반시설로 보여질 수 있다고 했다.
- 이에따라 인터넷이 어떤 데이터 손실도 없이 end system간 최대한 많은 데이터를 옮길 수 있다고 생각할수도 있으나, 현실적으로 이는 불가능하다.
- 컴퓨터 네트워크는 필수적으로 전송량을 제약하며, end system간 delay가 존재하고, packet loss가 발생할 수 있다.
- 이런 현실의 물리적 법칙에따라 지연, 손실, 처리량 제약은 이런 컴퓨터 네트워크에서 이런 문제를 해결하는 많은 방법들을 만들게되었다.
1.4.1 Overview of Delay in Packet-Switched Networks
- 패킷은 host로부터 시작해 router를 지나 다른 host에 도달하게된다.
- 패킷이 node(host or router)에서 시작해 인접한 다른 노드를 따라 이동하면서 패킷은 몇몇 타입의 지연을 겪게된다.
- 이런 지연의 종류로는
nodal processing delay, queuing delay, transmission delay, propagation delay
가 있다. - 결국 지연이 모두 축적된건
total nodal delay
가 되게된다.
types of delay
- 패킷이 router A에 도착한 상태에서 router B로 간다고 생각해보자.
- router A에는 B로 향하는 outbound link를 가지고 있다.
- 이 링크는 queue(buffer)에 의해 진행되며, A에 도착한 패킷은 A가 패킷의 헤더를 분석해 적절한 outbound link를 찾게되고, 이 패킷을 해당 link로 보내게된다.
- 이 예시에서 outbound link는 B이다.
- A에서 그 패킷은 다른 패킷의 전송이 완료되었을때만 가능하고, A에 도착한 패킷은 A가 전송중이 아니거나, queue에 다른 패킷이 없을때만 바로 전송할 수 있다.
1. Processing Delay
- 패킷의 헤더를 분석하고, 패킷의 방향을 정하는데에 걸리는 시간
- 또한 위의 경우에서 상위 노드에서 A로 패킷이 전송되면서 발생할 수 있는 bit-level의 오류를 확인하는데에 걸리는 시간
- 이런 processing delay는 마이크로 초보다 적게 걸리며 이 처리 이후에는 router B로 패킷의 방향을 정하고 queue에 넣게된다.
- Chapter4에서 더 자세하게 다룬다.
2. Queuing Delay
- Queuing Delay의 시간은 먼저 도착해 queue에 존재하는 패킷의 양에따라 다르다.
- 큐가 비어있고, 아무런 패킷도 전송중이 아니라면 Queuing Delay는 0초이다.
- 만약 트래픽이 많고, 많은 패킷이 Queue된 상태라면 더욱 오래걸리게된다.
- Queuing Delay는 마이크로초에서 밀리초 단위로 걸린다.
3. Transmission Delay
- 패킷이 선입선출 방식으로 전송된다는 것을 생각할때, 지금 막 도착한 패킷은 먼저 도착한 패킷들이 모두 전송되어야 전송될 수 있다.
- L bit길이의 패킷이있고, A에서 B로 향하는 속도가 R bits/sec일때,
Transmission Delay
는 L/R이다.
- 일반적으로 마이크로초에서 밀리초 단위로 걸린다.
4. Propagation Delay
- bit 하나가 link로 넣어지면 router B로 전파되게된다.
- link의 시작점으로부터 router B로 전파되는 시간을 의미한다.
- 전파 속도는 어떤 물리적 매체의 link인지에 따라 다르고, 2108meters/sec ~ 3108meters/sec의 범위에 있다.
Propagation Delay
는 따라서 A에서 B까지의 물리적 거리를 전파속도로 나눈 값이 된다.
Transmission Delay와 Propagation Delay의 차이
- 처음 공부할때 어려울 부분일수도 있다, 한국어로는 전송지연과 전파지연.
- 전송지연은 말그대로 전송하는데에 발생하는 지연을 의미하며, 패킷의 길이와만 관련이 있고, 실제 라우터 사이의 길이는 관계가 없다.
- 전파지연은 반대로 라우터 간 물리적 거리와만 관련이 있다.
Total nodal delay
dproc, dqueue, dtrans dprop
을 각각processing delay, queuing delay, transmission delay, propagation delay
라고 할때,dnodal(total nodal delay) = dproc + dqueue + dtrans + dprop
이 된다.
Queuing Delay and Packet Loss
- nodal delay에서 가장 중요하고 흥미로운 요소는 dqueue이다.
- 많은 연구들이 컴퓨터 네트워킹에서 이 요소를 다루었다.
- 다른 지연과는 다르게 queuing delay는 패킷마다 다를 수 있다.
- 예를들어, 10개의 패킷이 비어있는 큐에 동시에 도착했을때, 첫번째 패킷은 queuing 딜레이를 겪지 않지만, 마지막 패킷은 첫 패킷에 비해 큰 지연을 겪게된다.
- 그러므로, queuing delay을 특징지을때, 보통은 통계적 수치를 사용하게된다.
- queuing delay가 클때랑, 작을때는 언제가 있을까?
- 큐에서의 트래픽, 링크의 전송속도, 트래픽이 주기적인지 몰리는지에 따라 다르다.
- a를 초당 도착하는 평균적인 패킷의 수, R을 전송속도, L이 패킷의 크기(bit단위)라고할때,
- La = 큐에 도달한 평균적인 bit의 수
- La / R =
traffic intensity
라고한다.
- traffic intensity가 1보다 크면 큐가 계속 증가하면서 queuing delay는 무한대로 증가한다.
- 따라서 traffic engineering의 목표는 traffic intensity를 1보다 작게하는 것이다.
- 1보다 작거나 같다고 생각할때, 이제 트래픽이 주기적으로 인지, 몰리는지가 중요하다.
- 트래픽이 주기적일때
- 모든 패킷이 L/R 시간에 도착한다면 모든 패킷은 빈 큐에 도달해 queuing delay가 없게된다.
- 주기적으로 몰릴때
- N개의 패킷이 몰리면 맨 처음 패킷은 queuing delay가 없지만, 두번째 패킷부터 L/R초의 queuing delay을 겪게되면서 마지막 패킷은 (n-1)L/R의 queuing delay를 겪게된다.
- 트래픽이 주기적일때
- traffic intensity를 단순하게 이렇게 표현하는건 이해를 위함이고, 현실에서는 주기적인 트래픽 몰림이나, 주기적인 트래픽은 거의 없다.
- traffic intensity가 0에 가까우면 가까울수록 패킷이 도착했을때 큐에서 다른 패킷을 볼 확률이 적어져서 queuing delay는 0에 가까워지나,
- 1에 가까우면 가까울수록 큐에서 다른 패킷을 볼 확률이 높아지므로 queuing delay는 급격하게 커진다.
Packet Loss
- 일반적으로 queue는 한정된 수의 패킷만을 담을 수 있다.
- 따라서, traffic intensity에서 언급했든 packet delay는 실제로 무한대로 증가하지는 않는다.
- 다만, 꽉찬 큐에 도착한 패킷은 router가
drop
해버려서lost
되어버린다. - end system의 입장에서 packet loss는 패킷이 network core로 전송된것처럼 보이지만, destination network에서는 나타나지 않는다.
- 손실된 패킷의 비율은 traffic intensity가 증가함에따라 증가하므로, node의 성능은 delay로 측정될뿐만 아니라, packet loss 가능성으로도 측정될 수 있다.
- lost된 패킷은
end-to-end
방식으로 완전한 데이터가 전송되도록 재전송될 수 있다.
End-to-End Delay
- single router에서 nodal delay에 대해서 생각해보자.
- source 에서 destination까지 total delay에 대해서 고려할건데, source 에서 destination 사이에 N - 1개의 router가 존재하고, 네트워크는 혼잡하지 않아서 queuing delay는 없다고 가정한다.
- processing delay는 dproc으로, 전송 속도는 R bits/sec, L은 패킷의 크기로, dtrans 는 이에따라 L/R이고, 전파 지연은 dprop이라고 할때, nodal delay는 누적되어서
End-to-End delay
는dend-end = N(dproc + dtrans + dprop)
이 된다.- N-1개의 router가 존재할때, source에서는 N개의 특수 패킷을 네트워크에 보내게된다.
- 각 패킷은 destination이 정해져있고, destination에 도착하면 forward하는 방식이 아닌, source에게 메세지를 돌려주게된다.
- source는 패킷을 보낸시간과 메세지를 돌려받은 경과시간을 기록하고, 메세지를 돌려준 router의 주소와 이름을 기록하고 있는다.
- 이런식으로 source 측에서 source로부터 destination으로 향하는 route를 재구성할 수 있다.
1.4.4 Throughput in Computer Networks
- 지연과 패킷 손실과 더불어 CN의 성능 측정의 중요한 요소가
end-to-end throughput(단 대 단 처리량)
이다. - Host A가 Host B로 큰 파일을 옮긴다고 생각해보자.
- 임의의 순간의 순간 처리량은 (bits/sec)은 B가 파일을 받는 속도를 의미한다.
-
file이 F 개의 bit로 이루어져있고, B가 모두 전송받는데에 T초가 걸린다면,
average throughput
평균 처리량은 F/T bit/sec이 된다. -
- Rs : server와 router 사이 link의 속도
- Rc : router와 client 사이 link의 속도
- Rc가 Rs보다 처리량이 많더라도, Rs보다는 많은 양을 처리할 수 없다.
-
Rs가 Rc보다 처리량이 많더라도, Rc보다 많은 양을 처리할 수 없다.
- 이렇게 처리량을 제약하는 link를
bottleneck link(제약링크)
라고한다. - 이는
min{Rc, Rs}
로 구할 수 있으며, 파일의 크기가 F라면, 걸리는 시간은F/min{Rc, Rs}
일 것이다.
- 오늘날 인터넷에서의 예시
-
- a :
- computer network에 연결된 2개의 end system
- network core의 link가 Rc, Rs보다 매우 높은 전송속도를 가지고있다고 생각할때, 오늘날 인터넷의 처리량 제약 요인은 일반적으로
access network
이다.
- b :
- 10개의 서버와 10개의 클라이언트가 network core에 연결되어있다.
- 10개의 동시적인 다운로드가 일어날 수 있으며, 이 10개의 다운로드가 네트워크상에서 유일한 트래픽이라고 가정해보자.
- R을 link R의 전송 속도라고 가정할때, 이 R은 10개의 client가 동시에 사용할 수 있으므로, 전송 속도는 R/10이 된다.
- 따라서, 처리량은
min{Rs, Rc, R/10}
이 된다. - a처럼 Rc, Rs, 그리고 R이 제약요인이 된다.
- a :
1.5 Protocol Layers and Their Service Models
- 네트워크는 많은 부분으로 이루어져 복잡하다.
- 이 복잡한걸 어떻게 조직화할 수 있을까?
1.5.1 Layered Architecture
Layered Architecture
는 크고 복잡한 시스템의 특정한 부분을 논의할 수 있게해준다.- 이렇게 단순화하는 것은 해당 층에서 제공하는 서비스의 구현을 바꾸는 것을 쉽게해주는
모듈화
에 상당한 가치가 있다. - 해당 층이 상위 계층에 대해 동일한 서비스를 제공하는 한, 아래 계층으로부터 동일한 서비스를 이용하는한, 해당 층의 구현이 달라져도 나머지 시스템은 동일하다.
1.5.2 Protocol Layering
- 네트워크 디자이너들은 계층에서 프로토콜을 구현하는 하드웨어와 소프트웨어를 조직화한다.
- 계층의
Service model
은 한 계층의 윗 계층에 제공하는 서비스를 의미한다. - 프로토콜 계층은 소프트웨어, 하드웨어, 또는 둘 다를 이용해 구현될 수 있다.
Application-layer protocols
,transport-layer protocols
HTTP
나SMTP
같은 프로토콜은 end system에서 소프트웨어에서만 구현된다.
physical layer
,data link layer
- 특정 링크에 대한 통신을 제어해야하므로 주어진 link와 연관된 네트워크 인터페이스 카드에 구현되어 있다.(하드웨어에서만)
network layer
- 네트워크 계층은 하드웨어, 소프트웨어에 섞여있다.
장단점
- 장점
- 모듈화를 통해 업데이트가 더 쉽다.
- 단점
- 한 계층이 하위 계층의 역할을 복제할 수도 있다.
- 다른 계층이 가진 정보를 필요로해 계층 분리의 목표를 침해할수도 있다.
Protocol Stack
- 다양한 계층의 프로토콜들을 의미
- Internet Protocol Stack은 5계층으로 이루어져 있으며, 맨 위에는 application layer가 위치한다.
- OSI 7계층보다 적은 계층을 띄는데, Presentation 계층과 대부분의 Session 계층은 application계층에 속한다.
- 단, SSL과 TSL의 경우에는 전송계층인 TCP보다는 상위에, 응용계층인 HTTP와 SFTP보다는 하위에 있기에, OSI 7계층 모델은 TSL과 SSL을 설명하기에 적합하다.
- 참고로 HTTPS는 HTTP + TLS or SSL로 암호화를 한다.
Application layer(응용계층)
- 응용계층은 네트워크 어플리케이션과 응용계층 프로토콜이 존재한다.
- 인터넷의 응용계층은 많은 프로토콜을 포함하고 있으며,
HTTP
프로토콜(웹 문서의 요청과 전달)과SMTP
(e-mail 전달), 위에 언급한HTTPS
프로토콜을 포함한다. -
또한 도메인을 입력하면 32비트 주소로 변환하는 DNS 프로토콜도 응용 계층에 있다.
- 하나의 end system의 application은 다른 end system의 application의 정보를 담는 패킷을 교환하기 위해 이 프로토콜을 이용한다.
- 응용계층에서 이 패킷을
message
라고 한다.
Transport layer(전송계층)
- 전송계층은 application endpoints간 만들어진 응용계층
message
를 전송한다. - 인터넷에서는 2개의 전송 프로토콜이 있는데,
TCP
와UDP
이다.TCP
는 응용프로그램에게 연결 지향적 서비스를 제공한다.- 이 서비스는 응용계층 message의 전달 뿐만아니라, 송수신자의 속도를 일치하는 흐름제어를 포함한다.
- TCP는 또한 긴 메세지를 작은
segment
로 나누고, 네트워크가 혼잡할때 source가 전송 속도를 제어하는congestion-control mechanism
을 제공한다.
UDP
프로토콜은 응용프로그램에 비연결 서비스를 제공한다.- 이는 안정성과 흐름제어, 혼잡제어를 제공하지 않는다.
- 전송계층의 패킷은
segment
라고한다.
Network Layer(네트워크 계층)
- 네트워크 계층은
datagram
이라 불리는 패킷을 host에서 다른 host로 전달한다. - source 호스트에서 인터넷 전송계층 프로토콜은 전송계층 segment와 destination 주소를 네트워크 계층에 전달한다.
- 네트워크 계층은 destination 호스트의 전송계층에 segment를 전달하는 서비스를 제공한다.
IP Protocol
- 네트워크 레이어의 유명한 프로토콜
- datagram의 fields을 정의하면서, end system과 router가 어떻게 작동하는지 정의한다.
- IP 프로토콜은 단 하나이므로, 네트워크 계층을 가진 모든 인터넷 구성요소는 IP 프로토콜을 구동할 수 있어야한다.
Routing Protocol
- source와 destination사이의 route를 결정하는 프로토콜
- 인터넷은 수많은 routing protocol을 가지고 있다.
- 1.3에서 봤듯, 인터넷은 네트워크들의 네트워크(network of networks)이므로, 네트워크 내부에서 네트워크 관리자는 원하는 routing protocol을 뭐든 실행할 수 있다.
네트워크 계층이 IP프로토콜와 수많은 routing protocol을 가짐에도 불구하고, IP 프로토콜의 중요성으로 인해 IP layer(IP 계층)
이라고도 불린다.
Link Layer(링크 계층)
- 인터넷의 네트워크 계층은 source와 destination 사이의 일련의 router들을 거치면서 datagram을 route하게된다.
- 패킷을 한 노드에서 다음 노드로 옮기기 위해서 네트워크 계층은 link layer의 서비스에 의존하게된다.
- 특히, 각 노드에서 네트워크 계층은 datagram을 Link 계층으로 넘기게되는데, link 계층이 datagram을 route를 따라서 옮기게된다.
- 다음 노드에서는 Link 계층은 해당 datagram을 네트워크 계층으로 올리게된다.
-
link-layer protocol
- 링크 계층에서 제공되는 서비스들은 링크에서 사용되는 특정한
link-layer protocol
을 사용하게된다.- 예를들어, 몇몇 링크계층 프로토콜은 신뢰성있는 전송을 제공하는데, 이건 TCP가 제공하는 것과는 다르다.
- 링크계층 프로토콜은 이더넷, 와이파이, access network의 DOCSIS프로토콜을 포함한다.
- datagram들이 하나의 렝크가 아닌 여러개의 링크를 거칠 수 있으므로, route를 따라 다른 링크계층 프로토콜에 의해 조조된다.
- 링크계층의 패킷을
frames
라고 부른다.
- 링크 계층에서 제공되는 서비스들은 링크에서 사용되는 특정한
Physical layer
- 링크계층의 일이 모든 frame들을 인접한 네트워크로 옮기는 것이라면, 물리적 계층은 frame의 각각의 bit를 다음 노드로 옮기는 것이다.
- 이 계층의 프로토콜또한 link layerdp dmlwhswjrdlau, link의 물리적 매체(광섬유, 구리선 등)에 의존적이다.
OSI 모델
- 지금까지 인터넷 프로토콜 스택(인터넷 프로토콜 스위트)에 대해 알아봤는데, 이것 말고도 다른 방법으로 표현하는 방법이 있다.
- 1970년애뎅 ISO(International Organization for Standardization)이 네트워크를 7계층으로 정의했다.
- 이를 OSI(Open Systems Interconnection) 모델이라고 한다.
- OSI모델은 인터넷 프로토콜이 초기단계에 있을때 만들어졌고, 개발중인 다른 프로토콜 스위트 중 하나일 뿐이었다.
- 1970년대에 만들어졌으니, 당연히 이 모델을 만든 사람들은 인터넷을 염두에 두지 않았을 것이다.
- 그럼에도 불구하고 1970년대 후반에 많은 학교와 훈련과정이 이 OSI 모델을 차용했기에 이런 초기영향에 의해 아직도 OSI모델은 책과 훈련과정에 남아있다.
- OSI 7계층은 응용계층-표현계층-세션계층-전송계층-네트워크계층-데이터링크 계층-물리적계층 으로 이루어져있다.
- 이중 5개는 인터넷 프로토콜 스위트와 비슷한데, 표현계층과 세션계층이 추가된 형태이다.
- 표현계층
- 교환된 데이터를 응용프로그램이 해석해서 통신할 수 있게끔해준다.
- 이 서비스들은 데이터 압축과 암호화(자기가 설명하길…), 데이터 묘사(응용프로그램이 데이터의 내부 포맷이 표현되고 저장되는 방식을 신경쓰지 않게끔하기위해)를 포함한다.
- 세션계층
- 데이터의 교환을 구분하고 동기화를 제공한다.
- 표현계층
- 이 두개의 계층은 응용프로그램을 개발하는 개발자가 이를 중요하게 생각하는지, 아닌지에 따라 다르다.
1.5.2 Encapsulation
- 이전에 말했듯, link-layer switch와 router모두
packet switch
이다. - 라우터와 링크계층 스위치 모두 계층에 자신의 네트워킹 하드웨어와 소프트웨어를 구성하지만, 프로토콜 스택의 모든 부분을 구현하지는 않는다.
- 하위 계층만 구현한다.
- 그림에서처럼 링크계층 스위치는 링크계층까지만, 라우터는 네트워크 계층까지만 구현하며,
- 라우터는 네트워크 계층까지 구현되어 있으므로
IP Protocol
을 구현할 수 있지만, 링크계층스위치는 이를 하지 못한다. - 링크계층 스위치는 IP 주소를 인식하지는 못하고, 이더넷 주소만을 인식할 수 있다.
- 라우터는 네트워크 계층까지 구현되어 있으므로
캡슐화
- 송신하는 호스트에서는 응용 계층의
message
가 전송계층으로 전달된다. - 전송계층에서는 이
message
를 받아서transport-layer header information, Ht
를 추가한다.- 이 Ht는 수신측의 전송계층에서 사용된다.
- 이렇게 M과 Ht를 묶어서
transport-layer segment
라고 부르고, 이는 응용계층 message를 캡슐화하게된다.- 추가된 정보로는 수신특의 전송계층이 적절한 응용프로그램에
message
를 전달할 수 있게하며, 수신측이message
의 bit들이 바뀌었는지 안바뀌었는지 알 수 있게하는error-detection bits
를 포함한다.
- 추가된 정보로는 수신특의 전송계층이 적절한 응용프로그램에
- 전송계층은 이 segment를 네트워크 계층으로 전달하고,
network-layer header information, Hn
을 추가한다.- 이 Hn은 수신측과 송신측의 주소를 가진다.
- 이렇게 기존의 segment에 Hn을 추가하면
network-layer datagram
이 만들어지게되고, 이는 link layer로 전달된다. - 링크계층에서는 또
link-layer header information Hl
을 추가해link-layer frame
을 만들게된다.
- 이렇게 각 계층에서 패킷은 2가지의 필드를 가지는데,
- 이전 계층에서 전달된
payload field
와 현재 계층에서 추가된header field
를 가지게된다.
- 이전 계층에서 전달된
댓글남기기