[네트워크] 인터넷 네트워크

JD_S·2022년 11월 11일
0

네트워크

목록 보기
2/2
post-thumbnail

먼저 인터넷 네트워크를 배우기 앞서 인터넷이 정확히 뭔지 알아보자.

인터넷(Internet)은 컴퓨터로 연결하여 TCP/IP(Transmission Control Protocol/Internet Protocol)라는 통신 프로토콜(규약이라는 뜻)을 이용해 정보를 주고받는 컴퓨터 네트워크이다.

컴퓨터 네트워크 : 노드들이 자원을 공유할 수 있게 하는 디지털 전기통신망중 하나이다. 즉, 분산되어 있는 컴퓨터를 통신망으로 연결한 것이다. 컴퓨팅 장치들은 노드 간 연결(데이터 링크)을 사용하여 서로에게 데이터를 교환한다. 이 데이터들은 유선, 광케이블과 같은 케이블 매체, 또는 와이파이와 같은 무선 매체를 통해 확립된다.

인터넷(Internet)의 어원은 연결(International Network)이라는 단어를 줄인 것이다.

인터넷 통신

인터넷에서 클라이언트와 서버는 어떻게 통신할까?

  • 클라이언트 : 서비스 요청자
  • 서버 : 서비스를 제공하는 컴퓨터

인터넷 망은 우리가 생각하는 것보다 훨씬 더 복잡하게 이루어져 있다. 과연 데이터가 어떤식으로 안전하게 넘어갈까?

IP(Internet Protocol)

송신 호스트와 수신 호스트가 패킷 교환 네트워크(패킷 스위칭 네트워크, Packet Switching Network)에서 정보를 주고받는 데 사용하는 정보 위주의 규약(프로토콜, Protocol)이며, OSI 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당한다.

OSI(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 일반적으로 OSI 7계층이라고 한다.

클라이언트 패킷 전달 과정

  1. 메세지를 그냥 보내는 것이 아닌 IP패킷 규칙을 지켜서 보내줘야한다. 출발지 IP와 목적지 IP 그리고 전송할 데이터를 입력한다.
  2. 노드들이 서로 패킷을 전달하며 목적지IP를 받을 수 있는 서버를 찾는다.
  3. 마침내 목적지 서버로 패킷이 전달된다.

서버 패킷 전달 과정

  • 위와 동일하다.

IP 프로토콜의 한계

비연결성

  • 패킷을 받을 대상이 없거나 서비스가 불능 상태여도 패킷을 전송 (대상 서버가 패킷을 받을 수 있는 상태인지 모른다)

비신뢰성

  • 중간에 패킷이 사라질 수도 있으며 순서를 보장하지 않는다.

프로그램 구분

  • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션을 구분하지 못한다.

TCP

전송 제어 프로토콜(Transmission Control Protocol, TCP)이라는 뜻으로 인터넷 프로토콜 스위트(IP Suite)의 핵심 프로토콜 중 하나이다. 보통 IP와 함께 TCP/IP라는 명칭으로도 널리 불린다. TCP는 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러없이 교환할 수 있게 한다. 그리고 전송 계층에 위치한다.

인터넷 프로토콜 스위트(Internet Protocol Suite) : 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 통신규약(프로토콜)의 모음 (인터넷 프로토콜 스위트 중 TCP와 IP가 가장 많이 쓰이기 때문에 TCP/IP 프로토콜 스위트라고도 불린다.)

옥텟(Octet) : 컴퓨팅에서 8개의 비트가 한데 모인 것을 말한다. 초기 컴퓨터들은 1byte가 꼭 8bit만을 의미하지 않아서 8bit를 명확하게 정의하게 위해서 옥텟이라는 용어가 필요했던 것. 하지만 요즘은 byte와 같은 의미가 되어 더 이상 일반적으로는 사용되지 않는다.

프로토콜 계층에서 데이터 전달 과정

TCP 특징

연결지향적

  • TCP 3Way Handshake

    • SYN : 접속요청
    • ACK : 요청 수락
    • 참고. 마지막 ACK와 함께 데이터 전송 가능

데이터 전달 보증

순서 보장

신뢰할 수 있는 프로토콜

  • TCP/IP 패킷에는 전송 제어 정보, 순서 정보, 검증 정보 등이 포함되어있어 신뢰할 수 있는 프로토콜이라고 할 수 있다.

UDP

사용자 데이터그램 프로토콜(User Datagram Protocol, UDP)이라는 뜻으로 인터넷 프로토콜 스위트의 주요 프로토콜 중 하나이다. TCP와 함께 패킷으로 알려진 단문 메시지를 교환하기 위해서 사용된다.

UDP의 전송 방식은 너무 단순해 서비스의 신뢰성이 낮고, 패킷 도착 순서가 바뀌거나, 중복되거나, 심지어 통보 없이 누락시키기도 한다. UDP는 일반적으로 오류의 검사와 수정이 필요 없는 애플리케이션에서 수행할 것으로 가정한다.

UDP 사용 예시

  • DNS, IPTV, 음성 인터넷 프로토콜(VolP), TFTP, IP 터널, 그리고 많은 온라인 게임

TCP vs UDP

TCP는 데이터를 주고 받을 양단 간에 먼저 연결을 설정하고 설정된 연결을 통해 양방향으로 데이터를 전송 하지만 UDP는 연결을 설정하지 않고 수신자가 데이터를 받을 준비를 확인하는 단계를 거치지 않고 단방향으로 정보를 전송한다.

  • 신뢰성 - TCP는 메시지 수신을 확인하지만 UDP는 수신자가 메시지를 수신했는지 확인할 수 없다.
  • 순서 정렬 - TCP에서는 메시지가 보내진 순서를 보장하기 위해 재조립하지만 UDP는 메시지 도착 순서를 예측할 수 없다.
  • 부하 - TCP보다 속도가 일반적으로 빠르고 오버헤드가 적다.

    오버헤드 : 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간, 메모리 등을 말한다.

PORT

하드웨어 장치에도 사용되지만, 소프트웨어에서는 네트워크 서비스나 특정 프로세스를 식별하는 논리 단위이다. 주로 포트를 사용하는 프로토콜은 전송 계층 프로토콜이라 하며, 예를 들면 TCPUDP가 있다. 각 포트는 번호로 구별되며 이 번호를 포트 번호라고 한다. 포트 번호는 IP주소와 함께 쓰이며 해당하는 프로토콜에 의해 사용된다.

하나의 클라이언트가 여러 서버와 연결하려면?

이런 상황에서 어떤 패킷이 필요한지 구분할 수 있게 도와주는 것이 바로 PORT이다.

위처럼 PORT를 이용하면 같은 IP내에서 프로세스 구분이 가능해진다.

TCP/IP 패킷

Port정보를 포함하고 있는 TCP세그먼트와 IP패킷을 합친 패킷

DNS

IP는 기억하기 어려울 뿐만 아니라 변경될 수 있다. 그래서 DNS를 사용해야 한다.

도메인 네임 시스템(Domain Name System, DNS)이라는 뜻으로 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었다. 특정 컴퓨터의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 IP주소로 변환하고 라우팅 정보를 제공하는 분산형 데이터베이스 시스템이다.

인터넷은 2개의 주요 이름공간을 관리하는데, 하나는 도메인 네임 계층, 다른 하나는 인터넷 프로토콜(IP) 주소 공간이다. DNS는 도메인 네임 계층을 관리하며 해당 네임 계층과 주소 공간 간의 변환 서비스를 제공한다.

  1. 클라이언트가 도메인 명으로 DNS서버에 요청을 한다.
  2. DNS서버는 해당 도메인 명으로된 IP주소를 알려준다.
  3. 클라이언트는 응답받은 IP주소로 접속할 수 있게된다.

Reference

profile
Whatever does not destroy me makes me stronger.

0개의 댓글