1장 정리

2020. 10. 25. 08:32컴퓨터 네트워크

1.1 What's the Internet

 

네트워크란 어떤 정보를 옮기기 위한 일련의 장치들의 연결입니다. 그 종류로는 PSTN(Public Switched Telephone Network), Internet, cable network, N-ISDN(Narrowband Integrated Services Digital Network), B-ISDN(Broadband-ISDN) 등이 있습니다.

 

호스트는 end system이고 네트워크 app을 가동시키는데 쓰입니다.

 

communication link들은 물리적 매체로 직접 연결을 할 때 쓰입니다. 전송률과 bandwidth의 균형을 조절하는 것이 중요합니다.

 

라우터는 목적지까지의 최적의 길을 찾아줍니다.

 

Internet은 Internetwork의 준말로 네트워크들의 네트워크입니다. 독립적인 네트워크들이 interconnected되어있는 것이죠. hierarchy가 loose합니다.

 

Internet은 protocol이 정해집니다. 이때 쓰는 것은 TCP/IP입니다. 그리고 Internet에는 기준이 있는데 RFC(Request for comments)이고 이를 만드는 단체인 IETF(Internet Engineering Task Force)가 있습니다.

 

인터넷은 분산응용시스템을 제공해줍니다. 그리고 connectionless하고 unreliable한 udp와 connection-oriented하고 reliable한 TCP를 제공해줍니다. 대신 인터넷은 보장된 서비스를 지원할 수 없습니다. 

 

프로토콜이란 둘 또는 여러개의 개체들이 정보를 교환하기위해 지켜야할 일련의 rule과 절차입니다. 

 

1.2 Network edge

 

호스트는 client와 server를 포함하는 개념으로 server는 보통 data의 center에 위치합니다.

 

access network와 물리적 장치는 유무선으로 communication link를 사용합니다.

 

network core는 라우터들과 내부적으로 연결이 되어있고 네트워크들의 네트워크라고 합니다.

 

Access network에서 end system과 edge router를 연결하는 방법은 가정에서 접속(residential)하는 것과 단체(institutional), 모바일에서 할 수 있습니다. 

 

residential access network에서는 modem을 사용하는데 56kbps까지 직접적으로 라우터에 접속할 수 있고 서핑이나 휴대전화를 동시에 할 수 없고 항상 켜져있을 수 없습니다. 

 

DSL(Digital Subscribler Line)은 높은 속도의 디지털 communication을 지원하는 기술로 인터넷과 폰을 동시에 쓸 수 있습니다. 

 

ADSL(Asymmetric DSL)은 downstream이 넓고 upstream은 좁게 하며 대역폭을 다르게 합니다. 

 

Cable은 다른 채널을 사용해서 보내주는데 이를 FDM(Frequency division multiplexing)이라고 합니다. 다른 채널들을 다른 주파수 대역으로 바꿔줍니다.

 

HFC(Hybrid fiber coax)는 fiber와 coax를 혼용하는 것으로 가정에 가까운 곳까지는 fiber로 보내고 그 다음에는 coaxial cable을 씁니다.

 

FTTH(Fiber To The Home)은 가정까지 fiber을 까는 것입니다. 집집마다 fiber을 연결시키는 Home Run, 중간에 ethernet switch를 통해 주고 받는 AON, 전원이 필요없는 Optical Spitter을 이용하여 시간대 순서로 보내주는 TDMA-PON, AWG를 이용하여 wavelength에 따라 구별해서 보내주는 WDMA-PON(Wavelength Division Multiplexing ~)이 있습니다. FDM, TDM, WDM은 각각 주파수, 시간대, wavelength로 나눕니다. 사실 주파수로 구별하거나 wavelength로 구별하는 것은 같습니다.

 

Enterprise access network는 LAN(Local Area Network)을 사용합니다.

 

Wireless access network는 환경의 영향을 많이 받는 wireless LAN이나 Wide-area wireless access가 있습니다.

 

Physical media는 guided media, unguided media가 있는데 각각 wired, wireless가 됩니다. 

 

TP(Twisted Pair)는 UTP(unshielded)와 STP(shielded)가 있는데 STP는 외부에서 오는 것들을 막아줍니다. 

 

coaxial cable은 digital형태로 보내는 baseband방식과 analog형태로 보내는 broadband방식으로 보낼 수 있습니다. broadband의 대표적인 예시가 HFC입니다.

 

Fiber optic cable은 유리를 이용하여 빛의 pulse를 전달합니다. 그리고 low attenuation과 low error rate를 가지고 있습니다.

 

radio는 ITU-R에 의해 조절되어집니다. noise가 엄청 많고 주변 환경의 영향을 많이 받습니다. 스펙트럼은 VLF, LF, MF, HF, VHF로 V는 Very, L은 low H는 high입니다. LAN이나 wide-area, satellite, terrestrial microwave를 사용합니다.

 

packet을 보낼 때 걸리는 delay는 다음과 같습니다.

 

packet transmission delay = time needed to transmit L-bit packet into link

= L(bits)/R(bits/sec)

Nyquist Theorem은 noise가 없다고 가정했을 때 최대 data rate를 계산하는 것입니다.

maximum rate = 2B symbols/sec (B = bandwidth) = 2Blog2(V)bits/sec

Shannon Theorem은 random한 noise일 때 최대 bit rate를 계산하는 것입니다.

max. bit rate = B log2(1+S/N)bits/sec

1.3 The Network Core

circuit switching과 packet switching방법이 있는데 circuit switching은 전화망(PSTN), packet-switching은 Internet에서 씁니다. 

 

circuit switching은 두 사람 외에는 사용할 수 없으므로 guaranteed rate에서 데이터를 전송할 수 있습니다.

 

packet switching은 packet을 만들어서 데이터를 전송합니다. 이는 full link capacity에서 전송을 하는데 이는 자기가 할당된 것을 전적으로 사용할 수 있게 하는 것입니다. 

 

이 둘을 구별하는게 매우 중요합니다.

 

Circuit switching 방식은 end간의 resource가 call에 대해서 예약되어있습니다. 자기한테 할당된(dedicated) 정보는 자신만 사용할 수 있습니다. 그리고 call setup(establishment)과정을 해야합니다. 보내기 전에 end-to-end circuit이 있어야 한다는 것이죠. end 장치간에는 반드시 예약되어있어야 합니다.

 

circuit-switched network에는 multiplexing 과정이 있습니다. 이는 여러 신호를 하나로 합치는 것입니다. FDM과 TDM방식을 사용할 수 있습니다. N개의 curcuit을 보낼 수 있으면 특정 사용자에게 1/N만 할당해줍니다.

 

TDM은 낮은 rate의 채널을 합쳐서 하나의 높은 rate의 채널을 만드는 기술입니다. 

 

Circuit switching의 장점은 Guranteed QoS(Quality of Service), 즉 보장된 서비스를 제공합니다. 각각의 노드에는 delay가 거의 없습니다. 단점은 비효율적인 사용으로 데이터가 없을 때 할당이 될 경우 낭비가 발생하고 circuit establishment delay가 있습니다.

 

Packet Switching은 store-and-forward, 즉 저장하고 주소를 보고 보내주는 방식으로 동작을 합니다. full link bandwidth, 즉 보내면 있는 link bandwidth를 다 사용하게 됩니다. 그리고 resource가 필요할 때 쓰이게 됩니다. 할당된 것이 없고 예상한 것보다 훨씬 더 많은게 들어오는 congestion이 발생할 수 있습니다. 이는 곧 delay와 loss를 발생하게 합니다.

 

packet switching은 통계학적 다중화를 사용합니다. on-demand방식을 사용합니다. 오는 packet에 따라 공유가 되어서 사용됩니다. 그리고 buffering을 하는(queueing)데 이로인해 congestion이 발생할 수도 있습니다.

 

라우터에서 하는 일은 routing과 forwarding으로 목적지를 결정해주는 것과 해당 목적지로 전송해주는 것입니다.

 

Packet switching방식의 장점은 bursty한 data에 효율적이고 call setup과정이 없어서 간단합니다. 단점은 guaranteed한 service를 제공할 수 없고 reliable한 데이터 전송을 위해 protocol이 필요하며 congestion control이 필요합니다. 

 

이 방식은 transmission time과 waiting time이 생깁니다. 만약 2개의 host와 2개의 라우터를 지난다고 하면 총 걸리는 시간은 다음과 같습니다. 

 

Packet size = L(bits) transmission rate = R(bps)

Total delay(latency) = 3L/R

Transmission delay = L/R

Datagram network는 우편 서비스랑 비슷합니다. 주소를 무조건 붙이므로 connection setup 과정이 필요없고 stateless한 switch를 가지고 있습니다. 이는 하나가 끊어지면 모든 시스템이 중단되는 것이 아닌 다른 라우터를 찾아서 전송하고 만약 해당 라우터가 다시 살아나면 그 라우터로 다시 연결이 됩니다. 그리고 패킷들은 각각 독립적으로 routing table에 기반해서 이동합니다. 각각의 패킷은 완전한 목적지 주소를 가지고 있고 주소가 global하게 unique해야합니다. 가끔 connectionless하다고 부릅니다.

 

가상 circuit network는 가상의 circuit을 빌려와서 동작합니다. sender와 목적지 사이에 가상의 connection을 만듭니다. 이때 signaling protocol이 쓰입니다. 누구로 부터 가는지의 주소인 VCI는 어떤 interface로 보내고 어떤 VCI값으로 바꿔라는 VC entry가 있습니다. VCI값들은 globally unique하지 않고 local unique합니다. 그러나 virtual circuit을 자기 혼자 전적으로 사용하는 것은 아닙니다.

 

가상 curcuit network의 장점은 table크기가 작아서 packet을 빨리 보낼 수 있고 약간의 QoS를 보장해줄 수 있습니다. 그리고 순서대로 packet이 전송됩니다. 단점은 call setup 과정이 필요하고 각각의 switch가 stateful해서 하나의 switch가 날라가면 망합니다.

 

Internet 구조는 End system이 접근 가능한 ISP를 통해 Internet과 연결이 되어있는 구조입니다. 접근 가능한 ISP들은 interconnected되어 있어야 하고 이 기술의 진보는 경제, 국가적 정책 등에 의해 가져와졌습니다. 

 

전 세계적으로 수 백만개의 접근 가능한 ISP들을 연결하는 방법은 먼저 access ISP를 연결시켜주는 global ISP가 경제적 계약에 의해 연결이 되고 만약 global ISP가 성공적으로 business가 되었다면 여러 경쟁자들이 생기고 이 global ISP끼리 연결을 하는데 이 연결을 해주는 것이 IXP(Internet Exchange Point)입니다. 그리고 중간 중간에 regional network가 있을 것이고 전 세계적으로 content를 전달해주는 CDN(Content Provider Network)가 이 것들을 조절해줄 것입니다. 이 내용은 3장에서 더 자세하게 배울 것입니다. 

 

정리하면 제일 위에 Tier 1 ISP들이 있고 그 밑에 IXP, 그 밑에 Regional ISP, 그리고 access ISP가 있다고 할 수 있습니다.

 

1.4 Performance: Delay, loss throughput

네트워크의 performance를 측정하는 것은 throughput, delay 그리고 loss로 throughput은 얼마나 많은 양의 데이터를 보낼 수 있는 것을 나타낸 척도, 즉 bps입니다. 그리고 delay는 latency라고도 부르며 packet이 목적지 까지 얼마나 걸리는 지 입니다.

delay = transmission delay + propagation delay + queueing delay + processing delay

1. processing delay: bit를 체크하고 output할 link를 결정하는 것으로 무시가 가능

 

2. queueing delay: 패킷이 도착하는 양이 버퍼보다 클 경우 queue에 넣고 기다리는 시간, 계산하기 어려움

 

3. transmission delay: 전송 준비 속도, link bandwidth(R)/packet length(L)

 

4. propagation delay: 전송하는데 걸리는 시간, length of physical link(d)/propagation speed in medium(s), 이는 거의 줄일 수 없음

 

다음은 하나의 예시입니다.

Queueing delay는 가장 복잡한 delay로 공식은 다음과 같습니다.

R = link bandwidth(bps)
L = packet length(bits)
a = average packet arrival rate

traffic intensity = La/R

La/R이 0에 접근하면 queueing delay가 매우 작습니다. 1로 가까워 지면 매우 커지게 되고 1을 넘어선 경우는 신경쓰지 맙시다.

 

어떤 link 쪽에 문제가 많은지를 알아 내는 것이 traceroute로 window에서는 tracert라는 명령어로 쓰입니다. 동작 방법은 3개의 packet을 보내고 다시 돌아올 때 만약 router가 packet 의 TTL(Time to Live)이 0인 것을 봤을 때 packet을 버리고 ICMP(Internet Control Message Protocol) packet을 소스로 보내서 에러를 알려줍니다. traceroute를 하고 뒤에 출발지에서 목적지를 입력한 후 나오는 결과에서 특정 지점에 시간이 무한정 길어질 경우에 그 부분을 확인하면 됩니다.

 

packet은 loss가 발생할 수 있는데 이는 queue에 가득 차면 버려지는 것을 의미합니다. 만약 버려지면 이전 노드에서 재전송을 받거나 아예 재전송을 하지 않는 방법으로 복구합니다. 

 

Throughput은 sender와 receiver 사이에 전송되는 bit수에 따른 rate입니다. instantaneous란 rate at given point in time을 의미하고 average는 rate over long(er) period of time을 의미하는데 공부할 겸 해석해보세요.

 

그리고 bottleneck은 항상 rate가 작은 쪽이 됩니다.

 

1.5 Protocol layers, service model

네트워크는 너무 복잡해서 이를 계층으로 나눴습니다. 

 

프로토콜 Interface는 다음 그림으로 정리가 가능합니다.

같은 계층끼리는 peer-to-peer interface를 쓰고 계층간는 service interface를 씁니다.

 

n번 층은 n + 1번 층에 대해 service provider가 됩니다. 그리고 서비스는 SAP(Service Access Pointer)들을 이용해서 이용 가능합니다. 그리고 n 번 PDU는 Header(PCI)와 n번 SDU가 합해져서 구성이 되고 n번 PDU는 (n-1)번 SDU가 됩니다.

Service Primitives에는 Request, Indication, Response, Confirm으로 이루어져있고 각각의 뜻은 서비스를 보냈다, 서비스를 받는다, 서비스를 받았다, 서비스를 받았다는 것을 확인했다는 뜻입니다.

 

한 예로 PD-DATA가 있는데 이는 PD-DATA.request와 같이 나타냅니다. 그러나 특징으로 PD.response가 빠져있는데 이를 통해 굳이 4개가 다 들어가 있을 필요가 없음을 알 수 있습니다. 

여기 그림에서 보면 request를 받았을 때 acknowledge를 보내주기 때문에 response가 필요가 없습니다. 

 

그리고 OSI 계층이 있습니다. 이는 Open system Interconnection Reference Model의 준말로 ISO(International Standards Organization)에서 정했습니다. 이는 물리, 데이터링크, 네트워크, 전송, 세션, 프레젠테이션, 어플리케이션 계층으로 구성이 되었는데 영어 스펠링 앞글자씩 따서 PDNTSPA, 즉 (머리가) 핑도는 특샴페인이라고 외우는게 쉽습니다.

 

각 계층에 대한 설명은 짧게 하겠습니다.

 

물리계층: 노드에 대한 bit를 전달하는 층

데이터링크 계층: 링크간에 frame을 전달하는 층

네트워크 계층: 패킷들을 호스트에게 전달하는 층

전송 계층: 프로세스 간에 정보 전달하는 층

세션 계층: 데이터 보내는 순서를 결정하는 층

프레젠테이션 계층: 번역, 압축, 암호화를 하는 층

어플리케이션 계층: 사용자에게 서비스를 제공하는 층

 

인터넷은 4계층에서 5계층으로 구성이 되는데 Network-access층, Internet층, Transport층, Application층으로 되어있고 Network-access층은 Datalink와 Physical로 나눌 수 있습니다.

 

각 계층에서 정보를 전달 할 때 캡슐화를 사용합니다. 그리고 정보를 보낼 때 앞에 header를 붙입니다. 2번째 layer에는 헤더와 trailer(footer)를 붙입니다.

 

그리고 중요한 것은 위의 계층에서 오는 데이터는 해석을 하지 않습니다.

 

또 층마다 PDU를 부르는 이름이 다른데 Application은 message, 전송층에서는 segment, Network에서는 datagram, 데이터 링크에서는 frame이라고 부릅니다. 

 

그리고 층에서 내려올 때는 header를 하나씩 붙이고 올라올 때는 하나씩 제거합니다. 

 

switch는 데이터링크까지만 해석하고 router는 network까지만 해석합니다.

 

1.5 Networks under attack

보안에 대한 용어는 

virus: malware that require some form of user interaction to infect the user’s device.

worm: malware that can enter a device without any explicit user interaction.

spyware: collects our private information

DoS(Denial of Service): 서비스가 안되게 하는 것

DDoS: 분산해서 서비스 안되게 하는 것

botnet: 많은 컴퓨터에 코드를 심어놓고 가만히 있다가 필요할 때 가동을 시키는 것입니다.

Packet sniffing: IP를 속여서 잘못된 정보를 주는 것입니다. wireshark가 이것을 사용합니다.

Man-in-the-middle attack: 패킷을 중간에 가로채서 정보를 바꾸거나 하는 것입니다.

 

1.7 Internet history

인터넷 역사는 별로 크게 나올거 같지 않으니 제껴둡니다.

 

Internet standards를 만드는 과정은 먼저 Internet draft를 제안하고 이에 대해 6개월동안 2번 이상의 실험을 진행하고 보고합니다. 여기서 문제가 없으면 Draft standard로 넘어가고 또 4개월 동안 2번 이상 실험을 한 후 Internet Standards로 넘어갑니다. 이 사이에 심사에서 떨어진 것들은 모두 draft, 자료로 넘어갑니다.

이 Internet standards를 만드는 IETF에서 주장하는 것이 바로 Rough consensus and running code 입니다.

'컴퓨터 네트워크' 카테고리의 다른 글

socketProgramming1  (0) 2020.10.31
2장 요약  (0) 2020.10.25
3장 정리  (0) 2020.10.25
3장 1~3 요약(미완성)  (0) 2020.10.21
2-6 비디오 스트리밍과 CDN 요약  (0) 2020.10.21