OSI 7계층 || TCP/IP 4계층
IP
- 네트워크 계층의 프로토콜
- 네트워크 주소 (출발지, 도착지)
(IP) Packet
- 네트워크 계층의 통신 단위
- (전송하고싶은 데이터)와 출발지 IP, 도착지 IP .. 등등이 포함되어 있다.
IP 프로토콜의 한계
- 비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 클라이언트는 서버의 상태를 파악할 방법이 없기 때문에 무작정 패킷 전송
- 비신뢰성
- 중간에 있는 서버가 데이터를 전달하던 중 장애가 생겨 패킷이 사라질 수 있음
- 전달 데이터의 용량이 클 경우 패킷 단위로 나누어 보내게 되는데, 이때 패킷의 순서를 보장할 수 없음
TCP
- 전송 계층의 프로토콜
- 네트워크 계층의 한계점을 보완한다.
(TCP) 세그먼트
- 전송 계층의 통신 단위
- (전송하고싶은 데이터)와 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 .. 등등이 포함되어 있다.
TCP의 특징
- 연결 지향 - TCP 3 way handshake(가상 연결)
- 데이터 전달 보증 : 데이터 전송이 성공적이라면 이에 대한 응답을 돌려준다.
➡️ 비연결성 보완
- 순서 보장 : 패킷이 순서대로 도착하지 않았다면 세그먼트 정보 토대로 다시 패킷 전송을 요청할 수있다.
➡️ 비신뢰성 보완
- 신뢰할 수 있는 프로토콜 : UDP보다 신뢰적이다.
TCP 3 way handshake
출처 : https://www.coengoedegebure.com/tcp-3-way-handshake-port-scanning/
- 클라이언트➡️서버 // 서버에게 접속을 요청하는 SYN 패킷을 보낸다.
- 서버➡️클라이언트 // 클라이언트에게 요청을 수락한다는 ACK와 SYN설정된 패킷을 발송한다.
- 클라이언트➡️서버 // 잘 받았다는 ACK 패킷을 보낸다.
- 클라이언↔️서버 // 클라이언트와 서버는 서로 잘 연결됐고, 이제 데이터 전송이 이루어진다.
! 요즘은 최적화가 잘 되어있어 3번 부분에서 ACK 패킷을 보낼 때, 보내고싶은 데이터를 함께 보내기도 한다 !
UDP
- 전송 계층의 프로토콜
- 네트워크 계층의 한계점을 보완한다.
- IP 프로토콜에 PORT, 체크섬 필드 정보만 추가된 단순한 프로토콜
* 체크섬(checksum) : 중복 검사의 한 형태로, 오류 정정을 통해, 공간(전자 통신)이나 시간(기억 장치) 속에서 송신된 자료의 무결성을 보호하는 단순한 방법
UDP의 특징
- 비 연결 지향
- 데이터 전달, 순서가 보장되지 않지만 단순하고 속도가 빠름
- 신뢰성보다 연속성이 중요한 서비스에 자주 사용됨
ex) 실시간 스트리밍