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) 실시간 스트리밍