먼저 알아야 할 것

  • 따로 필요한 선수 과목은 없다. 통계적 다중화의 계산에 확률통계의 이항분포를 쓴다.
  • 신호의 진폭·주파수·파장은 사인파 (공학수학 대학수학)에서 다룬 양과 같다.

연결과 자원 공유

읽기 전에
  1. 기기 100대를 서로 모두 선으로 직접 이으려면 선이 대략 몇 개 필요할까? → 점대점 링크
  2. 전화처럼 길을 미리 잡아 두는 방식이 컴퓨터 통신에는 왜 손해일까? → 회선 스위칭
  3. 여러 사람이 선 하나를 나눠 쓸 때, 받는 쪽은 어떤 조각이 누구 것인지 어떻게 알까? → 다중화
번호 개념 한 줄 개념 코드 연습
01 점대점 링크 두 기기를 전용선 하나로 바로 잇는 연결. 모두 이으면 선이 \(n(n-1)/2\)개 검증 · 그림 코드 · 그림1 —
02 다중 접근 링크 여러 기기가 선 하나를 함께 씀. 동시에 보내면 충돌 — —
03 스위칭 네트워크 중계 장치(스위치)를 거쳐 잇는 간접 연결 — —
04 인터네트워크 네트워크들을 라우터로 이은 네트워크들의 네트워크 — —
05 전송 속도와 대역폭 싣는 시간 \(L/R\)과 선을 건너는 시간은 다르다. 대역폭의 두 뜻, 비트 폭 검증 · 그림 코드 · 그림1 —
06 회선 스위칭 통신 전에 경로의 용량을 전용으로 잡아 둠. 쉬는 동안 낭비 검증 —
07 버스티 트래픽 짧게 몰리고 오래 쉬는 트래픽. 최대가 평균보다 훨씬 큼 검증 —
08 패킷 스위칭 잡아 두지 않고 패킷마다 저장 후 전달. 지연 \((H+P-1)L/R\), 버퍼가 넘치면 혼잡 검증 패킷 스위칭 예제 사다리
09 회선 스위칭과 패킷 스위칭 비교 가르는 질문: 자원을 미리 잡아 두는가 — —
10 주소 지정 상대를 가리키는 이름표. 유니·브로드·멀티캐스트 — —
11 라우팅 지정된 상대까지 가는 경로 찾기 검증 —
12 다중화 여러 연결이 링크 하나를 나눠 씀. DEMUX 키가 반드시 있어야 함. 반대 방향은 다채널 분할 검증 —
13 시분할 다중화 시간 칸을 정해진 순서로 돌아가며 씀. 칸 위치가 키 검증 —
14 주파수 분할 다중화 주파수 구간을 나눠 동시에 씀. 보호 대역 낭비. DSL이 이 방식 검증 —
15 통계적 다중화 보낼 것이 있는 입력에만 링크를 줌. 주소 오버헤드 검증 · 그림 코드 · 그림1 · 그림2 —
16 시분할 다중화와 통계적 다중화 비교 가르는 질문: 칸을 미리 정해 두는가 — —

떠올려 보기: 노트를 닫고 연결 방식, 스위칭 정책, 다중화 방식 세 가지와, 버스티 트래픽이 스위칭과 다중화에서 각각 어떤 선택을 이끌었는지 써 본다.

패킷 스위칭과 네트워크 구조

읽기 전에
  1. 패킷 스위칭을 하면 링크는 저절로 통계적 다중화가 될까? 둘은 같은 말일까? → 패킷 스위칭과 통계적 다중화 비교
  2. 편지를 봉투에 넣고 다시 상자에 넣듯, 데이터가 아래층으로 내려갈 때마다 무엇이 붙을까? → 캡슐화
  3. 통신의 일을 7층으로 나누면, 중간에 있는 라우터는 몇 층까지 볼까? → OSI 참조 모델
번호 개념 한 줄 개념 코드 연습
17 패킷 스위칭과 통계적 다중화 비교 가르는 질문: 링크를 나누는 방법인가, 노드가 넘기는 방법인가 — —
18 프로세스 간 채널 호스트 사이 연결을 프로세스 사이 통로로. 망의 장애를 메워야 함 — —
19 계층화 아래층을 믿고 위층을 쌓는 추상화. 논리적 통신과 물리적 통신 — —
20 프로토콜 양쪽이 맞춘 약속. 서비스 인터페이스와 동료 인터페이스 — —
21 프로토콜 그래프 프로토콜의 의존 관계 그림. 공유하면 demux key — —
22 캡슐화 층마다 헤더를 붙여 내려보내고 떼어 올려보냄 검증 —
23 OSI 참조 모델 통신의 일을 나눈 7층 지도. 중간 노드는 아래 3층만 — —

떠올려 보기: 노트를 닫고 계층화, 프로토콜의 두 인터페이스, 프로토콜 그래프, 캡슐화가 서로 어떻게 이어지는지 한 장의 그림으로 그려 본다.

인터넷 구조와 성능

전송 속도와 대역폭(05)은 이 묶음에서 다루지만, 맨 앞 ‘연결과 자원 공유’의 개념들이 먼저 알아야 하는 것이라 앞 번호에 있다.

읽기 전에
  1. 전송률을 10배로 올리면, 지구 반대편으로 보내는 1바이트 메시지는 얼마나 빨라질까? → 소요시간
  2. 파일을 패킷 5,000개로 나눠 스위치를 거쳐 보내면, 스위치는 5,000개를 다 받은 뒤에 보낼까? → 소요시간 분석
  3. 대역폭이 10배인 링크는 같은 프레임을 보낼 때 더 알차게 쓰일까, 더 비어 있을까? → 대역폭-지연 곱
번호 개념 한 줄 개념 코드 연습
24 인터넷 구조 IP 하나로 좁은 모래시계. 계층을 엄격히 따르지 않음 — —
25 소요시간 전파 + 전송 + 큐잉 (+ 처리). RTT와 지터 검증 · 그림 코드 · 그림1 —
26 소요시간 분석 시간 흐름 그림으로 회선·패킷의 소요시간 계산. 패킷은 파이프라인으로 겹침 검증 · 그림 코드 · 그림1 소요시간 분석 예제 사다리
27 처리량 실제로 낸 속도 = 크기 ÷ 전송 완료 시간. 작은 메시지는 소요시간이 지배 검증 · 그림 코드 · 그림1 —
28 대역폭-지연 곱 파이프의 부피 = 대역폭 × 지연. 빠른 링크일수록 채우기 어려움 검증 —

떠올려 보기: 노트를 닫고 소요시간의 네 항을 쓰고, 회선과 패킷의 시간 흐름 그림을 그린 뒤, 처리량과 대역폭-지연 곱이 소요시간과 어떻게 이어지는지 써 본다.

데이터 링크 네트워크: 링크의 실체

읽기 전에
  1. 광케이블 속의 빛은 왜 밖으로 새지 않을까? → 유선 링크
  2. 전화선 하나로 통화와 인터넷을 동시에 쓸 수 있는 이유는? → 가입자 선로
  3. 휴대폰 기지국이 맡는 구역은 왜 세대가 올라갈수록 작아질까? → 이동통신
번호 개념 한 줄 개념 코드 연습
29 데이터 링크 계층 링크 하나로 이은 두 노드의 프레임 교환. 비트 교환·프레이밍·오류 검출 — —
30 노드 링크 끝의 컴퓨터. 유한한 버퍼, 오늘날의 병목 — —
31 신호와 변조 데이터를 신호로 바꾸고 되돌림(모뎀). 저주파는 멀리, 고주파는 빠르게 검증 —
32 유선 링크 UTP·동축·광케이블의 거리와 속도. 전반사, 멀티모드와 싱글모드 검증 · 그림 코드 · 그림1 —
33 가입자 선로 집과 인터넷 회사 사이의 마지막 링크. DSL은 전화선에 FDM — —
34 무선 링크 선 없이 이동성과 즉시성. 간섭·다중 경로·라이선스 검증 · 그림 코드 · 그림1 —
35 이동통신 셀과 기지국. 핸드오프, 공간 분할로 주파수 재사용 — —
36 위성통신 높이 띄울수록 넓게, 늦게. 휴대 기기의 양방향 통신은 저궤도 검증 —

떠올려 보기: 노트를 닫고 점대점 링크 위에서 할 일 세 가지와, 유선·가입자 선로·무선·이동통신·위성을 거리와 속도 기준으로 비교하는 표를 만들어 본다.

데이터 링크 네트워크: 인코딩

읽기 전에
  1. 멀리 보내느라 약해진 신호를 중간에서 그냥 크게 키우면 무엇이 문제일까? → 디지털 전송
  2. 0만 계속 보내면 받는 쪽은 0이 몇 개 왔는지 어떻게 셀까? → NRZ와 클럭 복구
  3. 데이터 신호 안에 시계 박자를 함께 실어 보낼 수 있을까? → NRZI와 맨체스터
번호 개념 한 줄 개념 코드 연습
37 디지털 전송 중계할 때 신호를 키우지 않고 0과 1을 되살려 다시 만듦(리피터). 잡음이 쌓이지 않음 그림 코드 · 그림1 —
38 PCM 값을 재고(표본화) 반올림해(양자화) 2진수로. 4 kHz 음성 → 64 kbps 검증 · 그림 코드 · 그림1 · 그림2 —
39 진폭·주파수·위상 변조 반송파의 높이·빠르기·시작 시점을 비트에 따라 바꿈. 심볼이 \(M\)가지면 \(\lg M\)비트 검증 · 그림 코드 · 그림1 · 그림2 —
40 NRZ와 클럭 복구 1은 높게, 0은 낮게. 같은 값이 이어지면 받는 쪽이 박자를 잃음 검증 · 그림 코드 · 그림1 · 그림2 · 그림3 —
41 NRZI와 맨체스터 1마다 뒤집기 / 비트마다 한가운데서 전이(데이터 ⊕ 클럭), 효율 50% 구현 · 그림 코드 · 그림1 · 그림2 · 그림3 —
42 4B/5B 4비트를 5비트 부호로 바꿔 0은 최대 3개, NRZI로 보냄. 효율 80% 검증 · 그림 코드 · 그림1 · 그림2 —
43 인코딩 방식 비교 가르는 질문: 어떤 비트열에서 평평해지나, 효율은 얼마인가 그림 코드 · 그림1 인코딩 예제 사다리 · 문제 4 코드 · 사다리 그림 코드 · 사다리 그림1 · 사다리 그림2 · 사다리 그림3 · 사다리 그림4 · 사다리 그림5 · 사다리 그림6

떠올려 보기: 노트를 닫고 같은 비트열 하나를 NRZ, NRZI, 맨체스터, 4B/5B + NRZI로 그린 뒤, 각각 어떤 비트열에서 박자를 잃는지와 효율을 한 표로 정리해 본다.

데이터 링크 네트워크: 프레이밍과 오류 제어

읽기 전에
  1. 프레임 끝을 “ETX” 글자로 표시하면, 본문에 ETX가 우연히 들어 있을 때 어떻게 될까? → 바이트 중심 프레이밍
  2. 덧셈 대신 나눗셈의 나머지로 오류를 검사하면 무엇이 좋을까? → CRC
  3. 받았다는 응답(ACK)이 사라지면 보내는 쪽과 받는 쪽에 무슨 일이 생길까? → ARQ와 순서 번호
번호 개념 한 줄 개념 코드 연습
44 바이트 중심 프레이밍 끝을 보초 글자(ETX)로 표시하고 본문의 같은 글자 앞엔 DLE, 또는 앞에 길이를 적기 구현 · 그림 코드 · 그림1 · 그림2 · 그림3 · 그림4 —
45 비트 채우기 깃발 01111110, 1이 다섯 개면 0을 끼워 본문에 깃발이 안 생김 구현 · 그림 코드 · 그림1 · 그림2 —
46 프레이밍 방식 비교 가르는 질문: 데이터를 글자로 보나 비트로 보나, 끝 표시가 깨지면 어떻게 되나 그림 코드 · 그림1 —
47 오류 검출 코드 데이터로 계산한 짧은 값을 붙여 받는 쪽이 다시 계산해 비교. 완벽하진 않다 검증 · 그림 코드 · 그림1 —
48 2차원 패리티 줄과 칸에 패리티. 1~3비트 오류 검출, 1비트는 위치까지 찾아 고침 구현 · 그림 코드 · 그림1 · 그림2 · 그림3 —
49 인터넷 체크섬 16비트씩 1의 보수로 더해 뒤집기. 빠르지만 순서 바뀜·상쇄는 놓침 구현 · 그림 코드 · 그림1 —
50 CRC 프레임 전체가 젯수로 나누어떨어지게 꼬리를 붙임. XOR 나눗셈, 하드웨어, CRC-32 구현 · 그림 코드 · 그림1 · 그림2 · 그림3 CRC 예제 사다리 · 문제 4 코드 · 사다리 그림 코드 · 사다리 그림1 · 사다리 그림2 · 사다리 그림3
51 오류 검출 방식 비교 가르는 질문: 무엇으로 계산하나(세기·더하기·XOR 나누기), 무엇을 놓치나 검증 · 그림 코드 · 그림1 —
52 오류 복구와 FEC 받는 쪽이 고치기(FEC) 대 다시 받기(ARQ). 실시간이면 FEC — —
53 ARQ와 순서 번호 ACK·타임아웃·재전송. ACK가 사라지면 중복이 생겨 번호로 구별 구현 · 그림 코드 · 그림1 · 그림2 —

떠올려 보기: 노트를 닫고 프레이밍 세 방법을 “끝을 아는 방법, 겹침을 피하는 방법”으로, 오류 검출 세 방법을 “계산, 놓치는 오류, 쓰는 계층”으로 표를 그리고, ACK가 사라진 경우의 정지 대기 ARQ를 시간 그림으로 그려 본다.

아직 배우지 않은 자료

  • 정지 대기 분석, 슬라이딩 윈도우, 동시 논리 채널은 다음 묶음에 정리한다.

다른 과목과의 연결

흐름

graph LR
  n01["01 점대점 링크"]
  n02["02 다중 접근 링크"]
  n03["03 스위칭 네트워크"]
  n04["04 인터네트워크"]
  n05["05 전송 속도와 대역폭"]
  n06["06 회선 스위칭"]
  n07["07 버스티 트래픽"]
  n08["08 패킷 스위칭"]
  n09["09 회선 스위칭과 패킷 스위칭 비교"]
  n10["10 주소 지정"]
  n11["11 라우팅"]
  n12["12 다중화"]
  n13["13 시분할 다중화"]
  n14["14 주파수 분할 다중화"]
  n15["15 통계적 다중화"]
  n16["16 시분할 다중화와 통계적 다중화 비교"]
  n17["17 패킷 스위칭과 통계적 다중화 비교"]
  n18["18 프로세스 간 채널"]
  n19["19 계층화"]
  n20["20 프로토콜"]
  n21["21 프로토콜 그래프"]
  n22["22 캡슐화"]
  n23["23 OSI 참조 모델"]
  n24["24 인터넷 구조"]
  n25["25 소요시간"]
  n26["26 소요시간 분석"]
  n27["27 처리량"]
  n28["28 대역폭-지연 곱"]
  n29["29 데이터 링크 계층"]
  n30["30 노드"]
  n31["31 신호와 변조"]
  n32["32 유선 링크"]
  n33["33 가입자 선로"]
  n34["34 무선 링크"]
  n35["35 이동통신"]
  n36["36 위성통신"]
  n37["37 디지털 전송"]
  n38["38 PCM"]
  n39["39 진폭·주파수·위상 변조"]
  n40["40 NRZ와 클럭 복구"]
  n41["41 NRZI와 맨체스터"]
  n42["42 4B/5B"]
  n43["43 인코딩 방식 비교"]
  n01 --> n02
  n01 --> n03
  n03 --> n04
  n01 --> n05
  n03 --> n06
  n05 --> n06
  n05 --> n07
  n03 --> n08
  n05 --> n08
  n07 --> n08
  n06 --> n09
  n08 --> n09
  n03 --> n10
  n03 --> n11
  n10 --> n11
  n01 --> n12
  n05 --> n12
  n12 --> n13
  n05 --> n13
  n12 --> n14
  n05 --> n14
  n07 --> n15
  n10 --> n15
  n13 --> n15
  n13 --> n16
  n15 --> n16
  n08 --> n17
  n15 --> n17
  n04 --> n18
  n18 --> n19
  n19 --> n20
  n20 --> n21
  n12 --> n21
  n21 --> n22
  n19 --> n23
  n20 --> n23
  n23 --> n24
  n21 --> n24
  n05 --> n25
  n08 --> n25
  n25 --> n26
  n06 --> n26
  n08 --> n26
  n26 --> n27
  n05 --> n27
  n25 --> n28
  n05 --> n28
  n23 --> n29
  n01 --> n29
  n03 --> n30
  n08 --> n30
  n29 --> n31
  n05 --> n31
  n31 --> n32
  n32 --> n33
  n14 --> n33
  n31 --> n34
  n34 --> n35
  n12 --> n35
  n34 --> n36
  n25 --> n36
  n31 --> n37
  n37 --> n38
  n31 --> n39
  n37 --> n39
  n37 --> n40
  n05 --> n40
  n40 --> n41
  n41 --> n42
  n40 --> n43
  n41 --> n43
  n42 --> n43
  n44["44 바이트 중심 프레이밍"]
  n45["45 비트 채우기"]
  n46["46 프레이밍 방식 비교"]
  n47["47 오류 검출 코드"]
  n48["48 2차원 패리티"]
  n49["49 인터넷 체크섬"]
  n50["50 CRC"]
  n51["51 오류 검출 방식 비교"]
  n52["52 오류 복구와 FEC"]
  n53["53 ARQ와 순서 번호"]
  n29 --> n44
  n42 --> n44
  n22 --> n44
  n44 --> n45
  n44 --> n46
  n45 --> n46
  n44 --> n47
  n47 --> n48
  n47 --> n49
  n47 --> n50
  n48 --> n51
  n49 --> n51
  n50 --> n51
  n48 --> n52
  n52 --> n53
  n50 --> n53