카테고리 없음

[Spring]_네트워크의 기초

cork-7 2025. 1. 21. 21:31

인터넷

- 인터넷 프로토콜 스위트(TCP/IP)를 기반으로 하여 전 세계적으로 연결되 있는 컴퓨터 네트워크 통신망

 

1) IP(Internet Protocol)

- 인터넷 네트워크에서 정보 송.수신에 대한 규약

 

IP의 구성

  •  IP주소 : 기기간 통신 구별 번호 (통신 시 주소에 데이터를 Pocket단위로 전달)
  •  Packet
    • 헤더, 페이로드, 트레일러로 구분
    • 데이터를 주기만 하는 것이 아닌 응답한다

 

IP방식의 문제

- 어플리케이션 구분 - 대상의 어떤 프로그램에서 사용할 데이터인지 구분 불가

- 비연결성 - 수신 대상의 상태 상관없이 전송

- 비신뢰성 - Packet이 소실되는 경우 다발

>> Packet이 손실되거나 오류가 발생해도 재선송을 진행하지 않는다<<

 

[ IP의 문제점을 해결하기 위해 나온 프로토콜이 TCP이다 ] 

 

2) TCP (Transmission Control Protocol)

- 서버와 클라이언트간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜

 

  • 3 Way HandShake

(1) 클라이언트 SYN접속 요청 >> (2) 서버 ACK 요청 수락( ACK가 없다면 연결 실패 ) >> (3) ACK ( ACK 함께 데이터 전송 가능 )

 

SYN (Synchronize)
- 클라이언트가 서버에게 연결을 요청하는 첫 번째 단계이다.
- 클라이언트는 서버에게 "연결을 시작하고 싶다"는 의사를 나타내기 위해 SYN 플래그가 설정된 패킷을 전송한다.
- 패킷에는 시퀀스 번호도 포함되어 있고 데이터 전송 순서를 관리할 준비를 한다.

ACK (Acknowledge)
- 서버가 클라이언트의 SYN 패킷을 받고, 이를 확인했다는 신호를 보내는 단계이다.
- 서버는 클라이언트의 SYN 요청을 수락하며, 자신도 연결을 시작하고 싶다는 뜻을 담아 SYN 플래그와 함께 ACK 플래그가 설정된 패킷을 클라이언트에게 전송한다.
- 이때, 서버는 클라이언트의 시퀀스 번호에 1을 더한 값을 ACK로 응답한다.

 

  •  데이터 전송 여부

TCP를 통해 통신하면 잘 받았다는 응답을 반환해준다.

 

  • Packet 순서

Packet 이 나뉘어져 올지라도 순서를 보장한다.

 

3) UDP(User Datagram Protocol)

- 비연결성이며 신뢰성이 없는 전송 프로토콜

- TCP보다 실시간성이 보장되며 빠른 전송으로 현대에 많이 사용하는 추세

 

UDP의 특징

  1. IP 방식과 거의 비슷하다.
    • 3 way handshake를 하지 않는다.
      • 데이터 전송, 응답, 순서를 보장하지 않는다.(비신뢰성)
  2. 추가적인 기능이 거의 없다.
    • 기능이 없고 연결을 하지 않는 대신 속도가 빠르다.
  3. IP와 차이점으로 PORT 가 존재한다.
    • TCP에도 PORT가 존재한다.
  4. 데이터 무결성 검사 → **체크섬(Checksum)**을 포함하고 있다.
    • 잘못된 데이터가 전송되지 않도록 만들어준다.

 

4) PORT

-  같은 IP 내에서 프로세스를 구분하기 위해 사용

  • TCP/IP Packet 구조

 >> 자주 사용되는 PORT<<

0 ~ 65535 할당 가능
이미 사용되고 있는 포트 (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)

 * 실제 개발을 진행할 때 사용되지 않는 나머지 포트를 사용하여 개발하면 됩니다.