컴퓨터통신 19

9. 슬라이딩 윈도우 (Sliding-Window)

슬라이딩 윈도우 (Sliding Window) 이디어: 송신자가 ACK를 받기 전에 여러 개의 프레임을 전송할 수 있도록 한다 → 파이프가 꽉 차게 된다. ACK를 받지 않은 상태에서 보내지는 프레임 (outstanding frame)이 복수개로 늘어난다. 그 수는 window size에 맞게 제한된다. outstanding frame: 현재 전송이 진행중인 frame = 언제든지 오류 복구가 필요한 frame 모두 오류 제어 대상이며, 순서 번호가 필요하다. (누가 ACK를 보냈는지 구분하기 위해) stop&wait는 sliding window의 window size가 1인 경우이다. 각각의 프레임에 대해서는 ARQ, 즉 Ack / timeout & 재전송을 수행한다. 효율 높은 오류 제어가 가능하다...

8. 신뢰성 있는 전송 (Stop-and-Wait)

개요 오류에 의해 변질된 프레임의 복구 오류 수정 코드 (Error Correction Codes: ECC) 순방향 수정 (Forward Error Correction: FEC) → 수신자가 수정하는 코드 자동 반복 요청 (Automatic Repeat reQuest: ARQ) : 재전송 ACK와 타임아웃 (Acknowledgements and Timeouts) 역방향 수정 (Backward Error Correction) 오류 중에는 프레임 자체가 성립이 안 되는 framing error 도 존재한다. 이 경우에는 수신 쪽이 frame 수신 여부를 인식하지 못하는 frame loss이다. 오류 수정 코드 (Error Correcting Codes) Forward Error Correction (FEC)..

7. 오류 검출

오류검출 데이터 링크 층의 중요한 기능이다. 오류검출까지는 하드웨어가 처리할 수 있다. 오류 복구/처리/재전송은 소프트웨어가 처리한다. 오류 검출 코드 (Error Detecting Code) : EDC 데이터 영역 안에 오류가 있는지 없는지 알아내기 위한 부가 데이터 (overhead) 수신자가 알아내야 하므로 비용 없이는 할 수 없는 작업이다. Ex. parity (맨 끝의 parity bit) 크기 면에서 EDC는 data보다 작아야 한다. 오류가 없는 경우 EDC는 단순 overhead가 되기 때문에 작아야 의미가 있다. 효율 면에서 오류 검출율이 높아야 한다. EDC가 너무 작으면 검출율이 낮아진다. 비용 면에서 f() 연산에서 시간이 적게 소모되어야 한다. 고속 통신에서 병목 지점이 될 수도 ..

6. 프레이밍 (Framing)

프레이밍(Framing) : 개요 패킷 네트워크에서는 데이터를 끝없이 보낼 수는 없다. 각 데이터를 구별할 줄 알아야 하기 때문 문제점 bit 들의 연속을 하나의 묶음 (프레임 : frame)으로 자르는 것 수신 쪽이 프레임을 인식할 수 있도록 봉투를 씌워 묶는 것 프레임의 처음과 끝을 인식 전형적으로 네트워크 어댑터 (NIC)에서 구현된다. 어댑터는 호스트 메모리로부터 프레임 (데이터 + 헤더 일부분)을 메모리에서 가져온다. 바이트 중심 프로토콜 (Byte-Oriented Protocols) 보초 방법 (Sentinel Approach) BISYNC header와 data의 경계에 보조문자를 삽입한다. header는 가변 길이를 갖는다. IMP-IMP, PPP 문제점: 프레임의 데이터 부분에서 ETX ..

5. 인코딩 (Encoding)

인코딩 (Encoding) : 개요 신호(signal)은 물리적 매체를 통해 전달된다. 디지털 신호 아날로그 신호 데이터는 디지털 데이터만을 취급한다. 아날로그 데이터는 디지털 데이터를 변환한 것 문제 : 발신지에서 목적지로 보내려는 이진 데이터를 전달될 수 있는 신호로 인코드 해야 한다. 보다 일반적으로는 변조 (Modulation) 디지털 전송 (Transmission) 신호 중계 방법 아날로그 전송 : 신호를 단순 증폭 → 앰프(Amplifier) 사용 디지털 전송 : 신호에서 데이터를 복원하여 다시 신호화한다. 디지털 데이터를 담은 신호만 이용 가능하다 → 리피터 (repeater) 사용 거의 모든 전송 방법이 디지털 전송을 사용한다. (단, 원래 담긴 정보가 디지털 정보여야 repeater를 사..

4. 점대점(Point-To-Point) 링크 - 하드웨어 구성요소

하드웨어 구성요소 데이터 링크 계층 OSI 7계층의 1, 2계층은 무엇을 담당하는가? → 하나의 링크로 연결된 노드 사이의 비트묶음 (프레임) 교환 하나의 링크로 연결된 두 노드 점대점 연결 네트워크 : 가장 간단한 네트워크 일반적 네트워크 구성의 기본 block 노드란? 노드의 실체는? 링크란? 링크의 실체는? 점대점 연결에서의 통신의 실체 비트 교환 : 신호 인코딩 / 디지털 전송 비트 묶음 교환 : 프레이밍 (frame) 오류 검출 / 복구 하드웨어 구성 요소 : 노드(Nodes) 단말/호스트, 스위치/라우터 범용 (프로그래밍할 수 있는) 컴퓨터로 구성된다고 가정한다. (PC 등) 모든 노드는 컴퓨터 구조를 갖는다. 때때로 특수한 목적의 하드웨어로 대체되기도 한다. 유한 메모리 (제한된 버퍼 공간을..

3. 네트워크 성능

성능 네트워크 비교/평가 기준 빠른 네트워크란? 성능 (Performance) : 대역폭 대역폭 (Bandwidth) - 처리량/처리속도 (throughput) 단위 시간당 전송될 수 있는 데이터의 양 Ex. 10Mbps (bits-per-second) → 얼마나 보낼 수/받을 수 있는지에 대한 양 측정 지점 : 링크간 대 종단간 (end-point, end-to-end) 표기 방법 KB : 2^10 bytes Mbps = 10^6 bits per second 대역폭은 비트 폭 (bit width) 과 관련 있다. 속도가 높아지면 비트폭은 작아진다. (비트 사이가 좁아진다.) Ex. 속도를 두 배로 보내면 비트간 간격이 가까워진다 속도가 높아지면 비트폭이 작아져서 간섭/오류 가능성이 높고, 천재 지변시 ..

2. 네트워크 구조

프로토콜 (Protocol) 정의 통신에 사용되는 약속 (수신호, 언어 같은) 반드시 통신하는 양쪽이 대칭 관계여야 한다. 다양한 컴퓨터 통신 시스템/응용으로 인해 기능이 많아져서 프로토콜이 복잡해지고 불명확한 해석이 생기고 복잡한 시스템 때문에 변경 등 관리가 어렵고 새로운 프로토콜이 필요할 때마다 반복하게 된다 → 복잡성을 해결하는 구조적 기법이 필요하다 → protocol을 정하는 방법을 일반화/구조화 하자! 계층화 복잡한 문제는 한번에 풀 수 없다. 복잡한 내용/문제를 숨겨서 문제를 단순화 → 추상화한다 (abstractions) 추상화된 문제/내용 해결 → 추상화를 recursive하게 적용한다. 추상화는 자연스럽게 계층화를 유도하게 된다. 통신 프로토콜은 여러 계층으로 정의된다. 각 계층은 하..

1. 네트워크 기본 개념 - 요구사항

요구사항 네트워크가 제공해야 하는 것 결국, 네트워크에 대한 기능적 정의 연결 통신의 첫 단계는 통신 주체를 연결하는 것이다. 통신측 : 단말(기), terminal 컴퓨터 : 호스트(host) → 통신망이 해야 하는 제 1업무는 ‘연결’이다. 통신 주체 전화기 등 단말기 (엄밀히 말하면 기기가 아닌 응용이 주체가 된다.) 좀 더 일반적으로는 통신 응용이 있다. (카톡, 브라우저 …) 당분간은 단말기로 가정하고 생각한다. 연결 방법 선을 연결하거나 무선으로도 연결할 수 있다. 선 연결은 케이블로 가능하지만, 거리, 크기로 인해 어렵다. 통신망 구성 요소 (물리적 연결 제공을 위한) 노드 : 단말기, 범용 워크스테이션, 라우터, 공유기, 스위치 등 다른 주체와 연결되는 것을 노드라고 한다. 노드가 단말을 ..