Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

가능세계

[Network] TCP 개념과 TCP/IP 4계층 정리하기 본문

Blog/Network

[Network] TCP 개념과 TCP/IP 4계층 정리하기

cona-tus 2023. 9. 10. 07:52

network-icon

 

오늘날 인터넷 통신의 대부분은 패킷 통신으로 이루어집니다. 패킷 통신 규약 중 하나인 TCP/IP는 각각 전송 제어 프로토콜과 인터넷 프로토콜을 아울러 지칭하는 용어입니다.

 

IP(Internet Protocol)는 패킷을 정확한 목적지 전송합니다. 다만 보내는 행위 자체에 집중하며, 데이터가 확실히 도착할 것이라는 약속은 하지 않습니다. IP에는 패킷의 상태를 관리하거나 기억하는 기능이 없기 때문에 패킷은 분실되거나 손상될 수 있고, 순서가 뒤바뀌거나 중복 전송 되는 등 불안정한 단점들이 존재합니다.

 

 

[Network] IP(Internet Protocol)와 패킷(Packet) 이해하기

인터넷은 상호(inter) 연결된 네트(net)워크로, 컴퓨터들이 서로 통신 가능한 방대한 네트워크라 할 수 있습니다. 그렇다면 인터넷에서 어떻게 데이터를 주고받는 것일까요? 우선 IP에 대해 알아야

co-natus.tistory.com

 

여기서 TCP(Transmission Control Protocol)가 필요해집니다.

 

 

1. TCP(Transmission Control Protocol)란 무엇인가요?

TCP는 IP의 상위 프로토콜로서, 패킷 전송을 제어하여 안정성을 보장하는 프로토콜입니다.

 

TCP에는 손실된 패킷, 순서가 잘못된 패킷, 중복된 패킷, 손상된 패킷 등의 문제를 해결하는 메커니즘이 포함되어 있습니다. TCP는 손상되거나 손실된 패킷이 있다면 재요청하고, 도착한 패킷들을 올바른 순서로 재조립합니다.

 

그런데 어떤 것이 분실되고 손상되었는지 어떻게 알 수 있을까요?

 

1-1. TCP 세그먼트(Segment)

tcp-ip

TCP 패킷은 세그먼트라고 합니다. TCP 세그먼트는 제어 정보를 포함하는 헤더와 전송될 데이터로 구성되어 있습니다.

 

헤더에는 각각 시퀀스 번호가 있어서 세그먼트가 분실되면 어느 세그먼트인지 알아내서 재전송할 수 있습니다. 또한 오류 검출 정보도 포함되어 있기 때문에 손상된 세그먼트도 찾아낼 수 있습니다. 수신자는 각 세그먼트를 확인하여 응답을 보내야 합니다. 만약 오류가 발생하면 송신자에게 재전송을 요청합니다.

 

이로써 안정적인 데이터 전달과 신뢰성을 보장하게 됩니다.

 

각 TCP 세그먼트는 IP 패킷에 실려서 전송됩니다. 이제 TCP/IP 통신 프로세스를 살펴봅시다.



2. TCP/IP 모델의 4계층

TCP/IP는 통신 프로세스를 4개의 개별 계층으로 나눕니다.

 

2-1. 4계층을 살펴봅시다

TCP/IP로 통신할 때 4계층순서대로 거쳐 상대와 통신합니다. 각 계층은 아래 계층에서 제공하는 서비스를 이용하고, 바로 위 계층에 서비스를 제공합니다.

4layer

 

송신하는 측은 애플리케이션 계층에서부터 내려가며(⬇️), 각 계층을 거칠 때마다 헤더에 필요한 정보가 추가됩니다. 반대로 수신하는 측은 네트워크 계층부터 위로 올라가며(⬆️), 해당 계층마다 사용한 헤더를 삭제합니다. 이렇게 정보를 감싸는 것을 캡슐화라고 합니다.

 

2-2. 계층을 나누는 이유가 무엇인가요?

각 계층은 통신 프로세스의 서로 다른 부분을 담당하며, 자기 일만 집중적으로 수행합니다. 계층이 연결된 부분만 결정되어 있어, 자신이 담당하는 부분만 고려하면 되므로 설계가 편리합니다. 만약 사양이 변경된다면 특정 계층만 업데이트할 수 있습니다.

 

이제 각 계층에 대해 알아봅시다.

 

1. 애플리케이션 계층(Application Layer)

애플리케이션 계층은 TCP/IP 모델의 최상위 계층입니다. 이 계층에는 사용자가 일반적으로 상호작용하는 웹 브라우저, 이메일 클라이언트, 파일 전송 등 데이터를 교환하는 모든 프로그램이 포함됩니다.

 

2. 트랜스포트 계층(Transport Layer)

트랜스포트 계층은 네트워크로 접속되어 있는 두 장치 간에 안정적인 데이터 흐름을 제공합니다. 이 계층의 역할은 데이터를 패킷이라고 하는 더 작은 조각으로 나누는 것이며, 예로는 TCP와 UDP 두 가지 프로토콜이 있습니다.

 

3. 네트워크 계층(Network or Internet Layer)

네트워크 계층은 네트워크 상에서 패킷의 이동을 다룹니다. 이 계층은 패킷이 어떠한 경로를 거쳐 특정 대상까지 전송되는지에 관심이 있습니다.

 

4. 링크 계층(Data Link or Network Interface Layer)

링크 계층은 네트워크에 접속하는 하드웨어적인 면을 다룹니다. Wi-Fi, 이더넷 케이블, 네트워크 인터페이스 카드, 컴퓨터의 장치 드라이버 등을 사용하여 데이터를 보내고 받는 물리적 부분을 처리하는 계층입니다.

 

2-3. 이렇게 상상해 볼까요?

delivery

 

당신은 아주 멋진 그림 퍼즐을 완성했습니다. 너무 멋져서 완성된 퍼즐을 우편을 통해 친구에게 보내려고 합니다.

 

  1. 당신이 퍼즐을 우체국으로 가져가면 이것이 애플리케이션 계층입니다.
  2. 우체국 직원은 퍼즐을 온전하게 보내는 것보다, 각 퍼즐 조각을 개별적으로 보내는 것이 더 쉽다고 결정합니다. 직원은 퍼즐을 분할하고, 그 작은 조각들을 포장합니다. 이것이 트랜스포트 계층입니다.
  3. 그리고 퍼즐 조각이 담긴 각 상자에 친구의 특정 주소를 적습니다. 이것이 네트워크 계층입니다.
  4. 다음으로, 다른 직원이 상자에 적힌 주소를 보고 배송을 위해 상자들을 트럭에 싣습니다. 이 특정 트럭이 링크 계층입니다.

 

트럭이 상자들을 배달하면 친구는 최종 그림을 보기 위해 각 퍼즐 조각을 재조립하고, 완성된 그림을 보며 기뻐할 것입니다!




참고