1 ) Network
- 인터넷(internet)?
- 인터넷 프로토콜 스위트(TCP/IP)를 기반으로 하여 전 세계적으로 연결되어있는 '컴퓨터 네트워크 통신망'
- 인터넷 프로토콜 IP (Internet Protocol)
- 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 '통신에 대한 규약'
- IP 주소
- IP 주소는 쉽게 말하면 각 기기 간의 통신을 식별할 수 있는 전화번호.
- 인터넷 통신 시에는 지정한 IP 주소에 데이터를 Packet 이라는 단위로 전달
- Packet
- 패킷(Packet)은 소스 IP, 대상 IP를 포함하고 있어서 어떤 컴퓨터에 데이터를 전송할지 판별할 수 있습니다.
- 소스 IP(출발지), 대상 IP(도착지)를 포함하고 있어서 어떤 컴퓨터에 데이터를 전송할지 판별 가능.
- Packet은 크게 헤더, 페이로드, 트레일러로 구분
- 데이터를 주기만 하는 것이 아닌 받고 응답한다.
- 패킷(Packet)은 소스 IP, 대상 IP를 포함하고 있어서 어떤 컴퓨터에 데이터를 전송할지 판별할 수 있습니다.
- IP 방식의 문제점
- 애플리케이션 구분
- 대상 컴퓨터의 어떤 프로그램에 사용될 데이터인지 구분 불가!
- 비연결성
- 수신 대상의 현재 상태에 상관없이 데이터를 전송
- 비신뢰성
- 패킷이 소실되는 경우 발생
- 패킷의 손상여부를 송신, 수신측 모두 알 수 없음.
- 패킷의 순서가 뒤죽박죽 섞여서 들어오는 경우 발생.
- 애플리케이션 구분
- 이와 같은 문제점들을 해결해주는 것이 TCP 프로토콜.
2 ) TCP (Transmission Control Protocol)
- 서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜.
- TCP 데이터를 신뢰성 있게 전달하는 방법.
- 3 Way HandShake : 물리적 연결이 되어있는 것이 아닌 최소한의 논리적인 연결을 통해 되어있다고 가정.
- SYN (Synchronize)
- 클라이언트가 서버에게 연결 요청하는 첫 번째 단계
- 클라이언트는 서버에게 "연결을 시작하고 싶다"는 의사를 나타내기 위해 SYN 플래그가 설정된 패킷을 전송
- 패킷에는 시퀀스 번호도 포함되어 있고 데이터 전송 순서를 관리할 준비를 한다.
- ACK (Acknowledge)
- 서버가 클라이언트의 SYN 패킷을 받고, 이를 확인했다는 신호를 보내는 단계
- 순서
- SYN 접속 요청
- ACK 요청 수락 -> ACK가 없다면 연결 실패.
- ACK -> ACK 함께 데이터 전송 가능
- 데이터 전송 여부
- TCP를 통해 통신하면 데이터를 잘 받았다는 응답을 반환해준다.
- 패킷 순서
- 패킷이 나뉘어져 올지라도 순서를 보장한다.
3 ) UDP (User Datageram Protocol)
- UDP의 특징
- IP 방식과 거의 비슷하다.
- 3 way handshake를 하지 않는다.
- 데이터 전송, 응답, 순서를 보장하지 않는다.(비신뢰성)
- 3 way handshake를 하지 않는다.
- 추가적인 기능이 거의 없다.
- 기능이 없고 연결을 하지 않는 대신 속도가 빠르다.
- IP와 차이점으로 PORT가 존재한다.
- TCP에도 PORT가 존재한다.
- 데이터 무결성 검사 -> 체크섬(Checksum)을 포함하고 있다.
- 잘못된 데이터가 전송되지 않도록 만들어준다.
- IP 방식과 거의 비슷하다.
- PORT
- 같은 IP 내에서 프로세스 구분을 하기 위해서 사용.
- IP 주소가 같은데, 패킷의 도착지를 어떻게 식별하는가?
- 이때 구분하기 위해 사용되는 것이 PORT.
'TIL > Spring' 카테고리의 다른 글
TIL 2024-11-05 (Spring 입문 - Spring Annotation, Mapping) (0) | 2024.11.05 |
---|---|
TIL 2024-11-04 (Spring 입문 - MVC) (1) | 2024.11.04 |
TIL 2024-11-01 (Spring 입문 - Web Application) (0) | 2024.11.01 |
TIL 2024-10-31 (Spring 입문 - HTTP) (0) | 2024.10.31 |
TIL 2024-10-30 (Spring 입문 - 2) (1) | 2024.10.30 |