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

2025. 3. 19. 17:04·Spring
💡 컴퓨터들은 어떤 방법으로 통신을 할까?
초기에는 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)

 

 

 

'Spring' 카테고리의 다른 글

[Spring] Controller 와 RestContoller 의 차이  (0) 2025.04.10
[Spring] MVC 패턴  (0) 2025.04.07
[Spring]HTTP 란? (2)  (0) 2025.03.31
[Spring]HTTP 란? (1)  (0) 2025.03.20
[Spring]DNS,URI,URL이란?  (0) 2025.03.19
'Spring' 카테고리의 다른 글
  • [Spring] MVC 패턴
  • [Spring]HTTP 란? (2)
  • [Spring]HTTP 란? (1)
  • [Spring]DNS,URI,URL이란?
코딩로봇
코딩로봇
금융 IT 개발자
  • 코딩로봇
    쟈니의 일지
    코딩로봇
  • 전체
    오늘
    어제
    • 분류 전체보기 (137) N
      • JavaScript (8)
      • SQL (10)
      • 코딩테스트 (30) N
        • Java (15)
        • SQL (13) N
      • Java (10)
      • 프로젝트 (22) N
        • 트러블슈팅 (7)
        • 프로젝트 회고 (13) N
      • git,Github (2)
      • TIL (36) N
      • Spring (17) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스파르타 코딩 #부트캠프 #첫ot
    java #arraylist #list #배열
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩로봇
[Spring] 네트워크에 대해 알아보자
상단으로

티스토리툴바