반응형

TCP/IP 프로토콜


<IP 프로토콜>

IP 프로토콜은 처리할 데이터(패킷,Packet)를 어떻게 전송하는가에 대한 문제를 다루고 있는 프로토콜이다.


즉, 전송해야 할 데이터를 패킷(packet)이라는 단위로 나누어서 보낼 목적지주소를 할당한 다음 어디로 보낼 것인가를 결정하고 이를  전송하는 문제까지가 IP프로토콜에서 정의하고 있다.


OSI 7 계층 모델에서 보면 IP 프로토콜은 3 계층인 네트워크계층에 속한다. IP 프로토콜과 같이 3 계층인 네트워크계층에 속하는 프로토콜로는 Ipv6, ICMP, ARP, RARP 등이 있다.


<TCP 프로토콜>

TCP 프로토콜은 IP 프로토콜에서 다루고 있는 패킷(Packet)을 목적지까지 어떻게 안정적으로 보낼 것인가를 정의하고 있는 프로토콜이다.


OSI 7 계층 모델에서 보면 TCP 프로토콜은 4 계층인 전송계층에 속한다.

4계층 전송(Transport) 계층에 속하는 것으로는 TCP와 함께 UDP가 있다.


IP 주소

IP 주소는 8bit 씩 4 자리 즉, 전체 32bit 로 구성되어 있으며 .(dot)로 구분한다. 즉, 점(.)을

구분자로하여 32 개의 2 진수를 8 개 bit 4 개로 표현한다.


IP 주소의 구성

IP 주소 = Network Address 부분 + Host Address 부분으로 나뉘어 지며


데이터전송을 위한 라우팅(Routing)은 IP 어드레스 부분 중 네트워크주소 부분을 근거로 이루어진다.


[IP 주소의 범위]

0.0.0.0 ~ 255.255.255.255 까지

이들 주소는 IPv4 라는 규약에 의해 다음과 같이 5 개의 클래스(class)로 나누어져 있다.


[IP 주소의 클래스 Class]


구분

네트워크 부분

호스트 부분

A Class

8 bit

24 bit

B Class

16 bit

16 bit

C Class

24 bit

8 bit



A Class 범위 : 0.0.0.0 ~ 127.255.255.255

B Class 범위 : 128.0.0.0 ~ 191.255.255.255

C Class 범위 : 192.0.0.0 ~ 223.255.255.255

D Class 범위 : 224.0.0.0 ~ 239.255.255.255

E Class 범위 : 240.0.0.0 ~ 255.255.255.255


A,B,C Class : unicast

D Class : multicast

E Class : 예비주소


Broadcast : 255.255.255.255 주소


1. A 클래스

1) 0.0.0.0 부터 172.255.255.255 사이의 IP 주소들이 A 클래스에 속하는 주소들이다.

2) 첫번째 숫자가 1 ~ 127 사이의 값을 가진다.

3) 32bit 중 맨 첫번째 bit 가 0 이다 . (2진수 표기에서)

4) 첫번째 1byte(8bit)가 네트워크 주소이며 나머지 3byte(24bit)가 호스트 주소이다.

5) 2^7 = 128 개의 네트워크가 존재한다.

6) 1개의 네트워크는 2^24 = 16,777,216 개의 호스트를 각각 가질 수 있다.

7) 10.0.0.0 부터 10.255.255.255 사이의 IP 주소들은 내부 IP 주소로 사용되기 때문에 공인 IP 주소로는 사용하지 못하며 사설 네트워크에서 사용되는 IP 주소이다.

8) 127.0.0.0 부터 127.255.255.255 사이의 IP 주소들은 자기자신을 가리키기 위한 루프백네트워크 IP 주소로 사용된다.


2. B 클래스

1) 128.0.0.0 부터 191.255.255.255 사이의 IP 주소들이 B 클래스에 속하는 주소들이다.

2) 첫번째 숫자가 192 ~ 223 사이의 값을 가진다.

3) 전체 IP 주소 32bit 중 첫번째가 10 으로 시작한다. (2진수 표기에서)

4) 첫번째 2byte(16bit)까지가 네트워크주소이며 나머지 2byte(16bit)가 호스트주소이다.

5) 2^14 = 16,348 개의 네트워크가 존재한다.

6) 1개의 네트워크는 2^16 = 65,536 개의 호스트를 각각 가질 수 있다.

7) 172.16.0.0 부터 172.31.0.0 사이의 IP 주소들은 내부 IP 주소로 사용하기 때문에 공인 IP 주소로 사용하지 못하며 사설 네트워크 에서 사용되는 IP 주소이다.


3. C 클래스

1) 192.0.0.0 부터 223.255.255.255 사이의 IP 주소들이 C 클래스에 속하는 IP 주소들이다.

2) 첫번째 숫자가 192~223사이의 값을 가진다.

3) 전체 IP 주소 32bit 중 첫번째가 110으로 시작한다.(2진수 표기에서)

4) 첫번째 3byte(24bit)까지가 네트워크주소이며 나머지 1byte(8bit)가 호스트주소이다.

5) 2^21 = 2,097,152 개의 네트워크가 존재한다.

6) 1 개의 네트워크는 2^8 = 256 개의 호스트를 각각 가질 수 있다.

7) 호스트 IP 주소 부분이 0 이면 해당 네트워크를 나타내는 네트워크주소로 사용된다.

8) 호스트 IP 주소 부분이 255 이면 해당 네트워크의 모든 호스트에게 동시에 전달하기 위한 목적으로 사용되는 해당 네트워크의 브로드캐스트 IP 주소로 사용된다.

9) 192.168.0.0 ~ 192.168.255.255 사이의 IP 주소는 내부 IP 주소로 사용되기 때문에 공인 IP 주소를 할당할 수 없으며 사설 네트워크를 사용할 때 사용한다.


4. D 클래스

1)  224.0.0.0 부터 239.255.255.255 사이의 IP주소들이 D 클래스에 속하는 IP 주소들이다.

2) 첫번째 숫자가 224~239 사이의 값을 가진다.

3) 이 클래스의 IP 주소들은 모두 호스트주소로 사용하지 않는 IP 주소들이다.

4) 전체 IP 주소 32bit 중 첫번째가 1110 으로 시작한다.(2진수 표기에서)

5) 멀티캐스팅(Multicasting)을 하기 위한 IP 주소들(Multicast Address) 이며 그룹 ID 라고 도 한다.


5. E 클래스

1) 240.0.0.0 부터 255.255.255.255 에 속하는 IP 주소들을 E 클래스라고 한다.

2) 첫번째 숫자가 240 ~ 255 사이의 값을 가진다.

3) 전체 IP 주소 32bit 중 첫부분이 11110 으로 시작한다.(2 진수 표기에서)

4) E 클래스 주소들은 특별히 정의되어있지 않으며 미래를 위해 남겨둔 주소들이다.

5) 간혹 실험적으로 사용되기도 하지만 E 클래스 범위에 속하는 IP 주소들은 실제 사용하는 IP 주소가 아니다.


[IP 주소에 대한 일반적인 규칙]

1. 127.0.0.1 주소는 자기자신의 loopback 주소(루프백주소)로 사용하기 위해 미리 예약되어 있다.


2. 0.0.0.0 은 default route 주소로 사용하기 위해 미리 예약되어 있다.


3. C 클래스에 있어 0 과 255는 호스트주소로 사용하지 않는다. 즉, 0은 네트워크주소로 사용되고 255는 브로드캐스트 주소로 각각 사용된다.


4. 네트워크주소는 각 네트워크의 가장 첫번째 주소를 사용한다. 즉, IP 주소를 표시하는 마지막 부분이 0 이면 특정 네트워크를 나타내기 위하여 사용된다.


5. 브로드캐스트 주소는 각 네트워크의 가장 마지막 주소를 사용한다. 즉, IP 주소를 표시하는 마지막 부분이 255 이면 특정 네트워크의 브로드캐스트주소로 주로 사용된다.


6. D 클래스 에 속하는 주소는 호스트주소로 사용하지 않는다.(멀티캐스트 용도로 사용)


[넷마스크(NetMask), 네트워크주소(Network Address), 브로드캐스트(Broadcast), 게이트웨이(Gateway)]


1. 넷마스크(NetMask)

- 하나의 네트워크를 몇 개의 네트워크로 나누어 사용할 때에 나뉘어진 각각의 네트워크를 구분하기 위해 사용하는 특수한 bit 를 의미한다. 정확한 명칭은 Subnet Mask 이다.


ex) C 클래스에 속하는 하나의 네트워크를 여러 개로 나누기(192.168.1.0)


나누는 네트워크갯수

나누어진 각네트워크 내에서 사용가능한 호스트수

사용하는 NetMask

1 개로 사용(나누지 않음)

254

255.255.255.0

2개

126

255.255.255.128

4개

62

255.255.255.192

8개

30

255.255.255.224

16개

14

255.255.255.240

32개

6

255.255.255.248


<총 호스트 IP 주소 갯수 계산방법>

하나의 네트워크를 n개의 네트워크로 나누었을 경우


⇒ { 56 - ( n * 2) } 개, 단 n은 짝수


<개별 네트워크에서 사용할 수 있는 호스트 IP 주소의 갯수 계산방법>


⇒ { ( 256 / n ) - 2 } 개, 단 n은 짝수


2. 네트워크주소(Network Address)

- 하나의 네트워크를 통칭하기 위해 사용하는 주소이다. C 클래스 하나로 특정 네트워크를 구성하려고 할 경우에 네트워크주소가 192.168.1.0 이라고 한다면 이 네트워크에 속하는 주소들은 192.168.1.0 부터 192.168.1.255 까지가 이에 속하게 된다.


네트워크 주소의 표현은 일반적으로 해당 네트워크의 맨 첫번째 IP 주소를 이용하여 표시

ex) 211.220.193.8 이라는 IP 주소가 있다면 네트워크주소는 211.220.193.0 이다.


3. 브로드캐스트(Broadcast)

- 네트워크에 속하는 모든 호스트들이 듣게되는 주소를 의미한다. 네트워크 주소와는 반대로 특정 네트워크의 맨 마지막 주소를 브로드캐스트주소로 사용한다.


ex) C 클래스 이며 네트워크 주소가 192.168.2.0 이라고 한다면 브로드캐스트 주소는 192.168.2.255 가 된다.


4. 게이트웨이(Gateway)

- 서로다른 네트워크를 연결해주는 역할을 하는 특정장비나 특정호스트를 의미한다. 게이트웨이로 사용되고 있는 가장 일반적인 장비는 라우터(Router)이며 리눅스 시스템도 게이트웨이로 사용할 수 있다.


패킷포워딩 : 일반적인 서버나 호스트에서는 특정 패킷을 받았을 대 자기자신의 패킷이 아니면 그냥 버린다. 하지만 게이트웨이는 라우팅테이블(Routing table)을 확인하여 받은 패킷을 가장 적합한 다른 네트워크로 전달해주는 역할을 IP 포워딩 or 패킷 포워딩 이라고 한다.


게이트웨이 IP 주소 사용 예


  1. 네트워크 IP 주소 : 192.168.1.0

  2. 브로드캐스트 IP 주소 : 192.168.1.255

  3. 호스트로 사용가능한 IP주소 범위 : 192.168.1.1 ~ 192.168.1.254

  4. 게이트웨이 IP 주소 : 192.168.1.254 (일반적으로 호스트로 사용가능한 IP 주소범위 중 가장 마지막 IP주소를 게이트웨이주소로 사용

  5. 서브넷마스크 : 255.255.255.0



반응형

+ Recent posts