본문 바로가기

개발지/Today I learn

[0918] CS 지식 - 네트워크 (네트워크 기술2)

# IP

- IP 주소 구조

  ▪ IPv4 주소는 OOO.OOO.OOO.OOO 의 형식으로 되어 있다.

  ▪ 마침표로 구분된 4개의 8비트 필드로 되어 있으며, 각 필드는 1바이트를 나타낸다.

  ▪ 위 주소는 네트워크부와 호스트부로 나뉜다.

    네트워크부네트워크에 대한 정보호스트부는 네트워크 안 특정 컴퓨터를 지칭하는 정보이다.

  ▪ 서브넷 마스크(Subnet Mask)는 IPv4 주소에서 네트워크가 어디까지인지 나타내준다.

  ▪ 옥텟은 8자리 2진수 묶음이다. IPv4 주소는 4개의 옥텟으로 이루어져 있으며, 각 1~4옥텟의 이름을 가진다.

  • IP 주소 : 192.168.1.1
  • 서브넷 마스크 : 255.255.255.0
  • 네트워크 주소 : 192.168.1.0
  • 브로드캐스트 주소 : 192.168.1.255

  ▪ 위 주소에서 서브넷 마스크는 1~3옥텟을 네트워크부로 사용하고 있으며, 따라서 4옥텟은 호스트부로 사용되고 있다.

IPv4의 주소 구조
4개의 옥텟으로 이루어진 IPv4

 

- IP 주소의 할당과 관리

  ▪ IP주소의 할당은 각 컴퓨터를 지칭하는 주소인 호스트부를 변경하는 식으로 할당된다.

  ▪ 아래와 같은 예시에서 호스트부는 컴퓨터에 따라 변경된다. 이 때 호스트부의 번호는 4옥텟, 8자리로 이루어진

    2진수가 표현할 수 있는 번호의 시작(0)과 끝(255)를 제외한 번호로 할당이 가능하다.

  ▪ 0으로만 이루어진 호스트부(시작 번호)는 네트워크 주소로 네트워크 자체를 의미한다. (4번째 옥텟의 8비트 모두가 0) (십진법으로 0)

  ▪ 1로만 이루어진 호스트부(끝 번호)는 브로드캐스트 주소로 ARP와 같은 기능을 사용하기 위해서 사용한다. (4번째 옥텟의 8비트 모두가 1) (십진법 255)

  ▪ 따라서 시작 번호와 끝 번호는 IP주소로 할당 할 수가 없다.

IP 주소의 할당

 

- IP 프로토콜의 한계

  ▪ IP 프로토콜의 한계비연결성비신뢰성이다.

  ▪ 비연결성 문제는 패킷을 받을 대상이 없거나 서비스 불능 상태에 빠져도 데이터를 받는 대상의 상태 파악이

    불가능하여 패킷을 그대로 전송하는 문제이다.

  ▪ 비신뢰성 문제는 전송한 패킷에 중간에 오류가 생기더라도 정확하게 전달되었는 지 확인할 수 없는 것이다.

  ▪ 이러한 한계를 극복하기 위해 TCP, UDP 를 사용한다.

 

# TCP , UDP

- TCP / IP 4계층 모델

  ▪ TCPUDP는 4계층 모델의 전송계층에서 IP와 애플리케이션을 중개하는 역할을 한다.

TCP / IP 4계층 모델 주요 프로토콜 역할
4. 응용 계층 HTTP, DNS, FTP ... 애플리케이션에 맞추어 통신
3. 전송 계층 TCP, UDP ... IP와 애필리케이션을 중개.
데이터를 전달함.
2. 인터넷 계층 IP, ICMP, ARP, RARP 네트워크 주소를 기반으로 데이터를 전송함.
1. 네트워크 접근 계층 Ethernet, wifi 컴퓨터를 물리적으로 네트워크에 연결해서 기기 간에 전송을 가능하게 함.

  ▪ TCP와 UDP의 역할은 다음과 같다.

구분 TCP UDP
서비스 타입 연결 지향적 프로토콜 데이타그램 지향적 프로토콜
신뢰성 데이터 전송 표적 기기까지의 전송 보장 표적 기기까지의 전송 보장 X
순서 보장 전송하는 패킷의 순서 보장 패킷순서 보장 X /
패킷 순서의 보장을 위해서
애플리케이션 계층에서 관리를 필요로 함
속도 UDP보다 느리다 TCP보다 빠르며, 단순하고 더 효율적.

  TCP통신 신뢰성에 관한 기능들이 구현되어 있다.

  UDP신뢰성보다 높은 속도와 효율성이 특징이다.

  따라서 데이터의 신뢰성이 중요한 애플리케이션에서는 TCP를,

   빠른 속도와 실시간 통신이 중요한 애플리케이션은 UDP를 사용한다.

  웹애플리케이션의 HTTP의 경우 모든 데이터를 송수신해야하기 때문에 TCP를 사용한다.

 

- TCP 3 way Handshake

  TCP 3way Handshake는 신뢰있는 데이터 통신을 위해, TCP 방식이 연결을 설정하는 방식이다.

  총 3단계로 이루어진 연결 설정은 다음과 같다.

  1. SYN : 처음으로 클라이언트는 서버와 연결을 위해 데이터 조각(Segment)를 랜덤으로 설정된 숫자인 SYN(Synchronize Sequence Number)와 함께 서버에게 전송한다.
  2. SYN / ACK : 서버는 받은 요청을 바탕으로 SYN / ACK 신호 세트를 클라이언트에게 응답한다. 여기서 ACK(Acknowledgement)는 서버가 받은 SYN가 유효한 요청인지 확인하는 것이다.
  3. ACK : 클라이언트는 받은 ACK를 서버에 재전송하여 신뢰성 있는 연결의 성립을 알린다. 이후 실제 데이터 전송이 시작된다.

- UDP

  UDP의 특징은 다음과 같다.

  1. 애플리케이션의 제어 가능 : TCP의 경우 연결설정의 단계에서 반복적으로 전송되는 데이터로 인해 실시간 전송에 대한 요구가 큰 애플리케이션의 경우 지연률 감소를 위해 일부 데이터의 손실을 감수하는데 이를 보완하기 위해 개발자가 애플리케이션에 추가 기능을 구현할 수 있다.
  2. 연결설정에 무관 : UDP는 연결 설정 과정이 없기 때문에 지연 없이 빠른 반응속도로 데이터 전송이 가능하다. 또 연결설정 관리를 필요로 하지 않아, 서버에서 더 많은 클라이언트를 수용가능하다.