여름의 서재

[네트워크] TCP & UDP 본문

CS/네트워크

[네트워크] TCP & UDP

엉아_ 2022. 2. 5. 19:38
728x90

💡 TCP (Transmission Control Protocol)

: 서버와 클라이언트간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜. (전송 계층의 대표적인 프로토콜)

일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 *패킷의 순서나 데이터 검사 등의 역할을 담당!

 

* 패킷인터넷 내에서 데이터를 여러 개의 조각들로 나누어 전송을 하는데 이때, 이 조각을 패킷이라고 한다.

💡 TCP 특징

1. 연결형 서비스로 가상 회선 방식을 제공한다.: 즉, 발신지와 수신지를 연결하여 패킷을 전송하기 위한 논리적 경로를 배정한다.

 

2. 3-way handshaking과정을 통해 연결을 설정하고 4-way handshaking을 통해 해제한다.

 

📌 TCP 3-way Handshake

: TCP에서 통신을 하는 장치간 서로 연결이 잘 되어있는지 확인하는 과정/방식.

 

- 연결 성립

1) 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보낸다.

2) 서버는 클라이언트의 요청인 SYN 를 받고 클라이언트에게 요청을 수락한다는 ACK 와 SYN이 설정된 패킷을 발송한다.

3) 클라이언트는 서버의 수락 응답인 ACK 와 SYN 패킷을 받고 ACK 를 서버로 보내면 연결이 성립된다.

 

- 연결 해제

1) 클라이언트가 서버에 연결을 종료하겠다는 FIN 플래그를 전송한다.

2) 서버는 클라이언트의 요청을 받고 알겠다는 확인 메세지로 ACK를 보낸다. 그리고나서 데이터를 모두 보낼 때까지 잠깐 TIME_OUT이 된다.

3) 데이터를 모두 보내고 통신이 끝났으면 연결이 종료되었다고 클라이언트에게 FIN 플래그를 전송한다.

4) 클라이언트는 FIN메세지를 확인했다는 ACK를 보낸다.

5) 클라이언트의 ACK 메세지를 받은 서버는 소켓 연결을 close한다.

6) 클라이언트는 아직 서버로부터 받지 못한 데이터가 있을 것을 대비해 일정 시간 동안 세션을 남겨놓고 잉여 패킷을 기다리는 과정을 거친다.

 

3. 신뢰성을 보장하고, 흐름제어 및 혼잡제어 가능하다.

 

-> TCP는 연속성, 속도보다는 신뢰성 있는 전송이 중요할 때에 사용하는 프토로콜로 파일전송과 같은 경우 사용된다.

 

💡 TCP 헤더 구조

- Source port/Destination port

: 출발지/도착지 포트 번호

 

- Sequence number
: 전송되는 데이터의 가상 회선을 통해 전송되는 데이터의 모든 바이트에 부여된 일련 번호

: 네트워크가 불안하여 패킷을 분실, 지연 등으로 세그먼트가 순서가 어긋나게 도착 할 수 있기 때문에 sequence number를 이용하여 데이터를 올바른 순서로 재배열할 수 있다.

-ACKnowledgment Number
: 다음 세그먼트를 수신할 준비가 되었다는 사실을 알리는 역할.

: 모든 데이터가 수신되었다는 것을 나타내는 묵시적인 확인 메시지 역할을 한다.

-Checksum
: 중간에 훼손이 되었는지,변조되었는지 체크할수있는 장치

-Urgent pointer
긴급메세지라는것을 표시한다. 해석하면 응급한 가리치는것..!즉 급하게 처리할때 봐야하는 데이터의 위치정보를 가지고있다.

 

💡 UDP (User Datagram Protocol)

: 데이터를 데이터그램 단위로 처리하는 비연결형 프로토콜.

 

즉, 연결을 위해 할당되는 논리적인 경로가 없는데, 그렇기 때문에 각각의 패킷은 다른 경로로 전송되고, 각각의 패킷은 독립적인 관계를 지니게 되는데 이렇게 데이터를 서로 다른 경로로 독립적으로 처리를 한다.

 

💡 UDP 특징

1. 비연결형 서비스이기 때문에 연결을 설정하고 해제하는 과정이 없다.

2. 패킷에 순서를 부여하여 재조립하거나 흐름제어 또는 혼잡제어 기능도 없어서 신뢰성이 낮다.

3. TCP보다 속도가 빠르고 네트워크 부하가 적다.

4. 서버와 클라이언트는 1대1, 1대N, N대M 등으로 연결될 수 있다.
 

-> 실시간으로 데이터를 송/수신해야 하는 서비스에서는 주로 사용되며 인터넷 전화나 스트리밍 서비스에 사용된다.

 

💡 UDP 헤더 구조

 

- Source Port / Destination Port

: 출발지/도착지 포트 번호

 

- Total Length

: 헤더와 데이터를 합한 사용자 데이터그램의 전체 길이

 

: Checksum

: 중간에 훼손이 되었는지,변조되었는지 체크할수있는 장치

 

💡 TCP와 UCP의 비교

 

 

출처: https://mangkyu.tistory.com/15

출처: https://joycecoder.tistory.com/20?category=805481

'CS > 네트워크' 카테고리의 다른 글

[네트워크] HTTP & HTTPS  (0) 2022.02.08
[네트워크] HTTP & HTTPS / GET & POST / TCP & UDP  (0) 2022.01.15
[네트워크] RESTful API  (0) 2022.01.12
[네트워크] OSI 7계층 & TCP/IP  (0) 2021.12.22
Comments