Computer Networking

[컴퓨터 네트워크] chap1. Computer networks and the Internet

rngPwns 2024. 10. 10. 16:27

1.1 What's the Internet

1.1.1 구성요소(nuts and bolts)로 본 인터넷

 

-수십억개의 인터넷에 연결된 컴퓨팅디바이스: host=end system.

 

-인터넷의 edge에서 네트워크 앱 실행

 

-end system은 통신링크와 패킷스위치의 네트워크로 연결

 

-communication link: (광섬유, 구리선)-wired links, (라디오, 인공위성, 셀룰러)-wireless links, transmission rate(전송속도): 각각의 링크들은 다양한 전송률을 이용하여 데이터 전송 [bandwidth(대역폭)-얼마나 빨리 전송 가능한지] 

 

-packet switches: 데이터를 segment로 나누고 각 세그먼트에 header 붙인 정보 패키지 / 종류: routers와 switches (최종 목적지 방향으로 패킷 전달)

 

-패킷이 송신종단에서 수신종단시스템에 도달하는 동안 거쳐온 일련의 통신링크, 패킷 스위치: route(path)

 

-Networks: 디바이스, router, 링크의 집합> 조직에서 관리 

 

-Internet: host+packet switch+communication links, network of network. (물리적)네트워크의 집합, (소프트웨어적)프로토콜의 집합, ISP(internet service provider)와 상호연결

 

-protocol은 메세지의 sending, receiving control ex)HTTP, streaming, video, TCP, IP, WIFI, 4G(셀룰러네트워크 사용 프로토콜), Ethernet 

 

-Internet standard:  IETF(internet engineering task force: 인터넷 표준 관리 기관)에서 RFC(request for comments: IETF표준문서_번호 클수록 더 최근 RFC) 만듦 / protocal은 표준이어야 하지만 기업별 개인 프로토콜 만들기도 함(너네 우리 제품 쓰려면 우리 프로토콜 써)

 

 

1.1.2 서비스 측면에서 본 인터넷

 

-애플리케이션에 서비스를 제공하는 인프라스트럭쳐(Web, VolP, email, games...)

 

-app에게 programming interface를 제공- 앱 프로그램을 송수신하여 인터넷에 '연결'할 수 있도록 하는 hook. 우편 서비스와 유사한 서비스 옵션 제공(우체통>집배원이 가져가서 전달>각 집에서 수령)

 

1.1.3 프로토콜이란 무엇인가?

 

-사람 프로토콜: 특정 메시지 전송, 메시지 수신 시 수행되는 특정 작업 or 기타 이벤트, 명확하게 송수신된 메시지와 이러한 메시지가 송신될때나 다른 상황이 발생했을 때 취하는 행동이 사람프로토콜의 중심. 둘 이상이 함께 인식하는 프로토콜 필요

-Network 프로토콜: 사람이 아닌 기계, 프로토콜에 의해 관리되는 인터넷 안의 모든 통신 활동

 

-프로토콜은 둘 이상의 통신 개체 간 교환되는 메시지 포맷과 순서, 메시지의 송수신과 다른 이벤트에 따른 행동들 정의

 

 

1.2 네트워크의 가장자리

 

-Network edge(end system)=host(client-데스크톱, 이동pc, 스마트폰, servers-often in data centers, 강력 기능 갖춘 컴퓨터) - core 과 edge로 나눠서 보자!

 

1.2.1 접속 네트워크(access network)

 

접속 네트워크: end system에서 다른 원거리 end system으로 가는 경로에서 end system(host)과 첫 번째 router(edge router)을 물리적으로 연결한다. wired, wireless comminication links로!

 

-Network core: 상호연결 routers, network of networks, internet service provider 들에 개별적으로 속해있다. 

 

-end system을 edge router에 연결하는 네트워크: 주거용 접속 네트워크, 기관 접속 네트워크, 모바일 접속 네트워크

살펴봐야 할 사항: 접근 네트워크의 전송속도(transmission rate : 초당 비트 전송량), 사용자 간 공유 또는 전용 접근

 

[가정접속에 활용되는 네트워크 : DSL, 케이블, FTTH, 5G 고정무선]

 

더보기
  • DSL(digital subscriber line): 기존 전화선을 중앙 사무실 DSLAM에 사용한다. DSL전화선을 통한 데이터는 인터넷으로 이동, 음성은 전화망으로 이동한다.                                                                                          ㄴㄴ ㄴupstream transmission rate: 3.5~16 Mbps downstream transmission rate: 24~52 Mbps>비대칭

 

  • cable-based access: HFC(hybrid fiber coax)-비대칭-40Mbps~1.2Gbps downstream, 30~100 Mbps upstream/ 광섬유, 케이블 네트워크가 가정을 ISP 라우터에 연결(DSL은 중앙사무실에 대한 전용 access가 있음)/ 굵은 링크를 여러 집이 share(shared access network) , 자기한테 available한 link capacity 가 시간에 따라 조금씩 다르다.
  • FTTH(fiber to the home): CO에서 가정까지 직접 광섬유 경로 제공, 잠재적으로 초당 gigabits 범위의 인터넷 액세스 속도 제공. OLT에서 termination돼서 point to multipoint > ONU(Optical network unit)에 available한 transmission rate 가 낮아진다.                                                                                              
  • 5G fixed wireless: 5G for FWA(fixed wireless access)- 5G 사업자가 제공, 안정적이고 비용효율적. 현재 서비스 edge를 확장하는 데 사용되고 있다. 사업자가 광케이블과 같은 광대역 서비스 제공할 수 있도록 지원. (Gbps 광대역 경험 제공)
  • home network: 무선 디바이스들은 wifi access point에 연결(모두 router로 연결)
  • Ethernet(Enterprise access networks): 일반적으로 기업, 대학에서 사용(전용회선을 구매하거나 판매). 유무선 링크 기술의 혼합, 스위치와 라우터의 혼합-Ethernet(Fast ethernet 과 Gigabit ethernet)은 wired, wifi는 wireless

[wireless access network]

  • indoor: 공유 무선 액세스 네트워크는 'access point' 통해 최종 시스템 router에 연결(WLANs) *bandwidth=대역폭=초당 보낼 수 있는 비트수
  • outdoor: 광역 무선 액세스, 통신사가 제공, 기지국 설치> 무선접속

 

1.3 네트워크 코어(router들의 연결)

 

1.3.1 패킷 교환(packet switching)

[store-and-forward: key function, fowarding+routing)]

 

-host가 application layer(계층) 메시지 packet으로 분리. source에서 목적지까지 경로에 있는 link통해 한 router에서 다른 router까지 packet 전달. ( 저장 후 전달: 전체 패킷이 라우터로 들어와야 다음 link 로 전달 가능), 각 packet은 전체 link 용량으로 전송

더보기
  • Transmission delay = L / R (sec) → L-bit packet을 link에 R-bps 속도로 전송하는 데 걸리는 시간 
  • store and forward
  • End-end delay = 2L / R (propagation delay는 없다고 가정할 때)

*circuit switch가 쭉 내보내는 것과 달리 source 에서 첫번째 router까지 내보내고 첫 번째 packet에 속하는 bit 받을 때까지 기다림)

 

[queueing delay, loss](queue: 대기)

-queueing delay: 앞 packet이 밀려서 뒤 packet으로 delay. 일정시간동안 link에 대한 도착속도(bps)가 link의 transmission rate를 초과하는 경우. 

packet은 줄서서 출력링크에서 전송될때까지 기다린다. router의 buffer(memory)가 가득 차면 packet이 drop(lost)될 수 있다.-packet switching 네트워크의 핵심기능

  • Forwarding: router input링크에서 input port(router의 연결점)으로 도착하는 packet을 적절한 router output 링크로 이동(packet head에 목적지주소 달려있음)
  • Routing: global action, packet이 가져간 data 경로 결정. routing 알고리즘(데이터가 목적지까지 가장 빠르고 안정적으로 도달하도록 경로 결정하는 방법)

 

1.3.2 회선 교환(circuit switching)

 

-communication 전에 end-to-end resource 예약이 이루어지고 call 중 유지된다. 두 ending user 사이에 call이 진행되기 전 call setup해서 자원예약> 자원보장

*switching: 한 router에서 다른 router로 연결

-전용 resourse: 회로와 유사한 보장된 성능, call 에 의해 사용되지 않는 경우 회로 segment 가동x.(공유나 전용 x) >둘 사이이 transmission rate 보장됨. 

-기존 telephone networks에서 일반적으로 사용

  • FDM(frequency): 여러 사용자의 signal이 multiflex, 좁은 주파수 대역으로 나뉨, frequency를 분할해서 a,b,c,d를 동시에 대역을 나눠서 쭉 사용.
  • TDM(synchronous): 시간 슬롯 분할, 각 call 에 할당된 주기적 시간, slot은 주파수 대역의 최대 속도로 전송가능 (a-b-c-d-a-b-c-d.... 각각 일정시간동안 통째로 쓸 수 o) but 해당시간 슬롯동안에만 전송가능하다.                                          ㄴ다양한 장치나 사용자의 다양한 데이터 전송 요구사항 고려 안함 (device에 따라 네트워크에 내보낼 수 있는 데이터 양 다름)                                                                                                                                                  >>STDM: 각 입력장치의 일반적 작업량과 관련된 통계 분석> 각 장치가 케이블 또는 회선 데이터 전송에 할당해야 하는 시간 즉석 결정

 

*packet switching VS circuit switching

[packet switching은?]

  • 더 많은 사용자가 network를 사용할 수 있도록 한다.
  •  동시에 집중적으로 여러 명이 접근할 때(bursty data) 좋다.
  •  Buffer overflow에 의해 packet delay와 loss가 발생 할 수 있기 때문에(과도한 혼잡), reliable한 데이터 전송과 혼잡 제어를 위해 protocol이 필요하다.
  • 전통적으로 오디오/비디오 application에 사용되는 대역폭 보장>회로와 같은 동작 제공
packet switching circuit switching
call set-up X call set up
자원예약 없고 수요에 따라 link 배정 수요 상관없이 자원예약
여러 사용자 간 resourse 공유 유휴 상태에서도 특정 사용자 전용 resource 제공

full link rate를 사용가능  
network 혼잡에 의해 packet delay or loss service 보장
queueing delay call set-up delay
network 상황에 따라 더 많은 사용자에게 서비스 제공가능 동시에 접근 가능한 사용자 수 제한
간헐적, 대용량 데이터에 적합 보장된 대역폭이 필요한 application 에 적합
bandwidth(대역폭)의 동적 사용 bandwidth 고정 사용

출처:https://hororolol.tistory.com/256?category=819466

더보기

[Example]

user들은 1Gb/s의 link를 공유하고 있고 각 user는 활동 시 100Mb/s, 전체 시간에서 10%만 활동한다.

1. circuit-switching 

  • 100Mb/s가 각 user에게 예약된다.
  • 1Gbps / 100Mbps = 10 이기 때문에, 10명의 user에게만 동시에 지원이 가능하다.

2. packet-switching

  • 특정 user가 사용하고 있을 확률은 0.1(10%)
  • 35명의 user가 있을 때, 11명 이상의 user가 동시에 사용할 확률은 0.0004이다. -자세한 설명 필요!!

1.3.3 네트워크의 네트워크

-end system or 호스트는 액세스 ISP(interent service provider) 통해 인터넷 연결.(주거용, 대학용, 상업용)

- access ISP는 두 host가 서로 packet을 보낼 수 있도록 차례로 상호연결돼야 한다. 

-network의 network는 매우 복잡(경제와 국가정책에 의해 진화.)

 

-ISP를 각각 direct하게 연결하면 확장성 x

>> IXP(internet exchange point) 회사에서 ISP 미팅포인트 제공. 

 

-peer: 같은 계층의 인근 두 ISP가 직접 연결하여 upstream 중개자 거치지 않고 traffic 직접 전달하게 하여 비용 절감.

두 ISP가 peering하는 경우 일반적으로 settlement-free.( 우리 둘 사이 traffic에 대해서는 charge하지 말자)

 

-POP(point of presence): 제공자 네트워크에 있는 하나 이상의 라우터 그룹(동일한 위치에 있는), 고객 ISP가 공급자 ISP에 연결 가능. 고객 네트워크가 자사 router 중 하나를 PoP의 router에 연결하려면 타사 통신 제공업체로부터 고속링크 임대 가능

-Multi-home: ISP는 두 개 이상의 공급자 ISP에 연결하도록 선택할 수 있다.

>>access ISP multi-home은 공급업체 중 하나에 장애 발생해도 internet으로 packet 계속 송수신 가능

 

-지역 ISP: 특정 지역의 access ISP는 지역 ISP에 연결. 지역 ISP는 다시 글로벌 ISP에 연결. 한 지역에 여러개의 경쟁 지역 ISP가 있을 수 있다. (소규모 지역 ISP가 연결되는 더 큰 지역 ISP가 있을 수 있음). Multi-tier hierarchy

 

-content provider networks: 자체 네트워크 운영> 서비스, 콘텐츠 최종사용자에게 가깝게 제공.> 상위계층 ISP에 대한 지불 줄이고 서비스 제어 강화

1.4 패킷 교환 네트워크에서의 지연, 손실과 처리율

1.4.1 패킷 교환 네트워크에서의 지연 개요

-손실과 지연이 발생하는 이유:

router buffer에서 대기(queue)중인 packets들은 자기 차례까지 기다림. 

→ Buffer가 가득 찼는데 packet이 새로 들어오는 경우 link 할 packet 도착률(arrival rate)이 일시적으로 output link capacity(용량)을 초과하게 되면 packet loss가 발생.(packet 들어오면 forwarding(어느 outgoing link 로 뽑을지) 결정해야됨)

 

-packet delay 의 4가지 종류

 

 

 

 

 

 

*한 노드가 passing 하는데 걸리는 시간: 4가지 delay의 합

 

1. Nodal processing delay ( d_proc )

  • Router로 들어오는 packet header를 조사하고 어디로 보낼지 결정하는 데 걸리는 시간(Buffer에서 처리하는 시간)
  • check bit error- 링크 건너오면서 bit error 발생했는지
  • output link 결정

2. Queuing delay ( d_queue )

  • 전송 위해 output link에서 기다리는 시간
  • router의 혼잡 수준에 따라 달라진다.

3. Transmission delay ( d_trans )

  • Queue에서 output link로 모든 packet을 내보내는 데 걸리는 시간(밀어넣는데 걸리는 시간)
  • = L (packet length, bits) / R (link bandwidth, bps) - b/s단위
  • 해당 router에서 선입선출방식으로 output link로 packet이 빠져나가는 것.

4. Propagation delay ( d_prop )

  • output link에서부터 router까지 전송되는 데 걸리는 시간(뽑아내는데 걸리는 시간)
  • 전송거리에 따른 지연 시간
  • d = physical(물리적 링크)의 길이(거리) , s = propagation speed 일 때
  • d_prop = d( physical(물리적 링크)의 길이(거리)) / s(propagation speed)- m/s단위
  • 다른 router로 전송될때까지 걸리는 시간

 

-packet queuing delay

 

R = 전송률(link bandwidth, 비트가 큐에서 밀려나는 비율(bits/sec))

L = packet length (bits)

a = 패킷이 큐에 도착하는 평균속도

>> 전송률 R 동안 L 패킷이 큐에 도착하는 평균속도) = La/R

 

*실제로 burst traffic이 간헐적으로 queue에 도착>packet arrival rate의 변화

 

 

  • La/R이 0에 가까우면, 평균 d_queue는 낮아짐
  • La/R이 1에 가까워질수록 평균 d_queue가 높아짐
  • La/R이 1보다 큰 경우는 비트가 큐에 도착하는 평균율이 전송되는 비율을 초과해, 큐는 끝없이 증기> d_queue는 무한대에 도달> La/R이 1이 넘지 않도록 설계 필요

 

-Real internet delays and routes

-traceroute program: 목적지 종단 인터넷 경로 따라 source-router까지 delay 측정 제공

> 목적지로 가는 방향으로 packet 3개 보낸 다음에 router i 에 도착하면 packet들 return해서 sender가 전송과 응답 사이 시간간격 측정!

 

*요즘에는 processing delay 매우 사소>무시 가능

 

1.4.2 큐잉 지연과 패킷 손실

-packet loss

  • -queue(=buffer) 의 앞 링크에 있는 buffer 용량 한정 > 전체 queue에 도착한 packet drop(=lost) 
  • -손실된 패킷은 이전 노드나 source end system에 의해 재전송될 수도 있고, 그렇지 않을 수도 있다.
  • *delay가 길어지다가(file up)결국 drop

1.4.3 종단 간 지연

-Throughput(처리량)

  • -sender에서 receiver로 비트 전송되는 속도(단위: bits/time)
  • -두 가지로 측정 가능: instantaneous- 주어진 시점에서의 속도 average: 장기간의 평균 속도

 

-두 상황에서 모두 더 좁은 통로의 throughput 따르게 됨(병목현상)

-intervening traffic으로 인해 전송속도가 높은 링크가 병목링크가 될 수 있음.

 

 

1.5 프로토콜 계층과 서비스모델

1.5.1 계층구조

  • 계층화(layering): 각 layer은 자체 내부 layer작업을 통해 서비스 구현, 아래 layer에서 제공하는 서비스에 의존 
  • 계층화(layering) 하는 이유: 복잡한 시스템 다룸> 명확한 구조는 각 service 뭐가 있는지 구별 가능하게 함. (토론을 위한 계층화된 참조 모델) + 모듈화 가능(시스템 유지, 한 모듈이 업데이트 됐을 때 다른 layer에 영향 x > 업데이트 쉽게 함)
  • layering에 모순이 있을 때도 있다. > 한 layer가 하위 layer 기능 중복 가능(layer은 interface 정보 이외에 다른 layer의 정보 모른다고 가정) , 한 계층의 기능에 다른 계층에서 사용할 수 있는 정보 필요할 수 있다. > 계층 분리 목표에 위배

 

  • application 계층: 네트워크 application을 support. 통신망으로 연결된 응용 processor들의 정보교환이 일어난다. >> FTP, SMTP, HTTP
  • transport 계층: 프로세스와 프로세스 간 데이터 전송 담당. 전송방식 결정. >> TCP, UDP
  • network 계층: 통신망에 연결된 시스템의 Data 전송과 교환 기능 담당, 중간 라우터를 통한 routing(어떤 네트워크 안에서 통신 네트워크 보낼 때 최적의 경로 선택하는 과정)  포함하여 packet forwarding 담당, source에서 목적지까지 datagram routing(길찾기 서비스) >> IP, routing protocal
  • link 계층: 인접한 네트워크 요소 간의 데이터 전송, 실제 전달 담당 >> Ethernet, 802.11(wifi), ppp(프로토콜)
  • physical 계층: bit를 와이어에 밀어넣는 일(0,1 의 시그널로 바꿔서) , 어떤 하나의 네트워크에서 기본 네트워크 하드웨어 전송기술로 구성, 네트워크의 높은 수준 기능의 논리 데이터 구조 기초로 하는 필수 계층. 다양한 하드웨어 기술 접목> OSI 아키텍처에서 가장 복잡한 계층

 

1.5.2 캡슐화

 

 

 

 

-상위 계층에서 통신 프로토콜 정보를 데이터에 추가하여 하위로 전송

 

1.6 공격받는 네트워크

  • 네트워크 보안의 분야:
  • 어떻게 bad guy들이 컴퓨터 네트워크를 공격?
  • 어떻게 우리가 공격으로부터 네트워크를 보안?
  • 어떻게 공격에 면역 있는 구조를 설계?

*인터넷은 원래 보안 별로 신경쓰지 않고 디자인됨 ㅋㅋ

 

  • bad guy가 internet 통해 host에 malware 삽입하는 방법
  • virus: object를 수신/ 기생해서 실행/ 사용자 개입 필요/ 컴퓨터내 공격/ 스스로 복제되는 감염/ self-replicating
  • worm: object를 수동적으로 수신/ 독자적으로 실행/ 사용자 개입 필요없음/ 네트워크 공격/ self-replicating
  • spyware malware: 웹사이트 방문기록, 키보드 입력 기록하여 collection site에 업로드

>> 감염된 호스트는 botnet(감염된 host들의 집합)에 등록> 스팸이나 DDoS(분산 서비스 거부) 공격에 사용될 수 있다. 

 

[Bad guys]

  • DDoS : 가짜(bogus) 트래픽으로 resource 과부화시킴> resources(server, bandwidth)가 합법적 트래픽이 불가하게 만듦 (서버 과부하 -> 서버 마비) [DDoS 과정] 1. 타겟 고름 2. 네트워크 주변 호스트에 침입(botnet 보면서) 3. 침해된 호스트에서 target에게 패킷 전송   *감염된 host도 정상활동 할 수 있지만 분간 못 함.
  • packet interception(패킷 가로채기) : sniffing은 보내는 사람의 정보를 바꾸는 것이다. 트래픽을 캡쳐해 정보를 빼낸다. broadcast media(공유인터넷, 무선)에서 promiscuous(난잡한) network interface가 A를 통과하는 모든 패킷을 읽거나 기록(원래 자기의 주소와 일치하는 경우에만 intercept 가능)
  • fake identity : IP spoofing - 잘못된 source 주소로 packet 전송. source주소를 다르게 설정하여 본인이 아닌 다른 애인 척. 해결: end-point 증명(실제로 b가 보냈는지)

1.7 컴퓨터 네트워킹과 인터넷의 역사

  •  연도별 활동은 ppt에 있는 거 그냥 쭉 읽어보자 ~^^
  • Cerf 와 Kahn의 internetworking principles(오늘날의 internet architecture 정의): 미니멀리즘, 자율성(네트워크 상호 연결 위해 내부 변경 x0, 망치지는 않지만 최선을 다해 그 상황에서 될대로 되게 함, router은 자기 지나는 packet정보를 지나가면 다 잊어버림. packet by packet으로 처리. 자율성 위해 중앙집권화 x