Web

internet-network(IP, TCP, UDP, PORT, DNS)

녁이 2023. 6. 23. 17:17
728x90
반응형

인터넷 상에서 컴퓨터들끼리는 어떻게 통신할까?

컴퓨터들 사이에는 무수히 많은 인터넷 망들이 있다는 것을 우리는 알고 있다.

그런데 그 컴퓨터들 사이에서 어떻게 정보가 오가는지 잘 모르는 사람이 많다.

 


IP( 인터넷 프로토콜 )

많은 사람들에게 익숙한 이름일 것이다. 우리는 IP 주소를 각각의 컴퓨터에 부여하여 이를 통해서 정보 교환을 하게 된다.

 

IP의 역할

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

 

출발지의 IP 주소와 목적지의 IP주소를 IP에 적어두고 이를 바탕으로 복잡한 인터넷 망을 거쳐 서버로 가게 된다.

서버의 경우에는 위와 같은 방식으로 반대로 적용된다.


그런데, 이렇게 편리한 IP에게 한계가 있다?

  • 비연결성 - 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다.
  • 비신뢰성 - 중간에 패킷이 사라지거나, 패킷이 순서대로 오지 않을 수 있다.
  • 프로그램 구분 - 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 어떻게 할까?

이러한 IP(인터넷 프로토콜)의 문제점들을 보완할 수 있는 방법이 있다. 

비연결성과 비신뢰성을 해결해주는 프로토콜이 있다.

전송 계층에서 작동하는 TCP, UDP 라고 하는 프로토콜들이다.
전송 제어 프로토콜(Transmission Control Protocol), 사용자 데이터그램 프로토콜(User Datagram Protocol)

프로토콜 계층을 위와 같이 크게 4계층으로 나눈다.

LAN 장비들이 해당되는 네트워크 인터페이스 계층과 IP를 기반으로 하는 인터넷 계층, TCP, UDP가 사용되는 전송 계층,

사용자들이 사용하는 어플리케이션 등을 나타내는 애플리케이션 계층이 있다.

위의 사진과 같이, 프로그램을 통해서 메세지를 만들면 계층들을 들르면서 추가적인 정보가 더해진다고 생각하면 된다.

TCP나 UDP 전부 IP 를 기반으로 사용된다는 점을 잊지 않아야 한다.

 

TCP가 어떤 점이 좋길래 이렇게 사용되는 것일까?

  • 연결 지향적 - 3 way handshake ( 가상 연결 ) 이라는 과정을 거쳐서 상대방과 연결을 먼저 한 뒤에 정보를 전송
  • 데이터 전달 보증
  • 순서 보장 - 순서가 맞지 않게 오면, 순서가 틀린 부분부터 다시 보내도록 재전송 요청
  • 신뢰할 수 있는 프로토콜

이와 같이, 데이터 전송 단계 이전에 3단계 과정을 거쳐서 상대방과 연결을 한다. 이를 통해, 좀 더 신뢰할 수 있게 된다.

TCP에 대해선 어느정도 감이 왔으면, 이제 UDP에 대해서 알아보자.

 

UDP의 특징은 뭐가 있을까?

  • 연결지향적 X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 단순하고 빠르다.
  • IP와 비슷하지만 Port와 체크섬 정도가 추가됨

UDP를 사용하려면 애플리케이션에서 추가적인 작업이 필요하다.

이는 단순하고 빠르다는 장점때문에 사용된다고 생각하면 된다.

단순하기 때문에 사용자가 원하는 경우 수정해서 사용할 수도 있다.


우리는 IP를 통해서 서로 정보를 교환한다고 알고 있다. 

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

 

IP의 한계점 중의 하나인 IP 하나로 둘 이상을 연결해야하는 경우가 발생하게 된다.

이러한 문제점을 해결하기 위한 방법으로 PORT 가 있다.

TCP/IP 패킷에 PORT 를 넣어서 이를 통해 같은 IP 내에서 프로그램들을 구분할 수 있다.

포트 넘버는 0 ~ 65535 까지 할당이 가능하다.

그러나 0~ 1023 번까지의 포트는 잘 알려진 포트로 사용하지 않는 것이 좋다.


이제 우리는 정보를 교환하기 위해서 위와 같이 IP,TCP,PORT 등이 필요하다는 것을 알게 되었다.

그러면, 정보를 교환할 때마다 IP 들을 다 외워야 하는 것일까?

아니면 IP가 수정되면 어떻게 해야할까?

 

이때 필요한 것이 DNS 라는 것이다.

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

DNS는 전화기록부라고 생각하면 된다. 도메인 명들을 DNS 서버에 저장해두었다 IP 주소로 변환해준다.

예를 들어, 우리는 네이버(NAVER) 사이트에 들어가고 싶을 때마다 네이버의 IP 주소를 쓰지는 않는다.

그대신에, 네이버라는 도메인 명을 통해 접속하게 된다. 여기서 네이버가 DNS 의 역할을 한다고 보면 된다.


다음 게시글

 

다음 게시글에는 인터넷에서 사용되는 프로토콜 HTTP, HTTPS 등에 대해서 알아보도록 하겠다.

728x90
반응형