인터넷 네트워크 (Internet Network)

건둔덕 ·2023년 2월 26일
1

HTTP

목록 보기
1/1
post-thumbnail

Protocol

프로토콜이란?
여러 컴퓨터 사이나 중앙 컴퓨터와 단말기 사이에서 데이터 통신을 원활하게 하기 위해 필요한 통신 규약 입니다. ex)신호 송신의 순서, 데이터의 표현법 등

위의 이미지를 참고해서 이해하시면 더욱 이해하기 쉽습니다.

위에서 아래로 진행된다고 생각하시면 되고 일단 애플리케이션 계층에서 채팅 프로그램을 통해 상대방 컴퓨터에 메시지를 전달한다는 가정을 해보겠습니다.

  1. 채팅 프로그램이 메시지를 생성하게되고 SOKET 라이브러리를 통해 OS로 전달 됩니다.
  2. TCP 정보를 생성하고 메시지 데이터를 포함 시킵니다.
  3. TCP 데이터를 포함한 채로 IP 패킷을 생성해서 또 포함 시킵니다.
  4. 네트워크 인터페이스에서 LAN 카드를 통해 Ethernet Frame을 씌운 후 서버로 전달 됩니다.

IP (Internet Protocol)

IP의 역할

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

IP 동작 원리

인터넷 상에서 컴퓨터끼리 통신할 때에는 각자의 IP 주소가 부여되고 IP 패킷안에 출발하는 IP 주소와 목적지의 IP 주소, 전송할 내용을 담아서 인터넷 망의 노드를 통해서 목적지까지 IP 패킷을 전송하게 됩니다. 마찬가지로 서버에서도 IP 패킷을 받고난 이후에 동일하게 IP 패킷을 클라이언트까지 전송하게 됩니다.

IP의 한계

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

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

TCP란?
서버와 클라이언트간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜 입니다.

TCP의 특징은 아래와 같습니다.

  • 연결 지향 (TCP 3 way handshake)
    TCP는 연결을 할 때 3번을 주고 받고 연결을 해줍니다.

  • 순서 보장
    패킷이 순서대로 전송이 안되었을 때 순서가 잘못 연결된 지점부터 패킷을 다시보내라고 서버컴퓨터가 클라이언트 컴퓨터에 요청을 보냅니다. 기본적으로 이런 기능이 보장되어 있고, 애플리케이션 자체에서 최적화를 할 수도 있습니다.

  • 데이터 전달 보증

  • 신뢰할 수 있는 프로토콜

  • 현재는 대부분 TCP 사용

위의 TCP 기능들이 가능한 이유는 TCP 패킷 안에 전송 제어 정보, 순서, 검증 정보, 출발 PORT, 목적지 PORT 등의 정보들이 포함되어 있어서 가능해 집니다.


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

UDP란?
비연결형, 신뢰성이 없는 전송 프로토콜이며, IP 데이터그램을 캡슐화하여 보내는 방법과 연결 설정을 하지 않고 보내는 방법을 제공합니다.

UDP의 특징은 아래와 같습니다.

  • IP와 거의 같지만 IP에서 PORT 기능과 체크섬 기능정도가 추가 됬다고 보면 됩니다.
  • 애플리케이션에서 추가 작업을 어떻게 하느냐에 따라 달라진다.

UDP를 사용하는 이유는 TCP처럼 흐름 제어나 연결 등을 하는 것이 없기 때문에 전송을 최대한 빠르게 할 수 있습니다. 하지만 TCP 처럼 신뢰성을 보장할 수 없다는 단점이 있습니다. 그럼에도 신뢰성보다는 속도를 중요시하는 곳에는 사용합니다. 예를들면 동영상 스트리밍이나 DNS에서 사용합니다.


PORT

PORT란?
PORT는 같은 IP를 가지고 있는 컴퓨터가 여러가지 통신을 하거나 작업을 할 때 프로세스를 구분해주는 역할을 합니다.

PORT를 잘 이해할 수 있는 비유 중에 아파트를 예로 들 수 있습니다.

IP는 아파트이고 PORT는 그 아파트 안에 있는 동 이라고 생각하시면 더욱 이해하기 쉽습니다.

profile
건데브

0개의 댓글