달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2008. 11. 10. 21:00

1-2. TCP/IP Protocol Suite Windows Networking2008. 11. 10. 21:00


앞에서 우리는 간략한 TCP/IP Protocol의 개요에 대해서 알아 보았다. 이번 장에서는 TCP/IP Protocol Suite에 포함되어 있는 각각의 프로토콜들이 하는 일이 무엇인지, 왜 그렇게 많은 프로토콜로 구성이 되어 있어야 하는 지에 대해서 정리해 보도록 하자.

<그림1-3> TCP/IP 통신의 흐름

<그림1-3>에서는 TCP/IP통신의 흐름을 송신측과 수신측으로 구분하여 그려보았다. 꽤 복잡해 보이지만 잠깐만 들여다 보면 그다지 복잡한 그림이 아니다.  송신측에서는 응용프로그램에서 시작하여 아래쪽으로 화살표가 내려오고 있고, 수신측에서는 아래쪽에서부터 응용프로그램 쪽으로 화살표가 올라가고 있는 것을 알 수 있다.  TCP/IP통신을 할 때 이렇듯 계층구조를 따라서 통신이 이루어지고 있다. 일단은 그것을 확인하는 것만으로도 충분하다.

그림을 보면 송신측에서 먼저 응용프로그램을 실행한후 만든 데이터를 다른 호스트로 전송했을 때 데이터는 먼저 하위의 프로토콜에게 전달이 된다. 그러면, 하위의 프로토콜은 상위의 계층에서 넘겨 받은 데이터를 캡슐화시키고, 그 데이터앞에 Header라고 불리우는 추가 정보를 덧붙인다. 그 다음 또, 자신의 하위 계층에게 그 데이터를 전달한다. 최종적으로 가장 하위의 계층에 해당하는 Physical Layer는 네트워크에 실어 보낼 수 있는 프레임(frame)이라는 것을 만들어서 데이터를 전송한다.

수신측의 호스트에서 생각을 해 보겠다. 실제로 데이터를 받게 되는 것은 당연히 해당 호스트의 Physical layer에서 받게 된다. 즉 네트워크 어댑터 카드에서 데이터를 받게 될 것이다. 그럼 이제 받는 쪽에서는 송신측과는 반대로 각 계층마다 자신들이 이해할 수 있는 상대방 프로토콜이 덧붙여 놓은 Header부분만 제거를 하고, 순수한 데이터 부분만 상위의 계층에 전달하게 되고, 결국 최종적으로는 순수한 데이터만이 어플리케이션에게 전달된다.

송신측의 호스트의 어플리케이션이 만든 데이터에 여러 프로토콜들이 Header로서 정보를 추가했던 작업은 네트워크 상에 데이터를 정확히 전달하기 위한 조치였던 것이다. 당연히 수신측의 호스트는 그러한 정보를 기반으로 하여 내가 받은 데이터가 온전한 모양의 데이터인지 계산하고 자신의 최종목적지인 가장 상위의 어플리케이션에게는 단지 상대방의 어플리케이션이 만든 데이터만을 전달하게 되는 것이다. 이것이 기본적인 계층모델을 따른TCP/IP Protocol Suite의 동작원리이다.

각각의 계층별로 프로토콜에 대해서 간단히 정리를 해 보겠다. 자세한 사항은 뒤에서 이어가도록 한다. TCP/IP LAN(Local Area Network) WAN(Wide Area Network)을 위해서 디자인된 표준 프로토콜 Suite이다. 가장 기초가 되는 모델은 Physical(Network interface) Layer이다. 이 계층은 실제 네트워크에서 데이터를 전송하는 케이블에 프레임이라고 불리우는 데이터를 실어 보내고, 또 한편으로는 데이터를 받는 역할을 담당한다.

다음의 계층은 Network Layer이다. 이 계층은 주소를 관리하고, 포장하고, 라우팅하는 역할을 담당한다. Network layer에는 4가지 프로토콜이 있다. 첫 번째 IP (Internet Protocol)는 호스트들과 네트워크에서 주소를 관리하고, 패킷을 라우팅하는 역할을 한다. ARP (Address Resolution Protocol)은 같은  네트워크에 위치한 호스트들의 하드웨어 주소(MAC Address)를 얻는데 이용된다. ICMP (Internet Control Message Protocol)은 패킷 전송에 관한 에러메세지를 처리하는데 이용된다.

Transport Layer는 호스트들간에 통신을 제공하는 역할을 담당한다. Transport Layer에는 2개의 프로토콜이 있다. TCP (Transmission Control Protocol) UDP (User Datagram Protocol)이 그것이다. "Connection Oriented Protocol" 이라고 하는 TCP는 일반적으로 많은 양의 데이터를 전송하거나, 데이터를 받았다는 확인메세지를 요구할 필요가 있을 때 사용된다. "Connectionless protocol"이라고 하는 UDP는 패킷의 정확한 전달을 보장하지 않는다. 어플리케이션은 일반적으로 적은양의 데이터를 전송할 때 UDP를 사용한다. UDP가 전송에 대한 확신을 주지 않기 때문에 그러한 책임은 상위의 어플리케이션 계층이 가져야 한다.

가장 상위에 있는 모델은 Application Layer이다. 이 계층은 어플리케이션이 네트워크에 접근가능하도록 해 주는 역할을 한다. 마이크로소프트 TCP/IP는 어플리케이션과 transport Layer사이에 Windows Sockets NetBIOS interface를 제공한다. Windows Sockets은 많은 전송계층의 프로토콜과 서로 다른 주소체계 사이에서 윈도우 환경에 표준 API(Application Programming Interface)를 제공한다. NetBIOS TCP/IP, NetBEUI등의 프로토콜들을 이용할 수 있는 표준 인터페이스를 제공한다.

위의 설명만으로도 충분하다고 여겨진다면 바로 다음 단원인 IP Address로 넘어가도 좋다. 하지만 어렵거나 조금 더 자세히 알고자 한다면 계속해서 자세히 각각의 계층과 프로토콜의 특징과 역할에 대해서 검토해 보도록 하겠다.

:
Posted by 새벽예찬