컴퓨터 네트워크와 구성 요소

컴퓨터 네트워크

컴퓨터 네트워크는 여러 대의 컴퓨터가 서로 연결되어 데이터를 주고 받을 수 있도록 연결된 것을 말한다. 여러 네트워크 중 가장 규모가 큰 네트워크가 인터넷이다.

네트워크 구조

네트워크에 연결된 컴퓨터 중 서비스를 요청하는 쪽은 클라이언트(Client), 서비스를 응답하는 쪽은 서버(Server)라 부르고 그 요청은 네트워크와 패킷(Packet) 단위로 데이터를 전달하는 라우터(Router)를 통해 전달된다. 이 때, 각 서비스에 따라 통신할 때 지켜야 할 규칙이나 제약을 정한 프로토콜(Protocol)을 따르게 된다. 예를 들어 이메일 주고 받기, 파일 전송, 채팅, 인터넷 전화 등 다양한 서비스가 있는데 이메일은 SMTP, 파일 전송은 FTP를 이용하는 식으로 각 서비스에 맞는 프로토콜을 사용하게 된다.

데이터 전달 방식

데이터 전달 방식은 컴퓨터 네트워크에서 사용한 패킷 교환 방식(Packet switching)과 유선 전화에서 사용하는 회선 교환 방식(Circuit switching) 2가지가 있다.

회선 교환 방식

  • 하나의 경로를 점유하여 통신한다.
  • 통신 속도가 안정적이다.

패킷 교환 방식

  • 주고 받을 데이터를 패킷 단위로 나누어 전달한다.
  • 패킷은 송신자(Sender)와 수신자(Receiver)의 주소(Address) 정보를 가진다.
  • 동시에 사용자가 몰리면 속도가 저하될 수 있다.

컴퓨터 네트워크 계층 모델

컴퓨터 네트워크에서는 다양한 네트워크 기기와 프로그램이 통신을 하게 되는데 각각 맡은 역할을 분류한 것을 계층 모델이라고 한다.

  • 애플리케이션 계층(Application Layer)
    • 서비스를 사용자에게 제공
    • HTTP, FTP, SMTP, DNS 등
  • 트랜스포트 계층(Transport Layer)
    • 애플리케이션 계층과 네트워크 계층 사이에서 데이터 흐름 제공
    • TCP, UDP
  • 네트워크/인터넷 계층(Network Layer)
    • 목적지의 IP Address로 데이터 전달
    • 네트워크 상에서 패킷의 이동
    • IP, ICMP, IPsec
  • 링크/네트워크 인터페이스 계층(Link Layer)
    • 네트워크 어댑터와 같은 하드웨어를 통해 데이터 전달
    • ARP, Ethernet, PPP

송신지에서 애플리케이션 계층부터 링크 계층까지 가서 수신지의 링크 계층부터 애플리케이션 계층까지 순서대로 거쳐 통신을 한다. 각 계층을 지날 때 데이터는 패킷 단위로 나누어지고 목적지와 같은 부가 정보가 헤더(Header) 형태로 추가된다. 각 헤더에 추가되는 정보는 아래와 같다.

  • 트랜스포트 계층 : 데이터의 결합 순서, 데이터를 받을 프로그램 식별 번호
  • 네트워크 계층 : 목적지 컴퓨터 식별 번호
  • 링크 계층 : 유선 LAN에서 데이터 보낼 때 필요한 정보

데이터가 수신측에 도착하게 되면 각 계층을 지나가면서 해당 계층에서 사용한 헤더를 떼고 다음 계층에 정보를 전달하게 된다.

TCP(Transmission Control Protocol)

TCP는 트랜스포트 계층에서 사용하는 프로토콜로서 일반적으로 사용하는 네트워크는 TCP/IP(Internet Protocol)에서 이루어진다. 트랜스포트 계층의 또 다른 프로토콜인 UDP(User Datagram Protocol)와 특징을 간단히 비교해보면 아래와 같다.

TCP

  • Connection-oriented : 연결이 맺어지면 데이터를 전송할 수 있는 상태가 되고 데이터 전송이 끝나면 연결을 끊는다.

  • In-order : 송신자가 보낸 순서대로 데이터를 받는다.
  • Reliable : 데이터가 정확하게 전송되도록 하며 도달하지 않은 데이터는 재전송한다.
  • Byte-stream : 바이트 스트림 데이터 전달
  • 흐름 제어 : 서버에서는 클라이언트가 받을 수 있는만큼의 데이터를 전송한다.
  • 혼잡 제어 : 네트워크 상태가 혼잡할 때 통신 속도를 조절한다.

UDP

  • 단순히 데이터만 전송
  • 전송 속도 중시
  • VoIP(Voice over IP)나 동영상 스트리밍 서비스에서 사용