CS

[인터넷 네트워크] - TCP, UDP

StoneSeller 2023. 4. 5. 01:25

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

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

 

1. 메신저 프로그램에서 "안녕하세요" 라는 메신저를 작성한다.

2. SOCKET 라이브러리를 통해 OS 계층에 메세지를 넘긴다.

3. OS에서 메세지에다가 TCP 정보를 씌운다.

4. TCP 밑의 IP 계층에서도 IP 관련 정보를 씌운 IP 패킷을 생성한다.

5. 네트워크 인터페이스(LAN 카드)를 통해서 나갈 때 Ethernet frame을 추가하여 전송된다.

 

TCP/IP 패킷 정보

IP 만으로 해결되지 못했던 순서 제어 문제 등을 해결하기 위해 TCP 정보를 추가한다.

 

TCP의 특징

Transmission Control Protocol = 전송 제어 프로토콜

  • 연결지향 : 패킷을 받을 대상이 있는지 없는지를 먼저 확인한다. (TCP 3 way handshake)
  • 데이터 전달 보증 : 패킷이 중간에 누락되었는지 아닌지를 알 수 있다.
  • 순서 보장
  • 대부분의 애플리케이션에서 TCP를 사용한다.

 

TCP 3 way handshake

1. 클라이언트에서 서버로 synchronize 메세지를 보낸다.
2. 받은 경우 서버가 받았다는 ACK 정보와 연결해달라는 SYN 메세지를 클라이언트에게 보낸다. 
3. 클라이언트가 요청 수락을 서버에게 다시 보낸다.

이런 방식의 3 way handshake 방식으로부터 클라이언트와 서버가 서로 신뢰할 수 있다.

연결 과정

 

데이터 전달 보증

TCP가 붙게되면 클라이언트에서 서버로 데이터를 전송하는 경우, 서버가 데이터를 성공적으로 받았다면 데이터를 잘 받았다고 클라이언트에게 응답을 보내주기 때문에 전달 보증이 가능하다.

 

순서 보장

큰 메세지를 패킷1, 패킷2, 패킷3으로 잘라서 순서대로 전송했는데 서버에서 패킷1, 패킷3, 패킷2 순서로 도착하게 된다면
클라이언트에게 패킷2부터 다시 보내라고 요청한다.

 

⇒ 이 모든 것들이 TCP 데이터 안에 전송 제어 정보, 순서 정보, 검증 정보들이 추가되어있기 때문에 가능하다.
그렇기 때문에 TCP를 신뢰할 수 있는 프로토콜이라고도 부른다.

 

 

UDP

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

  • 연결 지향 X, 데이터 전달 보증 X, 순서 보장 X
  • TCP와 같은 계층의 프로토콜이지만 기능이 거의 없다.
  • IP와 거의 같지만 PORT 라는 것이 추가되어 있다.
    • PORT는 하나의 IP에서 여러 애플리케이션들을 사용할 때 각 애플리케이션들의 패킷인지 구분할 때 사용하는 것이다.
    • TCP에도 PORT가 있다.
  • TCP는 3-way handshake를 할 때 시간이 좀 더 소요된다. UDP는 이러한 과정을 거치지 않기 때문에 단순하고 빠르다는 장점이 있다.
  • 지금까지는 영상처럼 실시간성이 중요한 데이터까지도 TCP가 점령했는데, 최근에는 handshake하는 과정까지 줄여보자는 목적으로 UDP가 각광받고 있다.

 


728x90