## 1. 데이터 통신 - **데이터 통신: 전송 매체(transmission media)를 통해 두 기기 간 데이터를 교환하는 것** ![[data_communication_0_1.png|center|w30]] <br> ## 2. 네트워크 ![[data_communication_0_2.png]] - **네트워크(Network): 통신 가능한 디바이스 간의 연결** - **host, end user:** 컴퓨터 네트워크에 연결된 컴퓨터나 기타 장치 - 컴퓨터, 데스크톱, 노트북, 모바일 폰 등 - **connecting device:** 데이터의 형태를 바꿔 전달이 가능하도록 하는 장치들 - 라우터, 스위치, 모뎀 등 <br> ### 네트워크 관련 단위 > **핵심 개념: Bit(비트) vs Byte(바이트)** > - Bit(b): 데이터의 가장 작은 단위. 0 또는 1. 네트워크 속도를 말할 때 사용함 > - Byte (B): 8개의 비트가 모인 단위. 파일 크기를 말할 때 사용함 > - **1 Byte = 8 bits** <br> 1. **파일 크기 (저장 공간 단위)** - 컴퓨터는 **2진법**을 사용하므로, 파일 크기는 2의 제곱으로 커진다 - 1 KiloByte (KB) = 1,024 Bytes - 1 MegaByte (MB) = 1,024 KiloBytes (약 100만 바이트) - 1 GigaByte (GB) = 1,024 MegaBytes (약 10억 바이트) 2. **네트워크 속도 (전송 속도 단위)** - 네트워크 장비는 **10진법**을 기준으로 하므로, 속도는 10의 제곱으로 커진다 - 1 Kilo-bps (Kbps) = 1,000 bps (초당 1천 비트) - 1 Mega-bps (Mbps) = 1,000 Kbps (초당 1백만 비트) - 1 Giga-bps (Gbps) = 1,000 Mbps (초당 10억 비트) <br> ![[data_communication_0_3.png|center|w55]] <br> **예시: 1MB 사진을 1Mbps 속도로 전송하는 시간** → "파일 크기(Byte)를 비트(bit)로 통일"하는 것이 계산의 핵심 1. 사진 크기를 bit로 변환 - 1 MByte = 1,024 KB = 1,024 * 1,024 Bytes = 1,048,576 Bytes - 1,048,576 Bytes 8 bits/Byte = 8,388,608 bits* 2. 전송 속도를 bit로 확인 - 1 Mbps = 1,000,000 bps (초당 1,000,000 비트를 전송) 3. 전송 시간 계산 - 필요한 시간 = (총 데이터 크기) / (초당 전송 속도) - 8,388,608 bits / 1,000,000 bps ≈ 8.4초 결론적으로, 1MB 크기의 파일을 1Mbps 속도로 보내는 데는 **약 8.4초**가 걸린다. 흔히 "1메가 속도로 1메가 파일 보내면 1초 아니야?"라고 생각하지만, Byte와 bit의 차이 때문에 약 8배의 시간이 더 걸리는 셈이다. <br> **참고: 시간 단위** - Second (초): 기본 단위 - Millisecond (ms): 1/1,000 초 (네트워크 지연 시간 측정에 주로 사용) - Microsecond (μs): 1/1,000,000 초 - Nanosecond (ns): 1/1,000,000,000 초 (반도체 등 내부 처리 속도에 사용) <br><br> ## 3. 통신 방식과 프로토콜 > 통신 채널의 물리적인 동작 방식 또는 특성 > - **통신 방식 (Simplex, Duplex...):** 도로 자체의 종류 (일방통행, 양방향 도로) > - **프로토콜 (HTTP, TCP...):** 그 도로 위에서 지켜야 할 교통 법규 (신호등, 속도 제한, 차선 유지) <br> ### 통신 방식 ![[data_communication_0_7.png|center|w60]] - **Simplex (단방향 통신)** - 데이터가 한쪽 방향으로만 흐름 - e.g. 라디오 방송, TV 방송, 키보드 입력 (키보드 → 컴퓨터) - **Half-duplex** - 데이터가 양쪽 방향으로 흐를 수 있지만, 동시에 전송할 수는 없음. 한쪽이 보내면 다른 쪽은 받아야만 함 - e.g. 무전기, 보통 무선에서 쓰임 - ==**Full-duplex**== - 데이터가 양쪽 방향에서 동시에 흐를 수 있음 - e.g. 랜선, 전화 통화 <br> ### 프로토콜 프로토콜은 이러한 물리적인 통신 방식 위에서 데이터가 어떻게 잘 오고 갈 수 있는지에 대한 규칙과 약속과 같은 역할을 한다. ![[data_communication_0_4.png|center|w25]] - **프로토콜(Protocol): 데이터 전송을 위한 일련의 규칙들, 전송 규약** - **Half-duplex 환경의 프로토콜:** 데이터가 동시에 전송되어 충돌하는 것을막는 규칙(CSMA/CD)이 필요함. 무전기에서 "오버"라고 말하는 것도 일종의 간단한 프로토콜임 - **Full-duplex 환경의 프로토콜:** 동시에 데이터가 오고 가므로 충돌 걱정은 덜하지만, 순서가 뒤바뀐 데이터를 바로잡거나 누락된 데이터를 재전송해달라고 요청하는 등의 규칙이 필요함 (TCP의 역할) <br> ### 물리적 토폴로지 > **물리적 토폴로지(Physical Topology)** 는 네트워크의 물리적인 연결 구조를 의미함 > 컴퓨터, 케이블, 스위치, 라우터와 같은 장비들이 실제로 어떻게 배치되고 연결되어 있는지를 나타내는 '네트워크의 지도' 또는 '배선도'에 해당하는 개념 <br> ![[data_communication_0_5.png|center|w60]] - mesh topology: 기기 간 fully connected 거나 연결 몇 개 없는 형태 - ==**star topology**==: 하나에 여러 개가 물려있는 형태, 요즘 통신은 이 형태가 가장 많음 - bus topology: 선을 공유하는 형태, 한 번에 한놈만 보낼 수 있어 비효율적이나 CPU와 메모리 같은 근거리 통신에서는 요즘도 활용됨 - ring topology: 바로 옆 host에게만 전달 가능한 형태, 옛날 topology <br><br> ## 4. ==TCP/IP protocol suite== > 데이터가 인터넷을 통해 어떻게 여행하는지를 설명하는 과정 > 이 과정을 "해외에 있는 친구에게 소포를 보내는 과정"에 비유하면 쉽게 이해할 수 있음 <br> - 데이터를 보내는 컴퓨터(송신 측)는 위에서 아래로 **포장(Encapsulation)** 을 하고, 데이터를 받는 컴퓨터(수신 측)는 아래에서 위로 **포장을 푼다. (Decapsulation)** <br> ![[data_communication_0_6.png|center|w70]] <br> **5. Application Layer (응용 계층): 편지 작성** - **비유:** 친구에게 보낼 **편지의 내용(데이터)** 을 작성하는 단계 - **역할:** 사용자가 직접 상호작용하는 부분. 웹 서핑(HTTP), 파일 전송(FTP) 등의 서비스를 제공함 - **데이터 단위:** 메시지(Message) - **주소/식별자**: 없음 **4. Transport Layer (전송 계층): 동/호수 기입** - **비유:** 편지를 봉투에 넣고, 친구의 **동/호수(포트 번호)** 를 적는 단계. 받는 사람의 컴퓨터에 여러 프로그램이 실행 중일 때, 정확한 프로그램으로 데이터를 전달하기 위한 과정 - **역할:** 프로세스 대 프로세스 (Port-to-Port) 통신. 데이터의 신뢰성(TCP) 또는 속도(UDP)를 결정함 - **데이터 단위:** 세그먼트(Segment) - **주소/식별자**: **포트 번호(Port #)** **3. Network Layer (네트워크 계층): 집 주소 기입** - **비유:** 봉투에 친구의 **집 주소(IP 주소)** 를 적는 단계. 전 세계 어디에 있든 최종 목적지를 찾아갈 수 있게 함 - **역할:** 호스트 대 호스트 (Host-to-Host) 통신. 수많은 네트워크 중에서 최적의 경로를 찾아(라우팅) 최종 목적지까지 데이터를 전송함 - **데이터 단위:** 패킷(Packet) 또는 데이터그램(Datagram) - **주소/식별자**: **IP 주소(IP Address)** **2. Data Link Layer (데이터 링크 계층): 근처 우체부에게 전달** - **비유:** 우리 동네 우체부가 다음 동네 우체부에게 소포를 넘겨주는 단계. 최종 목적지가 아닌, **바로 다음 노드(라우터 또는 컴퓨터)의 물리적 주소** 를 이용함 - **역할:** 노드 대 노드(Node-to-Node) 통신. 같은 네트워크 내에서 장비 간에 데이터를 안전하게 전송함 - **데이터 단위:** 프레임(Frame) - **주소/식별자**: **MAC 주소(MAC Address)** **1. [[1. Physical Layer - 아날로그·디지털 신호와 프로토콜|Physical Layer]] (물리 계층): 실제 트럭과 도로** - **비유:** 소포를 실은 **트럭이 도로를 통해 실제로 이동**하는 단계. 데이터(0과1)를 전기 신호, 빛, 전파 등 물리적인 형태로 변환하여 전송함 - **역할:** 비트(bit) 단위의 데이터를 물리적인 신호로 변환하여 전송 매체(케이블, 마이크로파 등)를 통해 전달함 - **데이터 단위:** 비트(Bit) - **주소/식별자**: 없음 <br><br> > **OSI 7계층에는 Transport Layer 상단에 Session 계층과 Presentation 계층이 추가된다.** > > OSI 모델은 네트워크를 처음 배울 때 복잡한 통신 과정을 7개의 논리적인 단계로 나누어 이해하기 쉽게 설명하는데, 각 계층의 역할이 명확히 정의되어 있어서 교육적 측면이나 새로운 네트워크 기술 혹은 프로토콜을 개발할 때 참조하기 좋은 모델이다. > 반면에, TCP/IP 모델은 현재 우리가 사용하는 인터넷 그 자체다. 이론인 OSI와 달리 인터넷을 동작시키는 실제 포로토콜의 모음으로써, 우리가 웹서핑을 하고 이메일을 보내는 모든 활동은 TCP/IP 위에서 이루어진다. 이론적인 완벽함보다는 실제 구현과 효율성을 중시하여 개발되었기 때문에 전 세계적인 표준으로 자리 잡게 되었다. <br> <br> <br> <br>