TCP & UDP
인터넷 프로토콜 스택의 4계층
인터넷 프로토콜 스택의 4계층 |
---|
애플리케이션 계층 - HTTP, FTP |
전송 계층 - TCP, UDP |
인터넷 계층 - IP |
네트워크 인터페이스 계층 |
프로토콜 계층
![](https://velog.velcdn.com/images/iseon_u/post/080ba07c-7b26-44be-bab0-a0b762b19061/image.png)
- 프로그램이 Hello 메시지 생성
- SOCKET 라이브러리를 통해 전달
- TCP 정보 생성, 메시지 데이터 포함
- IP 패킷 생성, TCP 데이터 포함
TCP / IP 패킷 정보 - IP 문제 해결
![](https://velog.velcdn.com/images/iseon_u/post/28ca9b2d-59c0-4a3b-a850-738f23d71877/image.png)
TCP
전송 제어 프로토콜 (Transmission Control Protocol)
- 연결지향 - TCP 3 way handshake (가상 연결) - 연결 후 작동
- 데이터 전달 보증 - 패킷 누락 확인 가능
- 순서 보장
- 신뢰할 수 있는 프로토콜
- 현재 대부분 TCP 사용
TCP 3 way handshake
![](https://velog.velcdn.com/images/iseon_u/post/20418d48-d73f-4fc5-be3d-e1c7d5d3bf0c/image.png)
- SYN (synchronize) : 접속 요청
- ACK : 요청 수락
- 참고: 3. ACK 와 함께 데이터 전송 가능
- 개념적으로 연결된 가상 연결
데이터 전달 보증
![](https://velog.velcdn.com/images/iseon_u/post/0f19a1f0-b42c-420d-b645-b493b6ae6cfe/image.png)
- 데이터 전송 후 서버 응답을 보고 전달 여부 확인 가능
순서 보장
![](https://velog.velcdn.com/images/iseon_u/post/6a1f842f-003e-4661-a236-ee60a9cc3d45/image.png)
- TCP / IP 패킷 순서 정보로 서버가 판단 후 클라이언트에 재요청
UDP
사용자 데이터그램 프로토콜 (User Datagram Protocol)
- 하얀 도화지에 비유 (기능이 거의 없다.)
- 연결 지향 ❌
- 데이터 전달 보증 ❌
- 순서 보장 ❌
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠르다.
- IP 와 거의 같다. + PORT + 체크섬 정도 추가
- 애플리케이션에서 추가 작업 필요