GDSC Sookmyung 활동/10 min Seminar

TCP&UDP

성 연 2021. 1. 30. 04:14

- 프로토콜(Protocol) : 데이터 통신규약

OSI 참조모델 7계층

    • 프로토콜 계층구조

    - 크고 복잡한 시스템 구성 효율적

    - 각 계층 독립적, 시스템 구성 요소 간 update 용이


1. Transport Layer

서로 다른 End system에서 동작하는 프로세스 간 논리적 통신을 제공하는 계층


인터넷 Transport layer 프로토콜에는 TCP와 UDP가 있다.

 

2. TCP (Transmission Control Protocol)

 

  • 신뢰적 데이터 전송

데이터가 보낸 순서대로, 손실 없이, 반드시 도착한다.

 

  • 흐름 제어 (flow control)

송신자가 수신자의 버퍼를 오버플로 시키는 것을 방지

송신자는 수신자의 처리속도에 맞춰서 데이터 전송

수신 애플리케이션이 읽는 속도와 송신자가 전송하는 속도를 같게 함

 

  • 혼잡 제어 (congestion control)

네트워크 혼잡에 따라 전송률을 각 송신자가 제한

송신자가 자신과 목적지 간의 경로에서 혼잡이 없음을 감지하면, 송신자는 송신율을 높임

반면 송신자가 경로에서 혼잡을 감지하면, 송신자는 송신율을 줄임

 

  • 전이중 (Full-duplex)

전송이 양방향으로 동시에 일어날 수 있음 (동시에 송수신 가능)

 

  • 점대점 (point to point)

단일 송신자와 단일 수신자 사이의 연결

멀티캐스팅, 브로드캐스팅 불가능

 

  • 연결 지향형

연결 설정

  • 3-way handshake

TCP 3-way handshake

1. TCP SYN 

클라이언트가 서버에게 TCP 연결 요청 ( SYN=1 )

2. TCP SYN ACK

서버가 SYN 메시지를 받고, 확인했다는 ACK 보냄

연결에 관련된 송∙수신 버퍼와 변수 저장공간 할당, 연결 승인 ( SYN=1 )

3. TCP ACK

클라이언트가 SYN ACK 메시지를 받고, 확인했다는 ACK 보냄

연결에 관련된 송∙수신 버퍼와 변수 저장공간 할당, 연결 성립

 

연결 종료

  • 4-way handshake

TCP 4-way handshake

1. FIN

클라이언트가 서버에게 TCP 연결 종료 요청 ( FIN=1 )

2. ACK

서버는 FIN 메시지를 받고, 확인했다는 ACK 보냄

3. FIN

서버가 데이터를 모두 보냈다면, 클라이언트에게 TCP 연결 종료 요청 ( FIN=1 )

4. ACK

클라이언트는 FIN 메시지를 받고, 확인했다는 ACK 보냄

서버는 ACK 메시지 받으면 연결에 관련된 송∙수신 버퍼와 변수 저장공간 할당 해제, 연결 종료

클라이언트는 서버로부터 받지 못한 데이터가 있을 수 있으므로 대기

대기 시간이 끝나면 연결에 관련된 송∙수신 버퍼와 변수 저장공간 할당 해제, 연결 종료

 

 

3. UDP (User Datagram Protocol)

 

  • 비연결형

데이터를 전송할 때 송수신 호스트 사이 연결 설정 X

송수신 버퍼, 순서번호, 확인응답 번호 파라미터 등 연결 상태 X

 

  • 빠른 데이터 전송

연결 설정 X, 흐름제어 X, 혼잡제어 X ⇒ delay 발생하지 않음

 

  • 작은 헤더 크기

TCP는 기본 20바이트의 헤더, UDP는 8바이트의 헤더

UDP segment 구조
TCP segment 구조

 

 

4. TCP vs UDP

 

어떤 application 서비스 개발인지에 따라 TCP, UDP 선택

  • TCP - 신뢰적인 데이터 전송이 중요한 application (ex. E-mail, 파일전송 …)
  • UDP - 빠르고 간단한 데이터 전송이 중요한 application (ex. 멀티미디어 스트리밍, DNS )

 

 

 

[참고자료]

Kurose & Ross, 「Computer Networking : A Top-Down Approach 7th Edition

[TCP] 3 way handshake & 4 way handshake

 

[TCP] 3 way handshake & 4 way handshake | 👨🏻‍💻 Tech Interview

[TCP] 3 way handshake & 4 way handshake 연결을 성립하고 해제하는 과정을 말한다 3 way handshake - 연결 성립 TCP는 정확한 전송을 보장해야 한다. 따라서 통신하기에 앞서, 논리적인 접속을 성립하기 위해 3 w

gyoogle.dev