본문 바로가기
네트워크

TCP, UDP

by 어쩌다개발 2022. 3. 22.
반응형

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

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

프로토콜 계층

1. 웹 브라우저에서 생성한 메시지를 SOCKET 라이브러리를 통해 전달한다. - 애플리케이션
2. TCP 정보를 생성하고 메시지 데이터를 포함시킨다. - OS
3. IP 패킷을 생성하고 TCP 데이터를 포함시킨다. - OS
4. LAN 드라이버나 장비를 통해 서버에 전달한다. - 네트워크 인터페이스

IP 패킷은 출발지 IP, 목적지 IP 등의 정보만을 담고 있다. IP패킷만으로 전송/응답을 처리할 경우 한계가 있다.
IP 프로토콜 한계 참고 :
https://devmango.tistory.com/61

 

IP(인터넷 프로토콜), 패킷(Packet)

클라이언트(브라우저)와 서버는 지정된 IP주소(IP Address)를 통해 데이터를 전달한다. 데이터를 전달할 때, 패킷(Packet)이라는 통신 단위로 데이터를 전달한다. 이 때, 클라이언트에서 데이터를 요

devmango.tistory.com

이러한 한계를 처리하기 위해 TCP가 필요하다.

TCP에는 PORT 정보 및 전송 제어, 순서 보장, 데이터 전달 보증, 검증 정보 등이 포함되어 있다.


1. TCP 3 Way HandShake : 클라이언트와 서버 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터 전달을 시작하기 전 클라이언트가 서버쪽이 준비되었다는 것을 알수 있도록 한다.(신뢰성 있는 연결 보장)
클라이언트와 서버를 연결할 때, 아래와 같은 connect/연결 과정을 거친다.
1. 클라이언트 -> 서버 : SYN
2. 서버 -> 클라이언트 : SYN + ACK
3. 클라이언트 -> 서버 : ACK
4. 데이터 전송
SYN : synchronize sequence numbers - 접속 요청
ACK : acknowledgment - 요청 수락

[STEP 1]
클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보낸다.
이때 클라이언트는 SYN 을 보내고 SYN/ACK 응답을 기다리는 SYN_SENT 상태가 된다.

[STEP 2]
서버는 SYN 요청을 받고 클라이언트에게 요청을 수락한다는 ACK 와 SYN flag 가 설정된 패킷을 발송한 후, 클라이언트가 다시 ACK으로 응답하기를 기다린다. 이때 서버는 SYN_RECEIVED 상태가 된다.
[STEP 3]
클라이언트는 서버에게 ACK을 보내고 이후부터 연결이 이루어지고 양방향으로 데이터를 주고받을 수 있게 된다.
이때 서버 상태는 ESTABLISHED 이다.

2. 순서 보장 : 클라이언트에서 '패킷1 > 패킷2 > 패킷3' 순서로 전송했는데 서버에 '패킷1 > 패킷3 > 패킷2' 순서로 도착하는 경우 서버는 클라이언트에게 '패킷2'부터 다시 보내라고 요청한다.

UDP(User Datagram Protocol)

- 기능이 거의 없음.
- 연결 지향 - TCP 3 way handshake X
- 데이터 전달 보증 X
- 순서 보장 X
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
> IP와 거의 같다. PORT 추가된 정도?
> 애플리케이션에서 추가 작업이 필요하다.

PORT 정보 제공되는 거 빼면 IP프로토콜과 거의 같은데, 그럼에도 UDP를 사용하는 이유?
https://hwanine.github.io/network/UDP/

 

네트워크 - 왜 신뢰성있는 TCP를 두고 UDP를 사용하는걸까요?

데이터 통신상의 신뢰성있는 TCP 대신 UDP를 사용하는 이유와 그 사용 분야를 소개합니다.

hwanine.github.io

출처 :
1. https://inf.run/iwNU + 내가 이해한대로 정리!

 

모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의

실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런...

www.inflearn.com

2. https://mindnet.tistory.com/entry/네트워크-쉽게-이해하기-22편-TCP-3-WayHandshake-4-WayHandshake [Mind Net]

반응형

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

DNS  (0) 2022.03.24
PORT  (0) 2022.03.24
IP(인터넷 프로토콜), 패킷(Packet)  (0) 2022.03.22
http 공부 참고 사이트  (0) 2022.03.10
네트워크 용어 정리  (0) 2017.03.31

댓글