본문 바로가기
개발 개념/이론

[네트워크] 인터넷 네트워크 통신 개념

by Yikanghee 2021. 12. 27.

인터넷 네트워크

인터넷 통신

  • 클라이언트 - 서버
    • 서버가 바로 옆에 있으면 메시지를 바로 보낼 수 있지만
  • 클라이언트 - 인터넷 - 서버
    • 클라이언트와 서버가 서버가 멀리 떨어져 있다면 인터넷을 활용하여 여러 노드를 거쳐 통신이 됨
  • IP (Internet Protocol)
    • 노드를 통해 내가 원하는 메시지를 보내기 위해서 필요한 것이 IP주소
  • IP 역할
    • 지정한 IP주소에 데이터 전달
    • 패킷이라는 통신 단위로 데이터 전달
  • IP 패킷 정보
    • 출발지 IP , 목적지 IP , 전송 데이터 등등
    • IP 패킷 정보를 인터넷망에 던져주면 약속된 패킷 정보를 이해하고
    • 노드끼리 통신하면서 도착지 IP로 메시지를 전달하게 됨
    • 그 후 도착지 IP에서 출발지 IP에게 잘 받았다고 통신을 주게 된다
    • 이때, 출발지가 요청할 때와 도착지가 응답할 때의 경로가 달라질 수 있다
  • IP 프로토콜의 한계
    • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
    • 비신뢰성 패킷이 순서대로 안 오면?? 예) 메시지(1500Byte) 이상이면 끊어서 보내는데 끊어서 보낸
    • 정보가 다른 노드를 사용하여 내가 원하지 않는 순서로 도착할 수 있음
    • 중간에 패킷이 사라지면? 예) 광케이블이 끊기거나,
    • 프로그램 구분 어려움
    • 주고받는 IP 정보가 어떤 것인지 모르는 상황이 생김

같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?

이러한 문제를 해결할 수 있는 TCP

  • 인터넷 프로토콜 스택의 4 계층
    • 애플리케이션 계층 - HTTP, FTP
    • 전송계층 - TCP , UDP
    • 인터넷 계층 - IP
    • 네트워크 인터페이스 계층 (LAN 드라이버 , LAN 장비)
  • TCP 통신 예시
    • 만약 내가 Hello, world! 메시지를 생성하여 누군가에게 보냈을 때 TCP정보 생성, 메시지 데이터 포함
    • IP 패킷 생성, TCP 데이터 포함
    • 이때 SOCKET 라이브러리를 통해 전달
    • TCP정보 생성, 메시지 데이터 포함
    • IP패킷 생성, TCP 데이터 포함
  • TCP/IP 패킷 정보
    • IP패킷 정보에 출발지 IP, 목적지 IP, 전송 데이터
    • 출발지 PORT, 목적지 PORT, 전송 제어 , 순서 정보 , 검증 정보를 포함하여 보내줘서
    • TCP (전송 제어 프로토콜)를 사용함
  • TCP 특징
    • 연결 지향 - TCP 3 way handshake (가상 연결)
      1. SYN (보내다)
      2. SYN+ACK (보내다 + 받았다)
      3. ACK (받았다)
    • 데이터 전달 보증
    • 순서 보장 (순서가 잘못 오면 잘못 온 패킷부터 다시 보내서 순서를 맞춤)

신뢰할 수 있는 프로토콜 현재는 대부분 TCP 사용

  • UDP특징
    • UDP는 TCP와 같은 계층에 있는 프로토콜
    • IP와 거의 비슷하지만 PORT (하나의 IP에서 여러 애플리케이션을 구분할 수 있게 해 줌)
    • 와 체크섬(메시지에 대해서 맞는지 확인)만 추가됨
  • UDP장점
    • UDP의 장점은 내가 최적화를 원할 때 UDP에서 추가하여 내가 원하는 대로 사용할수있음내가 원하는대로 사용할 수 있어서 각광을 받고 있다
    • 요즘 뜨고 있는데 WEB3.0을 사용할 때 3 way handshake를 생략하고 빠르고
  • PORT
    • 한 번에 둘 이상 연결해야 한다면? 이때 패킷에 출발지 IP, PORT / 도착지 IP, PORT 정보가 있으면 IP가 아파트이면 PORT가 아파트 세부 정보인 셈이다.
    • 미리 PROT 지정하여 통신하면 프로세스를 구분하여 분별 가능
    • IP로만 통신을 해결하려면 주고받는 패킷이 어떠한 건지 알 수가 없다
  • DNS (도메인 네임 시스템)
    • IP가 기억하기 어려운 특징이 있다
    • IP가 바뀔 수가 있다

     이럴 경우 도메인명 (XXXXX.COM) 이런 식으로 지정하여 접근 가능

'개발 개념 > 이론' 카테고리의 다른 글

[JAVA] DTO, DAO, VO 개념  (0) 2022.01.07
[네트워크] HTTP 개념  (0) 2022.01.05
[Java] Array 개념  (0) 2021.12.22
SPRING SERVLET  (0) 2021.11.11
SPRING SERVLET  (0) 2021.11.11

댓글