쉽고 빠르게 TCP/IP 이해하기

백지원·2024년 1월 12일
0

TCP/IP

패킷 통신의 등장 배경과.. TCP/IP

과거의 통신

패킷 통신이 등장하기 전에는 회선 교환 (Circuit Switching)이라는 통신 방식을 사용했습니다. 회선 교환 방식은 통신하고자 하는 두 호스트가 데이터를 전송하기 전에 미리 데이터 이동 경로를 설정해두는 방식입니다. 따라서 미리 설정해준 경로는 두 호스트만을 위한 전용 경로가 되고, 이 경로를 통해 통신의 처음부터 끝까지 모든 데이터가 왔다갔다 하게 됩니다.

그러나 회선 교환 방식은 과거 통신이며, 회선의 트래픽이나 이동 효율을 전혀 고려하지 않은 채 이동 경로를 정해버리기 때문에 데이터 전송 시 효율적이지 못한 경우가 발생합니다.

회선 교환 방식의 문제점

  1. 이미 설정된 이동 경로는 할당 해제될 때까지 다른 호스트들이 사용할 수 없게 됩니다. 말 그대로 회선을 독점하는 것이며, 실제로 데이터를 전송하고 있지 않아도 연결 설정이 끊어지지 않는 이상 다른 호스트들은 사용할 수 없습니다.

  2. 단절에 매우 취약합니다. 두 호스트간의 연결이 끊어지면 이동 경로를 다시 연결해줘야 하고, 그 사이 다른 호스트가 차지해버리면 해당 경로가 릴리즈 될 때까지 기다려야 합니다.

따라서, 이러한 문제점들을 보완하는 패킷이 등장하게 되었습니다.

☁️ 패킷 통신 ☁️

'패킷 교환 (Packet Switching)' 방식은 미리 이동 경로를 정하지 않고, 데이터를 패킷(Packet) 이라는 작은 단위로 나누어 다중 노드로 구성된 네트워크를 통해 전송하는 개념입니다. 전송될 데이터는 네트워크를 통해 전송되기 전에 패킷으로 쪼개어지고, 각 패킷은 고유 번호가 지정받아 네트워크를 거쳐 최종 수신지에 도착했을 때 번호 순서대로 결합되어 원래 데이터로 완성됩니다.

각 패킷은 전송 당시 회선 상황을 고려하여 가장 효율적인 경로를 설정하여 최종 목적지까지 이동하게 됩니다.

즉, 패킷을 수신한 중간 노드가 패킷의 최종 목적지 주소를 확인하고, 목적지까지 가는 다양한 경로 중 딱 그 상황에서 가장 최적이라고 판단되는 경로를 따라 패킷을 전송해주는 '라우팅' 과정이 추가됩니다. 이러한 라우팅을 수행해주는 중간 노드'라우터'입니다.

송신자는 해당 네트워크가 사용하는 프로토콜을 기반으로 데이터를 작은 단위로 분할하고, 분할된 데이터들 각각의 앞에 패킷 번호, 송신지 및 수신지 정보 등 다양한 정보를 담은 패킷 헤더를 붙여 최종적으로 '패킷'이라는 형태로 변환하여 데이터를 전송하게 됩니다.

각각의 라우팅은 중간 노드들의 혼잡도, 역량에 따르기 때문에, 패킷이 순서대로 수신 호스트에 도착한다는 보장은 전혀 없습니다. 따라서, 수신 호스트에서는 송신 호스트가 전송한 패킷이 모두 도착했음을 인지하면, 해당 네트워크의 프로토콜에 의거하여 패킷 헤더를 쭉 읽고, 패킷들을 순서대로 재배열합니다.

패킷 전송 방식을 사용하게 되면 중간 노드 각각에서 다른 노드로 이동할 때마다 최적의 경로를 통해 이동하고, 경로를 어느 한 패킷이 독점하지 않아 회선 교환 방식보다 훨씬 효율적입니다.

현 시대에는 거의 모든 통신이 패킷 전송 방식을 사용하고 있습니다. 그만큼 효율성이 입증되었다고 볼 수 있습니다.

TCP/IP

TCP/IP 는 TCP 프로토콜IP 프로토콜을 아울러 지칭하는 용어입니다. TCP 프로토콜신뢰성 있고 무결성을 보장하는 연결을 통해 데이터를 안전하게 전달해주는 전송 제어 프로토콜이고, IP 프로토콜은 패킷들을 가장 효율적인 방법으로 최종 목적지로 전송하기 위해 필요한 인터넷 프로토콜입니다.

TCP/IP 4계층과 OSI 7계층의 차이

두 계층 모두 데이터 통신을 표현한 계층이긴 하지만 OSI 7계층은 데이터 통신에 필요한 계층과 역할을 정확하게 정의하려고 한 모델이다. 그에 반해 TCP/IP 4계층은 현재 인터넷에서 사용되는 프로토콜로, 좀 더 실무적이면서 프로토콜 중심으로 단순화된 모델이라고 볼 수 있습니다.

TCP/IP 4계층

TCP/IP 는 총 4개의 계층으로 이루어져 있으며, 각 계층의 역할이 명확하게 구분되어 있습니다.

4계층 : 응용 계층 (Application)
3계층 : 전송 계층 (Transport)
2계층 : 인터넷 계층 (Internet)
1계층 : 네트워크 인터페이스 계층 (Network Interface)

송신자가 데이터를 보내기 위해서는 4계층으로부터 1계층 까지 순차적으로 거쳐가며 헤더 정보가 붙어 데이터를 캡슐화합니다.그리고 수신자는 받은 데이터를 1계층부터 4계층까지 순차적으로 거쳐가며 데이터를 역캡슐화해가며 최상 계층인 응용 계층에 데이터가 도달하게 됩니다.

데이터 캡슐화: 각 계층을 지나면서 해야할 일을 헤더에 붙이는 작업을 데이터 캡슐화(Encapsulation)라고 한다.

이 과정을 도식화하면 아래와 같은 그림이 나오게 됩니다.

IP (인터넷 프로토콜)

  • 지정한 IP 주소에 데이터의 조각들을 패킷(Packet)이라는 통신 단위로 최대한 빨리 목적지로 보냅니다.
  • 패킷의 순서가 바뀌거나 일부 누락되더라도 상관하지 않고 패킷 전송에만 집중합니다.
  • 때문에 IP 프로토콜은 패킷의 순서를 보장할 수 없고 패킷이 중간에 유실되어도 이에 대한 방안이 없습니다.

TCP (전송 제어 프로토콜)

TCP는 통신 과정에서 발생할 수 있는 문제들에 대하여 다음 3가지를 보장합니다.

  • 패킷의 도착
  • 패킷의 순서
  • 흐름 제어

가상의 연결 과정을 통해 데이터의 도착을 보장하고, 세그먼트에 순서 정보를 포함함으로써 순서를 보장합니다.
패킷이 잘 도착했는지 여부를 확인하기 위해 3 way 핸드쉐이킹이라는 방법을 사용합니다.

또한 수신측이 송신측보다 데이터 처리 속도가 빠르면 문제없지만 송신측의 속도가 빠를 경우, 수신측에서 제한된 저장 용량을 초과한 이후 도착하는 데이터는 손실 될 수 있으며, TCP에서는 남은 저장 용량 정보를 담아 응답함으로써 송신측과 수신측의 속도를 제어합니다.


📖 참고 자료

0개의 댓글