Spring

[Spring] 네트워크에 대해 알아보자

코딩로봇 2025. 3. 19. 17:04
💡 컴퓨터들은 어떤 방법으로 통신을 할까?
초기에는 USB 케이블 과 같은 물리적 형태로 주고 받았지만 , 현재는 인터넷 사용!

 

인터넷이란?

  • TCP/IP를 기반으로 하는  컴퓨터 네트워크 통신망
  • World Wide Web(WWW) 구축

 

인터넷 프로토콜 (Internet Protocool) 이란?

  • 인터넷이 통하는 네트워크에 관한 송수신에 대한 규약

 

❓  IP는 192.168.0.1이 아닌가 라는데 의문이 들어요
원래 알던 IP는 IP자체가 아니라 IP에 필요한 고유 주소이다.

 

 

IP 주소

  • 각 기기 간의 통신을 식별할 수 있는 전화번호 이고 데이터를 Packet 의 단위로 전달 한다

Packet

  • 소스 IP , 대상 IP 를 포함하고 있고 어떤 컴퓨터에 데이터를 전송할지 판별하는 단위들을 가지고 있다. 
데이터를 일방적으로 주는 것이 아닌 양방향으로 주고받는다.

 

 

❌  IP 주소의 문제점

  1. 애플리케이션 구분 - 패킷을 어디에 사용할지 구분 ❌
  2. 비연결성 - 수신 대상의 상태와 상관없이 데이터 전송
  3. 비신뢰성 - 손상 여부를 서로 알 수 없음.
위의 문제를 해결 할 수 있는 것이 바로 TCP 프로토콜 이다.

 

 

TCP(Transmission Control Protocol) 이란?

  • 서버와 클라이언트 간 신뢰성 있는 전달 하기 위해 만들어진 프로토콜

 

3 Way HandShake (논리적 연결)

  • 1단계 SYN - 클라이언트가 서버에게 연결을 요청
  • 2단계 ACK - 서버가 SYN 패킷을 받고 이를 확인했다는 신호
  • 3단계 ACK - ACK와 함께 데이터 전송 가능

 

 

데이터 전송 여부

  • TCP를 통해 통신하면 데이터를 잘 받았다는 응답을 받을 수 있다.

 

패킷 순서

  • 패킷이 나뉘어 져있어도 순서를 보장한다.
3 Way HandShake를 하는 만큼 시간이 오래 걸리기 때문에,그를 해결한게 UDP 프로토콜 이다.

 

 

UDP(User Datagram Protocol) 이란?

  • 비연결형 , 신뢰성이 없는 전송 프로토콜이며 실시간 통신이나 스트리밍 애플리케이션에 유리하다.

 

데이터 전송 방식

  • IP방식과 거의 비슷하여 순소를 보장하지 않는다.
IP 와 차이점으로 PORT 가 존재

 

 기능

  • 추가적인 기능이 없는 만큼 속도가 빠르다.

 

PORT 란?

  • 같은 IP 내에서 프로세스 구분을 하기 위해 사용된다.

쉽게 말해 각 아파트의 호수 역할을 수행한다.

 

 

💡 자주 사용되는 PORT  (개발 시 나머지 포트 사용)
1. **0 ~ 65535 할당 가능**
2. **이미 사용되고 있는 포트 (0 ~ 1023)** 
- `FTP` - 20, 21 (TCP)
- `SSH` - 22 (TCP)
- `텔넷` - 23 (TCP)
- `SMTP` - 25 (TCP)
- `DNS` - 53 (TCP/UDP)
- `DHCP` - 67 (UDP)
- `HTTP`- **80 (TCP)**
- `HTTPS` - **443 (TCP)**
- `RDP` - 3389 (TCP/UDP)