Study/네트워크 / / 2022. 3. 7. 19:00

[모든 개발자를 위한 HTTP 웹 지식] IP, TCP, UDP, PORT, DNS


 

IP란

  • 인터넷 프로토콜 역할
  • 지정한 IP 주소에 데이터를 전달
  • 패킷이라는 통신 단위로 데이터를 전달

 

IP 패킷

  • 출발지 IP, 목적지 IP, 기타 등과 메시지를 넣고 전송한다.

 

한계

1.비연결성

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

2.비신뢰성

- 중간에 패킷이 사라지거나 순서대로 오지 않을 경우가 있다.

3.프로그램 구분

- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일때 구분이 힘든 경우가 있다.

(음악듣기와 유튜브를 동시에 구분하기 힘들다)

 

이걸 해결하려면 ? => TCP와 UDP

 


 

TCP/IP 패킷정보

출발지 PORT, 도착지 PORT, 전송 제어, 순서, 검증 정보 등이 포함됩니다.
IP 패킷안에 TCP 세그먼트가 존재하며 전송 제어, 순서 등의 정보들이 포함되기 때문에
IP 패킷만으로 할 수 없었던 한계점들을 극복이 가능합니다.

 

 

TCP 특징

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

  • 연결 지향 – TCP 3 way handshake (가상 연결) 먼저 연결을 한 다음 메시지를 보낸다.
  • 데이터 전달 보증 – 패킷이 누락되었는지 확인이 가능하다.
  • 순서 보장

 

TCP는 신뢰할 수 있는 프로토콜이고 현재는 대부분 TCP를 사용합니다.

 

TCP 3 Way handshake

  1. 클라이언트가 서버에 접속 요청을 보냅니다.
  2. 서버는 요청을 수락하고 클라이언트에 접속 요청을 보냅니다.
  3. 클라이언트가 수락하고 Connect 됩니다.

위와 같은 3가지 과정으로 연결 후 통신을 하여 메시지를 통신합니다.

 

데이터 전달 보증 – 클라이언트가 서버에 데이터를 전송하면 서버에서 데이터를 잘 받았다고 응답한다.

순서 보장 – 클라이언트가 서버에 패킷 1,2,3을 보냈을 때, 서버에서 1,3,2로 도착을 한다면 서버는 클라이언트에 2번 패킷부터 재전송을 요청하고 클라이언트는 2번 패킷부터 재전송을 시작한다.

 


 

UDP 특징

사용자 데이터그램 프로토콜(User Datagram Protocol)

하얀 도화지에 비유가 가능합니다. 기능이 거의 없으며 연결지향(3 way handshake)과 데이터 전달 보증이 되지 않으며, 순서보장 또한 되지 않습니다. 하지만 단순하고 빠른 장점이 있습니다.
IP와 거의 같으며, PORT와 체크섬 정도만 추가됐기 때문에 애플리케이션에서 추가로 작업이 필요합니다.

 


 

PORT

게임을 하며, 화상통화와 웹 서핑을 한번에 하려면 포트가 필요하다. 포트가 없으면 여러 패킷들이 오고갈 때, 게임에 필요한 패킷인지, 화상통화에 필요한 패킷인지 확인할 수 없기 때문이다.

 

아파트에서 IP가 동이라면 PORT는 호이다.

포트는 0 ~ 65535까지 할당이 가능하며 0~1023까지는 잘 알려진(시스템에서 사용하는) 포트이기 때문에 사용하지 않는 것이 좋다.

 


 

DNS

IP는 기억하기 어렵다. 예를 들어 211.159.108.2처럼 사람의 머릿속에 쉽게 남지 않는다.
의미가 없는 숫자들의 나열이기 때문이다.
DNS(Domain Name Service)는 google.com과 같이 도메인 명을 IP주소로 변환해주는 시스템이다.
마치 이것은 현실의 전화번호부와 같다.
그리고 아이피가 변경이 되어도 도메인명만 알고 있다면
계속해서 구글에 접속이 가능하기 때문에 변경에도 유리하다.
  • 인터넷 프로토콜 역할
  • 지정한 IP 주소에 데이터를 전달
  • 패킷이라는 통신 단위로 데이터를 전달

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유