본문 바로가기

CS/네트워크

TCP/IP 4계층 모델

반응형
TCP/IP 4 계층 모델

 

인터넷 프로토콜 스위트(Internet Protocol Suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합이고, 이를 OSI 7 계층이나 TCP/IP 4 계층이라 말한다. 이 글은 TCP/IP 4계층을 설명한 글이다.

 

TCP/IP 4 계층 구조

  • 애플리케이션 계층
  • 전송 계층
  • 인터넷 계층
  • 네트워크 인터페이스 계층 (네트워크 접근 계층)

 

애플리케이션 계층

FTP, HTTP, SSH, SMTP, DNS 등 응용 프로그램이 사용되는 프로토콜 계층이며 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 계층이다. (사용자 응용프로그램 인터페이스를 담당)

ex) 크롬

 

전송 계층

전송 계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하며 통신 노드 간의 연결 제어을 담당한다.

연결 지향 테이터 스트림 지원, 신뢰성, 흐름 제어를 제공하며, 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때의 중계 역할을 수행한다. (종단 간(End-to-End)에 신뢰성 있고 정확한 데이터 전송을 담당)

 

TCP와 UDP

  • TCP - 패킷 사이의 순서를 보장하고 연결 지향 프로토콜을 사용하여 연결의 신뢰성을 보장한다. (데이터의 분실, 중복, 순서가 뒤바뀜 등을 자동으로 보정한 후 송수신 데이터를 전달한다.)
  • UDP - 순서를 보장하지 않고 수신 여부를 확인하지 않으며 단순히 데이터만 주고받는다. ex) 전화, 게임

 

TCP 가상 회선 패킷 교환 방식

  • 단말기 상호 간에 논리적인 가상 통신 회선을 미리 설정한 후 설정된 경로에 따라 패킷들을 순서대로 전송하는 방식
  • 통신이 이루어지는 컴퓨터 사이의 데이터 전송의 신뢰성 보장
  • 패킷의 송수신 순서가 같다.

UDP 데이터그램 패킷 교환 방식

  • 연결 경로를 설정하지 않고 인접한 노드들의 트래픽 상황을 감안하여 각각의 패킷들을 순서에 상관없이 독립적으로 전송하는 방식
  • 패킷마다 전송 경로가 달라 송수신 순서가 다를 수 있다.
  • 부하가 적거나 간헐적인 통신에 적합하다.

TCP 연결 3 Way Handshake

  1. 클라이언트는 서버에 클라이언트의 Sequence number를 담아 SYN을 보낸다.
  2. 서버는 클라이언트의 SYN을 수신하고 서버의 Sequence number를 담은 SYN과 승인번호로 클라이언트의 Sequence number에 + 1 해서 ACK를 보낸다.
  3. 클라이언트는 서버의 Sequence number + 1 한 값인 승인번호를 담아 ACK를 서버에 보낸다.

 

TCP 연결 해제 4 Way Handshake

  1. 클라이언트는 연결을 종료하고자 서버에 FIN 플래그를 보내고 FIN_WAIT 1 상태로 변경된다.
  2. 서버는 클라이언트로부터 FIN 플래그를 받은 뒤 ACK 패킷을 보낸 후 데이터를 모두 보낼 때까지 서버는 CLOSE_WAIT 상태로 클라이언트는 FIN_WAIT 2 상태로 변경된다.
  3. 서버가 연결을 종료할 준비가 되면, 연결을 해제할 준비가 되었다는 FIN 플래그를 클라이언트에 전송하고, 서버는 LAST_ACK 상태가 된다.
  4. 클라이언트는 서버에 ACK를 보내 응답하고 클라이언트의 상태는 FIN_WAIT 2에서 TIME-WAIT으로 변경되고, 클라이언트의 ACK 응답을 받은 서버는 연결을 해제한다. (클라이언트는 ACK를 보낸 이후 일정 시간 동안 기다리게 되는데, 아직 서버에서 받지 못한 데이터가 연결이 해제되어 유실되는 경우를 대비해 지연 패킷을 기다리는 TIME_WAIT 상태를 일정 시간 유지하게 된다.)

인터넷 계층

인터넷 계층은 네트워크와 네트워크를 연결하여 직접 연결되지 않은 컴퓨터 간에 데이터 통신을 구현하는 역할로 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층이다.

IP, ARP, ICMP 등이 있으며 패킷을 수신해야 할 상대의 주소를 지정하여 데이터를 전달한다. 비연결형 특징으로 상대가 제대로 수신했는지 확인할 수 없다.

 

네트워크 인터페이스 계층

네트워크 인터페이스 계층은 전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달하는 장치 간에 신호를 주고받는 규칙을 정하는 계층이다.

 

계층 간 데이터 송수신 과정

애플리케이션 계층에서 전송계층으로 클라이언트가 보내는 요청 값들이 캡슐화 과정을 거쳐 전달되고, 다시 링크 계층을 통해 해당 서버와 통신을 하고 해당 서버의 링크 계층으로부터 애플리케이션까지 비 캡슐화 과정을 거쳐 데이터를 전송한다.

캡슐화와 비캡슐화

캡슐화 과정은 상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정이고 비 캡슐화는 반대로 하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정이다.

 

 

 

참고

https://sjlim5092.tistory.com/35

 

TCP 3 way handshake 내용 정리

TCP three-way handshake 란? TCP 는 Connection-Oriented (연결 지향) 프로토콜 입니다. 이 말은 프로토콜에 의해 연속적으로 패킷의 상태 정보를 확인하고 유지하는 것을 기본으로 한다고 생각할 수 있습니

sjlim5092.tistory.com

 

반응형

'CS > 네트워크' 카테고리의 다른 글

캐시란 무엇인가  (2) 2025.02.04