Posts network 1
Post
Cancel

network 1

(1) an IP address
IP주소는 네트워크 계층에서 사용하는 주소이며, IP 헤더에 포함된 데이터 주소.

 IPv4주소IPv6주소
주소 체계32bit(2^32개)128bit(2^128개)
주소 표기10진수16진수
주소 구성8bit씩 4개의 옥텟16bit씩 8개의 필드
주소 예제192.168.1.12002:1032:bc:198:1:13:113:19



(2)a Netmask
[개요]

  • 정확한 표현은 서브넷마스크(subnet mask)라고 함.
  • 하나의 네트워크를 몇 개의 네트워크로 나누어 사용할 때 나눠진 각각의 네트워크를 구분하기 위해 사용하는 특수한 bit.
  • 서브넷 마스크는 IP주소에 대한 네트워크 아이디와 호스트 아이디를 구분하기 위해서 사용.
  • 21세기에 가까워질수록 IPv4 주소의 고갈이 현실화되었고 각국의 NIC에서는 이를 최대한 늦추기 위해 각 라우터가 브로드캐스팅하는 로컬 네트워크 영역에 공인 IP 대역을 호스트가 필요한 만큼만 할당하려는 노력을 함.
  • 이러한 NIC 기관의 요구에 맞춰서 IETF에서는 로컬 네트워크 내부에서 접속한 호스트의 IP 대역을 외부 네트워크와 명확하게 구분할 수 있는 수단을 표준화하였고 이것이 서브넷 마스크.

[표시 방법]

  • IPv4 주소는 4개의 바이너리 8자리수로 이루어져 총 32bit로 구성.
    • ex) 192.168.0.1은 1100 0000.1010 1000.0000 0000.0000 0001로 표현됨.
  • IP 주소는 네트워크 부분과 호스트 부분으로 나누어짐. 하나의 로컬 네트워크란 하나의 라우터를 거쳐가는 여러 개의 호스트들이 연결된 브로드캐스트 영역. 즉, 어떤 네트워크에서 한 노드가 브로드캐스트를 했을 때 그 네트워크의 모든 노드가 신호를 받았다면 그 네트워크는 하나의 네트워크. 호스트란 각각의 노드(PC, 스마트폰, 태블릿 등).
  • 하나의 로컬 네트워크에서 IP 주소의 네트워크 부분은 같아야 하고, 호스트 부분은 달라야 함.
  • IP주소 32bit에 공통 비트 1을 씌워서 네트워크를 표기하기 때문에 서브넷 마스크는 IP 주소와 마찬가지로 32bit 체계.
  • /24와 /255.255.255.0은 같음. 255.255.255.0을 2진수로 쓰면 1111 1111.1111 1111.1111 1111.0000 0000이다. 앞에서부터 연속된 1의 개수만 나타낸 것이 /24.

[네트워크 주소]

  • 서브넷 마스크를 계산할 때는 논리곱(논리 AND)를 사용.
  • 맨 앞에 비트부터 1이 연속된 구간까지를 공통비트로 처리하여 네트워크 아이디로 사용하고, 0으로 끝나는 마지막 구간까지를 공통하지 않은 비트로 처리하여 호스트 아이디로 사용.
  • ex) 192.168.0.1/24
  • 여기서 1을 논리곱하는 부분이 네트워크 부분, 0을 논리곱하는 부분이 호스트 부분.
  • IP주소: 1100 0000.1010 1000.0000 0000.0000 0001
  • 서브넷 마스크: 1111 1111.1111 1111.1111 1111.0000 0000
  • 서브넷 네트워크: 1100 0000.1010 1000.0000 0000.0000 0000
  • 호스트 개수: 네트워크 주소와 브로드캐스트 주소를 제외한 253개.
  • 네트워크 개수: 1개


(3) the subnet of an IP with Netmask

[what’s a subnet?]

  • device interface with same subnet part of IP address.
  • can physically reach each other without intervening router.
  • to determine the subnets, detach each interface from its host or router, creating islands of isolated networks.
  • each isolated network is called a subnet.
  • 서브넷은 말그대로 부분망이라는 뜻. 그리고 이 서브넷을 만들 때 쓰이는 것이 바로 서브넷 마스크.
    ex) 192.168.1.0 255.255.255.0과 192.168.8.0 255.255.255.0은 서로 다른 네트워크 대역.
    192.168.1.0는 서브넷 마스크가 255.255.255.0 이므로 네트워크 아이디는 192.168.1.이고 호스트 아이디는 .0
    따라서 범위는 192.168.1.0 ~ 192.168.1.255 까지임.
    192.168.8.0은 192.168.8.0 ~ 192.168.8.255 범위에 포함됨.
    만약 192.168.1.0 255.255.0.0 과 192.168.8.0 255.255.0.0 이라면 같은 네트워크 대역.
    서브넷 마스크가 255.255.0.0 이므로 네트워크 아이디는 192.168.이고 호스트 아이디는 .0.1
    따라서 범위는 192.168.0.0 ~ 192.168.255.255 까지임.


(4) the broadcast address of a subnet
브로드캐스트 주소 구하는 법
IP address: 192.168.16.1
Subnet mask: 255.255.255.224

1 - Subnet mask를 invert한다.
255.255.255.224 => 11111111.11111111.11111111.11100000
이것을 invert하면 00000000.00000000.00000000.00011111

2 - Invert한 subnet과 IP address를 Logical OR를 한다.
192.168.16.1 => 11000000.10101000.00010000.00000001
Invert한 서브넷 => 00000000.00000000.00000000.00011111
결과는 => 11000000.10101000.00010000.00011111 => 192.168.16.31


(5) the different ways to represent an ip address with the Netmask
Netmask is a 32-bit “mask” used to divide an IP address into subnets and specify the network’s available hosts.

1
255.255.255.0 is applied to the 129.144.41.101 , the result is the IPv4 address of 129.144.41.0

130.129.144.41.101 AND 255.255.255.0 = 129.144.41.0

In binary form, the operation is:

1
2
3
10000001.10010000.00101001.01100101		<== (IPv4 address)
AND
11111111.11111111.11111111.00000000		<==(netmask)



(6) the differences between public and private IPs
[공인 IP 주소 (Public IP Address]
인터넷에 있는 라우터를 통과할 수 있는 주소.
[사설 IP 주소 (Private IP Address]
같은 네트워크에서는 통신이 되지만, 인터넷은 통과 불가능한 주소.

사설 아이피 대역은 A, B, C클래스에 각각 존재하며,
A 클래스: 10.0.0.0 ~ 10.255.255.255
B 클래스: 172.16.0.0 ~ 172.32.255.255
C 클래스: 192.168.0.0 ~ 192.168.255.255


(7) a class of IP addresses
IP 주소 범위는 0.0.0.0 ~ 255.255.255.255까지 포함될 수 있음. 하지만 5개의 클래스로 정의하여 IP 주소 낭비 방지와 효율적인 서브넷 관리 가능.

  • A Class (Unicast Address)
    • 첫 번째 필드를 2진수로 변환할 경우 맨 앞에 0이라는 공통 비트를 갇는다면 A Class로 정의.(00000000 ~ 01111111: 0부터 127까지)
    • A Class가 가지는 기본 서브넷 마스크는 255.0.0.0이며 호스트 아이디가 24bit이므로 네트워크 아이디당 나올 수 있는 IP 주소는 2^24 - 2개.
    • 초대형 네트워크 즉 국가간의 네트워크나 또는 범국가적 네트워크를 구축할 때 많이 사용.
  • B Class (Unicast Address)
    • 첫 번째 필드를 2진수로 변환할 경우 맨 앞에 10이라는 공통 비트를 갖는다면 B Class로 정의.(10000000 ~ 10111111: 128부터 191까지)
    • B Class가 사용하는 기본 서브넷 마스크는 255.255.0.0이며 호스트 아이디가 16bit이므로 네트워크 아이디당 나올 수 있는 IP 주소는 2^16 -2개. -대규모 네트워크 즉, IPS 단 네트워크에서 사용되는 IP로서 주로 서버 구축 시에 많이 사용.
  • C Class (unicast Address)
    • 첫 번째 필드를 2진수로 변환할 경우 맨 앞에 110이라는 공통 비트를 갇는다면 C Class로 정의.(11000000 ~ 11011111: 192부터 223까지)
    • C Class가 사용하는 기본 서브넷 마스크는 255.255.255.0이며 호스트 아이디가 8bit이므로 네트워크 아이디당 나올 수 있는 IP 주소는 2^8 -2개.
    • 소규모 네트워크 즉, 일반 사용자 또는 사무실에서 사용되는 IP로서 작은 사무실에 서버 구축이나 또는 작은 사업장에 IP주소를 할당할 때 사용.
  • D Class (Multicast Address)
    • 첫 번째 필드를 2진수로 변환할 경우 맨 앞에 1110이라는 공통 비트를 갖는다면 D Class로 정의.(11100000 ~ 11101111: 224부터 239까지)
    • D Class는 멀티캐스트 주소로 예약되어 있으며 서브넷 마스크를 이용하여 블락 단위로 동작하지 않기 때문에 서브넷 마스크를 사용하지 않음.
  • E Class (Broadcast Address)
    • 첫 번째 필드를 2진수로 변환할 경우 맨 앞에 1111이라는 공통 비트를 갖는다면 E Class로 정의.(11110000 ~ 11111111: 240부터 255까지)
    • E Class는 IANA에서 사용을 제한 시킨 주소이기 때문에 네트워크 인터페이스에 설정이 불가능.

(8) TCP
TCP는 데이터를 패킷으로 자르고 다시 합치며 IP는 TCP에 의해 잘려진 패킷을 목적지로 전송하는 역할을 함.
TCP는 생산자 역할을, IP는 택배 역할을 함.
IP는 목적지까지만 잘 도착하는 데만 신경을 쓰고 안에 있는 데이터가 잘 보관되어 있는지는 확인을 안 함.
TCP는 생산자 역할인 만큼, 그 데이터가 잘 배달되었는지 확인하고 제대로 배달이 안 되었다면 다시 데이터를 보냄.
TCP와 IP의 역할은 각각 다르지만 각자의 역할을 합쳐 패킷이 목적지에 확실하게 도착하게 함.
TCP의 3 way shaking

    1. Source(출발지)에서 Destination(목적지)dprp Syn를 보냄.
    1. 목적지는 해당 패킷을 받고 출발지에게 다시 Syn과 ACK를 보냄.
    1. 출발지는 해당 패킷들을 받고 데이터와 목적지에 Syn에 대한 ACK를 동시에 보냄.

3 way hand shaking을 통해 신뢰성을 보장하고 패킷을 세그먼트로 잘라서 패킷의 전달을 쉽게 만들며 다시 헤더를 앞에 붙여 패킷이 오류가 발생하거나 조립 과정에서 문제가 없도록 보장.


TCP (Transmision Control Protocol) Main protocols of the internet protol suite.

  • Keeps track of lost packages, makes sure that lost packages are re-sent
  • Addes sequesce numbers to packets and reorders any packets that arrive in thenworng order.
  • Slower, because of all added additional functionality.
  • Requieres more computer resources, because the OS needs to keep track of ongoing communication sessions and manage them on a much deeper level.

(9) UDP
Why we use UDP?
Many applications that requiere real-time communication prefer to use UDP, applications that requiere speed and that torerat partial data loss.

  • Doesn’t keep track of lost packages
  • Doesn’t care about package arrival order.
  • Faster, bacause it lacks any extra features.
  • Requieres less computer resources.
  • Examples of programs and services that use UPD:
    • DNS
    • IP telephony
    • DHCP
    • Many computer games

This post is licensed under CC BY 4.0 by the author.