반응형

1. 프로토콜의 세 가지 요소

 1) 구문(syntax) : 데이터의 형식이나 신호로, 부호화 방법 등을 정의

 2) 의미(semantics) : 오류 제어, 동기 제어, 흐름 제어 같은 각종 제어 절차에 관한 제어 정보 정의

 3) 순서(timing) : 송/수신자 간 혹은 양단(end-to-end)의 통신 시스템과 망 사이의 통신 속도나 순서 등을 정의


2. 프로토콜의 기능

 1) 주소 설정(Addressing) : 각 전송 계층에 맞는 송신자와 수신자의 주소 지정

 2) 순서 제어(Sequence Control) : 데이터 단위가 전송될 때 보내지는 순서 명시

 3) 데이터 대열의 단편화 및 재조합(Fragmentation & Reassembly) : 전송 효율이 높은 작은 단위로 단편화 및 응용 프로그램에서 사용하기 위해 재조합

 4) 캡슐화(Encapsulation) : 데이터에 제어 정보를 덧붙임

 5) 연결 제어(Connection Control) : 연결 설정, 데이터 전송, 연결 해제에 대한 통제 수행

 6) 흐름 제어(Flow Control) : 송신측 개체로부터 오는 데이터의 양이나 속도 조절

 7) 오류 제어(Error Control) : 데이터를 교환할 때 SDU(Service Data Unit)나 PCI(Protocol Control Information)에 대한 오류 검사

 8) 동기화(Synchronization) : 두 개체 간에 데이터가 전송될 때 각 개체는 특정 타이머 값이나 윈도우 크기 등을 서로의 상태를 일치시킴

 9) 다중화(Multiplexing) : 여러 시스템이 동시에 통신할 수 있는 기법

 10) 전송 서비스 : 우선순위 결정, 서비스 등급과 보안 요구 등을 제어


3. 데이터 링크 계층에서 동작하는 프로토콜

 1) 이더넷 프로토콜 : 흔히 랜이라고 부르는 네트워크 구간 또는 네트워크 하드웨어 사이에서 MAC(Media Access Protocol) 주소를 기반으로 통신을 위한 프로토콜. 이더넷 패킷의 최소 길이는 64KBytes, 최대길이는 1,518KBytes


4. 네트워크 계층에서 동작하는 프로토콜

 1) ARP(Address Resolution Protocol) : 통신 대상 시스템에 도달하기 위한 다음 네트워크 인터페이스의 MAC 주소를 알아내야 할 때 사용

 2) RARP(Reverse Address Resolution Protocol) : 데이터 링크 계층의 주소인 MAC 주소를 가진 네트워크 계층의 주소, 즉 IP를 확인하는 프로토콜

 3) IP(Internet Protocol) : 랜의 영역을 넘어서는 회선이 서로 다른 두 노드 사이(WAN 구간)의 데이터를 전송. IP 주소는 A, B, C, D, E클래스로 구분하고 각 클래스는 네트워크 부분과 호스트 부분으로 구성

 4) ICMP(Internet Control Message Protocol) : 호스트 서버와 인터넷 게이트웨이 사이에서 메시지를 제어하고 오류를 알려주는 프로토콜

 5) IGMP(Internet Group Management Protocol) : 멀티캐스트에 관여하는 프로토콜로, 멀티캐스트 그룹을 관리하는 역할 수행


5. 전송 계층에서 동작하는 프로토콜

 1) TCP(Transmission Control Protocol) : 전송 계층에서 동작하는 연결 지향형(connection-oriented) 프로토콜로 데이터의 흐름을 관리하고, 데이터가 정확한지 검증하며 통신. 쓰리웨이 핸드쉐이킹(three-way handshaking)을 통해 연결 설정

 2) UDP(User Datagram Protocol) : TCP와 달리 비연결 지향형 프로토콜. 상대방이 보낸 응답을 확인하지 않으며, 송신 시스템이 전송하는 데이터에 대한 목적지 시스템의 확인 절차를 생략하므로 네트워크에 부하를 주지 않는 장점이 있음. 그러나 데이터 자체의 신뢰성이 없으므로 수신한 데이터는 무결성을 보장받지 못함


6. 응용 계층에서 동작하는 프로토콜

  1) FTP(File Transfer Protocol, 20, 21) : 파일 전송을 위한 가장 기본 프로토콜로, RFC 114로 1971년에 만들어짐

  2) Telnet(23) : 사용자가 원격에 있는 서버에 로그인하도록 TCP 연결을 설정하며, 단말기가 원격 컴퓨터 바로 옆에 있는 것처럼 조작할 수 있게 해줌

  3) SMTP(Simple Mail Transfer Protocol, 25) : 메일 전송을 위한 프로토콜

  4) DNS(Domain Name Service, 53) : 도메인 이름 주소를 통해 IP 주소를 확인할 수 있는 프로토콜

  5) TFTP(Trivial File Transfer Protocol, 69) : 1985년에 만들어졌으며 FTP 처럼 파일을 전송하는 프로토콜

 6) HTTP(HyperText Transfer Protocol, 80) : 인터넷 서비스를 위한 프로토콜

 7) POP3(Post office Protocol 3, 110) & IMAP(Internet Message Access Protocol, 143) : 메일 서버로 전송된 메일을 확인할 때 사용하는 프로토콜. IMAP도 POP3와 기본적으로 같으나, 메일을 읽은 후에도 메일이 서버에 남는다는 점이 다름.

 8) RPC(Remote Procedure Call, 111) : 썬(Sun)의 Remote Procedure Call을 가리킴.

 9) NetBIOS(Network Basic Input/Output System, 138) : 사무기기와 윈도우 시스템 간의 파일 공유를 위한 프로토콜

 10) SNMP(Simple Network Management Protocol, 161) : 네트워크 관리와 모니터링을 위한 프로토콜



반응형
반응형

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