[TCP/IP가 보이는 그림책] 1. TCP/IP 개요

iMaeng·2022년 8월 8일
0

TCP/IP란 데이터 송수신에 관한 일련의 작업을 하나로 모은 것이다.

즉, 송신측에서 수행되는 일, 송신측에서 수신측으로 갈 때까지 수행되는 일, 수신측에서 수행되는 일 등 여러 공정으로 이루어져 있다.

데이터를 디지털 신호로 변환 → 보낼 곳에 전달 → 디지털 신호를 데이터로 변환 작업을 효율적으로 수행하기 위해서 데이터를 신호로 바꾸거나, 신호를 데이터로 되돌리는데 5단계의 절차를 거친다. 순서대로 애플리케이션 게층, 트랜스포트 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층으로 구성된다. 데이터 링크 계층과 물리 계층을 합쳐서 4계층으로 구분하기도 한다.

cf) OSI 참조 모델은 7계층을 사용한다.
네트워크 전송 시 데이터 표준을 정리한 것이 OSI 7계층, 이 이론을 실제 사용하는 인터넷 표준이 TCP/IP 4계층이다.

TCP/IP의 특징 중 하나는 ‘데이터를 일정한 크기로 분할해서 보낸다’는 것이다. 작게 나눠진 데이터 하나 하나를 패킷(packet)이라고 하며, 이러한 통신 방법을 ‘패킷 통신’이라고 한다.

패킷 통신에서는 데이터를 세분화함으로써 하나의 회선을 사용하여 여러 데이터를 거의 동시에 송수신할 수 있으며, 통신 중에 데이터의 일부가 손상되어도 해당 부분만 다시 보내면 된다는 장점도 있다.

패킷(packet)

데이터 전송 시, 데이터를 일정한 크기로 잘라서 보내는데, 패킷이란 이때 사용되는 정보의 전송 단위이다. 한 패킷은 보통 1,024비트이며, 각 패킷에는 데이터뿐만 아니라 데이터의 목적지 주소, 제어 부호 등의 제어 정보가 담겨 있다.


통신 프로토콜

네트워크 상의 컴퓨터끼리 데이터를 주고받으려면 그에 맞는 구조가 필요하다.

컴퓨터 간에 데이터 송수신을 위한 공통된 구조를 만들면 각각의 차이에 관계없이 데이터를 주고받을 수 있다.

데이터를 주고받으려면 송신측과 수신측의 컴퓨터가 미리 정해놓은 공통된 매뉴얼에 따라 연락을 취해야 하며, 이 매뉴얼을 프로토콜이라고 한다. 컴퓨터는 정해진 것 이상의 작업은 할 수 없으므로 주고받기의 순서나 처리에 대한 아주 자세한 부분까지 정해야 한다.


TCP/IP란?

현재 전세계 공통 통신 프로토콜로 채택된 것이 TCP/IP이며, 하나의 프로토콜로 데이터를 주고받는 모든 작업을 처리하는 것은 어렵기 때문에 TCP/IP는 여러 개의 프로토콜로 이루어져 있다.


계층화

TCP/IP는 송수신에 필요한 작업을 몇 개의 단계로 나눠서 수행하는데, 각 단계를 계층(layer)이라고 하며 층으로 나눈 것을 계층화라고 한다. 계층화를 통해 ‘계층마다 작업을 독립’시킬 수 있다는 장점이 있다.

TCP/IP는 5계층으로 구성되어 있다.

송신측수신측
1수신 측의 애플리케이션에서 처리할 수 있도록 만든다.애플리케이션에서 표시, 재생한다.
2네트워크 상에서의 공통된 형태로 만든다.데이터에 문제가 있으면 재전송을 요청한다.
3수신처로 가는 경로를 정하고 보낼 수 있는 형태로 만든다.데이터의 수신인을 확인하고 자기 앞으로 온 것이 아니면 파기한다.
4비트열(0과 1)로 변환한다.비트열을 데이터로 변환한다.
5비트열을 전압의 변화나 빛의 점멸 신호로 변환하여 송신한다.전압의 변화나 빛의 점멸 신호를 비트열로 변환한다.

TCP/IP의 구조

TCP/IP는 5계층으로 나눠져 있으며 위로 갈수록 사용자와 가까운 작업을, 아래로 갈수록 기계와 가까운작업을 담당한다. 각 계층에는 다양한 프로토콜이 존재하며, TCP(Transmission Control Protocl)와 IP(Internet Protocl)도 그 중 하나이다.

  • 애플리케이션 계층
    애플리케이션에 맞춰 통신을 수행할 수 있도록 하며, 애플리케이션마다 다양한 프로토콜이 존재한다.
    (HTTP, SMTP, POP3, FTP, TELNET, NNTP, RCP, …)
  • 트랜스포트 계층
    송신된 데이터를 수신측 애플리케이션에 확실히 전달하기 위해 작동한다.
    (TCP, UDP)
  • 네트워크 계층
    수신측 컴퓨터까지 데이터를 전달하기 위해 작동한다. 전달된 데이터가 손상됐는지 또는 수신측이 잘 받았는지에는 관여하지 않는다.
    (IP)
  • 데이터 링크 계층
    네트워크에 직접 연결된 기기 간을 전송할 수 있도록 만든다. 네트워크 계층과 물리 계층 간의 차이를 완전히 흡수하기 위한 다양한 프로토콜이 존재한다.
    (Ethernet, FDDI, ATM, PPP, PPPoE, …)
  • 물리 계층
    데이터를 신호로, 신호를 데이터로 변환한다. 변환 방법은 통신 매체에 의존하기 때문에 특정 프로토콜이 정해져 있지 않는다.

일반적으로 TCP/IP라고 하면 해당 5계층 전체를 가르킨다. 하지만 TCP와 IP라는 두 개의 프로토콜만 가리키는 경우도 있으므로 5계층 전체를 TCP/IP 프로토콜군이라고도 한다.

새로운 어플리케이션나 새로운 기기를 개발한 경우, 각각에 맞춰 프로토콜을 조합하여 처리할 수 있다. 무엇을 할 것인지에 따라 사용할 프로토콜 조합이 달라진다.


계층간 연락 방법

송신측의 각 계층에서는 수신측의 동일한 계층에서 필요한 정보를 공통된 서식으로 데이터에 추가해 간다. 데이터보다 앞에 추가한 정보를 헤더(header), 뒤에 추가한 정보를 트레일러(trailer)라고 한다.

송신측의 각 계층에서 추가된 헤더와 트레일러는 수신측의 동일한 계층에서만 사용되기 때문에 서로 동일한 계층끼리만 연락을 취하고 있는 것처럼 보인다.


계층으로 보는 데이터 송수신

송신측 작업

  • 애플리케이션 계층
    애플리케이션 간에 데이터를 주고받기 위해 필요한 정보를 써 넣는다.
  • 트랜스포트 계층
    애플리케이션을 나타내는 번호와 데이터를 조합하기 위한 정보를 써 넣는다.
    접속 환경에 맞춘 크기로 분할하며 분할된 하나 하나를 패킷이라고 한다.
  • 네트워크 계층
    송수신할 컴퓨터의 주소와 수신 불명인 경우 데이터를 파기하는 표시 등을 써 넣는다.
  • 데이터 링크 계층
    네트워크의 종류에 맞춘 형식으로 보낼 곳의 정보 등을 써 넣는다.
  • 물리 계층
    비트열을 신호로 변환한다.

수신측 작업

  • 물리 계층
    신호를 비트열로 변환한다.
  • 데이터 링크 계층
    헤더에 적힌 정보를 확인하고 지정된 프로토콜에게 전달한다.
  • 네트워크 계층
    헤더에 적힌 목적지가 맞는지 확인하고 지정된 프로토콜에게 전달한다.
  • 트랜스포트 계층
    헤더를 확인하고 데이터를 순서대로 나열하여 조합한다. 데이터에 문제가 있으면 그에 맞는 처리르 한다.
  • 애플리케이션 계층
    지정된 애플리케이션에게 전달하여 데이터를 사용한다.

패킷 통신

TCP/IP에서는 데이터를 일정한 크기(패킷)로 분할해서 송수신하는 패킷 교환이라는 방법으로 주고받기를 수행한다. 이러한 통신 방법을 패킷 통신이라고 한다.

  • 송신측
    패킷으로 나누고, 각 패킷에 목적지나 원래대로 되돌리기 위한 번호 등 필요한 정보를 추가한다. 회선을 사용하여 데이터를 송신한다.
  • 중계 지점 - 다른 네트워크로 가는 중간 과정
  • 다음은 어디로 가면 좋을지 등 새로운 정보가 추가된다.
  • 하나의 회선으로 여러 개의 데이터를 거의 동시에 주고받을 수 있다.
  • 이후 회선에 맞는 크기로 만들고 수신 불명인 경우는 파기하고 송신측에 연락한다.
  • 수신측
    자기 앞으로 온 패킷에만 작업을 수행하며, 만약 손상되어 있으면 해당 패킷만 다시 받는다. 헤더 정보를 기초로 해서 데이터를 되돌린다
profile
안녕하세요! 꾸준히 성장하고자하는 엔지니어 강면구입니다.

0개의 댓글