<관련 포스팅>
[네트워크 계층 모델] TCP/IP 4계층

[네트워크 계층 모델] OSI 7계층
[네트워크] OSI 7계층 기기(허브, 브리지, 스위치, 라우터)

차이점 정리

특징 및 활용

  • 둘 모두 전송 계층에서 사용되는 프로토콜로, 패킷 전달을 담당
  • 인터넷 뱅킹에는 느리지만 신뢰도가 높은 TCP 사용(HTTP, Email)
  • 일반 웹서핑이나 실시간 스트리밍에는 신뢰성이 낮아도 빠른 UDP 사용(DNS, Broadcasting)
  TCP UDP
신뢰성(재전송) O X
연결 방식 연결형 프로토콜 비연결형 프로토콜
데이터의 경계 구분 X(바이트 스트림) O(메세지 스트림)
속도 느림 빠름
전송 계층 PDU segment datagram
통신 방식 1:1 1:1 / 1:N / N:N
패킷 교환 방식 가상 회선 방식 데이터그램 방식

 

통신 흐름

 


TCP

정의 및 특징

  • TCP(Transmission Control Protocol)
  • 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜
  • 흐름 제어와 혼잡 제어를 지원하며 데이터의 순서를 보장
  • 가상회선 패킷 교환 방식’을 사용함
  • 연결을 설정(3-way handshaking)과 해제(4-way handshaking)
  • 스트림 전송으로, 전송 데이터의 크기가 무제한임

 

가상회선 패킷 교환 방식

  • 각 패킷에는 가상회선 식별자가 포함되며 모든 패킷을 전송하면 가상회선이 해제됨
  • 패킷들은 전송된 순서대로 도착하는 방식

 

TCP 연결 방식(3-way handshaking)

SYN(Synchronization): 연결 요청 플래그
ACK(Acknwledgment): 응답 플래그
ISN(Initial Sequence Numbers): 초기 네트워크 연결을 위해 할당된 32bit 고유 시퀀스 번호

https://www.mdpi.com/2076-3417/6/11/358

1. SYN 단계(클라이언트 → 서버)

  • 클라이언트의 ISN을 담아 보냄
  • ISN: 새로운 TCP 연결의 첫 번째 패킷에 할당된 임의의 시퀀스 번호로, 장치마다 다를 수 있음

2. SYN + AKC 단계(서버 → 클라이언트)

  • 요청을 수신했다는 의미로 서버의 ISN을 보내며, 승인번호로 클라이언트의 ISN + 1을 전송

3. ACK 단계(클라이언트 → 서버)

  • 서버의 ISN + 1값을 승인번호로 담아 ACK를 전송

⇒ 이 과정 이후로 신뢰성이 구축되고 데이터 전송이 시작

 

TCP 해제 방식(4-way handshaking)

https://gyoogle.dev/blog/computer-science/network/TCP 3 way handshake & 4 way handshake.html

1. 연결 종료 요청(클라이언트 → 서버)

  • 클라이언트가 FIN 세그먼트를 전송하고, FIN_WAIT_1 상태로 들어가 서버의 응답을 기다림

2. 요청 확인(서버 → 클라이언트)

  1. 서버는 ACK라는 승인 세그먼트를 전송하고, CLOSE_WAIT 상태로 들어감
  2. 클라이언트는 ACK를 받으면 FIN_WAIT_2 상태에 들어감

3. 임시 연결 종료(서버 → 클라이언트)

  1. 서버는 일정 시간 이후에 FIN이라는 세그먼트를 전송하고 LASK_ACK 상태가 됨
  2. 클라이언트는 ACK를 받으면 TIME_WAIT 상태가 됨

4. 연결 종료(클라이언트 → 서버)

  • TIME_WAIT 상태가 되면 서버로 ACK를 전송
  • 서버는 이제 완전히 CLOSED 상태가 되고 소켓을 닫음
  • 클라이언트도 어느 정도 시간을 대기한 후, 연결이 닫히고 CLOSED 상태가 됨
더보기
  1. 지연 패킷이 발생할 경우를 대비하기 위함
  2. 패킷이 뒤늦게 도달하고 이를 처리하지 못한다면 데이터 무결성 문제가 발생함
  3. 두 장치가 연결이 닫혔는지 확인하기 위함
  4. 만약 LAST_ACK 상태에서 닫힌다면, 다시 새로운 연결을 하고자 할 때 장치는 줄곧 LASK_ACK로 되어있기 때문에 접속 오류가 발생함

 


UDP

정의 및 특징

  • UDP(User Datagram Protocol)
  • 비연결형 프로토콜로, 송수신 신호 절차를 없이 보내는 쪽에서 일방적으로 데이터를 전달함
  • TCP와 달리 연결 설정이 없으며, 혼잡 제어를 하지 않기 때문에 TCP보다 전송 속도가 빠름
  • 순서를 보장하지 않고 수신 여부를 확인하지 않음
  • 단순히 데이터만 주는 ‘데이터그램 패킷 교환 방식’을 사용
  • 데이터그램(메시지) 단위로 전송되며 크기 제한이 있음

 

데이터그램 패킷 교환 방식

  • 패킷이 독립적으로 이동하며 최적의 경로를 선택
  • 하나의 메세지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있으며 도착한 순서가 다를 수 있는 방식

 


References

+ Recent posts