본문 바로가기
휴지통/CS

TCP/IP

by 신재권 2023. 8. 23.

TCP/IP 4계층이란?

TCP/IP는 컴퓨터 네트워크에서 데이터 통신을 위한 프로토콜 집합으로, 이를 효율적으로 관리하기 위해 계층화된 구조인 4계층으로 나눈다.

계층화를 통해 유지보수를 용이하게 하고, 각 계층은 서로 독립적으로 동작하므로, 부분 업그레이드 및 교체가 가능하다.

애플리케이션 계층

OSI 7 계층에서 세션 계층, 표현 계층, 응용 계층이 해당된다.

사용자와 네트워크 간의 상호작용을 위한 프로토콜을 지원한다.

사용자 애플리케이션에 네트워크 서비스를 제공하고, 데이터의 형식, 보안, 암호화 등을 처리한다.

HTTP, SMTP, FTP, DNS 등 프로토콜을 지원한다.

전송 계층

OSI 7계층에서 전송 계층이 해당된다.

통신 호스트 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다.

TCP, UDP 프로토콜을 지원한다.

인터넷 계층

OSI 7계층의 네트워크 계층에 해당한다.

통신 노드 간의 IP 패킷을 전송하는 기능과 라우팅 기능을 담당한다.

IP 주소를 부여하고, 라우팅, 패킷의 분할 및 조립을 한다.

IP, ARP, RARP 프로토콜을 지원한다.

네트워크 인터페이스 계층

OSI 7계층의 물리계층과 데이터 링크 계층이 해당된다.

물리적인 네트워크와의 연결과 데이터 전송을 관리한다.

물리적인 주소로 MAC을 사용한다.

Ethernet, Wi-Fi, PPP 등 프로토콜을 지원한다.

TCP

신뢰성 있는 연결 지향 데이터 전송을 담당한다.

3-way-handshake, 4-way-handshake, 흐름 제어, 오류 복구 등을 제공한다.

UDP

비연결형 데이터 전송을 담당한다.

빠른 전송을 중요시하는 데이터에 사용된다.

3-way-handshake

3-way-handshake는 TCP 연결 설정 과정에서 일어난다.

  1. 클라이언트가 서버에 SYN 패킷 전송
  2. 서버가 SYN 패킷 수신 후 ACK+SYN 패킷을 보낸다.
  3. 클라이언트가 서버에 ACK 패킷을 전송하여 연결이 설정된다.

4-way-handshake

4-way-handshake는 TCP 연결 해제 과정에서 일어난다.

  1. 클라이언트가 서버에 FIN 패킷을 전송한다.
  2. 서버가FIN 패킷 수신 후, ACK 패킷을 보낸다.
  3. 조금 시간이 지난 후 서버가 클라이언트에 FIN 패킷을 전송한다.
  4. 클라이언트가 FIN 패킷 수신 후, ACK 패킷을 보내서 연결을 해제한다. 바로 연결이 끊어지지 않고 TIME_WAIT 상태가 되는데, 어느정도 지난 후, 클라이언트와 서버의 연결이 끊어진다.

TIME_WAIT

지연 패킷이 발생했을 때 데이터 무결성을 해결하기 위해 존재한다.

두 배의 최대 세그먼트 수명(MSL) 시간을 기다립니다.

기본적으로 MSL은 2분입니다.

즉, 소켓이 바로 소멸되지 않고 일정 시간 유지되는 상태를 말하며, 지연 패킷 등의 문제점을 해결하는 데 쓰인다.

또한, 연결을 올바르게 닫힌 상태로 만들기 위해 존재한다. 만약 서버의 상태가 CLOSED 가 아닌 LAST_ACK로 되어 있으면, 다음 연결시 오류가 발생한다.

3-way-handshake는 클라이언트와 서버 간의 연결 설정을 보장하며, 4-way-handshake는 연결 해제를 안전하게 처리하는데 사용된다.

즉, TCP는 신뢰성있는 연결 지향 데이터 전송을 지원하게 되며, 데이터의 손실을 최소화하고 순서를 보장한다.

UDP는 데이터 전송의 신속성을 중요시하여, 신뢰성보다 빠른 전송을 원하는 상황에서 사용된다.

'휴지통 > CS' 카테고리의 다른 글

[OS] System Structure & Program Execution  (0) 2023.08.31
[OS] Introduction to Operating Systems  (0) 2023.08.30
스레드의 종류  (0) 2023.08.15
병목현상  (0) 2023.08.13
OS 스케줄러  (0) 2023.08.09