[인터넷 네트워크]

ho's·2022년 6월 1일
0

🎅인터넷에서 컴퓨터 둘은 어떻게 통신할까?

클라이언트와 서버가 붙어 있다면, 바로 연결 할 수 있다.
나는 한국에 있는데, 서버는 미국에 있다면 인터넷 망을 통해 메세지를 보내야 한다.
어떤 규칙으로 어떻게 보내질까?

🎯 IP 주소의 탄생

복잡한 인터넷 망에서 메세지를 보내기 위해서는 최소한의 규칙이 필요하다.
1. 클라이언트인 내가 IP주소가 있어야 한다.
2. 받는 쪽도 서버에 IP주소가 있어야 한다.

🔑 IP 인터넷 프로토콜 역할

  • 지정한 IP주소(IP Address)에 데이터 전달
  • 패킷(Packet)이라는 통신 단위로 데이터 전달

🎯 IP 패킷 정보

IP 패킷을 만들어 보내준다.

📨 내가 보낼 때

📨 상대가 보낼 때

🎯 IP 프로토콜의 한계

🔑 비연결성

패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송

대상이 서비스 불능, 패킷 전송


위의 그림과 같이, 서버가 패킷을 받을 수 있는 상태인지를 모를 경우

🔑 비신뢰성

중간에 패킷이 사라지면?
패킷이 순서대로 안오면?

위의 그림 처럼 클라이언트에서 서버로 전송하다가 패킷이 사라질 수 도 있다.

또한, 패킷의 전달 순서에도 문제가 발생 할 수 있다.

위와 같이 Hello, world 순서대로 보냈는데, 패킷 전송 중, 순서가 뒤바뀌게 서버에 도착 할 수 있다.

🎯 TCP

IP프로토콜에서 발생한 문제점을 보완하기 위해 만들어 졌다.

🔑 인터넷 프로토콜 스택의 4계층

🔒채팅 프로그램을 이용해 미국에 있는 친구에게 내용을 보내는 과정

  1. 프로그램이 Hello, world를 작성,
  2. SOCKET 라이브러리를 통해 전달
  3. TCP 정보 생성, 메세지 데이터 포함
  4. IP 패킷 생성, TCP데이터 포함

🔑 TCP 특징

전송 제어 프로토콜(Transmission Control Protocol)

  • 연결지향 - TCP 3 way handshake (가상 연결)
  • 데이터 전달 보증
  • 순서 보장
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용

🔒 TCP 3 way handshake

🔒 데이터 전달 보증

🔒 순서 보장

위와 같은 이유 때문에 TCP를 신뢰할 수 있는 프로토콜이라고 한다.

🎯 UDP

UDP는 사용자 데이터그램 프로토콜(User Datagram Protocol)의 약자이다.

🔑 특징

  • 하얀 도화지에 비유(기능이 거의 ❌)
  • 연결지향 - TCP 3 way handshake ❌
  • 데이터 전달보증 ❌
  • 순서 보장 ❌
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
  • 정리
    IP와 거의 같다. +PORT +체크섬 정도만 추가
    애플리케이션에서 추가 작업 필요

🎯 PORT

한 번에 둘 이상 연결해야 하면?

위의 그림처럼, 게임, 화상통화, 웹 브라우저 까지 요청을 하고 있다.
한 PC가 여러개의 서버와 통신해야 한다.
여러개의 패킷이 날라온다.
어떻게 구분을 할까?

위와 같이 PORT번호를 붙여주도록 하자

  • 0~65535 할당 가능
  • 0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음
  • FTP - 20,21
  • TELNET - 23
  • HTTP - 80
  • HTTPS - 443

🎯 DNP

🔑 IP 주소의 한계

  • IP주소는 기억하기 어렵다.
  • IP주소는 자주 변경되기도 한다.

🔑 도메인 네임 시스템(Domain Name System)

  • 전화번호부와 같은 기능이다.
  • 도메인 명을 IP 주소로 변환한다.

google.com = 200.200.200.2
aaa.com = 210.210.210.3

위와 같이 IP주소를 도메인명에 저장을 해놓고 사용하는 방법으로 나타낼 수 있다.

profile
그래야만 한다

0개의 댓글