TCP / UDP

IP

지정한 IP주소에 패킷이라는 통신 단위로 데이터 전달

IP Packet

IP packet에는 데이터를 전송하기 위한 출발지 IP, 목적지 IP와 같은 정보가 포함되어 있음

특징

비연결성
패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다.
→ 클라이언트는 패킷이 제대로 전달되었는지 확인할 수 없음
비신뢰성
중간에 패킷이 사라질 수 있다.
전달 데이터의 용량이 큰 경우, 패킷 단위로 나누어 전송하게 되는데 패킷들은 중간에 서로 다른 노드를 통해 전달될 수 있다. → 패킷이 순서대로 도착하지 않을 수 있다.
네트워크 계층 구조를 통해 이와 같은 한계를 보완해야한다.

TCP

Transmission Control Protocol
TCP 세그먼트
IP 패킷의 출발지 IP와 목적지 IP 정보를 보완할 수 있는 출발지 포트, 목적지 포트, 전송 제어, 순서, 검증 정보 등을 포함한다.

TCP 특징

연결 지향
TCP 3 way handshake
먼저 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보냅니다. 서버는 SYN요청을 받고 클라이언트에게 요청을 수락한다는 ACK 와 SYN가 설정된 패킷을 발송하고 클라이언트가 다시 ACK으로 응답하기를 기다립니다. 클라이언트가 서버에게 ACK을 보내면 이 이후로부터 연결이 성립되며 데이터를 전송할 수 있습니다. 만약 서버가 꺼져있다면 클라이언트가 SYN을 보내고 서버에서 응답이 없기 떄문에 데이터를 보내지 않습니다. 현재에는 최적화가 이루어져 3번 ACK을 보낼때 데이터를 함께 보내기도 합니다.
데이터 전달 보증
TCP는 데이터 전송이 성공적으로 이루어진다면 이에 대한 응답을 돌려줌
순서 보장
패킷이 순서대로 도착하지 않는다면 TCP 세그먼트에 있는 정보를 토대로 다시 패킷 전송을 요청할 수 있음
ex) 1, 3, 2의 순서를 받았다면 패킷2부터 전송 재요청
신뢰할 수 있는 프로토콜

UDP

User Datagram Protocol
IP 프로토콜에 PORT, 체크섬 필드 정보만 추가된 단순한 프로토콜

UDP 특징

기능이 거의 없음 → 커스터마이징 가능
비연결지향 → TCP와 비교해 빠른 속도 보장
데이터 전달 보증 x
순서 보장 x
데이터 전달 및 순서가 보장되지 않지만 단순하고 빠름
신뢰성보다는 연속성이 중요한 서비스 ex) 실시간 스트리밍