관리 메뉴

개발하는 동그리

[네트워크] TCP/IP & UDP 본문

IT 정보/Spring

[네트워크] TCP/IP & UDP

개발하는 동그리 2022. 6. 5. 16:48
반응형

IP adress ( Internet Protocol address ) 란!?

특정 PC에 접근하기 위해서 특정 PC의 IP adress ( Internet Protocol address )를 알아야 한다. 일반적으로 IPv4 주소체계를 사용하는데 ( Internet Protocol version 4 )의 줄임말이다.

 localhost, 127.0.0.1 : 현재 사용 중인 로컬 PC의 Ip 주소
0.0.0.0, 255.255.255.255 : broadcast address, 서버에서 접근 가능한 IP 주소를 broadcast address 를 할당하면, 모든 기기에서 서버에 접근할 수 있다.

 

IP 프로토콜(규약)이란!? 

  • 지정한 IP 주소로 데이터를 전달한다. 
  • 패킷(Packet)이라는 통신 단위로 데이터를 전달한다. 
  • 패킷의 규칙은 ( 출발지 IP, 도착지 IP , 메세지의 규약을 따른다 )  

 

IP 프로토콜의 한계 

  • 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성 : 중간에 패킷이 사라지거나 순서대로 도착하지 않을 때
  • 프로그램 구분 : 같은 IP를 사용하는 애플리케이션이 둘 이상일 때

 

TCP의 특징

: 전송 제어 프로토콜 ( Transmission Control Protocol ) , 신뢰할 수 있는 프로토콜이라고 부른다.

  • 연결지향 - TCP 3 way handshake (가상 연결!!) --> 비 연결성 해결
    1. SYN : 접속 요청 / ACK : 요청 수락 
    2. 클라이언트 -> SYN ->서버에게
    3. 서버 -> SYN + ACK -> 클라이언트
    4. 클라이언트 -> ACK -> 서버 ( 데이터 함께 전송 가능 ) 
  • 데이터 전달 보증 --> 비신뢰성 해결
  • 순서보장 --> 비신뢰성 해결

 

UDP의 특징

  • IP와 기능이 거의 동일하다 
  • PORT를 가지고 있다. ( PORT : 1개의 IP에서 여러개의 어플리케이션에 연결 가능 )
  • 3 way handshake 할 필요가 없어서 빠르고, TCP는 최적화 되어 있기 떄문에 손을 대기 어렵다. 백지와 같은 UDP 특성을 이용해서 UDP를 커스터마이징 해서 사용할 수 있는 장점이 있다. (최근 유행)

 

프로토콜 계층

  1. 메세지 생성
  2. SOCKET 라이브러리를 통해 전달 
  3. TCP 정보 생성, 메세지 데이터 포함 ( TCP 에서는 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보를 포함 )
  4. IP 패킷 생성, TCP 데이터 포함 ( IP 패킷에서는 출발지 IP, 도착지 IP , 메세지의 규약을 따른다 )
  5. Ethernet frame을 통해 서버로 전송

 

Port란!?

spring을 실행 했을 때 Tomcat started on port(s): 8080과 같은 숫자가 표현되는데, 이 숫자는 IP주소가 가리키는 PC에 접속할 수 있는 채널을 의미한다. 이 8080을 바로 Port라고 부른다. 

  • 0 ~ 65,535 : 할당가능
  • 0 ~ 1024번 : 주요 통신 규약에 따라 이미 정해짐 
  • 20,21 : FTP
  • 22 : SSH
  • 23 : TELNET
  • 80 : HTTP
  • 443 : HTTPS

 

DNS (Domain Name System)

  • 도메인 명 : google.com
  • DNS는 도메인명을 IP주소로 변환해준다. 
  • IP는 외우기 어렵고 변하기 쉽다. 
  • IP주소가 변경되더라도 DNS를 통해 변경된 IP주소를 받을 수 있다.
반응형

'IT 정보 > Spring' 카테고리의 다른 글

[네트워크] HTTP Messages  (10) 2022.06.05
[네트워크] Stateful & Stateless  (18) 2022.06.05
[네트워크] URL / URI  (4) 2022.06.05
[네트워크] 프로토콜과 API  (7) 2022.06.05
IoC(Inversion of Control) / DI (Dependency injection)  (26) 2022.06.04