Web

TCP UDP 란?

JUNGKEUNG 2024. 6. 4. 21:09
반응형

TCP UDP 알기 전에 인터넷 네트워크가 무엇인지부터 알고 가자

 

인터넷 네트워크란?


인터넷 네트워크는 각각 컴퓨터한테 IP주소가 부여되고 그 IP를 통해 서로 주고받을 수 있다.

그럼 IP 인터넷 프로토콜 역할이 무엇인가?

1. 지정한 IP 주소(IP Address)에 데이터 전달

2. 패킷(Packet)이라는 통신 단위로 데이터 전달 

출처 : 인프런 HTTP강의

 

 

 

패킷이란?


컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록이다. 즉, 컴퓨터 네트워크에서 데이터를 주고받을 때 정해 놓은 규칙이다.

자신이 물건을 구입할 때 우편 주소에 자신의 주소와 보내는 사람의 주소 가 IP라고 생각하고 박스를 패킷이라고 생각하면 된다. 박스 안에는 전달하는 물건이 있는 것처럼 패킷 안에는 우리가 전달하는 데이터가 있는 것이다.

 

 

IP 프로토콜의 한계가 있다.

 

 

1. 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킹 전송

출처 : 인프런 HTTP강의

 

 

2. 비신뢰성 : 중간에 패킷이 사라지거나 패킷이 순서대로 안오는 상태을 말한다

 

 

출처 : 인프런 HTTP강의

3. 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라 생각해보자. 

 

 

 

인터넷 프로토콜 스택의 4 계층


애플리케이션 계층 - HTTP, FTP
전송 계층 - TCP,UDP
인터넷 계층 - IP
네트워크 인터페이스 계층

 

 

 

TCP 전송 제어 프로토콜(Transmission Control Protocol)


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

2. 데이터 전달 보증

3. 순서 보장

4. 신뢰할 수 있는 프로토콜

5. 현재는 대부분 TCP 사용

 

 

 

TCP 3 way handshake


1. SYN : 접속 요청 (synchronize sequence numbers)

2. ACK : 요청 수락 (acknowledgment)

참고 : ACK와 함께 데이터 전송 가능

 

 

 

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


1. 하얀 도화지에 비유 (기능이 거의 없음)

2. 연결 지향 - 3 way handshake 없음

3. 데이터 전달 보증 없음

4. 순서 보장 없음

5. 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름

6. IP와 거의 같다 , 도메인, 실시간 동영상 서비스에서 사용(PROT)

 

 

 

PROT 가 무엇일까?


한 번에 둘 이상 연결해야 하면?

출처 : 인프런 HTTP강의

PROT - 같은 IP 내에서 프로세스 구분

출처 : 인프런 HTTP강의

 

 

총 정리


1. 패킷(Packet)

  • 패킷은 컴퓨터 네트워크에서 전달되는 데이터의 형식화된 블록이다.
  • 데이터를 주고받을 때의 규칙을 정의한다.
  • 예시로는 물건을 보내는 과정에서의 우편 주소와 보내는 사람의 주소를 비유로 들 수 있다. 박스 안에는 전달하는 데이터가 담겨 있다.

 

2. IP 프로토콜의 한계

  • 비연결성: 데이터를 받을 대상이 없거나 서비스가 불능 상태여도 패킷을 전송한다.
  • 비신뢰성: 중간에 패킷이 사라지거나 순서가 뒤바뀔 수 있다.
  • 프로그램 구분: 하나의 IP 주소를 사용하는 서버에서 여러 애플리케이션이 통신할 때, 구분하기 어렵다.

 

3. 인터넷 프로토콜 스택의 4 계층

  • 애플리케이션 계층: HTTP, FTP 등의 프로토콜이 존재한다.
  • 전송 계층: TCP와 UDP가 있다.
  • 인터넷 계층: IP 프로토콜이 위치한다.
  • 네트워크 인터페이스 계층: 네트워크 하드웨어와 소프트웨어를 관리한다.

 

4. TCP (Transmission Control Protocol)

  • 연결 지향성을 가진다.
  • 데이터 전달 보증과 순서 보장을 제공한다.
  • 신뢰성 있는 프로토콜로 현재 대부분의 통신에서 사용된다.
  • 3-way handshake를 통해 가상 연결을 설정한다.

 

5. TCP 3-way handshake

  1. SYN: 접속 요청 (synchronize sequence numbers)
  2. ACK: 요청 수락 (acknowledgment)
  3. ACK와 함께 데이터 전송도 가능하다.

 

6. UDP (User Datagram Protocol)

  • 연결 지향성이 없다.
  • 데이터 전달 보증과 순서 보장이 없다.
  • 단순하고 빠른 특징을 가지며, 주로 도메인과 실시간 동영상 서비스에서 사용된다.

 

 

Script


TCP 는 데이터 전달 보증과 데이터 순서를 보장해준다. 3-way handshake 를 통해 가상 연결을 설정해준다. 

UDP는 데이터 전달 보증과 순서 보장이 없다 그러다 보니 빠른 속도로 데이터를 처리한다. 그래서 UDP 같은 경우에는 Youtube에서 자주 사용되고 있다. 그리고 데이터를 전달 할때는 패킷을 이용하는데  패킷은 네트워크에서 전달되는 데이터의 형식화된 블록이다. 데이터를 주고 받을 때의 규칙을 정의한다.

TCP, UDP는 OSI 7계층 중 전송 계층에 해당 되며 애플리케이션 계층, 전송 계층, 인터넷 계층, 네트워크 인터페이스 계층을 통하여 전달하며 프로토콜 같은 경우 비연결성, 비신뢰성, 프로그램 구분 의 한계가 나타나며 비연결성 같은 경우 데이터를 받을 대상이 없거나 서비스가 불능 상태여도 패킷을 전송하며 비신뢰성은 중간에 패킷이 사라지거나 순서가 바뀔 수가 있다. 프로그램 구분은 하나의 IP 주소를 사용하는 서버에서 여러 애플리케이션이 통신할 때, 구분하기 어렵다.

 

 

 

참고 강의


https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard

'Web' 카테고리의 다른 글

CORS란?  (0) 2022.09.25
Nginx 와 Apache  (0) 2021.11.13
인코딩 디코딩  (0) 2021.11.09
DB Connection Pool  (0) 2021.11.05
아스키코드 vs 유니코드  (0) 2021.11.03