(1) TCP/IP 프로토콜

1) TCP/IP는 현재의 인터넷에서 사용하는 프로토콜 그룹이다이는 상호 작용하는 모듈로 이루어진 계층적 프로토콜인데각 모듈은 특정한 기능을 제공한다.

2) 계층적이라는 말은 각 상위 계층 프로토콜은 1개 이상의 하위 계층 프로토콜로부터 제공되는 서비스들의 지원을 받는다는 의미이다.

3) 원래 TCP/IP 프로토콜 그룹은 하드웨어에 설치된 4개의 소프트웨어 계층으로 정의되었다하지만 현재 TCP/IP는 5계층 모델로 간주된다.

 

그림 151. OSI 7 Layer vs TCP/IP

 

(2) OSI vs TCP/IP

1) TCP/IP 프로토콜은 OSI 모델보다 먼저 개발되었다그러므로 TCP/IP 프로토콜의 계층은 OSI 모델 계층과 정확하게 일치하지 않는다.

2) 두 모델을 비교하면 세션과 표현계층이 TCP/IP 계층에 없다는 것을 알 수 있다.

 

(3) 캡슐화와 역캡슐화

1) 인터넷에서 프로토콜 계층화를 할 때 중요한 개념 중 하나가 캡슐화(Encapsulation)와 역캡슐화(Decapsulation) 이다.

2) 발신지 호스트에서는 캡슐화수신지 호스트에서는 역 캡슐화그리고 라우터에서 캡슐화와 역캡슐화가 이루어진다그러나 데이터 링크 계층에서는 캡슐화/역캡슐화가 일어나지 않는다.

 

 

(4) 주소 지정

1) TCP/IP 프로토콜을 이용한 인터넷은 3개의 서로 다른 계층의 주소가 사용되는데물리 주소(Physical Address, 링크), 논리 주소(Logical Address, IP), 포트 주소(Port Address) 이다.

 



 

제1항 TCP/IP

(1) 데이터링크 계층

1) 흐름제어(Flow Control)

① 서로 다른 데이터링크 계층 포로토콜은 서로 다른 흐름 제어 전략을 사용한다또한 전송 계층에서 흐름 제어는 매우 중요하다.

 

 

2) 오류제어(Error Control)

① 전기 신호는 오류에 취약하기 때문에 프레임 또한 오류에 취약하다첫번째로 오류를 검출하는 것이 필요하다오류 검출 이후에 송신자 노드에서 이를 수정하거나 오류를 폐기하고재 전송을 송신 노드에게 요청해야만 한다.

 

3) 혼잡제어(Congestion Control)

① 비록 링크가 프레임 혼잡으로 인해 프레임 손실이 발생하더라도어떤 광역 네트워크 이외의 대부분의 데이터링크 계층 프로토콜은 직접적으로 혼잡을 완화하기 위한 혼잡 제어를 사용하지 않는다.

② 일반적으로 혼잡 제어는 종단--종단으로 통신하기 때문에네트워크 계층 또는 전송 계층의 문제로 여겨진다.

 

(2) 네트워크 계층

1) 라우팅

① 네트워크 계층에서 다른 임무는 라우팅(routing)과 포워딩(forwarding)으로 둘은 서로 직접적인 연관이 있다.

② 네트워크 계층은 패킷이 근원지에서 목적지까지 갈 수 있도록 경로를 지정해야 한다.

 

2) 포워딩

① 라우팅 프로토콜을 실행할 때 포워딩(forwarding)은 라우터상의 하나의 인터페이스에 패킷이 도착했을 때 라우터가 취하는 행동으로 정의할 수 있다.

② 이런 행동을 취하기 위해 라우터가 일반적으로 사용하는 의사결정 테이블은 포워딩 테이블 혹은 라우팅 테이블 이라 불리기도 한다.

 


3) IPv4 주소

① 개요

• IPv4는 32비트의 주소를 사용하므로 주소 공간은 232 혹은 4,294,967,296(40억 이상)이 된다제한이 없었다면 40억 이상의 장치가 인터넷에 연결될 수 있다.

• 각 바이트는 8비트이기 때문에 10진수 표기법에서 각 숫자는 0에서 255사이의 값을 가진다. IPv4 주소는 16진수 표기법으로도 나타낸다.

• 각 16진수 숫자는 4비트이다이는 32비트 주소가 8개의 16진수 숫자로 표현될 수 있음을 의미한다.

 


• 32비트의 IPv4 주소는 두 부분으로 구분되는 계층적 구조이다주소의 첫번째 부분은 접두사(prefix)로 네트워크를 정의하고주소의 두번째 부분은 접미사(suffix)로 노드(장치의 인터넷으로 연결)를 정의한다.

 


• 접두사(prefix)의 길이는 n비트이고접미사(suffix)의 길이는 (32-n) 비트이다.


 

• 인터넷이 시작될 당시 IPv4 주소는 소규모 및 대규모 네트워크를 지원하기 위해 한 가지가 아닌 세 가지의 고정된 접두사(Prefix) n=8, n=16, n=24로 설계되었다.

• 전체 주소 공간은 5개의 클래스(A, B, C, D, E)로 구분된다이 기술을 클래스 기반 주소 지정(classful addressing) 이라고 한다.

 

• A class

클래스 A에서 네트워크 길이는 8비트이지만 0으로 고정된 첫 번째 비트가 클래스를 지정하기 때문에 네트워크 식별자로 7비트만 사용 가능하다이는 세계에서 오직 27 = 128개의 네트워크만 클래스 A 주소를 가질 수 있음을 의미한다.

27

26

25

24

23

22

21

20

128

64

32

16

8

4

2

1

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

 

0 ~ 127

 

• B class

클래스 B에서 네트워크 길이는 16비트이지만 10으로 고정된 처음 두 비트가 클래스를 지정하기 때문에 네트워크 식별자로 14비트만 사용 가능하다이는 세계에서 오직 214 = 16,384 개의 네트워크만 클래스 B주소를 가질 수 있음을 의미한다.

27

26

25

24

23

22

21

20

128

64

32

16

8

4

2

1

1

0

0

0

0

0

0

0

1

0

1

1

1

1

1

1

1

0

128.0 ~ 191.255

 

• C class

110 으로 시작하는 모든 주소는 클래스 C이다클래스 C에서 네트워크 길이는 24비트이지만 처음 3비트가 클래스를 지정하기 때문에 네트워크 식별자로 21비트만 사용 가능하다이는 세계에서 오직 221 = 2,097,152 개의 네트워크만 클래스 C주소를 가질 수 있음을 의미한다.

27

26

25

24

23

22

21

20

128

64

32

16

8

4

2

1

1

1

0

0

0

0

0

0

1

1

0

1

1

1

1

1

1

1

0

192.0.0 ~ 223.255.255

 

• D class

클래스 D는 접두사와 접미사로 구분되지 않고 멀티캐스트 주소로 사용된다. 2진수로 1111로 시작하는 모든 주소는 클래스 E에 포함된다클래스 D와 마찬가지로 클래스 E도 접두사와 접미사로 구분되지 않으며 예약된 주소이다.

 

② 주소 고갈

클래스 기반의 주소가 더 이상 사용되지 않는 이유는 주소 고갈 때문이다주소가 적절히 분배되지 않았기 때문에 인터넷에 연결하려는 기관이나 개인이 사용할 주소가 더 이상 남지 않게 되는 문제에 직면하게 되었다.

 

③ 서브네팅과 슈퍼네팅

• 주소 고갈을 완화하기 위해 서브네팅(subnetting)과 슈퍼네팅(supernetting)의 두 가지 기술이 제안되었다.

• 서브네팅에서 클래스 A나 B는 여러 개의 서브넷으로 분리된다각 서브넷은 원래 네트워크보다 더 큰 크기의 접두사를 가진다.

 

 

 B클래스 주소에서 호스트 주소 8비트를 서브네팅하는 경우

기존 B클래스에서 디폴트 서브넷마스크(255.255.0.0)를 사용할 경우에는 216 개의 네트워크로 구분하여 각 네트워크 당 216 - 2개의 호스트를 사용할 수 있었지만 다른 서브넷마스크(255.255.255.0)를 사용함으로써 각 네트워크 당 2- 2개의 호스트를 가진 2개의 더 작은 서브네트워크로 나누어 사용할 수 있게 된다.

 

• 이 기법은 대부분의 큰 기관이 자신의 주소를 나누어 사용하지 않는 주소를 작은 기관에 분배하는 것에 불만이 많아 적용되지 않았다.

• 서브네팅이 큰 구조를 작은 것으로 나누기 위해 고안되었다면 슈퍼내팅은 여러 클래스 C를 하나의 큰 구조로 묶어 클래스 블록에서 유효한 256개보다 더 많은 주소를 사용하려는 기관들을 위해 고안되었다.

 

④ 클래스 없는 주소 지정

• 클래스 기반 주소 지정에서 서브네팅과 슈퍼네팅은 실제로 주소 고갈 문제를 해결하지 못하였다인터넷의 성장에 따라장기적인 관점에서 해결책으로 더 큰 주소 공간이 필요했다그러나 더 큰 주소 공간은 IP 패킷 형식의 변화가 필요한 IP 주소 길이의 증가가 필요하다.

• 단기적인 관점의 해결책에서는 클래스 없는 주소지정 방식의 IPv4 주소가 사용된다즉 주소 고갈을 해결하기 위해 클래스 권한이 제거되었다.

• 클래스 없는 주소지정에서 전체 주소 공간은 가변 길이의 블록으로 나뉘어진다주소의 접두사는 블록(네트워크)을 지정하고 접미사는 노드(장치)를 지정한다이론적으로 20  21  22… 232 주소의 블록을 사용할 수 있다.

• 여기서 중요한 것은 클래스 없는 주소지정이 클래스 기반 주소지정에 쉽게 적용 가능하다는 것이다클래스 A의 주소는 접두사의 길이가 8인 클래스 없는 주소로 생각할 수 있다.

• 클래스 주소는 접두사의 길이가 16인 클래스 없는 주소로 생각할 수 있다클래스 기반의 주소 지정은 클래스 없는 주소 지정에서 특별한 경우들이다.

 

⑤ 접두사 길이 슬래시 표기법

• 클래스 없는 주소 지정에서 한 가지 의문은 주소가 주어졌을 때 어떻게 접두사의 길이를 찾는가이다접두사의 길이가 주소에 포함되지 않기 때문에 접두사의 길이를 따로 주어야 한다.

• 이 경우 접두사의 길이 n은 슬래시로 구분하여 주소가 추가된다이 표기법은 비 공식적으로 슬래시 표기법(slash notation)으로 불리고 공식적으로 클래스 없는 인터도메인라우팅(classless interdomain routing) 혹은 CIDR(classless interdomain routin) 이라 불린다.

 

 

4) 인터넷 프로토콜(IP)

① 개요

• IPv4는 비신뢰적이고 비연결형인 데이터그램 프로토콜로 최선형 전송 서비스(best-effort delivery service) 이다.

• 여기서 최선형 전송의 의미는 IPv4 패킷이 훼손되거나 손실순서에 맞지 않게 되착지연되어 도착할 수 있고 네트워크에 혼잡을 발생시킬 수 있다는 뜻이다.

• 만약 신뢰성이 중요하다면 IPv4는 TCP처럼 신뢰성 있는 전송 계층 프로토콜과 함께 사용되어야 한다.

• 모든 TCP/UDP, ICMP, IGMP 데이터는 IP 데이터그램을 사용하여 전송한다.

 

 

② IPv4 데이터그램 형식

• IP가 사용하는 패킷을 데이터그램(datagram)이라 한다데이터그램은 가변 길이의 패킷으로 헤더와 페이로드(payload, 데이터)로 이루어져 있다.

• 헤더는 20에서 60바이트의 길이이며 라우팅과 전송에 필수적인 정보를 가지고 있다.

 

 

③ ARP(Address Resolution Protocol)

• 개요

ü  호스트는 ARP 요청 메시지를 보낼 때 자신의 IP 주소자신의 물리주소그리고 수신측 IP주소는 알고 있지만 수신측 물리주소는 모르기 때문에 물리 계층 브로드캐스트를 통해 모든 호스트에게 패킷을 전송한다.

ü  ARP 요청 메시지를 수신한 호스트 또는 라우터는 수신 IP 주소와 자신의 IP 주소를 검사하여 자신에 대해 물리주소를 요구하는 경우라면 ARP 응답 메시지를 전송한다.

 

 

• ARP 요청 메시지

ü  특정 IP 주소에 대한 물리 주소를 요구한다.

ü  호스트는 ARP 요청 메시지를 보낼 때 수신측 물리 주소는 모르기 때문에 물리 계층 브로드케스트로 전송한다.

 

 

• ARP 응답 메시지

ü  물리 주소 정보를 알림(유니캐스트로 전송)

ü  ARP 요청 메시지를 수신한 호스트 또는 라우터는 자신의 물리 주소를 요구하는 경우 ARP 응답 메시지 전송(호스트가 라우터를 넘어서 다른 네트워크에 있으면 라우터가 해당 호스트를 대신하여 응답 메시지 전송)

 

④ ICMPv4(Internet Control Message Protocol version 4)

• 개요

ü  IP프로토콜은 호스트와의 관리 질의를 위한 메커니즘이 없다그러나 호스트는 간혹 라우터나 다른 호스트가 동작하고 있는지 알 필요가 있다그리고 간혹 네트워크 관리자는 다른 호스트나 라우터로부터 정보를 획득할 필요가 있다.

ü  인터넷 제어 메시지 프로토콜 버전4(ICMPv4)는 위의 두 가지 단점을 보안하기 위해서 설계되었다. ICMP는 IP 프로토콜의 동반 프로토콜이다.

 

• 메시지

ü  ICMPv4 메시지는 크게 오류보고 메시지와 질의 메시지로 나눌수 있다.

 

 

ü  오류보고 메시지는 라우터(목적지)나 호스트가 IP 패킷을 처리하는 도중에 탐지하는 문제를 보고한다질의 메시지는 쌍으로 생성되는데 호스트나 네트워크 관리자가 라우터나 다른 호스트로부터 특정 정보를 획득하기 위해서 사용한다.

ü  첫번째 필드인 ICMP 유형은 메시지의 유형을 나타낸다코드 필드는 특정 메시지 유형의 이유를 지정한다마지막 공통 필드는 검사합 필드이다헤더의 나머지 부분은 각 메시지별로 다르다.

 

 

• 오류 보고 메시지

ü  IP가 신뢰성 없는 프로토콜이기 때문에 ICMP의 주된 임무중 하나는 IP 데이터그램의 프로세싱 동안 발생하는 오류를 보고하는 것이다그러나 ICMP는 오류를 수정하는 것이 아니고 단지 보고를 할 뿐이다.

ü  목적지 도달 불가

-        가장 널리 사용되는 오류 메시지는 목적지 도달불가(type 3)이다.

-        이 메시지는 왜 데이터 그램이 최종 목적지에 도착하지 못하였는지에 대한 오류 메시지의 종류를 정의하기 위해 0부터 15까지의 다른 코드를 사용한다.

ü  근원지 억제

-        다른 오류 메시지는 근원지 억제(type 4) 메시지이다이 메시지는 송신자에게 네트워크에 충돌이 발생해서 데이터그램이 폐기되었음을 알리는 메시지이다.

-        이 메시지를 전달받은 근원지는 데이터그램을 송신하는 과정을 천천히(또는 억제수행한다다시 말해 ICMP는 이러한 메시지를 통해 IP 프로토콜에 혼잡 제어 메커니즘을 추가한다.

ü  재지정 메시지

-        재지정 메시지(type 5)는 발신자가 메시지를 전송하기 위해 잘못된 라우터를 사용할 때 사용되는 메시지이다.

-        라우터는 적절한 라우터에게 메시지를 전달하도록 재지정되지만라우터는 발신자에게 향후 디폴트 라우터로 변경해야만 한다고 알린다메시지 안에 디폴트 라우터의 IP 주소가 포함된다.

 

• 질의 메시지

ü  질의 메시지는 인터넷에서 호스트나 라우터가 활성화되었는지를 알아보거나두 장치 사이의 IP 데이터그램이 단방향인지 왕복인지를 찾는다.

ü  에코요청(echo request) 메시지(type 8)와 에코응답(echo reply) 메시지(type 0)의 쌍은 다른 호스트나 라우터가 활성화되었는지의 여부를 테스트하기 위해 호스트나 라우터가 사용한다.

ü  (ping)과 Traceroute)와 같은 디버깅 도구에서 에코 요청과 에코 응답 메시지 쌍을 확인할 수 있다.

 

5) 전송계층

① UDP(User Datagram Protocol)

• 개요

ü  사용자 데이터그램 프로토콜(UDP, user datagram protocol)은 비연결형이고 신뢰성이 없는 전송 프로토콜이다.

ü  UDP는 호스트 간 통신 대신에 프로세스 간 통신을 제공하는 것을 제외하고는 IP서비스와 동일하다.

ü  UDP는 최소한의 오버헤드를 가진 매우 간단한 프로토콜이다만약 프로세스가 작은 메시지를 송신하기를 원하고신뢰성에 관하여 그다지 신경을 쓰지 않는다면 UDP를 사용할 수 있다.

 


• UDP 서비스

ü  프로세스--프로세스

-        UDP는 IP 주소와 포트 번호의 결합인 소켓 주소(socket address)를 이용하여 프로세스--프로세스 통신을 제공한다.

ü  비연결형 서비스(connectionless service)

-        UDP는 비연결형 서비스를 제공한다이것은 UDP에 의해 보내지는 각 사용자 데이터그램은 독립된 데이터그램이라는 것을 의미한다.

-        동일한 근원지 프로세스로부터 들어와서 동일한 목적지 프로그램으로 간다고할지라도 사용자 데이터그램은 서로 관계가 없다.

ü  흐름 제어(flow control)

-        UDP는 매우 단순한 프로토콜이다흐름 제어가 없고 따라서 윈도우 메커니즘이 없다들어오는 메시지로 인하여 수신자측에 오버플로우가 발생할 수도 있다.

-        흐름 제어의 결여는 UDP를 이용하는 프로세스가 필요하다면 이러한 서비스를 스스로 제공해야만 함을 의미한다.

ü  오류 제어(error control)

-        검사합을 제외하고는 UDP에는 오류제어 매커니즘이 없다이것은 송신자가 메시지가 손실이 되었는지 또는 중복이 되었는지를 알 수 없음을 의미한다.

-        수신자가 검사합을 통하여 오류를 검출하였을 때는 사용자 데이터그램은 아무런 동작 없이 제거된다오류 제어의 결여는 UDP를 사용하는 프로세스가 필요하다면 스스로 제공해야만 함을 의미한다.

ü  혼잡 제어

-        UDP는 비연결 프로토콜이므로 이것은 혼잡 제어를 제공하지 않는다. UDP는 전송되는 패킷이 매우 작고 산발적이어서 네트워크에서 혼잡을 발생시키지 않는다.

 

② TCP(Transmission Control Protocol)

• TCP 서비스

ü  프로세스--프로세스 통신(process to process communication)

-        TCP는 UDP 처럼 포트 번호를 사용하여 프로세스 간 통신을 한다.

ü  스트림 전송 서비스(stream delivery service)

-        TCP에서 송신 프로세스는 바이트의 흐름(stream of byte)으로 데이터를 전달하고 수신 프로세스도 바이트의 흐름으로 데이터를 수신한다.

-        TCP는 인터넷으로 데이터를 운반하는 가상의 튜브(tube)에 의해 2개 프로세스가 연결되는 것처럼 보이는 환경을 만든다.

ü  송신 및 수신버퍼

-        송신 및 수신 프로세스는 똑 같은 속도로 데이터를 만들고 처리할 수 없기 때문에 TCP는 저장을 위해서 버퍼가 필요하다.

-        각 방향을 위해 송신 및 수신 두 가지 버퍼가 있다이 버퍼들은 TCP 흐름 및 오류 제어 기법에 사용된다.

ü  전이중 통신(full-duplex service)

-        TCP는 전이중 통신을 제공하여 데이터는 동시에 양방향으로 전달될 수 있다이를 위해 TCP는 송신 및 수신 버퍼를 가지고 있으며 세그먼트는 양방향으로 이동한다.

ü  연결-지향 서비스

-        UDP와 달리 TCP는 연결지향 프로토콜이다이것은 물리적 연결이 아닌 가상적인 연결이다.

ü  신뢰성 있는 서비스

-        TCP는 신뢰성 있는 전송 프로토콜이다. TCP는 데이터의 안전하고 확실한 도착을 확인하기 위하여 확인응답 기법을 사용한다.

 

6) 응용계층

 

Application

Protocol

Port Number

FTP data

TCP

20

FTP control

TCP

21

SSH(Secure Shell)

TCP

22

Telnet

TCP

23

SMTP

(Simple Mail Management)

TCP

25

DNS

UDP, TCP

53

DHCP

UDP

67, 68

TFTP

UDP

69

HTTP(WWW)

TCP

80

POP3

(Post Office Protocol)

TCP

110

SNMP

(Simple Network Management Protocol)

UDP

161

HTTPS

TCP

443

 

① HTTP

• 하이퍼텍스트 전송 프로토콜(HTTP, hypertext transfer protocol)은 웹으로부터 웹페이지를 가져오기 위해 어떻게 클라이언트-서버 프로그램이 작성될 수 있는지를 정의하는데 사용된다.

• HTTP 클라이언트는 요청을 하고 HTTP 서버는 응답을 한다서버는 포트 80번을 사용하고 클라이언트는 임시 포트 번호를 사용한다.

 

② FTP

• 파일 전송 프로토콜(FTP, file transfer protocol)은 하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 표준 프로토콜이다.

 

③ TELNET

• TerminaL NETwork의 약어인 TELNET은 최초의 원격 로그인 프로토콜 중 하나이다. TELNET은 로그인 이름과 암호를 요구함에도 불구하고 암호를 비롯한 모든 데이터를 암호화되지 않은 평문으로 전송하기 때문에 해킹에 취약하다.

• 해커는 로그인 이름과 암호를 도청해서 얻을 수 있다이러한 보안 문제 때문에 다른 프로토콜인 SSH(Secure Shell)가 사용되어 TELNET의 사용은 감소되었다.

 

④ DNS

• 오늘날 인터넷은 매우 거대하기 때문에 중앙 디렉토리 시스템은 모든 매핑을 보유할 수 없다또한 중양 컴퓨터가 고장나는 경우 전체 통신망은 붕괴된다.

• 더 좋은 해결책으로 현재 사용하고 있는 것은 이 엄청난 양의 정보를 작제 나누어서 전세계의 서로 다른 컴퓨터에 저장하는 것이다.

• 이 방법에서 각 호스트는 매핑이 필요할 경우 이 정보를 가지고 있는 가장 가까운 컴퓨터와 통신하게 된다도메인 네임 시스템(DNS, Domain Name System)이 이 방법을 사용한다. 

'정보처리기사 > 데이터통신' 카테고리의 다른 글

16. 인터넷 & OSI 7계층  (0) 2017.08.02
15. VAN & ISDN  (0) 2017.08.02
14. 근거리통신망(LAN)  (0) 2017.08.02
13. 패킷 교환망  (0) 2017.08.02
12. 데이터 회선망  (0) 2017.08.02

+ Recent posts