[네트워크] IP, TCP, UDP

Yuni·2022년 9월 8일
0

코드스테이츠

목록 보기
32/39

패킷교환 방식

패킷교환 방식은 패킷이라는 단위로 데이터를 잘게 나누어 전송하는 방식이다. 각 패킷에는 출발지와 목적지 정보가 있기 때문에 가장 효율적인 방식으로 이동할 수 있다.

IP(인터넷 프로토콜)

IP는 출발지와 목적지의 정보를 IP 주소라는 특정한 숫자값으로 표기하고 패킷단위로 데이터를 전송하게 되었다.

IP 프로토콜의 한계

  • 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성 : 중간에 패킷이 사라질 수도 있고 패킷의 순서도 보장할 수 없음

TCP

연결 지향 - TCP 3 way handshake(가상 연결)

  1. 클라이언트는 서버에 접속을 요청하는 SYN(Synchronize) 패킷을 보낸다.
  2. 서버는 SYN 요청을 받고 클라이언트에게 요청을 수락한다는 ACK(Acknowledgment)와 SYN가 설정된 패킷을 발송하고 클라이언트가 다시 ACK로 응답하기를 기다린다.
  3. 클라이언트가 서버에게 ACK를 보내면 이후에는 연결이 성립되며 데이터를 전송할 수 있다.

만약 서버가 꺼져있다면 클라이언트가 SYN을 보내고 서버에서 응답이 없기 때문에 데이터를 보내지 않는다. 현재에는 최적화가 이루어져 3번에서 클라이언트가 ACK를 보낼때 데이터를 함께 보내기도 한다.

데이터 전달 보증

TCP는 데이터 전송이 성공적이라면 이에 대한 응답을 돌려주기 때문에 IP 패킷의 한계인 비연결성을 보완할 수 있다.

순서 보장

만약 패킷이 순서대로 도착하지 않는다면 TCP 세그먼트에 있는 정보로 다시 패킷 전송을 요청할 수 있기 때문에 IP 패킷의 한계인 비신뢰성을 보완할 수 있다.

신뢰할 수 있는 프로토콜

UDP(사용자 데이터그램 프로토콜, User Datagram Protocol)

  • 흰 도화지에 비유
  • 비 연결지향
  • 데이터 전달 보증 안됨
  • 순서 보장 안됨
  • ⭐ 단순하고 빠르기때문에 신뢰성보다 연속성이 중요한 서비스(ex. 실시간 스트리밍)에 자주 사용됨

UDP는 IP 프로토콜에 PORT, 체크섬 필드 정보만 추가된 단순한 프로토콜이다. TCP보다 신뢰성은 낮지만 3 way handshake 방식을 사용하지 않아 상대적으로 속도가 빠르다. HTTP3는 UDP를 사용하며 이미 여러 기능이 구현된 TCP보다 UDP는 커스터마이징이 가능하다는 장점이 있다.

📌 결론

TCP가 가지고 있는 기능들을 UDP는 가지고 있지 않기 때문에 신뢰성이 낮지만 속도는 상대적으로 빠르다.

profile
배운 것을 기억하기 위해 기록합니다 😎

0개의 댓글