[Spring] 네크워크 기본 개념

늘보·2025년 1월 24일

Spring

목록 보기
1/24

인터넷 프로토콜 IP(Internet Protocol)

지정한 IP주소에 데이터를 Packet이라는 통신 단위로 전달하기 위한 특정 규약, 규칙을 의미한다.

💡IP 주소 : 기기 간의 통신을 식별할 수 있는 고유 번호이다. ex> IP: 192.168.0.1


Packet (패킷)

  • 헤더: 소스 IP (출발지) 대상 IP (도착지)를 포함하고 있어 어는 컴퓨터로 데이터를 전송할지 판별할 수 있다. [Port도 포함]
  • 페이로드: 전송할 데이터가 담겨져 있다.
  • 트레일러: 수신여부를 나타낸다.

❗데이터를 전달하기만 하는 것이 아닌 받고 응답한다.


IP 방식의 문제점

1. 애플리케이션 구분 불가

❗ 대상 컴퓨터의 어떤 프로그램에 사용될 데이터인지 구분할 수 없다.


2. 비연결성

❗ 대상 컴퓨터의 현재 상태와 상관없이 데이터를 전송한다. 즉, 수신 대상 컴퓨터의 전원이 꺼져있어도 소스 IP는 Packet을 전송하게 된다.


3. 비신뢰성

❗Packet이 복잡한 환경의 네트워크를 통과하다보면 소실 • 손상되기도 한다.
소스, 대상 IP 모두 해당 여부를 알 수 없으며 , 해당 문제 발생 시 재전송을 하지 못하게된다.


❗데이터가 큰 경우 packet이 여러개로 나눠어 전송되며, 네트워크를 통과하면 순서대로 도착하지 못하는 경우가 생긴다.


TCP(Transmission Control Protocol)

IP의 문제점들을 모두 극복한 프로토콜로 3 Way HandShake를 따른다.
⚠️물리적인 연결이 아닌 논리적으로 PC를 연결하는 과정이다.

연결 요청 SYN을 요청 시 대상 IP연결 승락 의미를 담은 ACKSYN을 함께 보낸다.
이후 소스IP는 ACK 응답을 통해 PC1과 PC2가 논리적으로 연결될 수 있게 된다.

💡 ACK: 데이터도 함께 담아 전송할 수 있다. 따라서, 데이터의 전송 여부를 판별할 수 있다. ❗ACK 돌아오지 않으면 연결 실패

💡 패킷 순서 보장: 용량이 커 packet이 나뉘어져 보내진다면 대상IP에 2번째 데이터가 먼저 도착하면, 1번부터 달라고 재요청하거나 1번이 올때까지 대기하는 작업을 수행한다.

➡︎ 다만 이러한 TCP 방식은 3 Way HandShake를 거쳐야 하기 때문에 데이터 송수신 시간이 오래걸린다.


UDP(User Datagram Protocol)

IP 방식과 같이 비연결성, 비신뢰성을 가지는 프로토콜이다. 실시간 통신, 스트리밍 애플리케이션과 같이 빠른 데이터 전송이 요구되는 경우 사용한다. 즉, 실시간 보증이 중요한 경우 사용

  • IP방식과 비슷하다.
  • 추가적 기능은 없지만 속도가 빠르다.
  • Port가 존재한다. (TCP에도 존재)
  • CheckSum을 포함하여 잘못된 데이터 전송을 막는다.

💡 Port: 데이터를 사용할 앱 프로세스 구분을 위해 사용한다.

  • 0 ~ 65535까지 할당 가능하며, 0 ~ 1023은 많이 사용되고 있는 포트로 잘 사용하지 않는 것이 좋다.

    HTTP : 80(TCP)
    HTTPS : 443(TCP)
    SSH : 22(TCP)
profile
누워만 있지 말고 제발 뭐라도 하자.

0개의 댓글