국민대학교에서 "Computer Networking: A Top-Down Approach"을 이용한
이상환 교수님의 교안을 활용하여 강의 내용을 정리하였습니다.
What is the Internet?
📍“nuts and bolts” view (구성요소로서의 관점)
- computing devices
- host = end systems
- ex) 컴퓨터, 핸드폰 …
- 인터넷의 가장자리에서 host가 네트워크 app을 실행
- Packet switches (packet을 배달해주는 애들)
- routers, switches
- Communication links (Computing devices들을 서로 연결해줌)
- ex) fiber(광케이블), copper(구리선), radio, satellite(인공위성)
- 해당 Link의 성능을 표시하는 방법 → transmission rate(전송률) => bandwidth(1초에 몇 비트를 전송할 수 있는지)
- Networks
- devices, routers와 Links의 집합
- Internet: 네트워크로 구성된 네트워크
- protocols
- 메시지를 주고받는 것을 control하는 역할
- ex) HTTP(Web), streaming video, Skype, TCP, IP, WIFi, 4G, Ethernet
- Internet standard(인터넷 표준)
- RFC: RFC 문서가 프로토콜을 정의함(Request For Comments)
- IETF: 여기서 매년 프로토콜을 정의함(Internet Engineering Task Force)
📍“services” view (서비스 측면 = 인터넷이 나에게 제공해주는 서비스가 뭐에요?)
- Infrastructure
- 인터넷은 네트워크 application의 서비스를 제공해주는 인프라스트럭처의 일종임
- provides programming interface
- 인터넷에서는 여러가지 활동을 할 수 있지만 인터넷 자체에서는 기본적인 programming interface(→ 이걸 이용해서 다양한 application들이 가능해짐)만 제공함
What is the protocol?
- Protocols define the format, order of messages sent and received among network entities, and actions taken on message transmission, receipt
- 프로토콜은 네트워크 엔터티 간에 보내고 받는 메시지의 형식, 순서, 메시지 전송, 수신에 대해 수행되는 작업을 정의합니다.
Network edge: hosts, access network, physical media
📍자세히 보는 인터넷의 구조
- Network edge
- host들의 집합 (host = clients and server)
- server들은 data center에 있음
- Access networks(= Network edge와 core를 연결해주는 것), physical media
- 유선, 무선의 커뮤니케이션 링크
- Network core
- router들의 집합
- 라우터들이 연결되어 있는 것
- network of networks
📍Access network와 physical media
- Q. end systems과 edge router를 어떻게 연결하니? (= access network가 하는 일)
- 주거지역 access network를 사용
- 기관의 access network를 사용(학교, 회사)
- 모바일(= 무선으로 연결하는 것) access network를 사용(WiFi, 4G/5G)
- 생각해야 할 점
- access network의 bandwidth가 어떻게 되니
- access network 자체가 공용이니 전용이니
1️⃣ Access networks: cable-based access
- 케이블 tv의 cable 선을 사용한 것
- frequency division multplexing(FDM)
- 서로 다른 채널이 서로 다른 주파수 band를 사용함
- 즉, 여러 개의 채널 중 몇 개를 data용으로 사용해도 된다는 뜻
- upstream일 때, 여러 가정에서 쓰니까 가정의 입장에서는 나눠쓰는 network임. (downstream일 때는 아님)

2️⃣ Access networks: digital subscriber line(DSL)
- 기존에 있던 전화선을 사용하는 방법(채널이 하나라서 전화를 하는 동안에는 사용X)
- 장점: 이미 전화가 설치 되어있는 경우 빠르게 사용이 가능
- 단점: 성능이 안좋다.
- downstream: 제법 빠르다
- upstream: 성능 똥💩

3️⃣ Access networks: home networks
- 가정 내에서 여러 개의 host가 있어서 가정 내부에서도 network가 만들어지는 것!

4️⃣ Wireless Access networks (공유기로 연결)
- Shared wireless
- 공기라는 매질을 이용해서 전파를 전송 → shared
- 하나의 공유기에 여러 device 연결
- WLANs(근거리) vs 원거리

5️⃣ Access networks: enterprise networks (= institution 회사나 기관)
- Ethernet: 유선 → 속도가 빠르다

📍Links: physical media
- Coaxial cable
- 중심이 같은 구리 전도체
- 양방향통신
- bandwidth가 넓어서 여러 개의 채널을 집어넣을 수 있다.
- Fiber optic cable
- 광케이블
- 전기장, 자기장으로 인한 noise가 발생하지x →에러가 적다.
- Wireless radio
- 물리적인 선이 없다.
- 환경의 영향을 받는다.
- 반사가 된다
- 전파가 막힐 수도 있다.
- 다른 것도 전파를 쏘면 간섭이 발생
- Radio link types
- Wireless LAN
- wide-area
- Bluetooth
- terrestrial microwave 지상파
- satellite 인공위성

Network core: packet/circuit switching, internet structure
📍The network core
- packet-switching
- host에서 보내는 message를 packet으로 쪼개는 것
- router에서 다음 router로 link를 통해 packet을 전달하는 것 ⇒ network core
📍Two key network-core functions
- forwarding
- local action ⇒ router가 혼자서 어디로 가세요~ 해주는 것
- Routing
- global action ⇒ router들 끼리 공유해서 어디에서 어디로 가는지 table을 만드는 기능(라우터의 경로를 찾는 기능)
1️⃣ Packet-switching: store-and-forward
- source에서 destination으로 전달할 때 router에 packet 하나를 완전히 다 저장한 후 전달
- packet transmission delay → L/R
- L bits per packet : 하나의 패킷에 들어있는 비트
- 라우터까지 R bps 걸림 ⇒ source 에서 destination까지는 2 * L/R 걸림
2️⃣ Packet-switching: queueing
- router에 들어오는 packet을 queue에 넣어서 처리
- 문제점
- Queueing Delay: packet이 들어오는 속도보다 나가는 속도보다 빠르면 packet이 쌓이면서 delay 발생
- Packet Loss: queue도 메모리라서 용량을 초과하면 packet을 drop해야함
3️⃣ Alternative to packet switching: circuit switching
- source에서 destination으로 가는 경로의 resource(router, link…)를 미리 할당해두는 것
- dedicated resource
- 미리 할당해놓은 resource
- 공유할 수 없다.
- telephone networks에서 많이 사용
📍Circuit switching: FDM and TDM
- Frequency Division Multiplexing(FDM)
- 대역폭을 쪼개서 여러개를 한 번에 보내는 방법(보낼 수 있는 비트수 ↓)
- Time Division Multiplexing(TDM)
- 시간을 쪼개서 일정 부분을 하나가 온전히 사용하고 이를 번갈아서 진행하는 방법

📍Packet switching VS circuit switching
- packet switching이 더 많은 user를 지원할 수 있다.
- 그러나 이는 bursty한 경우(많이 보내다가 말고를 반복)에만 좋다.
- resource를 sharing 할 수 있다.
- 구현이 쉽다
- call setup이 필요없다.(circuit은 자원을 미리 할당 받아야해서 필요하다)
- packet은 packet delay와 loss의 단점이 있다 → 이러한 문제를 처리할 protocol 필요
- packet switching을 circuit switching처럼 안댐? → 웅 안대!
📍Internet structure: a “network of networks”
- host connect to Internet via access Internet Service Providers(ISPs)
- → host들은 skt, kt 같은 ISP에 가입하면 여기서 인터넷 연결을 해준다는 뜻
- 그러나 이러한 ISP들도 서로 연결되어야한다.
⇒ internet은 복잡하고 경제적, 국가적 정책에 의해 진화한다.
- access ISP << Regional ISP << IXP << Content provider network == Tier-1 ISP
Performance: loss, delay, throughput
📍Packet delay:four sources
- nodal processing delay
- packet의 header를 보고 어느 link로 이동할 것인지 처리할 때 발생
- queueing delay
- queue에 들어가서 나오기까지 걸리는 시간
- transmission delay = L/R
- node가 가지고 있는 bit를 link로 보내는 시간(하나의 packet에서)
- L: packet length(bits) 패킷의 길이
- R: link trasmission rate(bps) 링크의 bandwidth?!
- propagation delay = d/s
- packet이 다른 node까지 이동하는데 걸리는 시간
- 줄이 길수록 오래걸림
- d: length of physical link 물리적인 링크의 길이
- s: propagation speed (~2*10^8 m/sec) 비트가 이동하는데 걸리는 시간

📍 Packet queueing delay (revisited)
- Queue의 맨 뒤로 들어가서 맨 앞으로 나오기까지 걸리는 시간
- 라우터 안에 packet이 많이 몰리면 발생함 → 소프트웨어적으로 해결 가능
- traffic intensity
- 나가는 것에 비해 얼마나 많은 양이 들어오는지
- L: packet의 길이(bits)
- a: 1초에 몇 개의 packet이 도착하는지
- R: 1초에 처리할 수 있는 비트의 수 link bandwidth(bit transmission rate)
- 0에 가까운 경우 → queueing delay가 작다
- 1에 가까운 경우 → queueing delay가 크다
- 1을 넘어가는 경우 → 계속 queue에 쌓여서 infinite함

📍”Real” Internet delays and routers
- traceroute
- source에서 destination까지 가는 동안 몇 개의 router를 거치는지
- source에서 destination까지의 경로를 아는 것에도 좋고, 시간이 얼마나 걸리는 지 알기에도 좋다.
- ex) probe를 보내서 1번 router까지 걸리는 시간, 2번 router까지 걸리는 시간.. 등을 재는 방법으로 측정한다.

- ping
- 처음부터 destination으로 보내는 것
📍 Packet loss
- packet을 loss하면 해당 packet을 다시 보내야하는데 이걸 previous node에서 보내야할까 아니면 source end system에서 다시보내야 할까 아니면 아예 안보내도 될까? → 다시 안보내도 되는 경우: 음성통신의 경우 잃어버린 것을 무시하고 넘어가도 됨
📍Throughput
- Throughput
- sender에서 receiver까지 1초에 몇 비트를 받는지 (receiver의 입장에서)
- instantaneous: 특정한 시간에서의 throughput
- average: 평균 throughput

- bottleneck link (병목 링크)
- 해당 link에 의해 전체 throughput이 결정되는 것
- 해당 link에 의해 전체 throughput이 결정되는 것

Security
📍Bad guys: packet interception
- packet “sniffing”
- broadcast media(shared Ethernet, wireless)
- shared Link인 경우 다른 애가 packet의 내용을 보는 것
- ex) Wireshark

📍Bad guys: fake identity
- IP spoofing
- 실제로는 c가 보내는 것인데 잘못된 source address를 전달해서 b가 전달하는 것처럼 혼란을 주는 것

📍Bad guys: denial of service
- Denial of Service (DoS)
- 적법한 트래픽이 자원을 사용할 수 없게함
- 정상적인 packet을 보내도 다른 것들을 처리하느라 처리를 못하게 한다.(정상적인 서비스가 거부당함)

📍Line of defense
- authentication: 인증
- 휴대전화 네트워크는 SIM 카드를 통해 하드웨어 식별을 제공하며, 전통적인 인터넷에는 이와 같은 하드웨어 지원이 없습니다.
- confidentiality: 기밀성
- 암호화(encryption) 이용
- integrity check: 무결성 확인
- 디지털 서명을 통해 조작을 방지하고 감지
- firewalls: 방화벽
- 기본적으로 해제되어 있음: 수신자, 수신자, 응용 프로그램을 제한하기 위해 들어오는 패킷을 필터링합니다.
- DOS 공격 감지/대응
Protocal layers, service models
📍Protocal “layers” and reference models
- network는 많은 조각들로 이루어져 있어서 복잡함
- hosts
- routers
- links of various media
- applications
- protocols
- hardware, software
📍Why layering
- layers
- 각각의 layer가 하나의 service를 제공함
- layering을 사용하는 이유는?
- 명시적인 구조는 시스템의 부분을 식별하고 관계를 파악할 수 있도록 합니다.
- 논의를 위한 계층화된 참조 모델(regerence model)
- 모듈화(modularization)를 하면 유지 보수와 시스템의 업데이트를 쉽게 할 수 있다.
- 계층의 서비스 구현 변경: 나머지 시스템에는 투명하게 작용
- ex) 게이트 절차의 변경이 시스템의 나머지 부분에 영향을 주지 않습니다.
- 명시적인 구조는 시스템의 부분을 식별하고 관계를 파악할 수 있도록 합니다.
📍Layered Internet protocal stack
- application
- transport
- network
- link
- physical

⚠️ history 파트는 생략하였습니다.
'Computer Network' 카테고리의 다른 글
| [컴퓨터네트워크] chapter 4-3. IP: the Internet Protocol (1) | 2024.05.16 |
|---|---|
| [컴퓨터네트워크] chapter 4-2. What's inside a router (0) | 2024.05.03 |
| [컴퓨터네트워크] chapter 4-1. Network Layer: overview (0) | 2024.05.03 |